Merge pull request #218 from marcjansen/testsuite-fixes
Testsuite fixes
This commit is contained in:
@@ -3,19 +3,23 @@
|
|||||||
<script src="../OLLoader.js"></script>
|
<script src="../OLLoader.js"></script>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var map, control;
|
var map, control;
|
||||||
|
|
||||||
function test_initialize(t) {
|
function test_initialize(t) {
|
||||||
t.plan( 2 );
|
t.plan( 2 );
|
||||||
|
|
||||||
control = new OpenLayers.Control.OverviewMap();
|
control = new OpenLayers.Control.OverviewMap();
|
||||||
t.ok( control instanceof OpenLayers.Control.OverviewMap, "new OpenLayers.Control.OverviewMap returns object" );
|
t.ok( control instanceof OpenLayers.Control.OverviewMap,
|
||||||
t.eq( control.displayClass, "olControlOverviewMap", "displayClass is correct" );
|
"new OpenLayers.Control.OverviewMap returns object" );
|
||||||
|
t.eq( control.displayClass,
|
||||||
|
"olControlOverviewMap", "displayClass is correct" );
|
||||||
}
|
}
|
||||||
|
|
||||||
function test_setMap(t) {
|
function test_setMap(t) {
|
||||||
t.plan(4);
|
t.plan(4);
|
||||||
|
|
||||||
var setMapTest = function(map) {
|
var setMapTest = function(map) {
|
||||||
t.ok(true, "Handler.setMap called for " + this.CLASS_NAME);
|
t.ok(true,
|
||||||
|
"Handler.setMap called for " + this.CLASS_NAME);
|
||||||
this.map = map;
|
this.map = map;
|
||||||
};
|
};
|
||||||
var drag_setMap = OpenLayers.Handler.Drag.prototype.setMap;
|
var drag_setMap = OpenLayers.Handler.Drag.prototype.setMap;
|
||||||
@@ -32,8 +36,10 @@
|
|||||||
map.addControl(control);
|
map.addControl(control);
|
||||||
|
|
||||||
map.zoomToMaxExtent();
|
map.zoomToMaxExtent();
|
||||||
t.eq(control.handlers.drag.map.id, control.ovmap.id, "drag.map is correct");
|
t.eq(control.handlers.drag.map.id, control.ovmap.id,
|
||||||
t.eq(control.handlers.click.map.id, control.ovmap.id, "click.map is correct");
|
"drag.map is correct");
|
||||||
|
t.eq(control.handlers.click.map.id, control.ovmap.id,
|
||||||
|
"click.map is correct");
|
||||||
|
|
||||||
map.destroy();
|
map.destroy();
|
||||||
OpenLayers.Handler.Drag.prototype.setMap = drag_setMap;
|
OpenLayers.Handler.Drag.prototype.setMap = drag_setMap;
|
||||||
@@ -66,85 +72,112 @@
|
|||||||
|
|
||||||
control.destroy();
|
control.destroy();
|
||||||
t.eq(log_drag.length, 2,
|
t.eq(log_drag.length, 2,
|
||||||
"destroy() destroys drag handler twice, expected");
|
"destroy() destroys drag handler twice, expected");
|
||||||
if (log_drag.length == 2) {
|
if (log_drag.length == 2) {
|
||||||
t.eq(log_drag[0].map, true,
|
t.eq(log_drag[0].map, true,
|
||||||
"destroy() destroys drag handler before ovmap is destroyed (0)");
|
"destroy() destroys drag handler before ovmap is destroyed (0)");
|
||||||
t.eq(log_drag[1].map, false,
|
t.eq(log_drag[1].map, false,
|
||||||
"destroy() destroys drag handler after ovmap is destroyed (1)");
|
"destroy() destroys drag handler after ovmap is destroyed (1)");
|
||||||
}
|
}
|
||||||
t.eq(log_click.length, 2,
|
t.eq(log_click.length, 2,
|
||||||
"destroy() destroys click handler twice, expected");
|
"destroy() destroys click handler twice, expected");
|
||||||
if (log_click.length == 2) {
|
if (log_click.length == 2) {
|
||||||
t.eq(log_click[0].map, true,
|
t.eq(log_click[0].map, true,
|
||||||
"destroy() destroys click handler before ovmap is destroyed (0)");
|
"destroy() destroys click handler before ovmap is destroyed (0)");
|
||||||
t.eq(log_click[1].map, false,
|
t.eq(log_click[1].map, false,
|
||||||
"destroy() destroys click handler after ovmap is destroyed (1)");
|
"destroy() destroys click handler after ovmap is destroyed (1)");
|
||||||
}
|
}
|
||||||
|
|
||||||
// tear down
|
// tear down
|
||||||
map.destroy();
|
map.destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
function test_addControl (t) {
|
function test_addControl (t) {
|
||||||
t.plan( 6 );
|
t.plan( 6 );
|
||||||
map = new OpenLayers.Map('map');
|
map = new OpenLayers.Map('map');
|
||||||
control = new OpenLayers.Control.OverviewMap();
|
control = new OpenLayers.Control.OverviewMap();
|
||||||
t.ok( control instanceof OpenLayers.Control.OverviewMap, "new OpenLayers.Control.OverviewMap returns object" );
|
t.ok( control instanceof OpenLayers.Control.OverviewMap,
|
||||||
t.ok( map instanceof OpenLayers.Map, "new OpenLayers.Map creates map" );
|
"new OpenLayers.Control.OverviewMap returns object" );
|
||||||
|
t.ok( map instanceof OpenLayers.Map,
|
||||||
|
"new OpenLayers.Map creates map" );
|
||||||
map.addControl(control);
|
map.addControl(control);
|
||||||
t.ok( control.map === map, "Control.map is set to the map object" );
|
t.ok( control.map === map,
|
||||||
t.ok( map.controls[4] === control, "map.controls contains control" );
|
"Control.map is set to the map object" );
|
||||||
t.eq( parseInt(control.div.style.zIndex), map.Z_INDEX_BASE['Control'] + 5, "Control div zIndexed properly" );
|
t.ok( map.controls[4] === control,
|
||||||
t.eq( parseInt(map.viewPortDiv.lastChild.style.zIndex), map.Z_INDEX_BASE['Control'] + 5, "Viewport div contains control div" );
|
"map.controls contains control" );
|
||||||
|
t.eq( parseInt(control.div.style.zIndex), map.Z_INDEX_BASE['Control'] + 5,
|
||||||
|
"Control div zIndexed properly" );
|
||||||
|
t.eq( parseInt(map.viewPortDiv.lastChild.style.zIndex), map.Z_INDEX_BASE['Control'] + 5,
|
||||||
|
"Viewport div contains control div" );
|
||||||
|
|
||||||
map.destroy();
|
map.destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
function test_control_events (t) {
|
function test_control_events (t) {
|
||||||
t.plan( 10 );
|
t.plan( 10 );
|
||||||
var evt = {which: 1}; // control expects left-click
|
|
||||||
map = new OpenLayers.Map('map');
|
map = new OpenLayers.Map('map', {
|
||||||
var layer = new OpenLayers.Layer.WMS("Test Layer",
|
// when we recenter, don't waste time animating the panning
|
||||||
"http://octo.metacarta.com/cgi-bin/mapserv?",
|
// without this, the test fails in Firefox 10.0.1 on Linux
|
||||||
{map: "/mapdata/vmap_wms.map", layers: "basic"});
|
panMethod: null,
|
||||||
map.addLayer(layer);
|
layers: [ new OpenLayers.Layer('Test Layer', {isBaseLayer: true}) ]
|
||||||
|
});
|
||||||
|
|
||||||
control = new OpenLayers.Control.OverviewMap();
|
control = new OpenLayers.Control.OverviewMap();
|
||||||
map.addControl(control, new OpenLayers.Pixel(20,20));
|
map.addControl(control, new OpenLayers.Pixel(20,20));
|
||||||
|
|
||||||
var centerLL = new OpenLayers.LonLat(-71,42);
|
var centerLL = new OpenLayers.LonLat(-71,42);
|
||||||
map.setCenter(centerLL, 11);
|
map.setCenter(centerLL, 11);
|
||||||
t.delay_call(1, function() {
|
|
||||||
var overviewCenter = control.ovmap.getCenter();
|
|
||||||
var overviewZoom = control.ovmap.getZoom();
|
|
||||||
t.eq(overviewCenter.lon, -71, "Overviewmap center lon correct");
|
|
||||||
t.eq(overviewCenter.lat, 42, "Overviewmap center lat correct");
|
|
||||||
t.eq(overviewZoom, 8, "Overviewmap zoomcorrect");
|
|
||||||
|
|
||||||
control.mapDivClick({'xy':new OpenLayers.Pixel(5,5)});
|
t.delay_call(
|
||||||
}, 2, function() {
|
0.1,
|
||||||
var cent = map.getCenter();
|
function() {
|
||||||
t.eq(cent.lon, -71.3515625, "Clicking on the Overview Map has the correct effect on map lon");
|
var overviewCenter = control.ovmap.getCenter();
|
||||||
t.eq(cent.lat, 42.17578125, "Clicking on the Overview Map has the correct effect on map lat");
|
var overviewZoom = control.ovmap.getZoom();
|
||||||
|
t.eq(overviewCenter.lon, -71,
|
||||||
|
"OverviewMap center lon correct");
|
||||||
|
t.eq(overviewCenter.lat, 42,
|
||||||
|
"OverviewMap center lat correct");
|
||||||
|
t.eq(overviewZoom, 8,
|
||||||
|
"OverviewMap zoom correct");
|
||||||
|
|
||||||
control.handlers.drag = {
|
control.mapDivClick({'xy':new OpenLayers.Pixel(5,5)});
|
||||||
last: new OpenLayers.Pixel(5,5),
|
},
|
||||||
destroy: function() {}
|
0.1,
|
||||||
};
|
function() {
|
||||||
control.rectDrag(new OpenLayers.Pixel(15, 15));
|
var cent = map.getCenter();
|
||||||
control.updateMapToRect();
|
t.eq(cent.lon, -71.3515625,
|
||||||
}, 2, function() {
|
"Clicking on OverviewMap has correct effect on map lon");
|
||||||
var cent = map.getCenter();
|
t.eq(cent.lat, 42.17578125,
|
||||||
t.eq(cent.lon, -71.2734375, "Dragging on the Overview Map has the correct effect on map lon");
|
"Clicking on OverviewMap has correct effect on map lat");
|
||||||
t.eq(cent.lat, 42.09765625, "Dragging on the Overview Map has the correct effect on map lat");
|
|
||||||
|
|
||||||
map.setCenter(new OpenLayers.LonLat(0,0), 0);
|
control.handlers.drag = {
|
||||||
var overviewCenter = control.ovmap.getCenter();
|
last: new OpenLayers.Pixel(5,5),
|
||||||
var overviewZoom = control.ovmap.getZoom();
|
destroy: function() {}
|
||||||
t.eq(overviewCenter.lon, 0, "Overviewmap center lon correct -- second zoom");
|
};
|
||||||
t.eq(overviewCenter.lat, 0, "Overviewmap center lat correct -- second zoom");
|
control.rectDrag(new OpenLayers.Pixel(15, 15));
|
||||||
t.eq(overviewZoom, 0, "Overviewmap zoomcorrect -- second zoom");
|
control.updateMapToRect();
|
||||||
map.destroy();
|
},
|
||||||
});
|
0.1,
|
||||||
|
function() {
|
||||||
|
var cent = map.getCenter();
|
||||||
|
t.eq(cent.lon, -71.2734375,
|
||||||
|
"Dragging on OverviewMap has correct effect on map lon");
|
||||||
|
t.eq(cent.lat, 42.09765625,
|
||||||
|
"Dragging on OverviewMap has correct effect on map lat");
|
||||||
|
|
||||||
|
map.setCenter(new OpenLayers.LonLat(0,0), 0);
|
||||||
|
var overviewCenter = control.ovmap.getCenter();
|
||||||
|
var overviewZoom = control.ovmap.getZoom();
|
||||||
|
t.eq(overviewCenter.lon, 0,
|
||||||
|
"OverviewMap center lon correct -- second zoom");
|
||||||
|
t.eq(overviewCenter.lat, 0,
|
||||||
|
"OverviewMap center lat correct -- second zoom");
|
||||||
|
t.eq(overviewZoom, 0,
|
||||||
|
"OverviewMap zoomcorrect -- second zoom");
|
||||||
|
map.destroy();
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function test_initialize_maximized(t) {
|
function test_initialize_maximized(t) {
|
||||||
@@ -156,8 +189,10 @@
|
|||||||
controls: [control]
|
controls: [control]
|
||||||
});
|
});
|
||||||
|
|
||||||
t.eq(control.maximized, false, "OverviewMap is not maximized by default");
|
t.eq(control.maximized, false,
|
||||||
t.eq(control.element.style.display, 'none', "OverviewMap.element is not visible");
|
"OverviewMap is not maximized by default");
|
||||||
|
t.eq(control.element.style.display, 'none',
|
||||||
|
"OverviewMap.element is not visible");
|
||||||
map.destroy();
|
map.destroy();
|
||||||
|
|
||||||
control = new OpenLayers.Control.OverviewMap({
|
control = new OpenLayers.Control.OverviewMap({
|
||||||
@@ -167,8 +202,10 @@
|
|||||||
layers : [new OpenLayers.Layer("layer", {isBaseLayer: true})],
|
layers : [new OpenLayers.Layer("layer", {isBaseLayer: true})],
|
||||||
controls: [control]
|
controls: [control]
|
||||||
});
|
});
|
||||||
t.eq(control.maximized, true, "OverviewMap.maximized is set");
|
t.eq(control.maximized, true,
|
||||||
t.eq(control.element.style.display, '', "OverviewMap.element is visible");
|
"OverviewMap.maximized is set");
|
||||||
|
t.eq(control.element.style.display, '',
|
||||||
|
"OverviewMap.element is visible");
|
||||||
|
|
||||||
map.destroy();
|
map.destroy();
|
||||||
}
|
}
|
||||||
@@ -176,6 +213,6 @@
|
|||||||
</script>
|
</script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="map" style="width: 1024px; height: 512px;"/>
|
<div id="map" style="width: 1024px; height: 512px;"></div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
+33
-14
@@ -254,21 +254,40 @@
|
|||||||
t.plan(1);
|
t.plan(1);
|
||||||
|
|
||||||
var projections = {
|
var projections = {
|
||||||
src: new OpenLayers.Projection("EPSG:4326"),
|
src: new OpenLayers.Projection("EPSG:4326"),
|
||||||
dest: new OpenLayers.Projection("EPSG:900913")
|
dest: new OpenLayers.Projection("EPSG:900913")
|
||||||
};
|
},
|
||||||
|
points = {
|
||||||
|
src: new OpenLayers.Feature.Vector(
|
||||||
|
new OpenLayers.Geometry.Point(-87.9, 41.9)
|
||||||
|
),
|
||||||
|
dest: new OpenLayers.Feature.Vector(
|
||||||
|
new OpenLayers.Geometry.Point(-9784983.2393667, 5146011.6785665)
|
||||||
|
)
|
||||||
|
},
|
||||||
|
format = new OpenLayers.Format.WKT({
|
||||||
|
externalProjection: projections["src"],
|
||||||
|
internalProjection: projections["dest"]
|
||||||
|
}),
|
||||||
|
gc_wkt_parts = [
|
||||||
|
"GEOMETRYCOLLECTION(",
|
||||||
|
"POINT(",
|
||||||
|
points["src"].geometry.x,
|
||||||
|
" ",
|
||||||
|
points["src"].geometry.y,
|
||||||
|
")",
|
||||||
|
")"
|
||||||
|
],
|
||||||
|
feature = format.read( gc_wkt_parts.join("") )[0],
|
||||||
|
gotGeom = feature.geometry,
|
||||||
|
expectGeom = points["dest"].geometry,
|
||||||
|
// we don't use geometry::toString because we might run into
|
||||||
|
// precision issues
|
||||||
|
precision = 7,
|
||||||
|
got = gotGeom.x.toFixed(precision) + ' ' + gotGeom.y.toFixed(precision),
|
||||||
|
expected = expectGeom.x.toFixed(precision) + ' ' + expectGeom.y.toFixed(precision);
|
||||||
|
|
||||||
var points = {
|
t.eq(got, expected,
|
||||||
src: new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(-87.9, 41.9)),
|
|
||||||
dest: new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(-9784983.2393667, 5146011.6785665))
|
|
||||||
};
|
|
||||||
|
|
||||||
var format = new OpenLayers.Format.WKT({
|
|
||||||
externalProjection: projections["src"],
|
|
||||||
internalProjection: projections["dest"]
|
|
||||||
});
|
|
||||||
var feature = format.read("GEOMETRYCOLLECTION(POINT(" + points["src"].geometry.x + " " + points["src"].geometry.y + "))")[0];
|
|
||||||
t.eq(feature.geometry.toString(), points["dest"].geometry.toString(),
|
|
||||||
"Geometry collections aren't transformed twice when reprojection.");
|
"Geometry collections aren't transformed twice when reprojection.");
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -147,7 +147,7 @@
|
|||||||
var uri = "http://foo.com";
|
var uri = "http://foo.com";
|
||||||
var prefix = "foo";
|
var prefix = "foo";
|
||||||
var localName = "bar";
|
var localName = "bar";
|
||||||
var qualifiedName = prefix + ":" + name;
|
var qualifiedName = prefix + ":" + localName;
|
||||||
var node = format.createElementNS(uri, qualifiedName);
|
var node = format.createElementNS(uri, qualifiedName);
|
||||||
t.eq(node.nodeType, 1,
|
t.eq(node.nodeType, 1,
|
||||||
"node has correct type");
|
"node has correct type");
|
||||||
|
|||||||
@@ -88,9 +88,26 @@
|
|||||||
strategy.update({force: true});
|
strategy.update({force: true});
|
||||||
var from = map.getProjectionObject();
|
var from = map.getProjectionObject();
|
||||||
var to = layer.projection;
|
var to = layer.projection;
|
||||||
t.eq(strategy.bounds.toString(), map.getExtent().transform(from, to).toString(), "[force update different proj] bounds transformed");
|
|
||||||
|
|
||||||
|
|
||||||
|
var strategyBounds = strategy.bounds,
|
||||||
|
mapExtent = map.getExtent().transform(from, to),
|
||||||
|
// we don't use bounds::toString because we might run into
|
||||||
|
// precision issues
|
||||||
|
precision = 7,
|
||||||
|
strategyBoundsGot = [
|
||||||
|
strategyBounds.left.toFixed( precision ),
|
||||||
|
strategyBounds.bottom.toFixed( precision ),
|
||||||
|
strategyBounds.right.toFixed( precision ),
|
||||||
|
strategyBounds.top.toFixed( precision )
|
||||||
|
].join(','),
|
||||||
|
mapExtentExpected = [
|
||||||
|
mapExtent.left.toFixed( precision ),
|
||||||
|
mapExtent.bottom.toFixed( precision ),
|
||||||
|
mapExtent.right.toFixed( precision ),
|
||||||
|
mapExtent.top.toFixed( precision )
|
||||||
|
].join(',');
|
||||||
|
t.eq(strategyBoundsGot, mapExtentExpected,
|
||||||
|
"[force update different proj] bounds transformed");
|
||||||
}
|
}
|
||||||
|
|
||||||
function test_events(t) {
|
function test_events(t) {
|
||||||
|
|||||||
Reference in New Issue
Block a user