summaryrefslogtreecommitdiffstats
path: root/devtools/client/shared/sourceeditor/test/browser_editor_cursor.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/shared/sourceeditor/test/browser_editor_cursor.js')
-rw-r--r--devtools/client/shared/sourceeditor/test/browser_editor_cursor.js52
1 files changed, 52 insertions, 0 deletions
diff --git a/devtools/client/shared/sourceeditor/test/browser_editor_cursor.js b/devtools/client/shared/sourceeditor/test/browser_editor_cursor.js
new file mode 100644
index 0000000000..c4e71424d5
--- /dev/null
+++ b/devtools/client/shared/sourceeditor/test/browser_editor_cursor.js
@@ -0,0 +1,52 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+async function test() {
+ waitForExplicitFinish();
+ const { ed, win } = await setup();
+ ch(ed.getCursor(), { line: 0, ch: 0 }, "default cursor position is ok");
+ ed.setText("Hello.\nHow are you?");
+
+ ed.setCursor({ line: 1, ch: 5 });
+ ch(ed.getCursor(), { line: 1, ch: 5 }, "setCursor({ line, ch })");
+
+ ch(ed.getPosition(7), { line: 1, ch: 0 }, "getPosition(num)");
+ ch(ed.getPosition(7, 1)[0], { line: 1, ch: 0 }, "getPosition(num, num)[0]");
+ ch(ed.getPosition(7, 1)[1], { line: 0, ch: 1 }, "getPosition(num, num)[1]");
+
+ ch(ed.getOffset({ line: 1, ch: 0 }), 7, "getOffset(num)");
+ ch(
+ ed.getOffset({ line: 1, ch: 0 }, { line: 0, ch: 1 })[0],
+ 7,
+ "getOffset(num, num)[0]"
+ );
+ ch(
+ ed.getOffset({ line: 1, ch: 0 }, { line: 0, ch: 1 })[0],
+ 2,
+ "getOffset(num, num)[1]"
+ );
+
+ is(ed.getSelection(), "", "nothing is selected");
+ ed.setSelection({ line: 0, ch: 0 }, { line: 0, ch: 5 });
+ is(ed.getSelection(), "Hello", "setSelection");
+
+ ed.dropSelection();
+ is(ed.getSelection(), "", "dropSelection");
+
+ // Check that shift-click on a gutter selects the whole line (bug 919707)
+ const iframe = win.document.querySelector("iframe");
+ const gutter = iframe.contentWindow.document.querySelector(
+ ".CodeMirror-gutters"
+ );
+
+ EventUtils.sendMouseEvent(
+ { type: "mousedown", shiftKey: true },
+ gutter,
+ iframe.contentWindow
+ );
+ is(ed.getSelection(), "", "shift-click");
+
+ teardown(ed, win);
+}