git-svn-id: http://svn.openlayers.org/trunk/openlayers@5541 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
369 lines
12 KiB
HTML
369 lines
12 KiB
HTML
<html>
|
|
<head>
|
|
<script src="../../lib/OpenLayers.js"></script>
|
|
<script type="text/javascript">
|
|
|
|
function test_Elements_constructor(t) {
|
|
t.plan(5);
|
|
var el = document.createElement('div');
|
|
document.body.appendChild(el);
|
|
el.id = "foo";
|
|
|
|
OpenLayers.Renderer.Elements.prototype._createRenderRoot =
|
|
OpenLayers.Renderer.Elements.prototype.createRenderRoot;
|
|
|
|
var rendererRoot = document.createElement("div");
|
|
OpenLayers.Renderer.Elements.prototype.createRenderRoot = function() {
|
|
return rendererRoot;
|
|
};
|
|
|
|
OpenLayers.Renderer.Elements.prototype._createRoot =
|
|
OpenLayers.Renderer.Elements.prototype.createRoot;
|
|
|
|
var root = document.createElement("div");
|
|
OpenLayers.Renderer.Elements.prototype.createRoot = function() {
|
|
return root;
|
|
};
|
|
|
|
var r = new OpenLayers.Renderer.Elements("foo");
|
|
|
|
t.ok(r instanceof OpenLayers.Renderer.Elements, "new OpenLayers.Renderer.Elements returns Elements object" );
|
|
t.ok(r.rendererRoot != null, "elements rendererRoot is not null");
|
|
t.ok(r.root != null, "elements root is not null");
|
|
|
|
t.ok(r.root.parentNode == rendererRoot, "elements root is correctly appended to rendererRoot");
|
|
t.ok(r.rendererRoot.parentNode == el, "elements rendererRoot is correctly appended to container");
|
|
|
|
OpenLayers.Renderer.Elements.prototype.createRenderRoot =
|
|
OpenLayers.Renderer.Elements.prototype._createRenderRoot;
|
|
OpenLayers.Renderer.Elements.prototype.createRoot =
|
|
OpenLayers.Renderer.Elements.prototype._createRoot;
|
|
}
|
|
|
|
function test_Elements_destroy(t) {
|
|
t.plan(5);
|
|
|
|
OpenLayers.Renderer.Elements.prototype._initialize =
|
|
OpenLayers.Renderer.Elements.prototype.initialize;
|
|
|
|
OpenLayers.Renderer.Elements.prototype.initialize = function() {}
|
|
|
|
var g_Clear = false, g_Destroy = false;
|
|
|
|
OpenLayers.Renderer.prototype._destroy =
|
|
OpenLayers.Renderer.prototype.destroy;
|
|
|
|
OpenLayers.Renderer.prototype.destroy = function() {
|
|
g_Destroy = true;
|
|
};
|
|
|
|
var r = new OpenLayers.Renderer.SVG(document.body);
|
|
r.clear = function() {
|
|
g_Clear = true;
|
|
};
|
|
r.rendererRoot = 'foo';
|
|
r.root = 'bar';
|
|
r.xmlns = 'dude';
|
|
|
|
r.destroy();
|
|
|
|
t.eq(g_Clear, true, "OpenLayers.Renderer.Elements.clear() called");
|
|
t.eq(r.rendererRoot, null, "rendererRoot nullified");
|
|
t.eq(r.root, null, "root nullified");
|
|
t.eq(r.xmlns, null, "xmlns nullified");
|
|
t.eq(g_Destroy, true, "OpenLayers.Renderer.destroy() called");
|
|
|
|
OpenLayers.Renderer.Elements.prototype.initialize =
|
|
OpenLayers.Renderer.Elements.prototype._initialize;
|
|
OpenLayers.Renderer.prototype.destroy =
|
|
OpenLayers.Renderer.prototype._destroy;
|
|
}
|
|
|
|
function test_Elements_clear(t) {
|
|
t.plan(1);
|
|
|
|
OpenLayers.Renderer.Elements.prototype._initialize =
|
|
OpenLayers.Renderer.Elements.prototype.initialize;
|
|
|
|
OpenLayers.Renderer.Elements.prototype.initialize = function() {}
|
|
|
|
var r = new OpenLayers.Renderer.Elements();
|
|
var element = document.createElement("div");
|
|
r.root = element;
|
|
|
|
var node = document.createElement("div");
|
|
element.appendChild(node);
|
|
|
|
r.clear();
|
|
|
|
t.ok(r.root.childNodes.length == 0, "root is correctly cleared");
|
|
|
|
OpenLayers.Renderer.Elements.prototype.initialize =
|
|
OpenLayers.Renderer.Elements.prototype._initialize;
|
|
}
|
|
|
|
function test_Elements_drawGeometry(t) {
|
|
t.plan(5);
|
|
|
|
OpenLayers.Renderer.Elements.prototype._initialize =
|
|
OpenLayers.Renderer.Elements.prototype.initialize;
|
|
|
|
OpenLayers.Renderer.Elements.prototype.initialize = function() {};
|
|
|
|
var r = new OpenLayers.Renderer.Elements();
|
|
|
|
var element = document.createElement("div");
|
|
r.root = element;
|
|
|
|
r.nodeFactory = function(id, type) {
|
|
var element = document.createElement("div");
|
|
return element;
|
|
};
|
|
var g_Node = null;
|
|
r.drawGeometryNode = function(node, geometry, style) {
|
|
g_Node = node;
|
|
return node;
|
|
};
|
|
r.getNodeType = function(geometry, style) {
|
|
return "div";
|
|
};
|
|
geometry = {
|
|
id: 'foo',
|
|
CLASS_NAME: 'bar'
|
|
};
|
|
var style = true;
|
|
var featureId = 'dude';
|
|
r.drawGeometry(geometry, style, featureId);
|
|
t.ok(g_Node.parentNode == r.root, "node is correctly appended to root");
|
|
t.eq(g_Node._featureId, 'dude', "_featureId is correct");
|
|
t.ok(g_Node._style, "_style is correct");
|
|
t.eq(g_Node._geometryClass, 'bar', "_geometryClass is correct");
|
|
|
|
var _getElement = OpenLayers.Util.getElement;
|
|
OpenLayers.Util.getElement = function(id) {
|
|
return g_Node;
|
|
}
|
|
|
|
var style = {'display':'none'};
|
|
r.drawGeometry(geometry, style, featureId);
|
|
t.ok(g_Node.parentNode != r.root, "node is correctly removed");
|
|
|
|
OpenLayers.Util.getElement = _getElement;
|
|
OpenLayers.Renderer.Elements.prototype.initialize =
|
|
OpenLayers.Renderer.Elements.prototype._initialize;
|
|
}
|
|
|
|
function test_Elements_drawGeometry_2(t) {
|
|
t.plan(9);
|
|
|
|
OpenLayers.Renderer.Elements.prototype._initialize =
|
|
OpenLayers.Renderer.Elements.prototype.initialize;
|
|
|
|
OpenLayers.Renderer.Elements.prototype.initialize = function() {};
|
|
|
|
var r = new OpenLayers.Renderer.Elements();
|
|
|
|
var element = document.createElement("div");
|
|
r.root = element;
|
|
|
|
r.nodeFactory = function(id, type) {
|
|
var element = document.createElement("div");
|
|
return element;
|
|
};
|
|
r.setStyle = function(node, style, options, geometry) {
|
|
return node;
|
|
};
|
|
|
|
// point
|
|
var properDraw = false;
|
|
r.drawPoint = function(node, geometry) {
|
|
properDraw = true;
|
|
return {};
|
|
};
|
|
geometry = {CLASS_NAME: 'OpenLayers.Geometry.Point'};
|
|
style = true;
|
|
r.drawGeometry(geometry, style);
|
|
t.ok(properDraw, "drawGeometry called drawPoint when passed a point");
|
|
|
|
// line string
|
|
var properDraw = false;
|
|
r.drawLineString = function(g) {
|
|
properDraw = true;
|
|
return {};
|
|
};
|
|
geometry = {CLASS_NAME: 'OpenLayers.Geometry.LineString'};
|
|
style = true;
|
|
r.drawGeometry(geometry, style);
|
|
t.ok(properDraw, "drawGeometry called drawLineString when passed a line string");
|
|
|
|
// linear ring
|
|
var properDraw = false;
|
|
r.drawLinearRing = function(g) {
|
|
properDraw = true;
|
|
return {};
|
|
};
|
|
geometry = {CLASS_NAME: 'OpenLayers.Geometry.LinearRing'};
|
|
style = true;
|
|
r.drawGeometry(geometry, style);
|
|
t.ok(properDraw, "drawGeometry called drawLinearRing when passed a linear ring");
|
|
|
|
// polygon
|
|
var properDraw = false;
|
|
r.drawPolygon = function(g) {
|
|
properDraw = true;
|
|
return {};
|
|
};
|
|
geometry = {CLASS_NAME: 'OpenLayers.Geometry.Polygon'};
|
|
style = true;
|
|
r.drawGeometry(geometry, style);
|
|
t.ok(properDraw, "drawGeometry called drawPolygon when passed a polygon");
|
|
|
|
// surface
|
|
var properDraw = false;
|
|
r.drawSurface = function(g) {
|
|
properDraw = true;
|
|
return {};
|
|
}
|
|
geometry = {CLASS_NAME: 'OpenLayers.Geometry.Surface'};
|
|
style = true;
|
|
r.drawGeometry(geometry, style);
|
|
t.ok(properDraw, "drawGeometry called drawSurface when passed a surface");
|
|
|
|
// rectangle
|
|
var properDraw = false;
|
|
r.drawRectangle = function(g) {
|
|
properDraw = true;
|
|
return {};
|
|
};
|
|
geometry = {CLASS_NAME: 'OpenLayers.Geometry.Rectangle'};
|
|
style = true;
|
|
r.drawGeometry(geometry, style);
|
|
t.ok(properDraw, "drawGeometry called drawRectangle when passed a rectangle");
|
|
|
|
// multi-point
|
|
var properDraw = false;
|
|
r.drawPoint = function(g) {
|
|
properDraw = true;
|
|
return {};
|
|
};
|
|
geometry = {
|
|
CLASS_NAME: 'OpenLayers.Geometry.MultiPoint',
|
|
components: [{CLASS_NAME: 'OpenLayers.Geometry.Point'}]
|
|
};
|
|
style = true;
|
|
r.drawGeometry(geometry, style);
|
|
t.ok(properDraw, "drawGeometry called drawPoint when passed a multi-point");
|
|
|
|
// multi-linestring
|
|
var properDraw = false;
|
|
r.drawLineString = function(g) {
|
|
properDraw = true;
|
|
return {};
|
|
};
|
|
geometry = {
|
|
CLASS_NAME: 'OpenLayers.Geometry.MultiLineString',
|
|
components: [{CLASS_NAME: 'OpenLayers.Geometry.LineString'}]
|
|
};
|
|
style = true;
|
|
r.drawGeometry(geometry, style);
|
|
t.ok(properDraw, "drawGeometry called drawLineString when passed a multi-linestring");
|
|
|
|
// multi-polygon
|
|
var properDraw = false;
|
|
r.drawPolygon = function(g) {
|
|
properDraw = true;
|
|
return {};
|
|
};
|
|
geometry = {
|
|
CLASS_NAME: 'OpenLayers.Geometry.MultiPolygon',
|
|
components: [{CLASS_NAME: 'OpenLayers.Geometry.Polygon'}]
|
|
};
|
|
style = true;
|
|
r.drawGeometry(geometry, style);
|
|
t.ok(properDraw, "drawGeometry called drawPolygon when passed a multi-polygon");
|
|
|
|
OpenLayers.Renderer.Elements.prototype.initialize =
|
|
OpenLayers.Renderer.Elements.prototype._initialize;
|
|
}
|
|
|
|
function test_Elements_getfeatureidfromevent(t) {
|
|
t.plan(2);
|
|
|
|
var node = {
|
|
_featureId: 'foo'
|
|
};
|
|
var event = {
|
|
target: node
|
|
};
|
|
|
|
var id = OpenLayers.Renderer.Elements.prototype.getFeatureIdFromEvent(event);
|
|
t.eq(id, 'foo', "returned id is correct when event with target is passed");
|
|
|
|
var event = {
|
|
srcElement: node
|
|
};
|
|
|
|
var id = OpenLayers.Renderer.Elements.prototype.getFeatureIdFromEvent(event);
|
|
t.eq(id, 'foo', "returned id is correct when event with srcElement is passed");
|
|
}
|
|
|
|
function test_Elements_erasegeometry(t) {
|
|
t.plan(4);
|
|
|
|
var el = document.createElement('div');
|
|
document.body.appendChild(el);
|
|
el.id = 'bar';
|
|
var geometry = {
|
|
id: 'bar'
|
|
};
|
|
|
|
OpenLayers.Renderer.Elements.prototype.eraseGeometry(geometry);
|
|
t.ok(el.parentNode != document.body, "element correctly removed");
|
|
|
|
var el = document.createElement('div');
|
|
document.body.appendChild(el);
|
|
el.id = 'bar';
|
|
var geometry = {
|
|
CLASS_NAME: "OpenLayers.Geometry.MultiPoint",
|
|
components: [{
|
|
id: 'bar'
|
|
}]
|
|
};
|
|
|
|
OpenLayers.Renderer.Elements.prototype.eraseGeometry(geometry);
|
|
t.ok(el.parentNode != document.body, "geometry components correctly removed when passed a multipoint");
|
|
|
|
var el = document.createElement('div');
|
|
document.body.appendChild(el);
|
|
el.id = 'bar';
|
|
var geometry = {
|
|
CLASS_NAME: "OpenLayers.Geometry.MultiLineString",
|
|
components: [{
|
|
id: 'bar'
|
|
}]
|
|
};
|
|
|
|
OpenLayers.Renderer.Elements.prototype.eraseGeometry(geometry);
|
|
t.ok(el.parentNode != document.body, "geometry components correctly removed when passed a multilinestring");
|
|
|
|
var el = document.createElement('div');
|
|
document.body.appendChild(el);
|
|
el.id = 'bar';
|
|
var geometry = {
|
|
CLASS_NAME: "OpenLayers.Geometry.MultiPolygon",
|
|
components: [{
|
|
id: 'bar'
|
|
}]
|
|
};
|
|
|
|
OpenLayers.Renderer.Elements.prototype.eraseGeometry(geometry);
|
|
t.ok(el.parentNode != document.body, "geometry components correctly removed when passed a multipolygon");
|
|
}
|
|
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<div id="map" style="width:500px;height:550px"></div>
|
|
</body>
|
|
</html>
|