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

314 lines
11 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 complex 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_complex.html');
doh.register("API", [
function initialConditions(){
checkBCpanes(dijit.byId("border1"));
}
]);
//test some basic functionality of the complex widgets to get a feel for whether they work inside the border container
doh.register("tabContainer", [
{
name: "tab2Selected",
runTest: function(t){
doh.t(dijit.byId("tab2").selected, "tab2 was not selected");
doh.f(dijit.byId("tab1").selected, "tab1 was selected");
doh.f(dijit.byId("tab3").selected, "tab3 was selected");
doh.f(dijit.byId("tab4").selected, "tab4 was selected");
doh.f(dijit.byId("tab5").selected, "tab5 was selected");
doh.f(dijit.byId("tab6").selected, "tab6 was selected");
}
},
{
name: "tabsCanBeShownWhenSelected_tab1",
timeout: 3000,
runTest: function(t){
var d = new doh.Deferred();
doh.robot.mouseMoveAt("mainTabContainer_tablist_tab1", 500, 1);
doh.robot.mouseClick({left:true}, 500);
doh.robot.sequence(d.getTestCallback(function(){
doh.is("mainTabContainer_tablist_tab1", dojo.global.dijit.focus.curNode.id, "current focus was not tab1");
doh.is("tab1", dijit.byId("mainTabContainer").selectedChildWidget.id, "Tab1 pane is not the selected pane");
doh.t(isVisible(dijit.byId("tab1")), "Tab1 is hidden");
doh.t(isHidden(dijit.byId("tab2")), "Tab2 is visible");
}), 1000);
return d;
}
},
{
name: "tabsCanBeShownWhenSelected_tab2",
timeout: 3000,
runTest: function(t){
var d = new doh.Deferred();
doh.robot.keyPress(dojo.keys.RIGHT_ARROW, 1000, {});
doh.robot.sequence(d.getTestCallback(function(){
doh.is("mainTabContainer_tablist_tab2", dojo.global.dijit.focus.curNode.id, "current focus was not tab2");
doh.is("tab2", dijit.byId("mainTabContainer").selectedChildWidget.id, "Tab2 pane is not the selected pane");
doh.t(isVisible(dijit.byId("tab2")), "Tab2 is hidden");
doh.t(isHidden(dijit.byId("tab1")), "Tab1 is visible");
}), 1000);
return d;
}
},
{
name: "tabsCanBeShownWhenSelected_tab3",
timeout: 3000,
runTest: function(t){
var d = new doh.Deferred();
doh.robot.keyPress(dojo.keys.RIGHT_ARROW, 1000, {});
doh.robot.sequence(d.getTestCallback(function(){
doh.is("mainTabContainer_tablist_tab3", dojo.global.dijit.focus.curNode.id, "current focus was not tab3");
doh.is("tab3", dijit.byId("mainTabContainer").selectedChildWidget.id, "Tab3 pane is not the selected pane");
doh.t(isVisible(dijit.byId("tab3")), "Tab3 is hidden");
doh.t(isHidden(dijit.byId("tab2")), "Tab2 is visible");
}), 1000);
return d;
}
},
{
name: "tabsCanBeShownWhenSelected_tab4",
timeout: 3000,
runTest: function(t){
var d = new doh.Deferred();
doh.robot.keyPress(dojo.keys.RIGHT_ARROW, 1000, {});
doh.robot.sequence(d.getTestCallback(function(){
doh.is("mainTabContainer_tablist_tab4", dojo.global.dijit.focus.curNode.id, "current focus was not tab4");
doh.is("tab4", dijit.byId("mainTabContainer").selectedChildWidget.id, "Tab4 pane is not the selected pane");
doh.t(isVisible(dijit.byId("tab4")), "Tab4 is hidden");
doh.t(isHidden(dijit.byId("tab3")), "Tab3 is visible");
}), 1000);
return d;
}
},
{
name: "tabsCanBeShownWhenSelected_tab5",
timeout: 3000,
runTest: function(t){
var d = new doh.Deferred();
doh.robot.keyPress(dojo.keys.RIGHT_ARROW, 1000, {});
doh.robot.sequence(d.getTestCallback(function(){
doh.is("mainTabContainer_tablist_tab5", dojo.global.dijit.focus.curNode.id, "current focus was not tab5");
doh.is("tab5", dijit.byId("mainTabContainer").selectedChildWidget.id, "Tab5 pane is not the selected pane");
doh.t(isVisible(dijit.byId("tab5")), "Tab5 is hidden");
doh.t(isHidden(dijit.byId("tab4")), "Tab4 is visible");
}), 1000);
return d;
}
},
{
name: "tabsCanBeShownWhenSelected_tab6",
timeout: 3000,
runTest: function(t){
var d = new doh.Deferred();
doh.robot.keyPress(dojo.keys.RIGHT_ARROW, 1000, {});
doh.robot.sequence(d.getTestCallback(function(){
doh.is("mainTabContainer_tablist_tab6", dojo.global.dijit.focus.curNode.id, "current focus was not tab6");
doh.is("tab6", dijit.byId("mainTabContainer").selectedChildWidget.id, "Tab6 pane is not the selected pane");
doh.t(isVisible(dijit.byId("tab6")), "Tab6 is hidden");
doh.t(isHidden(dijit.byId("tab5")), "Tab5 is visible");
}), 1000);
return d;
}
}
]);
doh.register("AccordionContainer", [
{
name: "pane1Selected",
runTest: function(t){
doh.t(dijit.byId("ap1").selected, "ap1 selected");
doh.f(dijit.byId("ap2").selected, "ap2 not selected");
doh.f(dijit.byId("ap3").selected, "ap3 not selected");
doh.t(isVisible(dijit.byId("ap1")), "ap1 is visible");
doh.t(isHidden(dijit.byId("ap2")), "ap2 is hidden");
doh.t(isHidden(dijit.byId("ap3")), "ap3 is hidden");
}
},
{
name: "focus ap1 title bar",
runTest: function(t){
dijit.byId("ap1_button").focusNode.focus();
}
},
{
name: "select ap2",
timeout: 3000,
runTest: function(t){
var d = new doh.Deferred();
// Connect to _hideChild() as a trick to tell when animation is finished
handle = dojo.connect(dijit.byId("ac1"), "_hideChild", function(){
setTimeout(d.getTestCallback(function(){
doh.is("ap2_button", dojo.global.dijit.focus.curNode.parentNode.id, "current focus was not ap2");
doh.is("ap2", dijit.byId("ac1").selectedChildWidget.id, "ap2 is not the selected pane");
doh.t(isVisible(dijit.byId("ap2")), "ap2 is visible");
doh.t(isHidden(dijit.byId("ap1")), "ap1 is hidden");
}), 0);
});
doh.robot.keyPress(dojo.keys.DOWN_ARROW, 1000, {});
return d;
},
tearDown: function(){
dojo.disconnect(handle);
}
},
{
name: "select ap3",
timeout: 3000,
runTest: function(t){
var d = new doh.Deferred();
// Connect to _hideChild() as a trick to tell when animation is finished
handle = dojo.connect(dijit.byId("ac1"), "_hideChild", function(){
setTimeout(d.getTestCallback(function(){
doh.is("ap3_button", dojo.global.dijit.focus.curNode.parentNode.id, "current focus was not ap3");
doh.is("ap3", dijit.byId("ac1").selectedChildWidget.id, "ap3 is not the selected pane");
doh.t(isVisible(dijit.byId("ap3")), "ap3 is visible");
doh.t(isHidden(dijit.byId("ap2")), "ap2 is hidden");
}), 0);
});
doh.robot.keyPress(dojo.keys.DOWN_ARROW, 1000, {});
return d;
},
tearDown: function(){
dojo.disconnect(handle);
}
},
{
name: "resize accordion",
timeout: 6000,
runTest: function(t){
var d = new doh.Deferred();
var accordion = dojo.position(dojo.byId("ac1"));
var centerPane = dojo.position(dojo.byId("mainCP"));
var centerPaneRight = centerPane.x + centerPane.w;
var filteringSelectWidth = dojo.position(dijit.byId("filteringSelect").domNode).w;
var move = filteringSelectWidth - centerPane.w + 30;
// Drag slider to shrink pane
var size = dojo.position("ac1_splitter");
doh.robot.mouseMoveAt("ac1_splitter", 0, 1);
doh.robot.mousePress({left: true}, 500);
doh.robot.mouseMoveAt("ac1_splitter", 500, 1, size.w/2-move, size.h/2);
doh.robot.sequence(function(){
var newCenterPane = dojo.position(dojo.byId("mainCP"));
var newCenterPaneRight = newCenterPane.x + newCenterPane.w;
// center could overlap right pane
var move2 = centerPaneRight - newCenterPaneRight;
doh.robot.mouseMoveAt("ac1_splitter", 500, 1, size.w/2-move2, size.h/2);
move += move2;
doh.robot.mouseRelease({left: true}, 500);
doh.robot.sequence(d.getTestCallback(function(){
// test that the margin box for the accordion pane grows the same size as the splitter moved
var newAccordion = dojo.position(dojo.byId("ac1"));
doh.is(newAccordion.w, accordion.w-move, 'old accordion w = ' + accordion.w + ', new w = ' + newAccordion.w);
// test that the center content got smaller by the same size that the splitter moved
var newCenterPane = dojo.position(dojo.byId("mainCP"));
var newCenterPaneRight = newCenterPane.x + newCenterPane.w;
doh.is(newCenterPane.w, centerPane.w+move-centerPaneRight+newCenterPaneRight, 'old center pane w = ' + centerPane.w + ', new w = ' + newCenterPane.w);
}), 500);
}, 500);
return d;
}
}
]);
var filteringSelect, handler;
doh.register("filteringSelect", [
{
name: "changeValue",
timeout: 10000,
runTest: function(t){
var d = new doh.Deferred();
filteringSelect = dijit.byId("filteringSelect");
handler = filteringSelect.connect(filteringSelect, "onChange", function(e){
d.callback(true);
});
filteringSelect.focus();
doh.robot.keyPress(dojo.keys.DOWN_ARROW, 1000, {});
doh.robot.keyPress(dojo.keys.DOWN_ARROW, 1000, {});
doh.robot.keyPress(dojo.keys.DOWN_ARROW, 500, {});
doh.robot.keyPress(dojo.keys.ENTER, 500, {});
return d;
},
tearDown: function(t){
filteringSelect.disconnect(handler);
}
}
]);
doh.register("editor", [
{
name: "changeValue",
timeout: 3000,
runTest: function(t){
var d = new doh.Deferred();
doh.robot.sequence(function(){
var editor = dijit.byId("editor1");
editor.setValue("<div id='myDiv'>This is my new text</div>");
}, 1000);
doh.robot.sequence(d.getTestCallback(function(){
var myDiv = dijit.byId("editor1").editNode.childNodes[0];
doh.is("myDiv", myDiv.id, "myDiv was not the first child node as expectd");
doh.t(isVisible(myDiv), "myDiv is visible");
}), 1000);
return d;
}
}
]);
doh.run();
});
</script>
</head>
</html>