166 lines
4.8 KiB
HTML
166 lines
4.8 KiB
HTML
<!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>
|