3 <script src="../../lib/OpenLayers.js"></script>
4 <script type="text/javascript">
7 function test_Tile_WFS_constructor (t) {
10 var layer = {}; // bogus layer
11 var position = new OpenLayers.Pixel(10,20);
12 var bounds = new OpenLayers.Bounds(1,2,3,4);
14 var size = new OpenLayers.Size(5,6);
16 tile = new OpenLayers.Tile.WFS(layer, position, bounds, url, size);
18 t.ok( tile instanceof OpenLayers.Tile.WFS, "new OpenLayers.Tile.WFS returns Tile.WFS object" );
19 t.eq( tile.layer, layer, "tile.layer set correctly");
20 t.ok( tile.position.equals(position), "tile.position set correctly");
21 t.ok( tile.bounds.equals(bounds), "tile.bounds set correctly");
22 t.eq( tile.url, url, "tile.url set correctly");
23 t.ok( tile.size.equals(size), "tile.size is set correctly" );
25 t.ok( tile.id != null, "tile is given an id");
26 t.ok( tile.events != null, "tile's events intitialized");
29 function test_Tile_WFS_requestSuccess(t) {
36 OpenLayers.Tile.WFS.prototype.requestSuccess.apply(tile, []);
38 t.ok(tile.request == null, "request property on tile set to null");
41 SUPPORTED_TRANSITIONS: [],
43 unregister: function() {}
46 var position = new OpenLayers.Pixel(10,20);
47 var bounds = new OpenLayers.Bounds(1,2,3,4);
49 var size = new OpenLayers.Size(5,6);
51 tile = new OpenLayers.Tile.WFS(layer, position, bounds, url, size);
53 tile.requestSuccess({'requestText': '<xml><foo /></xml>'});
54 t.ok(true, "Didn't fail after calling requestSuccess on destroyed tile.");
58 function test_Tile_WFS_loadFeaturesForRegion(t) {
67 var _get = OpenLayers.Request.GET;
68 OpenLayers.Request.GET = function(config) {
69 t.ok(config.url == tile.url, "tile's url correctly passed");
70 t.ok(config.params == null, "null params");
71 t.ok(config.scope == tile, "tile passed as scope");
72 t.ok(config.success == g_Success, "success passed");
75 //no running request -- 4 tests
76 OpenLayers.Tile.WFS.prototype.loadFeaturesForRegion.apply(tile, [g_Success]);
78 //running request (cancelled) -- 4 tests + 1 test (for request abort)
81 t.ok(true, "request aborted");
84 OpenLayers.Tile.WFS.prototype.loadFeaturesForRegion.apply(tile, [g_Success]);
86 OpenLayers.Request.GET = _get;
89 function test_Tile_WFS_destroy(t) {
93 SUPPORTED_TRANSITIONS: [],
95 unregister: function() {}
98 var position = new OpenLayers.Pixel(10,20);
99 var bounds = new OpenLayers.Bounds(1,2,3,4);
101 var size = new OpenLayers.Size(5,6);
103 tile = new OpenLayers.Tile.WFS(layer, position, bounds, url, size);
104 tile.events.destroy = function() {
105 t.ok(true, "tile events destroy() called");
119 t.ok(tile.layer == null, "tile.layer set to null");
120 t.ok(tile.bounds == null, "tile.bounds set to null");
121 t.ok(tile.size == null, "tile.size set to null");
122 t.ok(tile.position == null, "tile.position set to null");
123 t.ok(_gAbort, "request transport is aborted");
124 t.ok(tile.request == null, "tile.request set to null");
126 t.ok(tile.events == null, "tile.events set to null");
128 tile.requestSuccess({'requestText': '<xml><foo /></xml>'});
129 t.ok(true, "Didn't fail after calling requestSuccess on destroyed tile.");
131 function test_nonxml_format(t) {
133 var data = '{"type":"Feature", "id":"OpenLayers.Feature.Vector_135", "properties":{}, "geometry":{"type":"Point", "coordinates":[118.125, -18.6328125]}, "crs":{"type":"OGC", "properties":{"urn":"urn:ogc:def:crs:OGC:1.3:CRS84"}}}'
134 var position = new OpenLayers.Pixel(10,20);
135 var bounds = new OpenLayers.Bounds(1,2,3,4);
137 var size = new OpenLayers.Size(5,6);
139 var tile = new OpenLayers.Tile.WFS({
141 formatObject: new OpenLayers.Format.GeoJSON(),
142 addFeatures: function(features) {
143 t.eq(features.length, 1, "GeoJSON format returned a single feature which was added.")
145 }, position, bounds, url, size);
146 tile.requestSuccess({responseText: data});
149 function test_xml_string_and_dom(t) {
151 var data = '<?xml version="1.0" encoding="ISO-8859-1" ?><wfs:FeatureCollection xmlns:bsc="http://www.bsc-eoc.org/bsc" xmlns:wfs="http://www.opengis.net/wfs" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengeospatial.net//wfs/1.0.0/WFS-basic.xsd http://www.bsc-eoc.org/bsc http://www.bsc-eoc.org/cgi-bin/bsc_ows.asp?SERVICE=WFS&VERSION=1.0.0&REQUEST=DescribeFeatureType&TYPENAME=OWLS&OUTPUTFORMAT=XMLSCHEMA"> <gml:boundedBy> <gml:Box srsName="EPSG:4326"> <gml:coordinates>-94.989723,43.285833 -74.755001,51.709520</gml:coordinates> </gml:Box> </gml:boundedBy> <gml:featureMember> <bsc:OWLS> <gml:boundedBy> <gml:Box srsName="EPSG:4326"> <gml:coordinates>-94.142500,50.992777 -94.142500,50.992777</gml:coordinates> </gml:Box> </gml:boundedBy> <bsc:msGeometry> <gml:Point srsName="EPSG:4326"> <gml:coordinates>-94.142500,50.992777</gml:coordinates> </gml:Point> </bsc:msGeometry> <bsc:ROUTEID>ON_2</bsc:ROUTEID> <bsc:ROUTE_NAME>Suffel Road</bsc:ROUTE_NAME> <bsc:LATITUDE>50.9927770</bsc:LATITUDE> <bsc:LONGITUDE>-94.1425000</bsc:LONGITUDE> </bsc:OWLS> </gml:featureMember></wfs:FeatureCollection>';
152 var position = new OpenLayers.Pixel(10,20);
153 var bounds = new OpenLayers.Bounds(1,2,3,4);
155 var size = new OpenLayers.Size(5,6);
156 var tile = new OpenLayers.Tile.WFS({
157 }, position, bounds, url, size);
158 tile.addResults = function(results) {
159 t.eq(results.length, 1, "results count is correct when passing in XML as a string into non-vectormode");
161 tile.requestSuccess({responseText: data});
163 tile.addResults = function(results) {
164 t.eq(results.length, 1, "results count is correct when passing in XML as DOM into non-vectormode");
166 tile.requestSuccess({responseXML: OpenLayers.Format.XML.prototype.read(data)});