3 <script src="../../lib/OpenLayers.js"></script>
4 <script type="text/javascript">
6 function test_constructor(t) {
9 var options = {'foo': 'bar'};
10 var filter = new OpenLayers.Filter.Spatial(options);
11 t.ok(filter instanceof OpenLayers.Filter.Spatial,
12 "new OpenLayers.Filter.Spatial 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.Spatial();
22 t.eq(filter.symbolizer, null, "symbolizer hash nulled properly");
25 function test_evaluate(t) {
28 var filer, feature, res, geom, bounds;
30 bounds = new OpenLayers.Bounds(0, 0, 10, 10);
31 filter = new OpenLayers.Filter.Spatial({
32 type: OpenLayers.Filter.Spatial.BBOX,
37 feature = new OpenLayers.Feature.Vector(
38 new OpenLayers.Geometry.Point(2, 2));
39 res = filter.evaluate(feature);
41 "evaluates returns correct value when feature intersects bounds");
44 feature = new OpenLayers.Feature.Vector(
45 new OpenLayers.Geometry.Point(20, 20));
46 res = filter.evaluate(feature);
48 "evaluates returns correct value when feature does not intersect bounds");
51 geom = bounds.toGeometry();
52 feature = new OpenLayers.Feature.Vector(
53 new OpenLayers.Geometry.Point(2, 2));
54 filter = new OpenLayers.Filter.Spatial({
55 type: OpenLayers.Filter.Spatial.INTERSECTS,
58 res = filter.evaluate(feature);
60 "evaluates returns correct value when feature intersects bounds");
63 geom = bounds.toGeometry();
64 feature = new OpenLayers.Feature.Vector(
65 new OpenLayers.Geometry.Point(20, 20));
66 filter = new OpenLayers.Filter.Spatial({
67 type: OpenLayers.Filter.Spatial.INTERSECTS,
70 res = filter.evaluate(feature);
72 "evaluates returns correct value when feature does not intersect bounds");
75 function test_clone(t) {
79 var bounds = new OpenLayers.Bounds(0, 0, 10, 10);
80 var filter = new OpenLayers.Filter.Spatial({
81 type: OpenLayers.Filter.Spatial.BBOX,
85 var clone = filter.clone();
87 // modify the original
88 filter.value.bottom = -100;
90 t.eq(clone.type, OpenLayers.Filter.Spatial.BBOX, "clone has proper type");
91 t.eq(clone.value.toBBOX(), "0,0,10,10", "clone has proper value");