OpenLayers OpenLayers

Ticket #562: test_MapServer.html

File test_MapServer.html, 9.4 kB (added by pspencer, 2 years ago)

forgot to revert google api key

Line 
1 <html>
2 <head>
3     <script src='http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAAjpkAC9ePGem0lIq5XcMiuhR_wWLPFku8Ix9i2SXYRVK3e45q1BQUd_beF8dtzKET_EteAjPdGDwqpQ'></script>Z
4    
5
6 <script src="../../lib/OpenLayers.js"></script>
7   <script type="text/javascript"><!--
8     var isMozilla = (navigator.userAgent.indexOf("compatible") == -1);
9     var layer;
10
11     var name = 'Test Layer';
12     var url = "http://labs.metacarta.com/cgi-bin/mapserv";
13     var params = { map: '/mapdata/vmap_wms.map',
14                    layers: 'basic'};
15
16     function test_01_Layer_MapServer_constructor (t) {
17         t.plan( 4 );
18
19         var url = "http://labs.metacarta.com/cgi-bin/mapserv";
20         layer = new OpenLayers.Layer.MapServer(name, url, params);
21         t.ok( layer instanceof OpenLayers.Layer.MapServer, "new OpenLayers.Layer.MapServer returns object" );
22         t.eq( layer.url, "http://labs.metacarta.com/cgi-bin/mapserv", "layer.url is correct (HTTPRequest inited)" );
23
24         t.eq( layer.params.mode, "map", "default mode param correctly copied");
25         t.eq( layer.params.map_imagetype, "png", "default imagetype correctly copied");
26
27
28     }
29    
30     function test_02_Layer_MapServer_addtile (t) {
31         t.plan( 6 );
32    
33         var url = "http://labs.metacarta.com/cgi-bin/mapserv";
34         layer = new OpenLayers.Layer.MapServer(name, url, params);
35         var map = new OpenLayers.Map('map');
36         map.addLayer(layer);
37         var pixel = new OpenLayers.Pixel(5,6);
38         var tile = layer.addTile(new OpenLayers.Bounds(1,2,3,4), pixel);
39         tile.draw();
40
41         var img = tile.imgDiv;
42         var tParams = OpenLayers.Util.extend({},params);
43         tParams = OpenLayers.Util.extend(tParams, {
44              layers: 'basic',
45              mode: 'map',
46              map_imagetype: 'png',
47              mapext:[1,2,3,4],
48              imgext:[1,2,3,4],
49              map_size:[256, 256],
50              imgx:128,
51              imgy:128,
52              imgxy:[256,256]
53         });
54         t.eq( img.src,
55              url + "?" + OpenLayers.Util.getParameterString(tParams).replace(/,/g, "+"),
56              "image src is created correctly via addtile" );
57         t.eq( tile.imgDiv.style.top, "6px", "image top is set correctly via addtile" );
58         t.eq( tile.imgDiv.style.left, "5px", "image top is set correctly via addtile" );
59
60         var firstChild = layer.div.firstChild;
61         if (!isMozilla)
62             t.ok( true, "skipping element test outside of Mozilla");
63         else
64             t.ok( firstChild instanceof HTMLElement, "div first child is an image object" );
65         t.eq( firstChild.src,
66              url + "?" + OpenLayers.Util.getParameterString(tParams).replace(/,/g, "+"),
67              "div first child is correct image object" );
68         t.eq( tile.position.toString(), "x=5,y=6", "Position of tile is set correctly." );
69     }
70    
71     function test_03_Layer_MapServer_inittiles (t) {
72         t.plan( 2 );
73         var map = new OpenLayers.Map('map');
74         layer = new OpenLayers.Layer.MapServer(name, url, params);
75         map.addLayer(layer);
76         map.setCenter(new OpenLayers.LonLat(0,0),5);
77         t.eq( layer.grid.length, 7, "Grid rows is correct." );
78         t.eq( layer.grid[0].length, 6, "Grid cols is correct." );
79        
80     }
81
82
83     function test_04_Layer_MapServer_clone (t) {
84         t.plan(4);
85        
86         var url = "http://labs.metacarta.com/cgi-bin/mapserv";
87         var options = {tileSize: new OpenLayers.Size(500,50)};
88         var map = new OpenLayers.Map('map', options);
89         layer = new OpenLayers.Layer.MapServer(name, url, params);
90         map.addLayer(layer);
91
92         layer.grid = [ [6, 7],
93                        [8, 9]];
94
95         var clone = layer.clone();
96
97         t.ok( clone.grid != layer.grid, "clone does not copy grid");
98
99         t.ok( clone.tileSize.equals(layer.tileSize), "tileSize correctly cloned");
100
101         layer.tileSize.w += 40;
102
103         t.eq( clone.tileSize.w, 500, "changing layer.tileSize does not change clone.tileSize -- a fresh copy was made, not just copied reference");
104
105         t.eq( clone.alpha, layer.alpha, "alpha copied correctly");
106
107         layer.grid = null;
108     }
109
110     function test_05_Layer_MapServer_isBaseLayer(t) {
111         t.plan(3);
112        
113         var url = "http://labs.metacarta.com/cgi-bin/mapserv";
114         layer = new OpenLayers.Layer.MapServer(name, url, params);
115         t.ok( layer.isBaseLayer, "baselayer is true by default");
116
117         var newParams = OpenLayers.Util.extend(new Object(), params);
118         newParams.transparent = "true";
119         layer = new OpenLayers.Layer.MapServer(name, url, newParams);
120         t.ok( !layer.isBaseLayer, "baselayer is false when transparent is set to true");
121
122         layer = new OpenLayers.Layer.MapServer(name, url, params, {isBaseLayer: false});
123         t.ok( !layer.isBaseLayer, "baselayer is false when option is set to false" );
124     }
125
126     function test_06_Layer_MapServer_mergeNewParams (t) {
127         t.plan( 5 );
128
129         var map = new OpenLayers.Map("map");
130         var url = "http://labs.metacarta.com/cgi-bin/mapserv";
131         layer = new OpenLayers.Layer.MapServer(name, url, params);
132        
133         var newParams = { layers: 'sooper',
134                           chickpeas: 'image/png'};
135
136         map.addLayer(layer);
137         map.zoomToMaxExtent();
138         t.ok( !layer.grid[0][0].url.match("chickpeas"), "chickpeas is not in URL of first tile in grid" );
139
140         layer.mergeNewParams(newParams);
141        
142         t.eq( layer.params.layers, "sooper", "mergeNewParams() overwrites well");
143         t.eq( layer.params.chickpeas, "image/png", "mergeNewParams() adds well");
144         t.ok( layer.grid[0][0].url.match("chickpeas"), "chickpeas is in URL of first tile in grid" );
145
146         newParams.chickpeas = 151;
147
148         t.eq( layer.params.chickpeas, "image/png", "mergeNewParams() makes clean copy of hashtable");
149     }
150
151     function test_07_Layer_MapServer_getFullRequestString (t) {
152
153        
154         t.plan( 1 );
155         var map = new OpenLayers.Map('map');
156         tUrl = "http://labs.metacarta.com/cgi-bin/mapserv";
157         tParams = { layers: 'basic',
158                     format: 'png'};
159         var tLayer = new OpenLayers.Layer.MapServer(name, tUrl, tParams);
160         map.addLayer(tLayer);
161         str = tLayer.getFullRequestString();
162         var tParams = {
163              layers: 'basic',
164              format: 'png',
165              mode: 'map',
166              map_imagetype: 'png'
167         };
168
169         var sStr = tUrl + "?" + OpenLayers.Util.getParameterString(tParams);
170         sStr = sStr.replace(/,/g, "+");
171        
172         t.eq(str, sStr , "getFullRequestString() works");
173
174     }
175
176     function test_08_Layer_MapServer_setOpacity (t) {
177         t.plan( 5 );
178
179         var map = new OpenLayers.Map('map');
180         map.projection = "xx";
181         tUrl = "http://labs.metacarta.com/cgi-bin/mapserv";
182         tParams = { layers: 'basic',
183                    format: 'image/png'};
184         tOptions = { 'opacity': '0.5' };           
185         var tLayer = new OpenLayers.Layer.MapServer(name, tUrl, tParams, tOptions);
186         map.addLayer(tLayer);
187         map.zoomToMaxExtent();
188         t.eq(tLayer.opacity, "0.5", "Opacity is set correctly");
189         t.eq(parseFloat(tLayer.div.firstChild.style.opacity), 0.5, "Opacity on tile is correct");
190         tLayer.setOpacity("0.6");
191         t.eq(tLayer.opacity, "0.6", "setOpacity works properly");
192         t.eq(parseFloat(tLayer.div.firstChild.style.opacity), 0.6, "Opacity on tile is changed correctly");
193         var pixel = new OpenLayers.Pixel(5,6);
194         var tile = tLayer.addTile(new OpenLayers.Bounds(1,2,3,4), pixel);
195         tile.draw();
196         t.eq(parseFloat(tile.imgDiv.style.opacity), 0.6, "Tile opacity is set correctly");
197
198     }   
199    
200     function test_20_Layer_MapServer_Reproject (t) {
201         t.plan(5);
202         var map = new OpenLayers.Map('map');
203         var layer = new OpenLayers.Layer.Google("Google");
204         map.addLayer(layer);
205         layer = new OpenLayers.Layer.MapServer(name, url, params, {isBaseLayer: false, reproject: true});
206         layer.isBaseLayer=false;
207         map.addLayer(layer);
208         map.setCenter(new OpenLayers.LonLat(0,0), 5);
209         var tile = layer.grid[0][0];
210         t.eq( tile.bounds.left, -22.5, "left side matches" );
211         t.eq( tile.bounds.right, -11.25, "top side matches" );
212         t.eq( tile.bounds.bottom.toFixed(6), '11.178402', "bottom side matches" );
213         t.eq( tile.bounds.top.toFixed(6), '21.943046', "top side matches" );
214        
215         var map = new OpenLayers.Map('map');
216         layer = new OpenLayers.Layer.MapServer(name, url, params);
217         map.addLayer(layer);
218         map.setCenter(new OpenLayers.LonLat(0,0), 5);
219         var tile = layer.grid[0][0];
220         t.ok( tile.bounds.equals(new OpenLayers.Bounds(-33.75, 33.75, -22.5, 45)), "okay");
221     }
222    
223     function test_99_Layer_MapServer_destroy (t) {
224
225         t.plan( 1 );
226
227         var map = new OpenLayers.Map('map');
228         layer = new OpenLayers.Layer.MapServer(name, url, params);
229         map.addLayer(layer);
230
231         map.setCenter(new OpenLayers.LonLat(0,0), 5);
232
233         //grab a reference to one of the tiles
234         var tile = layer.grid[0][0];       
235
236         layer.destroy();
237        
238     // checks to make sure superclass (grid) destroy() was called   
239        
240         t.ok( layer.grid == null, "grid set to null");
241     }
242    
243   // -->
244   </script>
245 </head>
246 <body>
247 <div id="map" style="width:500px;height:550px"></div>
248 </body>
249 </html>