]> dev.renevier.net Git - syp.git/blob - openlayers/tests/Filter/Spatial.html
initial commit
[syp.git] / openlayers / tests / Filter / Spatial.html
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     
75     function test_clone(t) {
76         
77         t.plan(2);
78         
79         var bounds = new OpenLayers.Bounds(0, 0, 10, 10);
80         var filter = new OpenLayers.Filter.Spatial({
81             type: OpenLayers.Filter.Spatial.BBOX,
82             value: bounds
83         });
84         
85         var clone = filter.clone();
86         
87         // modify the original
88         filter.value.bottom = -100;
89         
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");
92         
93         filter.destroy();
94         clone.destroy();
95
96     }
97
98     
99     </script> 
100 </head> 
101 <body> 
102 </body> 
103 </html>