3 <script src="../../../lib/OpenLayers.js"></script>
4 <script type="text/javascript">
7 function test_RootContainer_collectResetRoots(t) {
9 map = new OpenLayers.Map("map");
10 var layer1 = new OpenLayers.Layer.Vector("layer1");
11 var layer2 = new OpenLayers.Layer.Vector("layer2");
12 layer = new OpenLayers.Layer.Vector.RootContainer("layer_1_2", {
13 layers: [layer1, layer2]
16 // we cannot test this with a renderer that does not hava a rendererRoot
17 var plan = layer.renderer.rendererRoot ? 4 : 0;
23 var numRoots = layer.renderer.rendererRoot.childNodes.length;
25 // addLayers will call setMap() for layer, which will call collectRoots()
26 map.addLayers([layer1, layer2, layer]);
27 t.eq(layer.renderer.rendererRoot.childNodes.length, numRoots * 3, "layer has correct number of renderer roots");
28 t.eq(layer1.renderer.rendererRoot.childNodes.length, 0, "layer1 has no own renderer root");
31 t.eq(layer.renderer.rendererRoot.childNodes.length, numRoots, "roots removed from container");
32 t.eq(layer1.renderer.rendererRoot.childNodes.length, numRoots, "root re-added to original layer");
35 function test_RootContainer_getFeatureFromEvent(t) {
37 var map = new OpenLayers.Map("map");
38 var layer1 = new OpenLayers.Layer.Vector("layer1");
39 var layer2 = new OpenLayers.Layer.Vector("layer2");
40 layer = new OpenLayers.Layer.Vector.RootContainer("layer_1_2", {
41 layers: [layer1, layer2]
43 map.addLayers([layer1, layer2, layer]);
44 var feature1 = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(0,1));
45 var feature2 = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(1,0));
46 layer1.addFeatures(feature1);
47 layer2.addFeatures(feature2);
48 t.eq(layer.getFeatureFromEvent({
50 _featureId: feature1.id
52 }).id, feature1.id, "feature from layer1 found");
53 t.eq(layer.getFeatureFromEvent({srcElement: {
54 _featureId: feature2.id
55 }}).id, feature2.id, "feature from layer2 found");
61 <div id="map" style="width:500px;height:550px"></div>