Files
openlayers/tests/Control/Attribution.html
Tim Schaub d1cecf3be1 Adding an option to avoid duplicate attribution.
Thanks Marc Jansen for this nice contribution.  Without wanting
to gush, I think this should be a model contribution because:

 1. it is a simple change
 2. with a nice example that clearly demonstrates the benefit
 3. it includes tests!
 4. and Marc wrote a note to the dev list with links to the ticket

r = me (closes #2266)



git-svn-id: http://svn.openlayers.org/trunk/openlayers@9720 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
2009-10-06 18:46:06 +00:00

64 lines
3.0 KiB
HTML

<html>
<head>
<script src="../../lib/OpenLayers.js"></script>
<script type="text/javascript">
var map;
function test_Control_Attribution_constructor (t) {
t.plan( 2 );
control = new OpenLayers.Control.Attribution();
t.ok( control instanceof OpenLayers.Control.Attribution, "new OpenLayers.Control returns object" );
t.eq( control.displayClass, "olControlAttribution", "displayClass is correct" );
}
function test_Control_Attribution_setBaseLayer (t) {
t.plan(1);
map = new OpenLayers.Map("map");
map.addControl(control);
map.addLayer(new OpenLayers.Layer("name",{'attribution':'My layer!', isBaseLayer: true}));
map.addLayer(new OpenLayers.Layer("name",{'attribution':'My layer 2!', isBaseLayer: true}));
map.setBaseLayer(map.layers[1]);
t.eq(control.div.innerHTML, 'My layer 2!', "Attribution correct with changed base layer");
}
function test_Control_Attribution_draw (t) {
t.plan(3);
control = new OpenLayers.Control.Attribution();
map = new OpenLayers.Map("map");
map.addControl(control);
map.addLayer(new OpenLayers.Layer("name",{'attribution':'My layer!'}));
t.eq(control.div.innerHTML, 'My layer!', "Attribution correct with one layer.");
map.addLayer(new OpenLayers.Layer("name", {'attribution':'My layer 2!'}));
t.eq(control.div.innerHTML, 'My layer!, My layer 2!', "Attribution correct with two layers.");
control.separator = '|';
map.addLayer(new OpenLayers.Layer("name",{'attribution':'My layer 3!'}));
t.eq(control.div.innerHTML, 'My layer!|My layer 2!|My layer 3!', "Attribution correct with three layers and diff seperator.");
}
function test_Control_Attribution_Propertry_eliminateDuplicates(t) {
t.plan(3);
control = new OpenLayers.Control.Attribution();
map = new OpenLayers.Map("map");
map.addControl(control);
map.addLayer(new OpenLayers.Layer("Company A: 1",{'attribution':'company A'}));
map.addLayer(new OpenLayers.Layer("Company A: 2",{'attribution':'company A'}));
t.eq(control.div.innerHTML, 'company A, company A', "Attribution correct with two layers and eliminateDuplicates = false.");
control.destroy();
control = new OpenLayers.Control.Attribution({eliminateDuplicates:true});
map.addControl(control);
t.eq(control.div.innerHTML, 'company A', "Attribution correct with two layers and eliminateDuplicates = true.");
map.addLayer(new OpenLayers.Layer("Company B: 1",{'attribution':'company B'}));
map.addLayer(new OpenLayers.Layer("Company A: 3",{'attribution':'company A'}));
t.eq(control.div.innerHTML, 'company A, company B', "Attribution correct with four layers (3 with same attribution) and eliminateDuplicates = true.");
}
</script>
</head>
<body>
<div id="map" style="width: 1024px; height: 512px;"/>
</body>
</html>