1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177
|
<html>
<head>
<script src="../OLLoader.js"></script>
<script type="text/javascript">
var name = "Vector Layer";
function test_Layer_WFS_constructor(t) {
t.plan(3);
var layer = new OpenLayers.Layer.WFS(name, "url", {});
t.ok(layer instanceof OpenLayers.Layer.WFS, "new OpenLayers.Layer.Vector returns correct object" );
t.eq(layer.name, name, "layer name is correctly set");
t.ok(layer.renderer.CLASS_NAME, "layer has a renderer");
}
function test_Layer_WFS_getDataExtent(t) {
t.plan(1);
var layer = new OpenLayers.Layer.WFS(name, "url", {});
layer.addFeatures(new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(0, 0)));
layer.addFeatures(new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(0, 1)));
t.eq(layer.getDataExtent().toBBOX(), "0,0,0,1", "bbox is correctly pulled from vectors.");
}
function test_Layer_WFS_setOpacity(t) {
t.plan(3);
var layer = new OpenLayers.Layer.WFS(name, "url", {});
layer.setOpacity(.5);
t.eq(layer.opacity, 0.5, "vector setOpacity didn't fail");
var layer = new OpenLayers.Layer.WFS(name, "url", {}, {'featureClass': OpenLayers.Feature.WFS});
var marker = new OpenLayers.Marker(new OpenLayers.LonLat(0,0));
marker.setOpacity = function() {
t.ok(true, "Marker setOpacity was called");
}
layer.addMarker(marker);
layer.setOpacity(.6);
t.eq(layer.opacity, 0.6, "setOpacity didn't fail on markers");
}
function test_Layer_WFS_destroy(t) {
t.plan(13);
var tVectorDestroy = OpenLayers.Layer.Vector.prototype.destroy;
OpenLayers.Layer.Vector.prototype.destroy = function() {
g_VectorDestroyed = true;
}
var tMarkersDestroy = OpenLayers.Layer.Markers.prototype.destroy;
OpenLayers.Layer.Markers.prototype.destroy = function() {
g_MarkersDestroyed = true;
}
var layer = {
'vectorMode': true,
'tile': {
'destroy': function() {
t.ok(true, "wfs layer's tile is destroyed");
}
},
'ratio': {},
'featureClass': {},
'format': {},
'formatObject': {
'destroy': function() {
t.ok(true, "wfs layer's format object is destroyed");
}
},
'formatOptions': {},
'encodeBBOX': {},
'extractAttributes': {}
};
//this call should set off two tests (destroys for tile and format object)
g_VectorDestroyed = null;
g_MarkersDestroyed = null;
OpenLayers.Layer.WFS.prototype.destroy.apply(layer, []);
t.ok(g_VectorDestroyed && !g_MarkersDestroyed, "when vector mode is set to true, the default vector layer's destroy() method is called");
t.eq(layer.vectorMode, null, "'vectorMode' property nullified");
t.eq(layer.tile, null, "'tile' property nullified");
t.eq(layer.ratio, null, "'ratio' property nullified");
t.eq(layer.featureClass, null, "'featureClass' property nullified");
t.eq(layer.format, null, "'format' property nullified");
t.eq(layer.formatObject, null, "'formatObject' property nullified");
t.eq(layer.formatOptions, null, "'formatOptions' property nullified");
t.eq(layer.encodeBBOX, null, "'encodeBBOX' property nullified");
t.eq(layer.extractAttributes, null, "'extractAttributes' property nullified");
layer.vectorMode = false;
//this call will *not* set off two tests (tile and format object are null)
g_VectorDestroyed = null;
g_MarkersDestroyed = null;
OpenLayers.Layer.WFS.prototype.destroy.apply(layer, []);
t.ok(!g_VectorDestroyed && g_MarkersDestroyed, "when vector mode is set to false, the default markers layer's destroy() method is called");
OpenLayers.Layer.Vector.prototype.destroy = tVectorDestroy;
OpenLayers.Layer.Markers.prototype.destroy = tMarkersDestroy;
}
function test_Layer_WFS_mapresizevector(t) {
t.plan(2);
var map = new OpenLayers.Map("map");
map.addLayer(new OpenLayers.Layer.WMS("WMS", "url", {}));
var layer = new OpenLayers.Layer.WFS(name, "url", {});
t.ok(layer.renderer.CLASS_NAME, "layer has a renderer");
map.addLayer(layer);
setSize = false;
layer.renderer.setSize = function() { setSize = true; }
layer.onMapResize();
t.eq(setSize, true, "Renderer resize called on map size change.");
map.destroy();
}
function test_Layer_WFS_drawmap(t) {
t.plan(2);
var map = new OpenLayers.Map('map');
layer = new OpenLayers.Layer.WMS( "OpenLayers WMS",
"http://labs.metacarta.com/wms/vmap0", {layers: 'basic'} );
map.addLayer(layer);
layer = new OpenLayers.Layer.WFS( "Owl Survey",
"http://www.bsc-eoc.org/cgi-bin/bsc_ows.asp?",
{typename: "OWLS", maxfeatures: 10},
{ featureClass: OpenLayers.Feature.WFS});
map.addLayer(layer);
map.addControl(new OpenLayers.Control.LayerSwitcher());
try {
map.setCenter(new OpenLayers.LonLat(-100, 60), 3);
} catch (Exception) {
}
t.eq(layer.tile.url, "http://www.bsc-eoc.org/cgi-bin/bsc_ows.asp?TYPENAME=OWLS&MAXFEATURES=10&SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&SRS=EPSG%3A4326&BBOX=-187.890625,-36.6796875,-12.109375,156.6796875", "Tile URL is set correctly when not encoded");
map.destroy();
var map = new OpenLayers.Map('map');
layer = new OpenLayers.Layer.WMS( "OpenLayers WMS",
"http://labs.metacarta.com/wms/vmap0", {layers: 'basic'}
);
map.addLayer(layer);
layer = new OpenLayers.Layer.WFS( "Owl Survey",
"http://www.bsc-eoc.org/cgi-bin/bsc_ows.asp?",
{typename: "OWLS", maxfeatures: 10},
{ featureClass: OpenLayers.Feature.WFS, 'encodeBBOX': true});
map.addLayer(layer);
map.addControl(new OpenLayers.Control.LayerSwitcher());
try {
map.setCenter(new OpenLayers.LonLat(-100, 60), 3);
} catch (Exception) {
}
t.eq(layer.tile.url, "http://www.bsc-eoc.org/cgi-bin/bsc_ows.asp?TYPENAME=OWLS&MAXFEATURES=10&SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&SRS=EPSG%3A4326&BBOX=-187.890625%2C-36.679687%2C-12.109375%2C156.679688", "Tile URL is set correctly when not encoded");
map.destroy();
}
function test_projection_srs(t) {
t.plan(1);
var map = new OpenLayers.Map('map');
map.addLayer(new OpenLayers.Layer("",{isBaseLayer: true} ));
// we use an empty moveTo function because we don't want to request tiles
var layer = new OpenLayers.Layer.WFS("","/wfs",{},{'projection': new OpenLayers.Projection("EPSG:900913"),
moveTo: function() {}});
map.addLayer(layer);
map.zoomToMaxExtent();
var params = OpenLayers.Util.getParameters(layer.getFullRequestString());
t.eq(params.SRS, "EPSG:900913", "SRS represents projection of WFS layer, instead of map (#1537)");
}
</script>
</head>
<body>
<div id="map" style="width:500px;height:550px"></div>
</body>
</html>
|