OpenLayers OpenLayers

root/trunk/openlayers/tests/Filter/Spatial.html

Revision 7952, 2.5 kB (checked in by tschaub, 4 months ago)

Adding OpenLayers.Filter.Spatial. Thanks to bartvde for the original patch. Thanks elemoine for adding the evaluate method and test. I'm putting this in so we can move on some other tickets. r=me (closes #1719)

Line 
1 <html> 
2 <head> 
3     <script src="../../lib/OpenLayers.js"></script>
4     <script type="text/javascript">
5
6     function test_constructor(t) {
7         t.plan(3);
8          
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");
15     }
16
17     function test_destroy(t) {
18         t.plan(1);
19        
20         var filter = new OpenLayers.Filter.Spatial();
21         filter.destroy();
22         t.eq(filter.symbolizer, null, "symbolizer hash nulled properly");
23     }
24    
25     function test_evaluate(t) {
26         t.plan(4);
27        
28         var filer, feature, res, geom, bounds;
29
30         bounds = new OpenLayers.Bounds(0, 0, 10, 10);
31         filter = new OpenLayers.Filter.Spatial({
32             type: OpenLayers.Filter.Spatial.BBOX,
33             value: bounds
34         });
35
36         // 1 test
37         feature = new OpenLayers.Feature.Vector(
38             new OpenLayers.Geometry.Point(2, 2));
39         res = filter.evaluate(feature);
40         t.eq(res, true,
41             "evaluates returns correct value when feature intersects bounds");
42
43         // 1 test
44         feature = new OpenLayers.Feature.Vector(
45             new OpenLayers.Geometry.Point(20, 20));
46         res = filter.evaluate(feature);
47         t.eq(res, false,
48             "evaluates returns correct value when feature does not intersect bounds");
49
50         // 1 test
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,
56             value: geom
57         });
58         res = filter.evaluate(feature);
59         t.eq(res, true,
60             "evaluates returns correct value when feature intersects bounds");
61
62         // 1 test
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,
68             value: geom
69         });
70         res = filter.evaluate(feature);
71         t.eq(res, false,
72             "evaluates returns correct value when feature does not intersect bounds");
73     }
74     </script>
75 </head> 
76 <body> 
77 </body> 
78 </html> 
Note: See TracBrowser for help on using the browser.