]> dev.renevier.net Git - syp.git/blob - openlayers/tests/Layer/TMS.html
err_lonlat_invalid exceptions not thrown correctly
[syp.git] / openlayers / tests / Layer / TMS.html
1 <html>
2 <head>
3   <script src="../../lib/OpenLayers.js"></script>
4   <script type="text/javascript">
5     var isMozilla = (navigator.userAgent.indexOf("compatible") == -1);
6     var layer; 
7
8     var name = 'Test Layer';
9     var url = "http://labs.metacarta.com/wms-c/Basic.py/";
10     var options = {'layername':'basic', 'type':'png'}; 
11
12
13     function test_Layer_TMS_constructor (t) {
14         t.plan( 1 );
15                        
16         layer = new OpenLayers.Layer.TMS(name, url, options);
17         t.ok( layer instanceof OpenLayers.Layer.TMS, "returns OpenLayers.Layer.TMS object" );
18     }
19
20
21
22     function test_Layer_TMS_clearTiles (t) {
23         t.plan( 1 );
24         var map = new OpenLayers.Map('map');
25         layer = new OpenLayers.Layer.TMS(name, url, options);
26         map.addLayer(layer);
27
28         map.setCenter(new OpenLayers.LonLat(0,0));
29
30         //grab a reference to one of the tiles
31         var tile = layer.grid[0][0];        
32
33         layer.clearGrid();
34
35         t.ok( layer.grid != null, "layer.grid does not get nullified" );
36         map.destroy();
37     }
38
39
40     function test_Layer_TMS_getTMSBounds(t) {
41         t.plan( 1 );
42
43         layer = new OpenLayers.Layer.TMS(name, url, options);
44
45         var bl = { bounds: new OpenLayers.Bounds(1,2,0,0)};
46         var tr = { bounds: new OpenLayers.Bounds(0,0,3,4)};
47         layer.grid = [ [6, tr], 
48                        [bl, 7]];
49
50         var bounds = layer.getTilesBounds();
51     
52         var testBounds = new OpenLayers.Bounds(1,2,3,4);
53         
54         t.ok( bounds.equals(testBounds), "getTMSBounds() returns correct bounds");
55         
56         layer.grid = null;
57     }
58
59     function test_Layer_TMS_getResolution(t) {
60         t.plan( 1 );
61
62         var map = new OpenLayers.Map('map');
63         layer = new OpenLayers.Layer.TMS(name, url, options);
64         map.addLayer(layer);
65
66         map.zoom = 5;
67
68         t.eq( layer.getResolution(), 0.0439453125, "getResolution() returns correct value");
69         map.destroy();
70     }
71
72     function test_Layer_TMS_getZoomForExtent(t) {
73         t.plan( 2 );
74         var bounds, zoom;
75
76         var map = new OpenLayers.Map('map');
77         layer = new OpenLayers.Layer.TMS(name, url, options);
78         map.addLayer(layer);
79
80         bounds = new OpenLayers.Bounds(10,10,12,12);
81         zoom = layer.getZoomForExtent(bounds);
82
83         t.eq( zoom, 8, "getZoomForExtent() returns correct value");
84
85         bounds = new OpenLayers.Bounds(10,10,100,100);
86         zoom = layer.getZoomForExtent(bounds);
87
88         t.eq( zoom, 2, "getZoomForExtent() returns correct value");
89         map.destroy();
90     }   
91
92
93     /** THIS WOULD BE WHERE THE TESTS WOULD GO FOR 
94      *     
95      *    -moveTo
96      *    -insertColumn
97      *    -insertRow
98     
99     function 07_Layer_TMS_moveTo(t) {
100     }
101
102     function 08_Layer_TMS_insertColumn(t) {
103     }
104
105     function 09_Layer_TMS_insertRow(t) {
106     }
107
108      * 
109      */
110     function test_Layer_TMS_getURL(t) {
111
112         t.plan(3);
113         
114         var map = new OpenLayers.Map('map', options);
115         var options = {'layername':'basic', 'type':'png'}; 
116         layer = new OpenLayers.Layer.TMS(name, url, options);
117         map.addLayer(layer);
118         map.setCenter(new OpenLayers.LonLat(0,0), 9);
119         var tileurl = layer.getURL(new OpenLayers.Bounds(3.515625,45,4.21875,45.703125));
120         t.eq(tileurl, "http://labs.metacarta.com/wms-c/Basic.py/1.0.0/basic/9/261/192.png", "Tile URL is correct");
121     
122         var layer2 = layer.clone();
123         layer2.serviceVersion = "1.2.3";
124         map.addLayer(layer2);
125         tileurl = layer2.getURL(new OpenLayers.Bounds(3.515625,45,4.21875,45.703125));
126         t.eq(tileurl, "http://labs.metacarta.com/wms-c/Basic.py/1.2.3/basic/9/261/192.png", "TMS serviceVersion is correct");
127
128         layer.url = ["http://tilecache1/", "http://tilecache2/", "http://tilecache3/"];
129         tileurl = layer.getURL(new OpenLayers.Bounds(3.515625,45,4.21875,45.703125));
130         t.eq(tileurl, "http://tilecache1/1.0.0/basic/9/261/192.png", "Tile URL is deterministic");
131         map.destroy();
132     }
133     function test_Layer_TMS_Rounding(t) {
134         t.plan(1);
135             m = new OpenLayers.Map("map", {'maxExtent':new OpenLayers.Bounds(-122.6579,37.4901,-122.0738,37.8795)});
136             layer = new OpenLayers.Layer.TMS( "TMS", 
137                     "http://labs.metacarta.com/wms-c/Basic.py/", {layername: 'basic', type:'png', resolutions:[0.000634956337608418]} );
138             m.addLayer(layer);
139             m.zoomToMaxExtent();
140             t.eq(layer.getURL(layer.grid[3][3].bounds), "http://labs.metacarta.com/wms-c/Basic.py/1.0.0/basic/0/1/1.png", "TMS tiles around rounded properly.");
141         m.destroy();
142     }        
143             
144     function test_Layer_TMS_serverResolutions(t) {
145         t.plan(2);
146         
147         var map = new OpenLayers.Map('map', {
148             resolutions: [13,11]
149         });
150
151         var layer = new OpenLayers.Layer.TMS('tc layer', '', options);
152         map.addLayer(layer);
153         map.setCenter(new OpenLayers.LonLat(0,0), 1);
154
155         var tileurl = layer.getURL(new OpenLayers.Bounds(0,0,0,0));
156         var level = parseInt(tileurl.split('/')[2]);
157         t.eq(map.getZoom(), level, "Tile zoom level is correct without serverResolutions");
158
159         layer.serverResolutions = [14,13,12,11,10];
160         tileurl = layer.getURL(new OpenLayers.Bounds(0,0,0,0));
161         level = parseInt(tileurl.split('/')[2]);
162         var res = map.getResolution();
163         var gotLevel = OpenLayers.Util.indexOf(layer.serverResolutions, res);
164         t.eq(gotLevel, level, "Tile zoom level is correct with serverResolutions");
165         
166         map.destroy();
167     }
168
169     function test_Layer_TMS_setMap(t) {
170
171         t.plan(3);
172         
173         var map = new OpenLayers.Map('map', options);
174         layer = new OpenLayers.Layer.TMS(name, url, options);
175
176         t.eq(layer.tileOrigin, null, "Tile origin starts out null");
177         layer.setMap(map);
178         
179         t.eq(layer.tileOrigin.lat, -90, "lat is -90");
180         t.eq(layer.tileOrigin.lon, -180, "lon is -180");
181         map.destroy();
182     }
183
184     function test_Layer_TMS_destroy (t) {
185
186         t.plan( 3 );
187
188         var map = new OpenLayers.Map('map');
189         layer = new OpenLayers.Layer.TMS(name, url, options);
190         map.addLayer(layer);
191         layer.destroy();
192         t.eq( layer.grid, null, "layer.grid is null after destroy" );
193         t.eq( layer.tileSize, null, "layer.tileSize is null after destroy" );
194
195
196     //test with tile creation
197         layer = new OpenLayers.Layer.TMS(name, url, options);
198         map.addLayer(layer);
199         map.setCenter(new OpenLayers.LonLat(0,0), 5);
200         //grab a reference to one of the tiles
201         var tile = layer.grid[0][0];        
202
203         layer.destroy();
204
205         t.ok( layer.grid == null, "tiles appropriately destroyed");
206         map.destroy();
207     }
208     
209
210   </script>
211 </head>
212 <body>
213 <div id="map" style="width:500px;height:550px;"></div>
214 </body>
215 </html>