256 lines
7.6 KiB
HTML
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>
|