Files
openlayers/master/examples/_Container.html
Éric Lemoine 5d14b9e2d4 Updated
2013-02-20 10:38:25 +01:00

150 lines
5.0 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<title>Container</title>
<script type="text/javascript" src="../../dojo/dojo.js" data-dojo-config="isDebug: true"></script>
<script type="text/javascript">
dojo.require("doh.runner");
dojo.require("dijit._Widget");
dojo.require("dijit._Container");
dojo.require("dijit._Contained");
dojo.require("dojo.parser");
dojo.ready(function(){
dojo.declare("dijit.TestContainer",
[dijit._Widget, dijit._Container], { }
);
dojo.declare("dijit.TestContained",
[dijit._Widget, dijit._Contained], {}
);
doh.register("parse", function(){
dojo.parser.parse();
});
doh.register("dijit._Container",
[
{
name: "getChildren",
runTest: function(t){
console.log("getChildren test");
var c = dijit.byId("container");
var children = c.getChildren();
t.is(4, children.length);
t.is("zero", children[0].id);
t.is("one", children[1].id);
t.is("two", children[2].id);
t.is("three", children[3].id);
}
},
{
name: "_getSiblingOfChild",
runTest: function(t){
var c = dijit.byId("container");
var children = c.getChildren();
t.is("one", c._getSiblingOfChild(children[0], 1).id);
t.is("two", c._getSiblingOfChild(children[1], 1).id);
t.is("three", c._getSiblingOfChild(children[2], 1).id);
t.is(null, c._getSiblingOfChild(children[3], 1));
t.is(null, c._getSiblingOfChild(children[0], -1));
t.is("zero", c._getSiblingOfChild(children[1], -1).id);
t.is("one", c._getSiblingOfChild(children[2], -1).id);
t.is("two", c._getSiblingOfChild(children[3], -1).id);
}
},
{
name: "getIndexOfChild",
runTest: function(t){
var c = dijit.byId("container");
t.is(0, c.getIndexOfChild(dijit.byId("zero")));
t.is(1, c.getIndexOfChild(dijit.byId("one")));
t.is(2, c.getIndexOfChild(dijit.byId("two")));
t.is(3, c.getIndexOfChild(dijit.byId("three")));
t.is(-1, c.getIndexOfChild(dijit.byId("outside")));
t.is(-1, c.getIndexOfChild(dijit.byId("outsideCont")));
}
},
{
name: "getIndexInParent",
runTest: function(t){
t.is(0, dijit.byId("zero").getIndexInParent());
t.is(1, dijit.byId("one").getIndexInParent());
t.is(2, dijit.byId("two").getIndexInParent());
t.is(-1, dijit.byId("outsideCont").getIndexInParent());
}
},
{
name: "removeChild",
runTest: function(t){
var c = dijit.byId("container");
var children = c.getChildren();
t.is(4, children.length);
c.removeChild(dijit.byId("zero"));
c.removeChild(1); // should remove "two" - because zero is already removed
children = c.getChildren();
t.is(2, children.length);
t.is("one", children[0].id);
t.is("three", children[1].id);
}
},
{
name: "addChild",
runTest: function(t){
var c = dijit.byId("container");
// Add child at beginning
c.addChild(dijit.byId("zero"), 0);
children = c.getChildren();
t.is(3, children.length);
t.is("zero", children[0].id, "after addChild(zero), zero");
t.is("one", children[1].id, "after addChild(zero), one");
t.is("three", children[2].id, "after addChild(zero), three");
// Add child in middle
c.addChild(dijit.byId("two"), 2);
children = c.getChildren();
t.is(4, children.length);
t.is("zero", children[0].id, "after addChild(two), zero");
t.is("one", children[1].id, "after addChild(two), one");
t.is("two", children[2].id, "after addChild(two), two");
t.is("three", children[3].id, "after addChild(two), three");
// Add child at end
c.addChild(new dijit.TestContained({id: "four"}));
children = c.getChildren();
t.is(5, children.length);
t.is("zero", children[0].id, "after addChild(four), zero");
t.is("one", children[1].id, "after addChild(four), one");
t.is("two", children[2].id, "after addChild(four), two");
t.is("three", children[3].id, "after addChild(four), three");
t.is("four", children[4].id, "after addChild(four), three");
}
}
]
);
doh.run();
});
</script>
</head>
<body class="claro">
<div id="container" data-dojo-type="dijit.TestContainer">
<!-- comment just to make sure that numbering isn't thrown off -->
<div id="zero" data-dojo-type="dijit.TestContained"></div>
<div id="one" data-dojo-type="dijit.TestContained"></div>
<div id="two" data-dojo-type="dijit.TestContained"></div>
<div id="three" data-dojo-type="dijit._Widget"></div>
</div>
<div id="outside" data-dojo-type="dijit._Widget"></div>
<div id="outsideCont" data-dojo-type="dijit.TestContained"></div>
</body>
</html>