summaryrefslogtreecommitdiff
path: root/misc/openlayers/tests/Feature.html
diff options
context:
space:
mode:
authorChris Schlaeger <chris@linux.com>2014-08-12 21:56:44 +0200
committerChris Schlaeger <chris@linux.com>2014-08-12 21:56:44 +0200
commitea346a785dc1b3f7c156f6fc33da634e1f1a627b (patch)
treeaf67530553d20b6e82ad60fd79593e9c4abf5565 /misc/openlayers/tests/Feature.html
parent59741cd535c47f25971bf8c32b25da25ceadc6d5 (diff)
downloadpostrunner-ea346a785dc1b3f7c156f6fc33da634e1f1a627b.zip
Adding jquery, flot and openlayers to be included with the GEM.v0.0.4
Diffstat (limited to 'misc/openlayers/tests/Feature.html')
-rw-r--r--misc/openlayers/tests/Feature.html205
1 files changed, 205 insertions, 0 deletions
diff --git a/misc/openlayers/tests/Feature.html b/misc/openlayers/tests/Feature.html
new file mode 100644
index 0000000..aa3db24
--- /dev/null
+++ b/misc/openlayers/tests/Feature.html
@@ -0,0 +1,205 @@
+<html>
+<head>
+ <script src="OLLoader.js"></script>
+ <script type="text/javascript">
+ var isMozilla = (navigator.userAgent.indexOf("compatible") == -1);
+ var map;
+ var feature, layer;
+
+ function test_Feature_constructor (t) {
+ t.plan( 6 );
+
+ var layer = {};
+ var lonlat = new OpenLayers.LonLat(2,1);
+ var iconURL = 'http://boston.openguides.org/features/ORANGE.png';
+ var iconSize = new OpenLayers.Size(12, 17);
+ var data = { iconURL: iconURL,
+ iconSize: iconSize
+ };
+
+ feature = new OpenLayers.Feature(layer, lonlat, data);
+
+ t.ok( feature instanceof OpenLayers.Feature, "new OpenLayers.Feature returns Feature object" );
+ t.eq( feature.layer, layer, "feature.layer set correctly" );
+ t.ok(OpenLayers.String.startsWith(feature.id, "OpenLayers_Feature_"),
+ "feature.id set correctly");
+ t.ok( feature.lonlat.equals(lonlat), "feature.lonlat set correctly" );
+ t.eq( feature.data.iconURL, iconURL, "feature.data.iconURL set correctly" );
+ t.ok( feature.data.iconSize.equals(iconSize), "feature.data.iconSize set correctly" );
+ }
+
+ function test_Feature_createPopup (t) {
+ t.plan(3);
+ var layer = {};
+ var lonlat = new OpenLayers.LonLat(2,1);
+ var iconURL = 'http://boston.openguides.org/features/ORANGE.png';
+ var iconSize = new OpenLayers.Size(12, 17);
+ var data = { iconURL: iconURL,
+ iconSize: iconSize,
+ 'overflow':'auto'
+ };
+
+ feature = new OpenLayers.Feature(layer, lonlat, data);
+ popup = feature.createPopup();
+ //Safari 3 separates style overflow into overflow-x and overflow-y
+ var prop = (OpenLayers.BROWSER_NAME == 'safari') ? 'overflowX' : 'overflow';
+ t.eq(popup.contentDiv.style[prop], "auto", 'overflow on popup is correct');
+ t.ok( popup instanceof OpenLayers.Popup.Anchored, "popup is a Popup.Anchored by default");
+ feature.destroyPopup();
+
+ feature.popupClass = OpenLayers.Popup.FramedCloud;
+ popup = feature.createPopup();
+ t.ok( popup instanceof OpenLayers.Popup.FramedCloud, "setting feature.popupClass works");
+ }
+ function test_Feature_createMarker (t) {
+ t.plan(1);
+ t.ok(true);
+/*
+
+ t.plan( 11 );
+ feature = new OpenLayers.Feature("myfeature", new OpenLayers.LonLat(2,1),
+ {
+ iconURL:'http://boston.openguides.org/features/ORANGE.png',
+ iconW: 12,
+ iconH: 17
+ });
+ layer = new OpenLayers.Layer.Markers('Marker Layer');
+ t.ok( feature instanceof OpenLayers.Feature, "new OpenLayers.Feature returns Feature object" );
+ t.ok( layer instanceof OpenLayers.Layer.Markers, "Layer is a marker layer" );
+ feature.createMarker(layer);
+
+ t.ok( feature.marker instanceof OpenLayers.Marker,
+ "createMarker sets a marker property to a marker" );
+ t.ok( layer.markers[0] === feature.marker,
+ "First marker in layer is the feature marker" );
+
+ t.ok( feature.marker.lonlat instanceof OpenLayers.LonLat,
+ "createMarker sets a marker lontlat property to a lonlat" );
+ t.ok( layer.markers[0].lonlat === feature.lonlat,
+ "First marker in the layer matches feature lonlat" );
+
+ t.ok( feature.marker.icon instanceof OpenLayers.Icon,
+ "createMarker sets a marker icon property to an icon" );
+
+ t.eq( feature.marker.icon.url,
+ "http://boston.openguides.org/features/ORANGE.png",
+ "createMarker sets marker url correctly" );
+
+ var map = new OpenLayers.Map('map');
+ map.addLayer(layer);
+ map.setCenter(new OpenLayers.LonLat(0,0),0);
+ t.ok( map.layers[0] == layer,
+ "Marker layer added to map okay." );
+ if (!isMozilla)
+ t.ok( true, "skipping element test outside of Mozilla");
+ else
+ t.ok( map.layers[0].div.firstChild instanceof HTMLImageElement,
+ "layer div firstChild is an image" );
+ t.eq( map.layers[0].div.firstChild.src,
+ "http://boston.openguides.org/features/ORANGE.png",
+ "Layer div img contains correct url" );
+*/
+ }
+
+ function test_Feature_onScreen(t) {
+ t.plan( 2 );
+
+ var map = new OpenLayers.Map("map");
+
+ var url = "http://octo.metacarta.com/cgi-bin/mapserv";
+ var wms = new OpenLayers.Layer.WMS(name, url);
+
+ map.addLayer(wms);
+
+ var layer = new OpenLayers.Layer("foo");
+ map.addLayer(layer);
+
+ map.zoomToExtent(new OpenLayers.Bounds(-50,-50,50,50));
+
+ //onscreen feature
+ var feature1 = new OpenLayers.Feature(layer,
+ new OpenLayers.LonLat(0,0));
+ t.ok( feature1.onScreen(), "feature knows it's onscreen" );
+
+ //onscreen feature
+ var feature2 = new OpenLayers.Feature(layer,
+ new OpenLayers.LonLat(100,100));
+ t.ok( !feature2.onScreen(), "feature knows it's offscreen" );
+ }
+
+ function test_Feature_createPopup_2(t) {
+ t.plan(11);
+
+ //no lonlat
+ var f = {
+ 'popup': null
+ };
+
+ var ret = OpenLayers.Feature.prototype.createPopup.apply(f, []);
+ t.ok((ret == f.popup) && (f.popup == null), "if no 'lonlat' set on feature, still returns reference to this.popup (though it is null)");
+
+
+
+ f.popupClass = OpenLayers.Class({
+ initialize: function(id, lonlat, size, contentHTML, anchor, closeBox) {
+ t.eq(id, "Campion_popup", "correctly generates new popup id from feature's id");
+ t.eq(lonlat, f.lonlat, "correctly passes feature's lonlat to popup constructor");
+ t.eq(size, f.data.popupSize, "correctly passes feature's data.popupSize to popup constructor");
+ t.eq(contentHTML, f.data.popupContentHTML, "correctly passes feature's data.popupContentHTML to popup constructor");
+ t.eq(anchor, g_ExpectedAnchor, "passes correct anchor to popup constructor");
+ t.eq(closeBox, g_CloseBox, "correctly relays closeBox argument to popup constructor");
+ }
+ });
+
+
+ //valid lonlat but no anchor
+ f.popup = null;
+
+ f.id = "Campion";
+ f.lonlat = {};
+ f.data = {
+ 'popupSize': {},
+ 'popupContentHTML': {}
+ };
+ g_ExpectedAnchor = null;
+ g_CloseBox = {};
+
+ ret = OpenLayers.Feature.prototype.createPopup.apply(f, [g_CloseBox]);
+
+ t.ok((ret == f.popup) && (f.popup != null), "a valid popup has been set and returned")
+ t.ok( f.popup.feature == f, "popup's 'feature' property correctly set");
+
+
+ //valid lonlat with anchor
+
+ f.marker = {
+ 'icon': {}
+ };
+ g_ExpectedAnchor = f.marker.icon;
+ ret = OpenLayers.Feature.prototype.createPopup.apply(f, [g_CloseBox]);
+ t.ok((ret == f.popup) && (f.popup != null), "a valid popup has been set and returned")
+ t.ok( f.popup.feature == f, "popup's 'feature' property correctly set");
+ }
+
+ function test_Feature_destroyPopup(t) {
+ t.plan(2);
+
+ var f = {
+ 'popup': {
+ 'feature': {},
+ 'destroy': function() {
+ t.ok(true, "default destroyPopup() calls popup.destroy");
+ }
+ }
+ };
+
+ OpenLayers.Feature.prototype.destroyPopup.apply(f, []);
+ t.ok(f.popup == null, "popup property nullified on destroy");
+ }
+
+ </script>
+</head>
+<body>
+ <div id="map" style="width: 500px; height: 300px;"></div>
+</body>
+</html>