WMSGetFeatureInfo control: relate features to url, thanks erilem for the extensive amount of reviews you have done for OL 2.11, r=erilem (closes #2883)

git-svn-id: http://svn.openlayers.org/trunk/openlayers@11875 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
bartvde
2011-04-05 06:52:42 +00:00
parent 6e3af67dab
commit f33c5ef112
2 changed files with 75 additions and 3 deletions

View File

@@ -115,6 +115,61 @@
control.getInfoForHover({xy: {x: 50, y: 50}});
}
function test_getfeatureinfo_event(t) {
t.plan(5);
var text =
'<?xml version="1.0" encoding="UTF-8" ?>' +
'<FeatureInfoResponse>' +
' <FIELDS OBJECTID="1188" HECTARES="1819.734" ZONENR="5854" NULZONES=" " AREA="18197340.1426" PERIMETER="19177.4073627" SHAPE="NULL" SE_ANNO_CAD_DATA="NULL" SHAPE.AREA="0" SHAPE.LEN="0"/>' +
'</FeatureInfoResponse>';
var map = new OpenLayers.Map('map');
var xy;
var url = "http://foo";
// mock up a control with output "object" and drillDown true
var control = new OpenLayers.Control.WMSGetFeatureInfo({
output: "object",
drillDown: true,
request: function(position) {},
eventListeners: {
getfeatureinfo: function(evt) {
t.ok(evt.features[0].url === url, "features is an object with a property url when output is object");
var features = evt.features[0].features;
t.ok(features.length === 1, "features properties has a length of 1");
t.ok(features[0] instanceof OpenLayers.Feature.Vector, "Feature array contains 1 feature");
}
}
});
// mock up a control with output "features" and drillDown true
var control2 = new OpenLayers.Control.WMSGetFeatureInfo({
autoActivate: true,
drillDown: true,
request: function(position) {},
eventListeners: {
getfeatureinfo: function(evt) {
var features = evt.features;
t.ok(features.length === 1, "features properties has a length of 1");
t.ok(features[0] instanceof OpenLayers.Feature.Vector, "Feature array contains 1 feature");
}
}
});
map.addControls([control, control2]);
control.activate();
xy = {x: 50, y: 50};
control._requestCount = control2._requestCount = 0;
control._numRequests = control2._numRequests = 1;
control.handleResponse({xy: xy}, {responseText: text}, url);
control2.handleResponse({xy: xy}, {responseText: text}, url);
map.destroy();
}
function test_beforegetfeatureinfo_event(t) {
t.plan(2);
var map = new OpenLayers.Map('map');