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

256 lines
7.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 Dialog Mouse 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">
dojo.require("dijit.robotx");
dojo.ready(function(){
doh.robot.initRobot('../test_Dialog.html');
doh.register("dijit.Dialog mouse tests (cancel)",[
{
name: "open dialog",
timeout: 4000,
runTest: function(){
var d = new doh.Deferred();
var oldOnClick = dijit.byId("dialog1button").onClick;
dijit.byId("dialog1button").onClick = function(){
dijit.byId("dialog1").show().then(d.getTestCallback(function(){
doh.t(isVisible("dialog1"), "dialog 1 has been made visible");
doh.is("name", dojo.global.dijit.focus.curNode.id, "focus is on the first field");
}));
dijit.byId("dialog1button").onClick = oldOnClick;
};
// Open the dialog
doh.robot.mouseMoveAt("dialog1button", 1000);
doh.robot.mouseClick({left: true}, 1000);
return d;
}
},
{
name: "test that other controls on page can't be clicked",
timeout: 4000,
runTest: function(){
var d = new doh.Deferred();
doh.robot.mouseMoveAt("plainInput", 500);
doh.robot.mouseClick({left: true}, 1000);
doh.robot.sequence(d.getTestCallback(function(){
doh.t(isVisible("dialog1"), "dialog 1 still visible");
doh.isNot("plainInput", dojo.global.dijit.focus.curNode && dojo.global.dijit.focus.curNode.id, "plain input wasn't focused");
}), 1000);
return d;
}
},
{
name: "open date drop down",
timeout: 4000,
runTest: function(){
var d = new doh.Deferred();
onFocus(function(){
// Focus might first go to input, then to calendar, so wait for that
setTimeout(d.getTestCallback(function(){
var calDomNode = dojo.query(".dijitCalendarContainer");
doh.t(calDomNode.length == 1 && isVisible(calDomNode[0]), "calendar is being shown");
doh.t(dojo.isDescendant(dojo.global.dijit.focus.curNode, calDomNode[0]), "focus is on the calendar ");
}), 500);
});
doh.robot.mouseMoveAt(function(){ return dojo.query(".dijitArrowButton", dijit.byId("date").domNode)[0]; }, 500);
doh.robot.mouseClick({left: true}, 1000);
return d;
}
},
{
name: "close date drop down",
timeout: 4000,
runTest: function(){
var d = new doh.Deferred();
doh.robot.mouseMove(10, 10, 500);
doh.robot.mouseClick({left: true}, 1000);
doh.robot.sequence(d.getTestCallback(function(){
var calDomNode= dojo.query(".dijitCalendarContainer");
doh.t(calDomNode.length == 0 || isHidden(calDomNode[0]), "calendar has disappeared");
doh.t(isVisible("dialog1"), "dialog 1 wasn't closed");
}), 1000);
return d;
}
},
{
name: "cancel dialog",
timeout: 4000,
runTest: function(){
var d = new doh.Deferred();
onFocus(d.getTestCallback(function(node){
doh.t(isHidden("dialog1"), "dialog 1 was closed");
doh.is("dialog1button", node.id, "focus returned to button");
}));
var button = dojo.query("#dialog1 .dijitDialogCloseIcon")[0];
doh.robot.mouseMoveAt(button, 500);
doh.robot.mouseClick({left: true}, 1000);
return d;
}
}
]);
doh.register("dijit.Dialog mouse tests (submit)",[
{
name: "submit some data",
timeout: 15000,
setUp: function(){
dijit.byId("dialog1").reset();
},
runTest: function(){
var d = new doh.Deferred();
// Setup handler to catch submitted data
var data;
dojo.connect(dijit.byId("dialog1"), "execute", function(vals){
data = vals;
});
// Open the dialog
doh.robot.mouseMoveAt("dialog1button", 500, 1);
doh.robot.mouseClick({left: true}, 500);
// Enter some info
doh.robot.mouseMoveAt("name", 500, 1);
doh.robot.mouseClick({left: true}, 500);
doh.robot.typeKeys("Ted", 500, 600);
doh.robot.mouseMoveAt("loc", 500, 1);
doh.robot.mouseClick({left: true}, 500);
doh.robot.typeKeys("America", 500, 1400);
// Submit
doh.robot.mouseMoveAt("ok", 500, 1);
doh.robot.mouseClick({left: true}, 500);
doh.robot.sequence(d.getTestCallback(function(){
doh.t(isHidden("dialog1"), "dialog 1 was closed on submit");
doh.t(data, "got submit data");
doh.is("Ted", data.name, "Name");
doh.is("America", data.loc, "Location");
}), 1000);
return d;
}
}
]);
doh.register("dijit.Dialog mouse tests (unfocusable open button)", [
{
name: "open #1",
timeout: 10000,
runTest: function(){
var d = new doh.Deferred();
// Open the dialog
doh.robot.mouseMoveAt("SelfDestructDlgBtn2", 1000);
doh.robot.mouseClick({left: true}, 1000);
doh.robot.sequence(d.getTestCallback(function(){
doh.t(dijit.byId("SelfDestructDlg"), "dialog created");
doh.t(isVisible("SelfDestructDlgBtn2"), "dialog has been made visible");
doh.is("SelfDestructDlgInput", dojo.global.dijit.focus.curNode.id, "focus is on the first field");
}), 1000);
return d;
}
},
{
name: "close #1",
timeout: 10000,
runTest: function(){
var d = new doh.Deferred();
// Close the dialog
doh.robot.mouseMoveAt(function(){
return dojo.query("#SelfDestructDlg .dijitDialogCloseIcon")[0];
}, 1000);
doh.robot.mouseClick({left: true}, 1000);
doh.robot.sequence(d.getTestCallback(function(){
doh.f(dijit.byId("SelfDestructDlg"), "dialog destroyed");
doh.f(dojo.global.dijit.focus.curNode, "focus cleared");
}), 1000);
return d;
}
},
{
name: "open #2",
timeout: 10000,
runTest: function(){
var d = new doh.Deferred();
// Open the dialog
doh.robot.mouseMoveAt("SelfDestructDlgBtn2", 1000);
doh.robot.mouseClick({left: true}, 1000);
doh.robot.sequence(d.getTestCallback(function(){
doh.t(dijit.byId("SelfDestructDlg"), "dialog created");
doh.t(isVisible("SelfDestructDlgBtn2"), "dialog has been made visible");
doh.is("SelfDestructDlgInput", dojo.global.dijit.focus.curNode.id, "focus is on the first field");
}), 1000);
return d;
}
},
{
name: "close #2",
timeout: 10000,
runTest: function(){
var d = new doh.Deferred();
// Close the dialog
doh.robot.mouseMoveAt(function(){
return dojo.query("#SelfDestructDlg .dijitDialogCloseIcon")[0];
}, 1000);
doh.robot.mouseClick({left: true}, 1000);
doh.robot.sequence(d.getTestCallback(function(){
doh.f(dijit.byId("SelfDestructDlg"), "dialog destroyed");
doh.f(dojo.global.dijit.focus.curNode, "focus cleared");
}), 1000);
return d;
}
}
]);
doh.run();
});
</script>
</head>
</html>