<html> 
<head>
<script>
if (window.layoutTestController)
     layoutTestController.dumpEditingCallbacks();
</script>


<script>

function editingTest() {
    var start = document.getElementById("start");
    
    x = start.offsetLeft + 2;
    y = start.offsetTop + 2;
    
    eventSender.mouseMoveTo(x, y);
    eventSender.mouseDown();
    eventSender.mouseUp();
    eventSender.mouseDown();
    
    y = y + 30;
    
    eventSender.mouseMoveTo(x, y);
    eventSender.mouseUp();
    
    layoutTestController.execCommand("MoveBackward");
    layoutTestController.execCommand("MoveBackwardAndModifySelection");
    layoutTestController.execCommand("MoveDown");
    layoutTestController.execCommand("MoveDownAndModifySelection");
    layoutTestController.execCommand("MoveForward");
    layoutTestController.execCommand("MoveForwardAndModifySelection");
    layoutTestController.execCommand("MoveLeft");
    layoutTestController.execCommand("MoveLeftAndModifySelection");
    layoutTestController.execCommand("MoveRight");
    layoutTestController.execCommand("MoveRightAndModifySelection");
    layoutTestController.execCommand("MoveToBeginningOfDocument");
    layoutTestController.execCommand("MoveToBeginningOfLine");
    layoutTestController.execCommand("MoveToBeginningOfParagraph");
    layoutTestController.execCommand("MoveToEndOfDocument");
    layoutTestController.execCommand("MoveToEndOfLine");
    layoutTestController.execCommand("MoveToEndOfParagraph");
    layoutTestController.execCommand("MoveUp");
    layoutTestController.execCommand("MoveUpAndModifySelection");
    layoutTestController.execCommand("MoveWordBackward");
    layoutTestController.execCommand("MoveWordBackwardAndModifySelection");
    layoutTestController.execCommand("MoveWordForward");
    layoutTestController.execCommand("MoveWordForwardAndModifySelection");
    layoutTestController.execCommand("MoveWordLeft");
    layoutTestController.execCommand("MoveWordRight");
    layoutTestController.execCommand("MoveWordRightAndModifySelection");
    layoutTestController.execCommand("MoveWordLeftAndModifySelection");
    layoutTestController.execCommand("PageDown");
    layoutTestController.execCommand("PageUp");
    layoutTestController.execCommand("SelectLine");
    layoutTestController.execCommand("SelectParagraph");
    layoutTestController.execCommand("SelectWord");
}

</script>
</head>
<body style="overflow:hidden">
This tests whether certain NSResponder methods that should only operate on editable regions modify a selection that is not in an editable region.<br>
This is a para<span style="color:blue;" id="start">g</span>raph.<br>
Some text<br>
Some text<br>
Some text<br>
Some text<br>
This is a paragraph.
<script>
editingTest();
</script>
</html>
