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

178 lines
6.6 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>doh.robot BorderContainer Test</title>
<style>
@import "../../../../util/doh/robot/robot.css";
</style>
<!-- required: dojo.js -->
<script type="text/javascript" src="../../../../dojo/dojo.js"
djConfig="isDebug: true"></script>
<!-- functions to help test -->
<script type="text/javascript" src="../../helpers.js"></script>
<script type="text/javascript" src="./borderContainerTestFunctions.js"></script>
<script type="text/javascript">
dojo.require("dijit.robotx");
dojo.ready(function(){
doh.robot.initRobot('../test_BorderContainer.html');
doh.register("mouse", [
{
name: "expand right pane",
timeout: 10000,
runTest: function(t){
var d = new doh.Deferred();
var oTop = dojo.position(dojo.byId("border2-top")),
oCenter = dojo.position(dojo.byId("border2-center")),
oRight = dojo.position(dojo.byId("border2-trailing")),
oBottom = dojo.position(dojo.byId("border2-bottom"));
// Drag slider to expand pane
var size = dojo.position("border2-trailing_splitter");
doh.robot.mouseMoveAt("border2-trailing_splitter", 500);
doh.robot.mousePress({left: true}, 500);
doh.robot.mouseMoveAt("border2-trailing_splitter", 500, 100,
size.w/2 + (dojo._isBodyLtr() ? -100 : 100), size.h/2);
doh.robot.mouseRelease({left: true}, 500);
doh.robot.sequence(d.getTestCallback(function(){
var nTop = dojo.position(dojo.byId("border2-top")),
nCenter = dojo.position(dojo.byId("border2-center")),
nRight = dojo.position(dojo.byId("border2-trailing")),
nBottom = dojo.position(dojo.byId("border2-bottom"));
doh.t(within(oRight.w + 100, nRight.w, 10), "right width went from " + oRight.w + " to " + nRight.w);
doh.t(within(oTop.w - 100, nTop.w, 10), "top width went from " + oTop.w + " to " + nTop.w);
doh.t(within(oCenter.w - 100, nCenter.w, 10), "center width went from " + oCenter.w + " to " + nCenter.w);
doh.t(within(oBottom.w - 100, nBottom.w, 10), "bottom width went from " + nBottom.w + " to " + nBottom.w);
}), 500);
return d;
}
},
{
name: "shrink bottom pane",
timeout: 10000,
runTest: function(t){
var d = new doh.Deferred();
var oTop = dojo.position(dojo.byId("border2-top")),
oCenter = dojo.position(dojo.byId("border2-center")),
oRight = dojo.position(dojo.byId("border2-trailing")),
oBottom = dojo.position(dojo.byId("border2-bottom"));
// Drag slider to shrink pane
var size = dojo.position("border2-bottom_splitter");
doh.robot.mouseMoveAt("border2-bottom_splitter", 500);
doh.robot.mousePress({left: true}, 500);
doh.robot.mouseMoveAt("border2-bottom_splitter", 500, 100, size.w/2, size.h/2 + 10);
doh.robot.mouseRelease({left: true}, 500);
doh.robot.sequence(d.getTestCallback(function(){
var nTop = dojo.position(dojo.byId("border2-top")),
nCenter = dojo.position(dojo.byId("border2-center")),
nRight = dojo.position(dojo.byId("border2-trailing")),
nBottom = dojo.position(dojo.byId("border2-bottom"));
doh.t(within(oBottom.h - 10, nBottom.h, 10), "bottom height went from " + oBottom.h + " to " + nBottom.h);
doh.t(within(oCenter.h + 10, nCenter.h, 10), "center height went from " + oCenter.h + " to " + nCenter.h);
}), 500);
return d;
}
}
]);
doh.register("keyboard", [
function setup(){
// Workaround FF4 bug where overflow:auto panes get focus even when
// they don't have a scrollbar, remove when
// https://bugzilla.mozilla.org/show_bug.cgi?id=616594 fixed
if(dojo.isFF == 4){
dojo.query(".dijitContentPane").style("overflow", "hidden");
}
},
{
name: "tabIndex",
timeout: 10000,
runTest: function(t){
var d = new doh.Deferred();
doh.robot.sequence(function(){
dojo.byId("toggleLeftButton").focus();
}, 500, 500);
// Tab into second BorderContainer, landing on link
doh.robot.keyPress(dojo.keys.TAB, 500, {});
doh.robot.sequence(d.getTestErrback(function(){
doh.is("a link", innerText(dojo.global.dijit.focus.curNode), "tabbed to link");
}), 500);
// Tab past ComboBox to get to splitter for bottom panel
doh.robot.keyPress(dojo.keys.TAB, 500, {});
doh.robot.keyPress(dojo.keys.TAB, 500, {});
doh.robot.sequence(d.getTestErrback(function(){
doh.is("border2-bottom_splitter", dojo.global.dijit.focus.curNode.id, "focus on bottom splitter");
}), 500);
// Tab to get to splitter for right panel
doh.robot.keyPress(dojo.keys.TAB, 500, {});
doh.robot.sequence(d.getTestErrback(function(){
doh.is("border2-trailing_splitter", dojo.global.dijit.focus.curNode.id, "focus on bottom splitter");
}), 500);
// tab out of BorderContainer, into the next one
doh.robot.keyPress(dojo.keys.TAB, 500, {});
doh.robot.sequence(d.getTestCallback(function(){
doh.is("a link", innerText(dojo.global.dijit.focus.curNode), "tabbed to link in next BC");
}), 500);
return d;
}
},
{
name: "expand/contract",
timeout: 10000,
runTest: function(t){
var d = new doh.Deferred();
var oSize, nSize;
// contract bottom pane
doh.robot.sequence(function(){
dojo.byId("border2-bottom_splitter").focus();
oSize = dojo.position("border2-bottom");
}, 500, 500);
doh.robot.keyPress(dojo.keys.DOWN_ARROW, 500, {});
doh.robot.sequence(d.getTestErrback(function(){
nSize = dojo.position("border2-bottom");
doh.t(nSize.h < oSize.h, "contracted bottom pane");
}), 500);
// expand trailing pane
doh.robot.sequence(function(){
dojo.byId("border2-trailing_splitter").focus();
oSize = dojo.position("border2-trailing");
}, 500, 500);
doh.robot.keyPress(dojo._isBodyLtr() ? dojo.keys.LEFT_ARROW : dojo.keys.RIGHT_ARROW, 500, {});
doh.robot.sequence(d.getTestCallback(function(){
nSize = dojo.position("border2-trailing");
doh.t(nSize.w > oSize.w, "expanded trailing pane");
}), 500);
return d;
}
}
]);
doh.run();
});
</script>
</head>
</html>