| Index: tests/try/web/cursor_position_test.dart
|
| diff --git a/tests/try/web/cursor_position_test.dart b/tests/try/web/cursor_position_test.dart
|
| deleted file mode 100644
|
| index 52ccb03d1a48340d8968c2dbb50b18a0ac5a5d41..0000000000000000000000000000000000000000
|
| --- a/tests/try/web/cursor_position_test.dart
|
| +++ /dev/null
|
| @@ -1,114 +0,0 @@
|
| -// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
|
| -// for details. All rights reserved. Use of this source code is governed by a
|
| -// BSD-style license that can be found in the LICENSE file.
|
| -
|
| -// Test that cursor positions are correctly updated after adding new content.
|
| -
|
| -import 'test_try.dart';
|
| -
|
| -void main() {
|
| - InteractionManager interaction = mockTryDartInteraction();
|
| -
|
| - TestCase twoLines =
|
| - new TestCase('Test adding two lines programmatically.', () {
|
| - clearEditorPaneWithoutNotifications();
|
| - mainEditorPane.appendText('\n\n');
|
| - Text text = mainEditorPane.firstChild;
|
| - window.getSelection().collapse(text, 1);
|
| - checkSelectionIsCollapsed(text, 1);
|
| - }, checkAtBeginningOfSecondLine);
|
| -
|
| - runTests(<TestCase>[
|
| - twoLines,
|
| -
|
| - new TestCase('Test adding a new text node.', () {
|
| - // This test relies on the previous test leaving two lines.
|
| - Text text = new Text('fisk');
|
| - window.getSelection().getRangeAt(0).insertNode(text);
|
| - window.getSelection().collapse(text, text.length);
|
| - checkSelectionIsCollapsed(text, text.length);
|
| - }, checkAtEndOfSecondLineWithFisk),
|
| -
|
| - twoLines,
|
| -
|
| - new TestCase('Test adding a new wrapped text node.', () {
|
| - // This test relies on the previous test leaving two lines.
|
| - Text text = new Text('fisk');
|
| - Node node = new SpanElement()..append(text);
|
| - window.getSelection().getRangeAt(0).insertNode(node);
|
| - window.getSelection().collapse(text, text.length);
|
| - checkSelectionIsCollapsed(text, text.length);
|
| - }, checkAtEndOfSecondLineWithFisk),
|
| -
|
| - new TestCase('Test adding a new line with mock key event.', () {
|
| - clearEditorPaneWithoutNotifications();
|
| - checkSelectionIsCollapsed(mainEditorPane, 0);
|
| - simulateEnterKeyDown(interaction);
|
| - }, checkAtBeginningOfSecondLine),
|
| -
|
| - new TestCase('Clear and presetup the test', () {
|
| - clearEditorPaneWithoutNotifications();
|
| - mainEditorPane.text = 'var greeting = "Hello, World!\n";';
|
| - }, () {
|
| - checkLineCount(2);
|
| - }),
|
| -
|
| - new TestCase('Test removing a split line', () {
|
| - mainEditorPane.nodes.first.nodes.last.remove();
|
| - }, () {
|
| - checkLineCount(1);
|
| - }),
|
| - ]);
|
| -}
|
| -
|
| -void simulateEnterKeyDown(InteractionManager interaction) {
|
| - interaction.onKeyUp(
|
| - new MockKeyboardEvent('keydown', keyCode: KeyCode.ENTER));
|
| -}
|
| -
|
| -void checkSelectionIsCollapsed(Node node, int offset) {
|
| - var selection = window.getSelection();
|
| - Expect.isTrue(selection.isCollapsed, 'selection.isCollapsed');
|
| - Expect.equals(node, selection.anchorNode, 'selection.anchorNode');
|
| - Expect.equals(offset, selection.anchorOffset, 'selection.anchorOffset');
|
| -}
|
| -
|
| -void checkLineCount(int expectedLineCount) {
|
| - Expect.equals(
|
| - expectedLineCount, mainEditorPane.nodes.length,
|
| - 'mainEditorPane.nodes.length');
|
| -}
|
| -
|
| -void checkAtBeginningOfSecondLine() {
|
| - checkLineCount(2);
|
| - checkSelectionIsCollapsed(mainEditorPane.nodes[1].firstChild, 0);
|
| -}
|
| -
|
| -void checkAtEndOfSecondLineWithFisk() {
|
| - checkLineCount(2);
|
| - SpanElement secondLine = mainEditorPane.nodes[1];
|
| - Text text = secondLine.firstChild.firstChild;
|
| - Expect.stringEquals('fisk', text.text);
|
| - Expect.equals(4, text.length);
|
| - Text newline = secondLine.firstChild.nextNode;
|
| - Expect.equals(newline, secondLine.lastChild);
|
| - /// Chrome and Firefox cannot agree on where to put the cursor. At the end
|
| - /// of [text] or at the beginning of [newline]. It's the same position.
|
| - if (window.getSelection().anchorOffset == 0) {
|
| - // Firefox.
|
| - checkSelectionIsCollapsed(newline, 0);
|
| - } else {
|
| - // Chrome.
|
| - checkSelectionIsCollapsed(text, 4);
|
| - }
|
| -}
|
| -
|
| -class MockKeyboardEvent extends KeyEvent {
|
| - final int keyCode;
|
| -
|
| - MockKeyboardEvent(String type, {int keyCode})
|
| - : this.keyCode = keyCode,
|
| - super.wrap(new KeyEvent(type, keyCode: keyCode));
|
| -
|
| - bool getModifierState(String keyArgument) => false;
|
| -}
|
|
|