]> dev.renevier.net Git - syp.git/blob - openlayers/tests/Layer/TileCache.html
initial commit
[syp.git] / openlayers / tests / Layer / TileCache.html
1 <html>
2 <head>
3   <script src="../../lib/OpenLayers.js"></script>
4   <script type="text/javascript">
5
6
7
8     function test_Layer_TileCache_constructor (t) {
9         t.plan( 1 );
10
11         var name = 'Test Layer';
12         var url = "http://labs.metacarta.com/wms-c/Basic.py/";
13         var layername = "basic";
14         var options = {'type':'png'}; 
15
16         var layer = new OpenLayers.Layer.TileCache(name, url, layername, options);
17         t.ok( layer instanceof OpenLayers.Layer.TileCache, "returns OpenLayers.Layer.TileCache object" );
18         layer.destroy();
19     }
20
21     function test_Layer_TileCache_clone(t) {
22         t.plan(3);
23
24         var name = 'Test Layer';
25         var url = "http://labs.metacarta.com/wms-c/Basic.py/";
26         var layername = "basic";
27         var options = {'type':'png'}; 
28         var layer = new OpenLayers.Layer.TileCache(name, url, layername, options);
29
30         var clone = layer.clone();
31         t.eq(layer.name, clone.name, "clone() correctly copy the 'name' property");
32         t.eq(layer.url, clone.url, "clone() correctly copy the 'url' property");
33         t.eq(layer.layername, clone.layername, "clone() correctly copy the 'layername' property");
34         clone.destroy();
35         layer.destroy();
36     }
37
38     function test_Layer_TileCache_clearTiles (t) {
39         t.plan( 1 );
40         var name = 'Test Layer';
41         var url = "http://labs.metacarta.com/wms-c/Basic.py/";
42         var layername = "basic";
43         var options = {'type':'png'}; 
44         var layer = new OpenLayers.Layer.TileCache(name, url, layername, options);
45         var map = new OpenLayers.Map('map');
46         map.addLayer(layer);
47
48         map.setCenter(new OpenLayers.LonLat(0,0));
49
50         //grab a reference to one of the tiles
51         var tile = layer.grid[0][0];        
52
53         layer.clearGrid();
54
55         t.ok( layer.grid != null, "layer.grid does not get nullified" );
56         map.destroy();
57     }
58
59
60     function test_Layer_TileCache_getTileCacheBounds(t) {
61         t.plan( 1 );
62
63         var name = 'Test Layer';
64         var url = "http://labs.metacarta.com/wms-c/Basic.py/";
65         var layername = "basic";
66         var options = {'type':'png'}; 
67         var layer = new OpenLayers.Layer.TileCache(name, url, layername, options);
68
69         var bl = { bounds: new OpenLayers.Bounds(1,2,0,0)};
70         var tr = { bounds: new OpenLayers.Bounds(0,0,3,4)};
71         layer.grid = [ [6, tr], 
72                        [bl, 7]];
73
74         var bounds = layer.getGridBounds();
75     
76         var testBounds = new OpenLayers.Bounds(1,2,3,4);
77         
78         t.ok( bounds.equals(testBounds), "getTileCacheBounds() returns correct bounds")
79
80     }
81
82     function test_Layer_TileCache_getResolution(t) {
83         t.plan( 1 );
84
85         var name = 'Test Layer';
86         var url = "http://labs.metacarta.com/wms-c/Basic.py/";
87         var layername = "basic";
88         var options = {'type':'png', maxResolution: 180/256}; 
89         var map = new OpenLayers.Map('map');
90         var layer = new OpenLayers.Layer.TileCache(name, url, layername, options);
91         map.addLayer(layer);
92
93         map.zoom = 5;
94
95         t.eq( layer.getResolution(), 0.02197265625, "getResolution() returns correct value");
96         map.destroy();
97     }
98
99     function test_Layer_TileCache_getZoomForExtent(t) {
100         t.plan( 2 );
101         var bounds, zoom;
102
103         var name = 'Test Layer';
104         var url = "http://labs.metacarta.com/wms-c/Basic.py/";
105         var layername = "basic";
106         var options = {'type':'png', maxResolution: 180/256}; 
107         var map = new OpenLayers.Map('map');
108         var layer = new OpenLayers.Layer.TileCache(name, url, layername, options);
109         map.addLayer(layer);
110
111         bounds = new OpenLayers.Bounds(10,10,12,12);
112         zoom = layer.getZoomForExtent(bounds);
113
114         t.eq( zoom, 7, "getZoomForExtent() returns correct value");
115
116         bounds = new OpenLayers.Bounds(10,10,100,100);
117         zoom = layer.getZoomForExtent(bounds);
118
119         t.eq( zoom, 1, "getZoomForExtent() returns correct value");
120         map.destroy();
121     }   
122
123     function test_Layer_TileCache_getURL(t) {
124
125         t.plan(2);
126         
127         var map = new OpenLayers.Map('map');
128         var name = 'Test Layer';
129         var url = "http://labs.metacarta.com/wms-c/Basic.py/";
130         var layername = "basic";
131         var options = {'layername':'basic', 'format':'image/jpg', maxResolution: 180/256}; 
132         var layer = new OpenLayers.Layer.TileCache(name, url, layername, options);
133         map.addLayer(layer);
134         map.setCenter(new OpenLayers.LonLat(0,0), 9);
135         var tileurl = layer.getURL(new OpenLayers.Bounds(3.515625,45,4.21875,45.703125));
136         t.eq(tileurl, "http://labs.metacarta.com/wms-c/Basic.py/basic/09/000/000/522/000/000/384.jpeg", "Tile URL is correct");
137
138         layer.url = ["http://tilecache1/", "http://tilecache2/", "http://tilecache3/"];
139         tileurl = layer.getURL(new OpenLayers.Bounds(3.515625,45,4.21875,45.703125));
140         t.eq(tileurl, "http://tilecache2/basic/09/000/000/522/000/000/384.jpeg", "Tile URL is deterministic");
141         map.destroy();
142     }
143
144     function test_Layer_TileCache_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.TileCache('tc layer', '', 'basic');
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 gotLevel = OpenLayers.Util.indexOf(layer.serverResolutions, map.getResolution());
163         t.eq(gotLevel, level, "Tile zoom level is correct with serverResolutions");
164         
165         map.destroy();
166     }
167
168     function test_Layer_TileCache_destroy (t) {
169
170         t.plan( 3 );
171
172         var name = 'Test Layer';
173         var url = "http://labs.metacarta.com/wms-c/Basic.py/";
174         var layername = "basic";
175         var options = {'layername':'basic', 'format':'image/jpg', maxResolution: 180/256}; 
176         var map = new OpenLayers.Map('map');
177         var layer = new OpenLayers.Layer.TileCache(name, url, layername, options);
178         map.addLayer(layer);
179         layer.destroy();
180         t.eq( layer.grid, null, "layer.grid is null after destroy" );
181         t.eq( layer.tileSize, null, "layer.tileSize is null after destroy" );
182
183
184     //test with tile creation
185         layer = new OpenLayers.Layer.TileCache(name, url, options);
186         map.addLayer(layer);
187         map.setCenter(new OpenLayers.LonLat(0,0), 5);
188         //grab a reference to one of the tiles
189         var tile = layer.grid[0][0];        
190
191         layer.destroy();
192
193         t.ok( layer.grid == null, "tiles appropriately destroyed");
194         map.destroy();
195     }
196     
197
198   </script>
199 </head>
200 <body>
201 <div id="map" style="width:500px;height:550px"></div>
202 </body>
203 </html>