| <html> |
| <head> |
| <script src="../../http/tests/inspector/inspector-test.js"></script> |
| <script src="editor-test.js"></script> |
| <script> |
| function test() |
| { |
| function testFunction(foo, bar) |
| { |
| someFunctionCall(bar); |
| var b = 42; |
| return a === 1 ? true : false; |
| } |
| |
| var textEditor = InspectorTest.createTestEditor(); |
| textEditor.overrideViewportForTest(0, undefined, 3); |
| textEditor.mimeType = "text/javascript"; |
| textEditor.setReadOnly(false); |
| textEditor.setText(testFunction.toString()); |
| textEditor.element.focus(); |
| |
| InspectorTest.addResult(textEditor.text()); |
| const wordJumpModifier = WebInspector.isMac() ? "altKey" : "ctrlKey"; |
| |
| function dumpEditorSelection() |
| { |
| var selection = textEditor.selection(); |
| if (selection.isEmpty()) { |
| var line = textEditor.line(selection.startLine); |
| InspectorTest.addResult(line.substring(0, selection.startColumn) + "|" + line.substring(selection.startColumn)); |
| } else { |
| InspectorTest.addResult(">>" + textEditor._textModel.copyRange(selection.normalize()) + "<<"); |
| } |
| return selection; |
| } |
| |
| function setCursorAtBeginning() |
| { |
| textEditor.setSelection(WebInspector.TextRange.createFromLocation(0, 0)); |
| } |
| |
| function setCursorAtEnd() |
| { |
| var lastLine = textEditor._textModel.linesCount - 1; |
| var lastColumn = textEditor._textModel.line(lastLine).length; |
| textEditor.setSelection(WebInspector.TextRange.createFromLocation(lastLine, lastColumn)); |
| } |
| |
| InspectorTest.runTestSuite([ |
| function testCtrlRightArrow(next) |
| { |
| setCursorAtBeginning(); |
| var selection = dumpEditorSelection(); |
| var oldSelection; |
| do { |
| oldSelection = selection; |
| eventSender.keyDown("rightArrow", [wordJumpModifier]); |
| selection = dumpEditorSelection(); |
| } while (selection.compareTo(oldSelection) !== 0); |
| next(); |
| }, |
| |
| function testCtrlLeftArrow(next) |
| { |
| setCursorAtEnd(); |
| var selection = dumpEditorSelection(); |
| var oldSelection; |
| do { |
| oldSelection = selection; |
| eventSender.keyDown("leftArrow", [wordJumpModifier]); |
| selection = dumpEditorSelection(); |
| } while (selection.compareTo(oldSelection) !== 0); |
| next(); |
| }, |
| |
| function testCtrlShiftRightArrow(next) |
| { |
| setCursorAtBeginning(); |
| var selection = dumpEditorSelection(); |
| var oldSelection; |
| do { |
| oldSelection = selection; |
| eventSender.keyDown("rightArrow", [wordJumpModifier, "shiftKey"]); |
| selection = dumpEditorSelection(); |
| } while (selection.collapseToEnd().compareTo(oldSelection.collapseToEnd()) !== 0); |
| next(); |
| }, |
| |
| function testCtrlShiftLeftArrow(next) |
| { |
| setCursorAtEnd(); |
| var selection = dumpEditorSelection(); |
| var oldSelection; |
| do { |
| oldSelection = selection; |
| eventSender.keyDown("leftArrow", [wordJumpModifier, "shiftKey"]); |
| selection = dumpEditorSelection(); |
| } while (selection.collapseToEnd().compareTo(oldSelection.collapseToEnd()) !== 0); |
| next(); |
| }, |
| |
| function testCtrlBackspace(next) |
| { |
| setCursorAtEnd(); |
| InspectorTest.addResult("==============="); |
| InspectorTest.addResult(textEditor.text()); |
| do { |
| eventSender.keyDown("\b", [wordJumpModifier]); |
| InspectorTest.addResult("==============="); |
| InspectorTest.addResult(textEditor.text() + "<<"); |
| } while (textEditor.text() !== ""); |
| textEditor.setText(testFunction.toString()); |
| next(); |
| } |
| ]); |
| |
| } |
| |
| </script> |
| </head> |
| |
| <body onload="runTest();"> |
| <p> |
| This test checks how text editor handles different ctrl-based movements, i.e. ctrl-left, ctrl-right, ctrl-shift-left, ctrl-backspace. |
| </p> |
| |
| </body> |
| </html> |