]> dev.renevier.net Git - syp.git/blob - openlayers/tests/Marker.html
fixes notices
[syp.git] / openlayers / tests / Marker.html
1 <html>
2 <head>
3   <script src="../lib/OpenLayers.js"></script>
4   <script type="text/javascript">
5
6     var marker;
7
8     function test_Marker_constructor (t) {
9         t.plan( 4 );
10         var ll = new OpenLayers.LonLat(2,1);
11         marker = new OpenLayers.Marker(ll,new OpenLayers.Icon());
12         t.ok( marker instanceof OpenLayers.Marker, "new OpenLayers.Marker returns Marker object" );
13         t.ok( marker.icon instanceof OpenLayers.Icon, "new marker.Icon returns Icon object" );
14         t.ok( marker.lonlat instanceof OpenLayers.LonLat, "new marker.lonlat returns LonLat object" );
15         t.ok( marker.lonlat.equals(ll), "marker.lonlat returns correct" );
16     }
17
18     function test_Marker_onScreen(t) {
19         t.plan( 2 );
20
21         var map = new OpenLayers.Map("map");
22
23         var url = "http://octo.metacarta.com/cgi-bin/mapserv";
24         layer = new OpenLayers.Layer.WMS(name, url);
25
26         map.addLayer(layer);
27         
28         mlayer = new OpenLayers.Layer.Markers('Test Layer');
29         map.addLayer(mlayer);
30                
31         map.zoomToExtent(new OpenLayers.Bounds(-50,-50,50,50));
32
33         //onscreen marker
34         var ll = new OpenLayers.LonLat(0,0);
35         var marker = new OpenLayers.Marker(ll);
36         mlayer.addMarker(marker);
37         
38         t.ok( marker.onScreen(), "marker knows it's onscreen" );
39
40         //offscreen marker
41         var ll = new OpenLayers.LonLat(100,100);
42         var marker2 = new OpenLayers.Marker(ll);
43         mlayer.addMarker(marker2);
44
45         t.ok( !marker2.onScreen(), "marker knows it's offscreen" );
46         map.destroy();
47     }
48
49     function test_Marker_setOpacity(t) {
50         t.plan( 2 );
51         
52         var map = new OpenLayers.Map("map");
53
54         var url = "http://octo.metacarta.com/cgi-bin/mapserv";
55         layer = new OpenLayers.Layer.WMS(name, url);
56
57         map.addLayer(layer);
58         
59         mlayer = new OpenLayers.Layer.Markers('Test Layer');
60         map.addLayer(mlayer);
61                
62         map.zoomToExtent(new OpenLayers.Bounds(-50,-50,50,50));
63
64         //onscreen marker
65         var ll = new OpenLayers.LonLat(0,0);
66         var marker = new OpenLayers.Marker(ll);
67         mlayer.addMarker(marker);
68
69         t.ok(!marker.icon.imageDiv.style.opacity, "default marker has no opacity");
70         
71         marker.setOpacity(0.5);
72
73         t.eq(parseFloat(marker.icon.imageDiv.style.opacity), 0.5, "marker.setOpacity() works");
74         map.destroy();
75     }
76     
77     function test_Marker_setUrl(t) {
78         t.plan( 2 );
79         
80         var map = new OpenLayers.Map("map");
81
82         var url = "http://octo.metacarta.com/cgi-bin/mapserv";
83         layer = new OpenLayers.Layer.WMS(name, url);
84
85         map.addLayer(layer);
86         
87         mlayer = new OpenLayers.Layer.Markers('Test Layer');
88         map.addLayer(mlayer);
89                
90         map.zoomToExtent(new OpenLayers.Bounds(-50,-50,50,50));
91
92         //onscreen marker
93         var ll = new OpenLayers.LonLat(0,0);
94         var marker = new OpenLayers.Marker(ll);
95         mlayer.addMarker(marker);
96
97         t.ok(marker.icon.imageDiv.firstChild.src.contains("img/marker.png"), "Marker.png is default URL");
98         
99         marker.setUrl("http://example.com/broken.png");
100         t.eq(marker.icon.imageDiv.firstChild.src, "http://example.com/broken.png", "image source changes correctly.");
101
102         map.destroy();
103     }
104
105     function test_Marker_moveTo(t) {
106         t.plan( 6 );
107         
108         var map = new OpenLayers.Map("map");
109
110         var url = "http://octo.metacarta.com/cgi-bin/mapserv";
111         layer = new OpenLayers.Layer.WMS(name, url);
112
113         map.addLayer(layer);
114         
115         mlayer = new OpenLayers.Layer.Markers('Test Layer');
116         map.addLayer(mlayer);
117                
118         map.zoomToExtent(new OpenLayers.Bounds(-50,-50,50,50));
119
120         //onscreen marker
121         var ll = new OpenLayers.LonLat(0,0);
122         var marker = new OpenLayers.Marker(ll);
123         mlayer.addMarker(marker);
124         
125         t.eq(marker.lonlat.lon, 0, "marker lon okay"); 
126         t.eq(marker.lonlat.lat, 0, "marker lat okay");
127
128         marker.moveTo(new OpenLayers.Pixel(250,275));
129         t.eq(marker.lonlat.lon, 0, "marker lon no change"); 
130         t.eq(marker.lonlat.lat, 0, "marker lat no change"); 
131         
132         marker.moveTo(new OpenLayers.Pixel(0,0));
133         t.eq(marker.lonlat.lon, map.getExtent().left, "on left edge of map"); 
134         t.eq(marker.lonlat.lat, map.getExtent().top, "on top edge of map"); 
135         map.destroy();
136     }
137     
138     function test_Marker_isDrawn(t) {
139         t.plan(3);
140
141         var marker = {};
142
143         //no icon
144         var drawn = OpenLayers.Marker.prototype.isDrawn.apply(marker, []);
145         t.ok(!drawn, "marker with no icon not drawn");
146
147         //not drawn icon
148         marker.icon = { isDrawn: function() { return false; } };
149         drawn = OpenLayers.Marker.prototype.isDrawn.apply(marker, []);
150         t.ok(!drawn, "marker with not drawn icon not drawn");
151
152         //drawn icon
153         marker.icon.isDrawn = function() { return true; };
154         drawn = OpenLayers.Marker.prototype.isDrawn.apply(marker, []);
155         t.ok(drawn, "marker with drawn icon drawn");
156     }
157
158   </script>
159 </head>
160 <body>
161     <div id="map" style="width:500px;height:550px"></div>
162 </body>
163 </html>