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.Logical(options);
11 t.ok(filter instanceof OpenLayers.Filter.Logical,
12 "new OpenLayers.Filter.Logical 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.Logical();
22 t.eq(filter.filters, null, "filters array nulled properly");
25 function test_evaluate(t) {
28 var filter = new OpenLayers.Filter.Logical({
29 type: OpenLayers.Filter.Logical.NOT});
30 filter.filters.push(new OpenLayers.Filter());
32 var feature = new OpenLayers.Feature.Vector();
34 t.eq(filter.evaluate(feature.attributes), false,
35 "feature evaluates to false correctly.");
38 function test_clone(t) {
42 var filter = new OpenLayers.Filter.Logical({
43 type: OpenLayers.Filter.Logical.AND,
45 new OpenLayers.Filter.Comparison({
46 type: OpenLayers.Filter.Comparison.EQUAL_TO,
50 new OpenLayers.Filter.Comparison({
51 type: OpenLayers.Filter.Comparison.NOT_EQUAL_TO,
58 var clone = filter.clone();
60 // modify the original
61 filter.type = OpenLayers.Filter.Logical.OR;
62 filter.filters[0].value = "nada";
64 t.eq(clone.type, OpenLayers.Filter.Logical.AND, "clone has proper type");
65 t.eq(clone.filters[0].value, "val1", "clone has cloned child filters");