| | 137 | |
|---|
| | 138 | function test_Control_Permalink_createParams(t) { |
|---|
| | 139 | t.plan(18); |
|---|
| | 140 | |
|---|
| | 141 | var baseLayer = { 'isBaseLayer': true }; |
|---|
| | 142 | |
|---|
| | 143 | var m = { |
|---|
| | 144 | 'getCenter': function() { return null; } |
|---|
| | 145 | }; |
|---|
| | 146 | |
|---|
| | 147 | var pl = { |
|---|
| | 148 | 'map': m, |
|---|
| | 149 | 'base': {} |
|---|
| | 150 | }; |
|---|
| | 151 | |
|---|
| | 152 | old_getParameters = OpenLayers.Util.getParameters; |
|---|
| | 153 | OpenLayers.Util.getParameters = function(base) { |
|---|
| | 154 | t.ok(base == pl.base, "correct base sent in to Util.getParameters()"); |
|---|
| | 155 | return g_Params; |
|---|
| | 156 | }; |
|---|
| | 157 | |
|---|
| | 158 | //null center, null map.getCenter() |
|---|
| | 159 | g_Params = {}; |
|---|
| | 160 | m.baseLayer = baseLayer; |
|---|
| | 161 | var returnParams = OpenLayers.Control.Permalink.prototype.createParams.apply(pl, []); |
|---|
| | 162 | t.ok(returnParams == g_Params, "correct params returned on null center"); |
|---|
| | 163 | |
|---|
| | 164 | //valid center, zoom, layers |
|---|
| | 165 | g_Params = { 'test': {} }; |
|---|
| | 166 | var center = { 'lon': 1.2345678901, 'lat': 9.8765432109 }; |
|---|
| | 167 | var zoom = {}; |
|---|
| | 168 | var layers = [ |
|---|
| | 169 | { 'isBaseLayer': true }, |
|---|
| | 170 | baseLayer, |
|---|
| | 171 | { 'isBaseLayer': false, 'getVisibility': function() { return true; } }, |
|---|
| | 172 | { 'isBaseLayer': false, 'getVisibility': function() { return false; } } |
|---|
| | 173 | ]; |
|---|
| | 174 | var returnParams = OpenLayers.Control.Permalink.prototype.createParams.apply(pl, [center, zoom, layers]); |
|---|
| | 175 | |
|---|
| | 176 | t.ok(returnParams.test == g_Params.test, "correct params returned from Util.getParameters() when valid center, zoom, layers"); |
|---|
| | 177 | t.ok(returnParams.zoom == zoom, "params.zoom set correctly when valid center, zoom, layers"); |
|---|
| | 178 | t.eq(returnParams.lon, 1.23457, "lon set and rounded correctly when valid center, zoom, layers"); |
|---|
| | 179 | t.eq(returnParams.lat, 9.87654, "lat set and rounded correctly when valid center, zoom, layers"); |
|---|
| | 180 | t.eq(returnParams.layers, "0BTF", "layers processed correctly when valid center, zoom, layers") |
|---|
| | 181 | |
|---|
| | 182 | |
|---|
| | 183 | //null center, zoom, layers, with displayProjection |
|---|
| | 184 | g_Params = { 'test': {} }; |
|---|
| | 185 | g_Projection = {}; |
|---|
| | 186 | m = { |
|---|
| | 187 | 'baseLayer': baseLayer, |
|---|
| | 188 | 'getProjectionObject': function() { return g_Projection; }, |
|---|
| | 189 | 'center': { 'lon': {}, 'lat': {} }, |
|---|
| | 190 | 'getCenter': function() { return this.center; }, |
|---|
| | 191 | 'zoom': {}, |
|---|
| | 192 | 'getZoom': function() { return this.zoom; }, |
|---|
| | 193 | 'layers': [ |
|---|
| | 194 | { 'isBaseLayer': false, 'getVisibility': function() { return true; } }, |
|---|
| | 195 | baseLayer, |
|---|
| | 196 | { 'isBaseLayer': false, 'getVisibility': function() { return false; } }, |
|---|
| | 197 | { 'isBaseLayer': true } |
|---|
| | 198 | ], |
|---|
| | 199 | 'getLayers': function() { return this.layers; } |
|---|
| | 200 | }; |
|---|
| | 201 | pl = { |
|---|
| | 202 | 'base': {}, |
|---|
| | 203 | 'map': m, |
|---|
| | 204 | 'displayProjection': {} |
|---|
| | 205 | }; |
|---|
| | 206 | |
|---|
| | 207 | old_transform = OpenLayers.Projection.transform; |
|---|
| | 208 | OpenLayers.Projection.transform = function(point, projObj, dispProj) { |
|---|
| | 209 | t.ok(point.x = m.center.lon, "correct x value passed into transform"); |
|---|
| | 210 | t.ok(point.y = m.center.lat, "correct x value passed into transform"); |
|---|
| | 211 | t.ok(projObj == g_Projection, "correct projection object from map passed into transform"); |
|---|
| | 212 | t.ok(dispProj == pl.displayProjection, "correct displayProjection from control passed into transform"); |
|---|
| | 213 | |
|---|
| | 214 | return { 'x': 9.8765432109, 'y': 1.2345678901 }; |
|---|
| | 215 | }; |
|---|
| | 216 | |
|---|
| | 217 | center = zoom = layers = null; |
|---|
| | 218 | |
|---|
| | 219 | var returnParams = OpenLayers.Control.Permalink.prototype.createParams.apply(pl, [center, zoom, layers]); |
|---|
| | 220 | t.ok(returnParams.test == g_Params.test, "correct params returned from Util.getParameters() when null center, zoom, layers, with displayProjection"); |
|---|
| | 221 | t.ok(returnParams.zoom == m.zoom, "params.zoom set correctly when null center, zoom, layers, with displayProjection"); |
|---|
| | 222 | t.eq(returnParams.lon, 9.87654, "lon set, transformed, and rounded correctly when null center, zoom, layers, with displayProjection"); |
|---|
| | 223 | t.eq(returnParams.lat, 1.23457, "lat set, transformed, and rounded correctly when null center, zoom, layers, with displayProjection"); |
|---|
| | 224 | t.eq(returnParams.layers, "TBF0", "layers processed correctly when null center, zoom, layers, with displayProjection"); |
|---|
| | 225 | |
|---|
| | 226 | OpenLayers.Util.getParameters = old_getParameters; |
|---|
| | 227 | OpenLayers.Projection.transform = old_transform; |
|---|
| | 228 | } |
|---|
| | 229 | |
|---|