]> dev.renevier.net Git - syp.git/blob - openlayers/tests/Layer/XYZ.html
initial commit
[syp.git] / openlayers / tests / Layer / XYZ.html
1 <html>
2 <head>
3   <script src="../../lib/OpenLayers.js"></script>
4   <script type="text/javascript">
5     var layer; 
6
7     var name = 'Test Layer';
8     var url = "http://labs.metacarta.com/wms-c/Basic.py/1.0.0/basic/${z}/${x}/${y}.png";
9     var options = {'layername':'basic', 'type':'png'}; 
10
11
12     function test_Layer_XYZ_constructor (t) {
13         t.plan( 1 );
14                        
15         layer = new OpenLayers.Layer.XYZ(name, url, options);
16         t.ok( layer instanceof OpenLayers.Layer.XYZ, "returns OpenLayers.Layer.XYZ object" );
17     }
18
19
20
21     function test_Layer_XYZ_clearTiles (t) {
22         t.plan( 1 );
23         var map = new OpenLayers.Map('map');
24         layer = new OpenLayers.Layer.XYZ(name, url, options);
25         map.addLayer(layer);
26
27         map.setCenter(new OpenLayers.LonLat(0,0));
28
29         //grab a reference to one of the tiles
30         var tile = layer.grid[0][0];        
31
32         layer.clearGrid();
33
34         t.ok( layer.grid != null, "layer.grid does not get nullified" );
35         map.destroy();
36     }
37
38
39     function test_Layer_XYZ_getXYZBounds(t) {
40         t.plan( 1 );
41
42         layer = new OpenLayers.Layer.XYZ(name, url, options);
43
44         var bl = { bounds: new OpenLayers.Bounds(1,2,0,0)};
45         var tr = { bounds: new OpenLayers.Bounds(0,0,3,4)};
46         layer.grid = [ [6, tr], 
47                        [bl, 7]];
48
49         var bounds = layer.getTilesBounds();
50     
51         var testBounds = new OpenLayers.Bounds(1,2,3,4);
52         
53         t.ok( bounds.equals(testBounds), "getXYZBounds() returns correct bounds")
54         
55         layer.grid = null;
56     }
57
58     function test_Layer_XYZ_getResolution(t) {
59         t.plan( 1 );
60
61         var map = new OpenLayers.Map('map');
62         layer = new OpenLayers.Layer.XYZ(name, url, options);
63         map.addLayer(layer);
64
65         map.zoom = 5;
66
67         t.eq( layer.getResolution(), 0.0439453125, "getResolution() returns correct value");
68         map.destroy();
69     }
70
71     function test_Layer_XYZ_getZoomForExtent(t) {
72         t.plan( 2 );
73         var bounds, zoom;
74
75         var map = new OpenLayers.Map('map');
76         layer = new OpenLayers.Layer.XYZ(name, url, options);
77         map.addLayer(layer);
78
79         bounds = new OpenLayers.Bounds(10,10,12,12);
80         zoom = layer.getZoomForExtent(bounds);
81
82         t.eq( zoom, 8, "getZoomForExtent() returns correct value");
83
84         bounds = new OpenLayers.Bounds(10,10,100,100);
85         zoom = layer.getZoomForExtent(bounds);
86
87         t.eq( zoom, 2, "getZoomForExtent() returns correct value");
88         map.destroy();
89     }   
90
91
92     /** THIS WOULD BE WHERE THE TESTS WOULD GO FOR 
93      *     
94      *    -moveTo
95      *    -insertColumn
96      *    -insertRow
97     
98     function 07_Layer_XYZ_moveTo(t) {
99     }
100
101     function 08_Layer_XYZ_insertColumn(t) {
102     }
103
104     function 09_Layer_XYZ_insertRow(t) {
105     }
106
107      * 
108      */
109     function test_Layer_XYZ_getURL(t) {
110
111         t.plan(2);
112         
113         var map = new OpenLayers.Map('map');
114         layer = new OpenLayers.Layer.XYZ(name, url);
115         map.addLayer(layer);
116         map.setCenter(new OpenLayers.LonLat(0,0), 9);
117         var tileurl = layer.getURL(new OpenLayers.Bounds(3.515625,45,4.21875,45.703125));
118         t.eq(tileurl, "http://labs.metacarta.com/wms-c/Basic.py/1.0.0/basic/9/261/63.png", "Tile URL is correct");
119     
120         layer.url = ["http://tilecache1/", "http://tilecache2/", "http://tilecache3/"];
121         tileurl = layer.getURL(new OpenLayers.Bounds(3.515625,45,4.21875,45.703125));
122         t.eq(tileurl, "http://tilecache1/", "Tile URL is deterministic");
123         map.destroy();
124     }
125     function test_Layer_XYZ_Rounding(t) {
126         t.plan(1);
127             m = new OpenLayers.Map("map", {'maxExtent':new OpenLayers.Bounds(-122.6579,37.4901,-122.0738,37.8795)});
128             layer = new OpenLayers.Layer.XYZ( "XYZ", 
129                     url, {layername: 'basic', type:'png', resolutions:[0.000634956337608418]} );
130             m.addLayer(layer);
131             m.zoomToMaxExtent()
132             t.eq(layer.getURL(layer.grid[3][3].bounds), "http://labs.metacarta.com/wms-c/Basic.py/1.0.0/basic/0/1/0.png", "XYZ tiles around rounded properly.");
133         m.destroy();
134     }        
135             
136     function test_Layer_XYZ_setMap(t) {
137
138         t.plan(3);
139         
140         var map = new OpenLayers.Map('map');
141         layer = new OpenLayers.Layer.XYZ(name, url);
142
143         t.eq(layer.tileOrigin, null, "Tile origin starts out null");
144         layer.setMap(map);
145         
146         t.eq(layer.tileOrigin.lat, -90, "lat is -90");
147         t.eq(layer.tileOrigin.lon, -180, "lon is -180");
148         map.destroy();
149     }
150
151     function test_Layer_XYZ_destroy (t) {
152
153         t.plan( 3 );
154
155         var map = new OpenLayers.Map('map');
156         layer = new OpenLayers.Layer.XYZ(name, url, options);
157         map.addLayer(layer);
158         layer.destroy();
159         t.eq( layer.grid, null, "layer.grid is null after destroy" );
160         t.eq( layer.tileSize, null, "layer.tileSize is null after destroy" );
161
162
163     //test with tile creation
164         layer = new OpenLayers.Layer.XYZ(name, url, options);
165         map.addLayer(layer);
166         map.setCenter(new OpenLayers.LonLat(0,0), 5);
167         //grab a reference to one of the tiles
168         var tile = layer.grid[0][0];        
169
170         layer.destroy();
171
172         t.ok( layer.grid == null, "tiles appropriately destroyed");
173         map.destroy();
174     }
175     
176
177   </script>
178 </head>
179 <body>
180 <div id="map" style="width:500px;height:550px"></div>
181 </body>
182 </html>