This commit is contained in:
Éric Lemoine
2013-02-20 10:38:25 +01:00
parent 17c3936ab6
commit 5d14b9e2d4
1919 changed files with 559755 additions and 2588 deletions

View File

@@ -0,0 +1,165 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Dijit focus manager DOH Robot test</title>
<style>
@import "../../../../util/doh/robot/robot.css";
</style>
<!-- required: dojo.js -->
<script type="text/javascript" src="../../../../dojo/dojo.js"></script>
<script type="text/javascript">
dojo.require("dijit.robotx");
dojo.ready(function(){
doh.robot.initRobot('../test_FocusManager.html');
doh.register("Dijit focus manager low level tests", [
{
name: "set timer to save focus and selection",
timeout: 4000,
runTest: function(){
var d = new doh.Deferred();
doh.robot.sequence(function(){
dojo.byId("delay_save").focus();
}, 500);
doh.robot.keyPress(dojo.keys.ENTER, 500);
doh.robot.sequence(d.getTestCallback(function(){
// This is just here to tell DOH that test is finished
}), 500);
return d;
}
},
{
name: "focus textarea and select some text",
timeout: 8000,
runTest: function(){
var d = new doh.Deferred();
dojo.byId("textarea").focus();
// Position caret at " there!"
if(dojo.isMac){
doh.robot.keyPress(dojo.keys.LEFT_ARROW, 20, {meta: true});
}else{
doh.robot.keyPress(dojo.keys.HOME, 20, {});
}
for(var i=0; i<5; i++){
doh.robot.keyPress(dojo.keys.RIGHT_ARROW, 20, {});
}
// select " there"
for(i=0; i<6; i++){
doh.robot.keyPress(dojo.keys.RIGHT_ARROW, 20, {shift: true});
}
doh.robot.sequence(d.getTestCallback(function(){
// Wait for selection and focus to be copied
}), 3000);
return d;
}
},
{
name: "restore focus and selection",
timeout: 8000,
runTest: function(){
var d = new doh.Deferred();
// Focus somewhere else
doh.robot.sequence(function(){
dojo.byId("input1").focus();
}, 500);
// Press restore button
doh.robot.sequence(function(){
dojo.byId("restore").focus();
}, 500);
doh.robot.keyPress(dojo.keys.SPACE, 500);
//Move cursor to unselect the text
for(i=0; i<2; i++){
doh.robot.keyPress(dojo.keys.LEFT_ARROW, 20, {shift: false});
}
// Press restore button again, should restore previous selection.
doh.robot.sequence(function(){
dojo.byId("restore").focus();
}, 500);
doh.robot.keyPress(dojo.keys.SPACE, 500);
// Focus should have been moved back to textarea, and
// " there" should be selected through the focus restorel
// by deleting the selection
doh.robot.keyPress(dojo.keys.BACKSPACE, 500);
doh.robot.sequence(d.getTestCallback(function(){
// Check that focus was returned to the textarea
doh.t(dojo.global.dijit.focus.curNode, "curFocus defined");
doh.is("textarea", dojo.global.dijit.focus.curNode.id, "focused on textarea");
// And that " there" was selected then deleted
doh.is("hello!", dojo.byId("textarea").value);
}), 500);
return d;
}
},
{
name: "Test select text, clear, and restore",
timeout: 8000,
runTest: function(){
if(!dojo.isIE){ // IE only supports selecting form elements and the whole body from a plain non-Editor page, see the MSDN article on createTextRange
var d = new doh.Deferred();
//Select the text in the p tag.
var p = dojo.byId("selectableText");
dijit._editor.selection.selectElementChildren(p);
var value = dijit._editor.selection.getSelectedText();
value = dojo.trim(value);
try{
doh.assertEqual(
"This paragraph contains text to select for testing purposes.",
value, "Original Text Selection");
//Get the current focus, which saves the selections too.
var curFocus = dijit.getFocus();
//Clear current selection.
dijit._editor.selection.collapse(true);
//Check it's cleared.
value = dijit._editor.selection.getSelectedText();
doh.assertEqual("",value);
//Restore it and check again.
dijit.focus(curFocus);
value = dijit._editor.selection.getSelectedText();
doh.assertEqual(
"This paragraph contains text to select for testing purposes.",
value, "Restored Text Selection");
//Clear the selection, we're complete.
dijit._editor.selection.collapse(true);
d.callback(true);
}catch(e){
d.errback(e);
}
return d;
}
}
}
]);
doh.run();
});
</script>
</head>
</html>