Ticket #1128: renderers_tests.patch
| File renderers_tests.patch, 40.5 kB (added by pgiraud, 1 year ago) |
|---|
-
tests/Renderer/test_VML.html
old new 1 <html> 2 <head> 3 <script src="../../lib/OpenLayers.js"></script> 4 <script type="text/javascript"> 5 6 var geometry = null, node = null; 7 8 function test_VML_constructor(t) { 9 if (!OpenLayers.Renderer.VML.prototype.supported()) { 10 t.plan(0); 11 return; 12 } 13 14 t.plan(1); 15 var r = new OpenLayers.Renderer.VML(document.body); 16 t.ok(r instanceof OpenLayers.Renderer.VML, "new OpenLayers.Renderer.VML returns VML object" ); 17 } 18 19 function test_VML_destroy(t) { 20 if (!OpenLayers.Renderer.VML.prototype.supported()) { 21 t.plan(0); 22 return; 23 } 24 25 t.plan(1); 26 27 var g_Destroy = false; 28 29 OpenLayers.Renderer.Elements.prototype._destroy = 30 OpenLayers.Renderer.Elements.prototype.destroy; 31 32 OpenLayers.Renderer.prototype.destroy = function() { 33 g_Destroy = true; 34 } 35 36 var r = new OpenLayers.Renderer.VML(document.body); 37 r.destroy(); 38 39 t.eq(g_Destroy, true, "OpenLayers.Renderer.Elements.destroy() called"); 40 41 OpenLayers.Renderer.prototype.destroy = 42 OpenLayers.Renderer.prototype._destroy; 43 } 44 45 function test_VML_setextent(t) { 46 if (!OpenLayers.Renderer.VML.prototype.supported()) { 47 t.plan(0); 48 return; 49 } 50 51 t.plan(3); 52 53 OpenLayers.Renderer.Elements.prototype._setExtent = 54 OpenLayers.Renderer.Elements.prototype.setExtent; 55 56 var g_SetExtent = false; 57 OpenLayers.Renderer.Elements.prototype.setExtent = function() { 58 g_SetExtent = true; 59 } 60 61 var r = new OpenLayers.Renderer.VML(document.body); 62 r.map = { 63 getResolution: function() { 64 return 0.5; 65 } 66 } 67 68 var extent = new OpenLayers.Bounds(1,2,3,4); 69 r.setExtent(extent); 70 71 t.eq(g_SetExtent, true, "Elements.setExtent() called"); 72 73 t.ok(r.root.coordorigin == "2,8", "coordorigin is correct"); 74 t.ok(r.root.coordsize == "4,-4", "coordsize is correct"); 75 76 OpenLayers.Renderer.Elements.prototype.setExtent = 77 OpenLayers.Renderer.Elements.prototype._setExtent; 78 } 79 80 function test_VML_setsize(t) { 81 if (!OpenLayers.Renderer.VML.prototype.supported()) { 82 t.plan(0); 83 return; 84 } 85 86 t.plan(4); 87 88 var r = new OpenLayers.Renderer.VML(document.body); 89 90 var size = new OpenLayers.Size(1,2); 91 r.setSize(size); 92 t.eq(r.rendererRoot.style.width, "1px", "rendererRoot width is correct"); 93 t.eq(r.rendererRoot.style.height, "2px", "rendererRoot height is correct"); 94 95 t.eq(r.root.style.width, "100%", "root width is correct"); 96 t.eq(r.root.style.height, "100%", "root height is correct"); 97 } 98 99 function test_VML_drawpoint(t) { 100 if (!OpenLayers.Renderer.VML.prototype.supported()) { 101 t.plan(0); 102 return; 103 } 104 105 t.plan(1); 106 107 var r = new OpenLayers.Renderer.VML(document.body); 108 109 var properDraw = false; 110 var g_Radius = null; 111 r.drawCircle = function(n, g, r) { 112 properDraw = true; 113 g_Radius = 1; 114 } 115 r.drawPoint(); 116 117 t.ok(properDraw && g_Radius == 1, "drawPoint called drawCircle with radius set to 1"); 118 } 119 120 function test_VML_drawcircle(t) { 121 if (!OpenLayers.Renderer.VML.prototype.supported()) { 122 t.plan(0); 123 return; 124 } 125 126 t.plan(4); 127 128 var r = new OpenLayers.Renderer.VML(document.body); 129 r.resolution = 0.5; 130 131 var node = document.createElement('div'); 132 133 var geometry = { 134 x: 1, 135 y: 2 136 } 137 138 var radius = 3; 139 r.drawCircle(node, geometry, radius); 140 141 t.eq(node.style.left, '-1px', "left is correct"); 142 t.eq(node.style.top, '1px', "top is correct"); 143 t.eq(node.style.width, (2 * radius) + "px", "width is correct"); 144 t.eq(node.style.height, (2 * radius) + "px", "height is correct"); 145 } 146 147 function test_VML_drawlinestring(t) { 148 if (!OpenLayers.Renderer.VML.prototype.supported()) { 149 t.plan(0); 150 return; 151 } 152 153 t.plan(1); 154 155 var r = new OpenLayers.Renderer.VML(document.body); 156 157 g_DrawLine = false; 158 r.drawLine = function(c) { 159 g_DrawLine = true; 160 } 161 162 r.drawLineString(node, geometry); 163 164 t.ok(g_DrawLine, "drawLine is called"); 165 } 166 167 function test_VML_drawlinearring(t) { 168 if (!OpenLayers.Renderer.VML.prototype.supported()) { 169 t.plan(0); 170 return; 171 } 172 173 t.plan(1); 174 175 var r = new OpenLayers.Renderer.VML(document.body); 176 177 g_DrawLine = false; 178 r.drawLine = function(c) { 179 g_DrawLine = true; 180 } 181 182 r.drawLinearRing(node, geometry); 183 184 t.ok(g_DrawLine, "drawLine is called"); 185 } 186 187 function test_VML_drawline(t) { 188 if (!OpenLayers.Renderer.VML.prototype.supported()) { 189 t.plan(0); 190 return; 191 } 192 193 t.plan(8); 194 195 var r = new OpenLayers.Renderer.VML(document.body); 196 r.resolution = 0.5; 197 198 var node = document.createElement('div'); 199 200 var geometry = { 201 components: [{ 202 x: 1, 203 y: 2 204 },{ 205 x: 3, 206 y: 4 207 }], 208 getBounds: function() { 209 return new OpenLayers.Bounds(5,6,7,8); 210 } 211 }; 212 213 r.drawLine(node, geometry, true); 214 t.ok(node.path.indexOf("x") != -1, "path attribute is correct when passed closeLine = true"); 215 216 217 r.drawLine(node, geometry, false); 218 t.eq(node.path, "m 2,4 l 6,8 l e", "path attribute is correct"); 219 t.eq(node.style.left, "10px", "node.style.left is correct"); 220 t.eq(node.style.top, "16px", "node.style.top is correct"); 221 t.eq(node.style.width, "4px", "node.style.width is correct"); 222 t.eq(node.style.height, "4px", "node.style.height is correct"); 223 t.eq(node.coordorigin, "10 16", "node.coordorigin is correct"); 224 t.eq(node.coordsize, "4 4", "node.coordsize is correct"); 225 } 226 227 function test_VML_drawpolygon(t) { 228 if (!OpenLayers.Renderer.VML.prototype.supported()) { 229 t.plan(0); 230 return; 231 } 232 233 t.plan(2); 234 235 var r = new OpenLayers.Renderer.VML(document.body); 236 r.resolution = 0.5; 237 238 g_SetNodeDimension = false; 239 r.setNodeDimension = function(){ 240 g_SetNodeDimension = true; 241 }; 242 243 var node = document.createElement('div'); 244 245 var linearRing = { 246 components: [{ 247 x: 1, 248 y: 2 249 },{ 250 x: 3, 251 y: 4 252 }] 253 }; 254 var linearRing2 = { 255 components: [{ 256 x: 5, 257 y: 6 258 },{ 259 x: 7, 260 y: 8 261 }] 262 }; 263 var geometry = { 264 components: [linearRing, linearRing2] 265 }; 266 r.drawPolygon(node, geometry, true); 267 t.ok(g_SetNodeDimension, "setNodeDimension is called"); 268 t.eq(node.path, "m 2,4 l 6,8 x m 10,12 l 14,16 x e", "path attribute is correct"); 269 } 270 271 function test_VML_drawrectangle(t) { 272 if (!OpenLayers.Renderer.VML.prototype.supported()) { 273 t.plan(0); 274 return; 275 } 276 277 t.plan(4); 278 279 var r = new OpenLayers.Renderer.VML(document.body); 280 r.resolution = 0.5; 281 282 var node = document.createElement('div'); 283 284 var geometry = { 285 x: 1, 286 y: 2, 287 width: 3, 288 height: 4 289 } 290 291 r.drawRectangle(node, geometry); 292 293 t.eq(node.style.left, "2px", "node.style.left is correct"); 294 t.eq(node.style.top, "4px", "node.style.top is correct"); 295 t.eq(node.style.width, "6px", "node.style.width is correct"); 296 t.eq(node.style.height, "8px", "node.style.height is correct"); 297 } 298 299 300 </script> 301 </head> 302 <body> 303 <div id="map" style="width:500px;height:550px"></div> 304 </body> 305 </html> -
tests/Renderer/test_SVG.html
old new 1 <html> 2 <head> 3 <script src="../../lib/OpenLayers.js"></script> 4 <script type="text/javascript"> 5 6 var geometry = null, node = null; 7 8 function test_SVG_constructor(t) { 9 if (!OpenLayers.Renderer.SVG.prototype.supported()) { 10 t.plan(0); 11 return; 12 } 13 14 t.plan(1); 15 var r = new OpenLayers.Renderer.SVG(document.body); 16 t.ok(r instanceof OpenLayers.Renderer.SVG, "new OpenLayers.Renderer.SVG returns SVG object" ); 17 } 18 19 function test_SVG_destroy(t) { 20 if (!OpenLayers.Renderer.SVG.prototype.supported()) { 21 t.plan(0); 22 return; 23 } 24 25 t.plan(1); 26 27 var g_Destroy = false; 28 29 OpenLayers.Renderer.Elements.prototype._destroy = 30 OpenLayers.Renderer.Elements.prototype.destroy; 31 32 OpenLayers.Renderer.prototype.destroy = function() { 33 g_Destroy = true; 34 } 35 36 var r = new OpenLayers.Renderer.SVG(document.body); 37 r.destroy(); 38 39 t.eq(g_Destroy, true, "OpenLayers.Renderer.Elements.destroy() called"); 40 41 OpenLayers.Renderer.prototype.destroy = 42 OpenLayers.Renderer.prototype._destroy; 43 } 44 45 function test_SVG_setextent(t) { 46 if (!OpenLayers.Renderer.SVG.prototype.supported()) { 47 t.plan(0); 48 return; 49 } 50 51 t.plan(5); 52 53 OpenLayers.Renderer.Elements.prototype._setExtent = 54 OpenLayers.Renderer.Elements.prototype.setExtent; 55 56 var g_SetExtent = false; 57 OpenLayers.Renderer.Elements.prototype.setExtent = function() { 58 g_SetExtent = true; 59 } 60 61 var r = new OpenLayers.Renderer.SVG(document.body); 62 r.map = { 63 getResolution: function() { 64 return 0.5; 65 } 66 } 67 68 var extent = new OpenLayers.Bounds(1,2,3,4); 69 r.setExtent(extent); 70 71 t.eq(g_SetExtent, true, "Elements.setExtent() called"); 72 73 t.eq(r.left, -2, "left is correct"); 74 t.eq(r.top, 8, "top is correct"); 75 76 t.eq(r.rendererRoot.getAttributeNS(null, "viewBox"), "0 0 4 4", "rendererRoot viewBox is correct"); 77 78 // test extent changes 79 var extent = new OpenLayers.Bounds(4,3,2,1); 80 r.setExtent(extent); 81 t.eq(r.rendererRoot.getAttributeNS(null, "viewBox"), "6 6 -4 -4", "rendererRoot viewBox is correct after a new setExtent"); 82 83 OpenLayers.Renderer.Elements.prototype.setExtent = 84 OpenLayers.Renderer.Elements.prototype._setExtent; 85 } 86 87 function test_SVG_setsize(t) { 88 if (!OpenLayers.Renderer.SVG.prototype.supported()) { 89 t.plan(0); 90 return; 91 } 92 93 t.plan(2); 94 95 var r = new OpenLayers.Renderer.SVG(document.body); 96 97 var size = new OpenLayers.Size(1,2); 98 r.setSize(size); 99 t.eq(r.rendererRoot.getAttributeNS(null, "width"), size.w.toString(), "width is correct"); 100 t.eq(r.rendererRoot.getAttributeNS(null, "height"), size.h.toString(), "height is correct"); 101 } 102 103 function test_SVG_drawpoint(t) { 104 if (!OpenLayers.Renderer.SVG.prototype.supported()) { 105 t.plan(0); 106 return; 107 } 108 109 t.plan(1); 110 111 var r = new OpenLayers.Renderer.SVG(document.body); 112 113 var properDraw = false; 114 var g_Radius = null; 115 r.drawCircle = function(n, g, r) { 116 properDraw = true; 117 g_Radius = 1; 118 } 119 r.drawPoint(); 120 121 t.ok(properDraw && g_Radius == 1, "drawPoint called drawCircle with radius set to 1"); 122 } 123 124 function test_SVG_drawcircle(t) { 125 if (!OpenLayers.Renderer.SVG.prototype.supported()) { 126 t.plan(0); 127 return; 128 } 129 130 t.plan(3); 131 132 var r = new OpenLayers.Renderer.SVG(document.body); 133 r.resolution = 0.5; 134 r.left = 0; 135 r.top = 0; 136 137 var node = document.createElement('div'); 138 139 var geometry = { 140 x: 1, 141 y: 2 142 } 143 144 r.drawCircle(node, geometry, 3); 145 146 t.eq(node.getAttributeNS(null, 'cx'), '2', "cx is correct"); 147 t.eq(node.getAttributeNS(null, 'cy'), '4', "cy is correct"); 148 t.eq(node.getAttributeNS(null, 'r'), '3', "r is correct"); 149 } 150 151 function test_SVG_drawlinestring(t) { 152 if (!OpenLayers.Renderer.SVG.prototype.supported()) { 153 t.plan(0); 154 return; 155 } 156 157 t.plan(2); 158 159 var r = new OpenLayers.Renderer.SVG(document.body); 160 161 var node = document.createElement('div'); 162 163 var geometry = { 164 components: "foo" 165 } 166 g_GetString = false; 167 g_Components = null; 168 r.getComponentsString = function(c) { 169 g_GetString = true; 170 g_Components = c; 171 return "bar"; 172 } 173 174 r.drawLineString(node, geometry); 175 176 t.ok(g_GetString && g_Components == "foo", "getComponentString is called with valid arguments"); 177 t.eq(node.getAttributeNS(null, "points"), "bar", "points attribute is correct"); 178 } 179 180 function test_SVG_drawlinearring(t) { 181 if (!OpenLayers.Renderer.SVG.prototype.supported()) { 182 t.plan(0); 183 return; 184 } 185 186 t.plan(2); 187 188 var r = new OpenLayers.Renderer.SVG(document.body); 189 190 var node = document.createElement('div'); 191 192 var geometry = { 193 components: "foo" 194 } 195 g_GetString = false; 196 g_Components = null; 197 r.getComponentsString = function(c) { 198 g_GetString = true; 199 g_Components = c; 200 return "bar"; 201 } 202 203 r.drawLinearRing(node, geometry); 204 205 t.ok(g_GetString, "getComponentString is called with valid arguments"); 206 t.eq(node.getAttributeNS(null, "points"), "bar", "points attribute is correct"); 207 } 208 209 function test_SVG_drawpolygon(t) { 210 if (!OpenLayers.Renderer.SVG.prototype.supported()) { 211 t.plan(0); 212 return; 213 } 214 215 t.plan(4); 216 217 var r = new OpenLayers.Renderer.SVG(document.body); 218 219 var node = document.createElement('div'); 220 221 var linearRings = [{ 222 components: ["foo"] 223 },{ 224 components: ["bar"] 225 }] 226 227 var geometry = { 228 components: linearRings 229 } 230 g_GetString = false; 231 r.getShortString = function(c) { 232 g_GetString = true; 233 return c; 234 } 235 236 r.drawPolygon(node, geometry); 237 238 t.ok(g_GetString, "getShortString is called"); 239 t.eq(node.getAttributeNS(null, "d"), " M foo M bar z", "d attribute is correctly set"); 240 t.eq(node.getAttributeNS(null, "fill-rule"), "evenodd", "fill-rule attribute is correctly set"); 241 242 r.getShortString = function(c) { 243 return false; 244 } 245 r.drawPolygon(node, geometry); 246 t.eq(node.getAttributeNS(null, "d"), "", "d attribute is empty if one linearRing cannot be drawn"); 247 } 248 249 function test_SVG_drawrectangle(t) { 250 if (!OpenLayers.Renderer.SVG.prototype.supported()) { 251 t.plan(0); 252 return; 253 } 254 255 t.plan(4); 256 257 var r = new OpenLayers.Renderer.SVG(document.body); 258 r.resolution = 0.5; 259 r.left = 0; 260 r.top = 0; 261 262 var node = document.createElement('div'); 263 264 var geometry = { 265 x: 1, 266 y: 2, 267 width: 3, 268 height: 4 269 } 270 271 r.drawRectangle(node, geometry); 272 273 t.eq(node.getAttributeNS(null, "x"), "2", "x attribute is correctly set"); 274 t.eq(node.getAttributeNS(null, "y"), "4", "y attribute is correctly set"); 275 t.eq(node.getAttributeNS(null, "width"), "6", "width attribute is correctly set"); 276 t.eq(node.getAttributeNS(null, "height"), "8", "height attribute is correctly set"); 277 } 278 279 function test_SVG_drawsurface(t) { 280 if (!OpenLayers.Renderer.SVG.prototype.supported()) { 281 t.plan(0); 282 return; 283 } 284 285 t.plan(3); 286 287 var r = new OpenLayers.Renderer.SVG(document.body); 288 289 var node = document.createElement('div'); 290 291 var geometry = { 292 components: ['foo', 'bar', 'dude'] 293 } 294 g_GetString = false; 295 r.getShortString = function(c) { 296 g_GetString = true; 297 return c; 298 } 299 300 r.drawSurface(node, geometry); 301 302 t.ok(g_GetString, "getShortString is called"); 303 304 t.eq(node.getAttributeNS(null, "d"), "M foo C bar dude Z", "d attribute is correctly set"); 305 306 r.getShortString = function(c) { 307 return false; 308 } 309 r.drawSurface(node, geometry); 310 t.eq(node.getAttributeNS(null, "d"), "", "d attribute is empty if one linearRing cannot be drawn"); 311 } 312 313 function test_SVG_getcomponentsstring(t) { 314 if (!OpenLayers.Renderer.SVG.prototype.supported()) { 315 t.plan(0); 316 return; 317 } 318 319 t.plan(1); 320 321 var components = ['foo', 'bar']; 322 323 OpenLayers.Renderer.SVG.prototype._getShortString = 324 OpenLayers.Renderer.SVG.prototype.getShortString; 325 326 OpenLayers.Renderer.SVG.prototype.getShortString = function(p) { 327 return p; 328 }; 329 330 var string = OpenLayers.Renderer.SVG.prototype.getComponentsString(components); 331 t.eq(string, "foo,bar", "returned string is correct"); 332 333 OpenLayers.Renderer.SVG.prototype.getShortString = 334 OpenLayers.Renderer.SVG.prototype._getShortString; 335 } 336 337 338 339 function test_SVG_getshortstring(t) { 340 if (!OpenLayers.Renderer.SVG.prototype.supported()) { 341 t.plan(0); 342 return; 343 } 344 345 t.plan(1); 346 347 var r = new OpenLayers.Renderer.SVG(document.body); 348 r.resolution = 0.5; 349 r.left = 0; 350 r.top = 0; 351 352 var point = { 353 x: 1, 354 y: 2 355 }; 356 357 var string = r.getShortString(point); 358 t.eq(string, "2,4", "returned string is correct"); 359 } 360 361 362 363 </script> 364 </head> 365 <body> 366 <div id="map" style="width:500px;height:550px"></div> 367 </body> 368 </html> -
tests/Renderer/test_Elements.html
old new 1 <html> 2 <head> 3 <script src="../../lib/OpenLayers.js"></script> 4 <script type="text/javascript"> 5 6 function test_Elements_constructor(t) { 7 t.plan(5); 8 var el = document.body; 9 el.id = "foo"; 10 11 OpenLayers.Renderer.Elements.prototype._createRenderRoot = 12 OpenLayers.Renderer.Elements.prototype.createRenderRoot; 13 14 var rendererRoot = document.createElement("div"); 15 OpenLayers.Renderer.Elements.prototype.createRenderRoot = function() { 16 return rendererRoot; 17 } 18 19 OpenLayers.Renderer.Elements.prototype._createRoot = 20 OpenLayers.Renderer.Elements.prototype.createRoot; 21 22 var root = document.createElement("div"); 23 OpenLayers.Renderer.Elements.prototype.createRoot = function() { 24 return root; 25 } 26 27 var r = new OpenLayers.Renderer.Elements("foo"); 28 29 t.ok(r instanceof OpenLayers.Renderer.Elements, "new OpenLayers.Renderer.Elements returns Elements object" ); 30 t.ok(r.rendererRoot != null, "elements rendererRoot is not null"); 31 t.ok(r.root != null, "elements root is not null"); 32 33 t.ok(r.root.parentNode == rendererRoot, "elements root is correctly appended to rendererRoot"); 34 t.ok(r.rendererRoot.parentNode == document.body, "elements rendererRoot is correctly appended to container"); 35 36 OpenLayers.Renderer.Elements.prototype.createRenderRoot = 37 OpenLayers.Renderer.Elements.prototype._createRenderRoot; 38 OpenLayers.Renderer.Elements.prototype.createRoot = 39 OpenLayers.Renderer.Elements.prototype._createRoot; 40 } 41 42 function test_Elements_destroy(t) { 43 t.plan(5); 44 45 OpenLayers.Renderer.Elements.prototype._initialize = 46 OpenLayers.Renderer.Elements.prototype.initialize; 47 48 OpenLayers.Renderer.Elements.prototype.initialize = function() {} 49 50 var g_Clear = false, g_Destroy = false; 51 52 OpenLayers.Renderer.prototype._destroy = 53 OpenLayers.Renderer.prototype.destroy; 54 55 OpenLayers.Renderer.prototype.destroy = function() { 56 g_Destroy = true; 57 } 58 59 var r = new OpenLayers.Renderer.SVG(document.body); 60 r.clear = function() { 61 g_Clear = true; 62 } 63 r.rendererRoot = 'foo'; 64 r.root = 'bar'; 65 r.xmlns = 'dude'; 66 67 r.destroy(); 68 69 t.eq(g_Clear, true, "OpenLayers.Renderer.Elements.clear() called"); 70 t.eq(r.rendererRoot, null, "rendererRoot nullified"); 71 t.eq(r.root, null, "root nullified"); 72 t.eq(r.xmlns, null, "xmlns nullified"); 73 t.eq(g_Destroy, true, "OpenLayers.Renderer.destroy() called"); 74 75 OpenLayers.Renderer.Elements.prototype.initialize = 76 OpenLayers.Renderer.Elements.prototype._initialize; 77 OpenLayers.Renderer.prototype.destroy = 78 OpenLayers.Renderer.prototype._destroy; 79 } 80 81 function test_Elements_clear(t) { 82 t.plan(1); 83 84 OpenLayers.Renderer.Elements.prototype._initialize = 85 OpenLayers.Renderer.Elements.prototype.initialize; 86 87 OpenLayers.Renderer.Elements.prototype.initialize = function() {} 88 89 var r = new OpenLayers.Renderer.Elements(); 90 var element = document.createElement("div"); 91 r.root = element; 92 93 var node = document.createElement("div"); 94 element.appendChild(node); 95 96 r.clear(); 97 98 t.ok(r.root.childNodes.length == 0, "root is correctly cleared"); 99 100 OpenLayers.Renderer.Elements.prototype.initialize = 101 OpenLayers.Renderer.Elements.prototype._initialize; 102 } 103 104 function test_Elements_drawGeometry(t) { 105 t.plan(4); 106 107 OpenLayers.Renderer.Elements.prototype._initialize = 108 OpenLayers.Renderer.Elements.prototype.initialize; 109 110 OpenLayers.Renderer.Elements.prototype.initialize = function() {}; 111 112 var r = new OpenLayers.Renderer.Elements(); 113 114 var element = document.createElement("div"); 115 r.root = element; 116 117 r.nodeFactory = function(gid, nt, g) { 118 var element = document.createElement("div"); 119 return element; 120 } 121 var g_Node = null; 122 r.drawGeometryNode = function(n, g) { 123 g_Node = n; 124 return; 125 } 126 r.getNodeType = function(geometry) { 127 return "div"; 128 } 129 geometry = { 130 id: 'foo', 131 CLASS_NAME: 'bar' 132 }; 133 var style = true; 134 var featureId = 'dude'; 135 r.drawGeometry(geometry, style, featureId); 136 t.ok(g_Node.parentNode == r.root, "node is correctly appended to root"); 137 t.eq(g_Node._featureId, 'dude', "_featureId is correct"); 138 t.ok(g_Node._style, "_style is correct"); 139 t.eq(g_Node._geometryClass, 'bar', "_geometryClass is correct"); 140 141 OpenLayers.Renderer.Elements.prototype.initialize = 142 OpenLayers.Renderer.Elements.prototype._initialize; 143 } 144 145 function test_Elements_drawGeometry_2(t) { 146 t.plan(9); 147 148 OpenLayers.Renderer.Elements.prototype._initialize = 149 OpenLayers.Renderer.Elements.prototype.initialize; 150 151 OpenLayers.Renderer.Elements.prototype.initialize = function() {}; 152 153 var r = new OpenLayers.Renderer.Elements(); 154 155 var element = document.createElement("div"); 156 r.root = element; 157 158 r.nodeFactory = function(gid, nt, g) { 159 var element = document.createElement("div"); 160 return element; 161 } 162 r.setStyle = function() {}; 163 164 // point 165 var properDraw = false; 166 r.drawPoint = function(node, geometry) { 167 properDraw = true; 168 node = node; 169 return {}; 170 } 171 geometry = {CLASS_NAME: 'OpenLayers.Geometry.Point'}; 172 style = true; 173 r.drawGeometry(geometry, style); 174 t.ok(properDraw, "drawGeometry called drawPoint when passed a point"); 175 176 // line string 177 var properDraw = false; 178 r.drawLineString = function(g) { 179 properDraw = true; 180 return {}; 181 } 182 geometry = {CLASS_NAME: 'OpenLayers.Geometry.LineString'}; 183 style = true; 184 r.drawGeometry(geometry, style); 185 t.ok(properDraw, "drawGeometry called drawLineString when passed a line string"); 186 187 // linear ring 188 var properDraw = false; 189 r.drawLinearRing = function(g) { 190 properDraw = true; 191 return {}; 192 } 193 geometry = {CLASS_NAME: 'OpenLayers.Geometry.LinearRing'}; 194 style = true; 195 r.drawGeometry(geometry, style); 196 t.ok(properDraw, "drawGeometry called drawLinearRing when passed a linear ring"); 197 198 // polygon 199 var properDraw = false; 200 r.drawPolygon = function(g) { 201 properDraw = true; 202 return {}; 203 } 204 geometry = {CLASS_NAME: 'OpenLayers.Geometry.Polygon'}; 205 style = true; 206 r.drawGeometry(geometry, style); 207 t.ok(properDraw, "drawGeometry called drawPolygon when passed a polygon"); 208 209 // surface 210 var properDraw = false; 211 r.drawSurface = function(g) { 212 properDraw = true; 213 return {}; 214 } 215 geometry = {CLASS_NAME: 'OpenLayers.Geometry.Surface'}; 216 style = true; 217 r.drawGeometry(geometry, style); 218 t.ok(properDraw, "drawGeometry called drawSurface when passed a surface"); 219 220 // rectangle 221 var properDraw = false; 222 r.drawRectangle = function(g) { 223 properDraw = true; 224 return {}; 225 } 226 geometry = {CLASS_NAME: 'OpenLayers.Geometry.Rectangle'}; 227 style = true; 228 r.drawGeometry(geometry, style); 229 t.ok(properDraw, "drawGeometry called drawRectangle when passed a rectangle"); 230 231 // multi-point 232 var properDraw = false; 233 r.drawPoint = function(g) { 234 properDraw = true; 235 return {}; 236 } 237 geometry = { 238 CLASS_NAME: 'OpenLayers.Geometry.MultiPoint', 239 components: [{CLASS_NAME: 'OpenLayers.Geometry.Point'}] 240 }; 241 style = true; 242 r.drawGeometry(geometry, style); 243 t.ok(properDraw, "drawGeometry called drawPoint when passed a multi-point"); 244 245 // multi-linestring 246 var properDraw = false; 247 r.drawLineString = function(g) { 248 properDraw = true; 249 return {}; 250 } 251 geometry = { 252 CLASS_NAME: 'OpenLayers.Geometry.MultiLineString', 253 components: [{CLASS_NAME: 'OpenLayers.Geometry.LineString'}] 254 }; 255 style = true; 256 r.drawGeometry(geometry, style); 257 t.ok(properDraw, "drawGeometry called drawLineString when passed a multi-linestring"); 258 259 // multi-polygon 260 var properDraw = false; 261 r.drawPolygon = function(g) { 262 properDraw = true; 263 return {}; 264 } 265 geometry = { 266 CLASS_NAME: 'OpenLayers.Geometry.MultiPolygon', 267 components: [{CLASS_NAME: 'OpenLayers.Geometry.Polygon'}] 268 }; 269 style = true; 270 r.drawGeometry(geometry, style); 271 t.ok(properDraw, "drawGeometry called drawPolygon when passed a multi-polygon"); 272 273 OpenLayers.Renderer.Elements.prototype.initialize = 274 OpenLayers.Renderer.Elements.prototype._initialize; 275 } 276 277 function test_Elements_getfeatureidfromevent(t) { 278 t.plan(2); 279 280 var node = { 281 _featureId: 'foo' 282 } 283 var event = { 284 target: node 285 } 286 287 var id = OpenLayers.Renderer.Elements.prototype.getFeatureIdFromEvent(event); 288 t.eq(id, 'foo', "returned id is correct when event with target is passed"); 289 290 var event = { 291 srcElement: node 292 } 293 294 var id = OpenLayers.Renderer.Elements.prototype.getFeatureIdFromEvent(event); 295 t.eq(id, 'foo', "returned id is correct when event with srcElement is passed"); 296 } 297 298 function test_Elements_erasegeometry(t) { 299 t.plan(4); 300 301 var el = document.createElement('div'); 302 document.body.appendChild(el); 303 el.id = 'foo'; 304 var geometry = { 305 id: 'foo' 306 }; 307 308 OpenLayers.Renderer.Elements.prototype.eraseGeometry(geometry); 309 t.ok(el.parentNode != document.body, "element correctly removed"); 310 311 312 var el = document.createElement('div'); 313 document.body.appendChild(el); 314 el.id = 'foo'; 315 var geometry = { 316 CLASS_NAME: "OpenLayers.Geometry.MultiPoint", 317 components: [{ 318 id: 'foo' 319 }] 320 }; 321 322 OpenLayers.Renderer.Elements.prototype.eraseGeometry(geometry); 323 t.ok(el.parentNode != document.body, "geometry components correctly removed when passed a multipoint"); 324 325 var el = document.createElement('div'); 326 document.body.appendChild(el); 327 el.id = 'foo'; 328 var geometry = { 329 CLASS_NAME: "OpenLayers.Geometry.MultiLineString", 330 components: [{ 331 id: 'foo' 332 }] 333 }; 334 335 OpenLayers.Renderer.Elements.prototype.eraseGeometry(geometry); 336 t.ok(el.parentNode != document.body, "geometry components correctly removed when passed a multilinestring"); 337 338 var el = document.createElement('div'); 339 document.body.appendChild(el); 340 el.id = 'foo'; 341 var geometry = { 342 CLASS_NAME: "OpenLayers.Geometry.MultiPolygon", 343 components: [{ 344 id: 'foo' 345 }] 346 }; 347 348 OpenLayers.Renderer.Elements.prototype.eraseGeometry(geometry); 349 t.ok(el.parentNode != document.body, "geometry components correctly removed when passed a multipolygon"); 350 } 351 352
