3
<script src="../../lib/OpenLayers.js"></script>
4
<script type="text/javascript">
6
function test_initialize(t) {
9
var options = {'foo': 'bar'};
10
var filter = new OpenLayers.Filter.Comparison(options);
11
t.ok(filter instanceof OpenLayers.Filter.Comparison,
12
"new OpenLayers.Filter.Comparison returns object" );
13
t.eq(filter.foo, "bar", "constructor sets options correctly");
14
t.eq(typeof filter.evaluate, "function", "filter has an evaluate function");
17
function test_destroy(t) {
20
var filter = new OpenLayers.Filter.Comparison();
22
t.eq(filter.symbolizer, null, "symbolizer hash nulled properly");
25
function test_value2regex(t) {
28
var filter = new OpenLayers.Filter.Comparison({
31
type: OpenLayers.Filter.Comparison.LIKE});
32
filter.value2regex("*", "?", "\\");
33
t.eq(filter.value, ".*b.r\\*\\?.*", "Regular expression generated correctly.");
35
filter.value = "%b.r!%!.%";
36
filter.value2regex("%", ".", "!");
37
t.eq(filter.value, ".*b.r\\%\\..*", "Regular expression with different wildcard and escape chars generated correctly.");
41
t.eq(filter.value, "\\!", "!! successfully unescaped to \\!");
44
filter.value = "!!c!!!d!e";
46
t.eq(filter.value, "\\!c\\!\\d\\e", "!!c!!!d!e successfully unescaped to \\!c\\!\\d\\e");
49
function test_regex2value(t) {
53
return OpenLayers.Filter.Comparison.prototype.regex2value.call(
58
t.eq(r2v("foo"), "foo", "doesn't change string without special chars");
59
t.eq(r2v("foo.*foo"), "foo*foo", "wildCard replaced");
60
t.eq(r2v("foo.foo"), "foo.foo", "singleChar replaced");
61
t.eq(r2v("foo\\\\foo"), "foo\\foo", "escape removed");
62
t.eq(r2v("foo!foo"), "foo!!foo", "escapes !");
63
t.eq(r2v("foo\\*foo"), "foo!*foo", "replaces escape on *");
64
t.eq(r2v("foo\\.foo"), "foo!.foo", "replaces escape on .");
65
t.eq(r2v("foo\\\\.foo"), "foo\\.foo", "unescapes only \\ before .");
69
function test_evaluate(t) {
72
var filter = new OpenLayers.Filter.Comparison({
76
type: OpenLayers.Filter.Comparison.BETWEEN});
79
new OpenLayers.Feature.Vector(null, {
81
new OpenLayers.Feature.Vector(null, {
83
new OpenLayers.Feature.Vector(null, {
85
new OpenLayers.Feature.Vector(null, {
87
// PropertyIsBetween filter: lower and upper boundary are inclusive
93
for (var i in filterResults) {
94
var result = filter.evaluate(features[i].attributes);
95
t.eq(result, filterResults[i], "feature "+i+
96
" evaluates to "+result.toString()+" correctly.");
101
var result = filter.evaluate(context);
102
t.eq(result, true, "evaluation against custom filter context works.");