added to a map, using the resolutions/scales/etc. that were originally set, and also keeping ahold of all the new options set on the layer since we created it, like isBaseLayer, to correspond to behavior of Size.clone and the like. git-svn-id: http://svn.openlayers.org/trunk/openlayers@1662 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
186 lines
6.3 KiB
HTML
186 lines
6.3 KiB
HTML
<html>
|
|
<head>
|
|
<script src="../lib/OpenLayers.js"></script>
|
|
<script type="text/javascript"><!--
|
|
var layer;
|
|
|
|
function test_01_Layer_constructor (t) {
|
|
t.plan( 13 );
|
|
|
|
var options = { chicken: 151, foo: "bar", projection: "none" };
|
|
var layer = new OpenLayers.Layer('Test Layer', options);
|
|
|
|
t.ok( layer instanceof OpenLayers.Layer, "new OpenLayers.Layer returns object" );
|
|
t.eq( layer.CLASS_NAME, "OpenLayers.Layer", "CLASS_NAME variable set correctly");
|
|
|
|
t.eq( layer.name, "Test Layer", "layer.name is correct" );
|
|
t.ok( layer.id != null, "Layer is given an id");
|
|
t.ok( layer.projection, "none", "default layer projection correctly set");
|
|
t.ok( ((layer.chicken == 151) && (layer.foo == "bar")), "layer.options correctly set to Layer Object" );
|
|
t.ok( ((layer.options["chicken"] == 151) && (layer.options["foo"] == "bar")), "layer.options correctly backed up" );
|
|
|
|
options.chicken = 552;
|
|
|
|
t.eq( layer.options["chicken"], 151 , "layer.options correctly made fresh copy" );
|
|
|
|
t.eq( layer.isBaseLayer, false, "Default layer is not base layer" );
|
|
|
|
layer = new OpenLayers.Layer('Test Layer');
|
|
t.ok( layer instanceof OpenLayers.Layer, "new OpenLayers.Layer returns object" );
|
|
t.eq( layer.name, "Test Layer", "layer.name is correct" );
|
|
t.ok( layer.projection == null, "default layer projection correctly set");
|
|
t.ok( layer.options instanceof Object, "layer.options correctly initialized as a non-null Object" );
|
|
}
|
|
|
|
function test_02_Layer_clone (t) {
|
|
t.plan( 8 );
|
|
|
|
var mapone = new OpenLayers.Map('map');
|
|
var options = { chicken: 151, foo: "bar", maxResolution: "auto" };
|
|
var layer = new OpenLayers.Layer('Test Layer', options);
|
|
mapone.addLayer(layer);
|
|
|
|
// randomly assigned property
|
|
layer.chocolate = 5;
|
|
|
|
var clone = layer.clone();
|
|
|
|
t.ok( clone.map == null, "cloned layer has map property set to null")
|
|
|
|
var maptwo = new OpenLayers.Map('map2');
|
|
maptwo.addLayer(clone);
|
|
|
|
t.ok( clone instanceof OpenLayers.Layer, "new OpenLayers.Layer returns object" );
|
|
t.eq( clone.name, "Test Layer", "default clone.name is correct" );
|
|
t.ok( ((clone.options["chicken"] == 151) && (clone.options["foo"] == "bar")), "clone.options correctly set" );
|
|
t.eq(clone.chocolate, 5, "correctly copied randomly assigned property");
|
|
|
|
layer.addOptions({chicken:152});
|
|
t.eq(clone.options["chicken"], 151, "made a clean copy of options");
|
|
|
|
t.ok( (layer.maxResolution != clone.maxResolution), "maxresolution of clone reset to new map div");
|
|
t.ok( (layer.minResolution != clone.minResolution), "minresolution of clone reset to new map div");
|
|
|
|
}
|
|
|
|
function test_03_Layer_setName (t) {
|
|
|
|
t.plan( 1 );
|
|
|
|
layer = new OpenLayers.Layer('Test Layer');
|
|
layer.setName("chicken");
|
|
|
|
t.eq(layer.name, "chicken", "setName() works")
|
|
|
|
}
|
|
|
|
function test_04_Layer_addOptions (t) {
|
|
|
|
t.plan( 4 );
|
|
|
|
var options = { chicken: 151, foo: "bar" };
|
|
var layer = new OpenLayers.Layer('Test Layer', options);
|
|
|
|
layer.addOptions({bark:55, chicken: 171});
|
|
|
|
t.eq(layer.bark, 55, "addOptions() assigns new option correctly to Layer");
|
|
t.eq(layer.options.bark, 55, "addOptions() adds new option correctly to backup");
|
|
|
|
t.eq(layer.chicken, 171, "addOptions() overwrites option correctly to Layer");
|
|
t.eq(layer.options.chicken, 171, "addOptions() overwrites option correctly to backup");
|
|
|
|
}
|
|
|
|
function test_04_Layer_StandardOptionsAccessors (t) {
|
|
|
|
t.plan( 4 );
|
|
|
|
var projection = "chicken";
|
|
var maxExtent = new OpenLayers.Bounds(50,50,100,100);
|
|
var maxResolution = 1.5726;
|
|
var numZoomLevels = 11;
|
|
|
|
var options = { projection: projection,
|
|
maxExtent: maxExtent,
|
|
maxResolution: maxResolution,
|
|
numZoomLevels: numZoomLevels
|
|
};
|
|
|
|
var layer = new OpenLayers.Layer('Test Layer', options);
|
|
|
|
t.eq(layer.projection, projection, "projection set correctly");
|
|
t.ok(layer.maxExtent.equals(maxExtent), "maxExtent set correctly");
|
|
t.eq(layer.maxResolution, maxResolution, "maxResolution set correctly");
|
|
t.eq(layer.numZoomLevels, numZoomLevels, "numZoomLevels set correctly");
|
|
}
|
|
|
|
function test_05_Layer_visibility(t) {
|
|
|
|
t.plan(3)
|
|
|
|
var layer = new OpenLayers.Layer('Test Layer');
|
|
|
|
t.eq(layer.getVisibility(), true, "default for layer creation is visible");
|
|
|
|
layer.setVisibility(false);
|
|
t.eq(layer.getVisibility(), false, "setVisibility false works");
|
|
|
|
layer.setVisibility(true);
|
|
t.eq(layer.getVisibility(), true, "setVisibility true works");
|
|
|
|
}
|
|
|
|
|
|
function test_06_Layer_getZoomForResolution(t) {
|
|
|
|
t.plan(4);
|
|
|
|
var layer = new OpenLayers.Layer('Test Layer');
|
|
|
|
//make some dummy resolutions
|
|
layer.resolutions = [128, 64, 32, 16, 8, 4, 2];
|
|
|
|
t.eq(layer.getZoomForResolution(200), 0, "zoom all the way out");
|
|
t.eq(layer.getZoomForResolution(25), 2, "zoom in middle");
|
|
t.eq(layer.getZoomForResolution(3), 5, "zoom allmost all the way in");
|
|
t.eq(layer.getZoomForResolution(1), 6, "zoom all the way in");
|
|
|
|
}
|
|
|
|
|
|
/******
|
|
*
|
|
*
|
|
* HERE IS WHERE SOME TESTS SHOULD BE PUT TO CHECK ON THE LONLAT-PX TRANSLATION
|
|
* FUNCTIONS AND RESOLUTION AND GETEXTENT GETZOOMLEVEL, ETC
|
|
*
|
|
*
|
|
*/
|
|
|
|
|
|
function test_99_Layer_destroy (t) {
|
|
t.plan( 4 );
|
|
|
|
var map = new OpenLayers.Map('map');
|
|
|
|
layer = new OpenLayers.Layer('Test Layer');
|
|
|
|
map.addLayer(layer);
|
|
|
|
layer.destroy();
|
|
|
|
t.eq( layer.name, null, "layer.name is null after destroy" );
|
|
t.eq( layer.div, null, "layer.div is null after destroy" );
|
|
t.eq( layer.map, null, "layer.map is null after destroy" );
|
|
t.eq( layer.options, null, "layer.options is null after destroy" );
|
|
|
|
}
|
|
// -->
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<div id="map" style="width:500px;height:500px"></div>
|
|
<div id="map2" style="width:100px;height:100px"></div>
|
|
</body>
|
|
</html>
|