summaryrefslogtreecommitdiffstats
path: root/devtools/client/shared/test/browser_inplace-editor-02.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/shared/test/browser_inplace-editor-02.js')
-rw-r--r--devtools/client/shared/test/browser_inplace-editor-02.js71
1 files changed, 71 insertions, 0 deletions
diff --git a/devtools/client/shared/test/browser_inplace-editor-02.js b/devtools/client/shared/test/browser_inplace-editor-02.js
new file mode 100644
index 000000000..811c30123
--- /dev/null
+++ b/devtools/client/shared/test/browser_inplace-editor-02.js
@@ -0,0 +1,71 @@
+/* vim: set ts=2 et sw=2 tw=80: */
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+/* import-globals-from helper_inplace_editor.js */
+
+"use strict";
+
+loadHelperScript("helper_inplace_editor.js");
+
+// Test that the trimOutput option for the inplace editor works correctly.
+
+add_task(function* () {
+ yield addTab("data:text/html;charset=utf-8,inline editor tests");
+ let [host, , doc] = yield createHost();
+
+ yield testNonTrimmed(doc);
+ yield testTrimmed(doc);
+
+ host.destroy();
+ gBrowser.removeCurrentTab();
+});
+
+function testNonTrimmed(doc) {
+ info("Testing the trimOutput=false option");
+ let def = defer();
+
+ let initial = "\nMultiple\nLines\n";
+ let changed = " \nMultiple\nLines\n with more whitespace ";
+ createInplaceEditorAndClick({
+ trimOutput: false,
+ multiline: true,
+ initial: initial,
+ start: function (editor) {
+ is(editor.input.value, initial, "Explicit initial value should be used.");
+ editor.input.value = changed;
+ EventUtils.sendKey("return");
+ },
+ done: onDone(changed, true, def)
+ }, doc);
+
+ return def.promise;
+}
+
+function testTrimmed(doc) {
+ info("Testing the trimOutput=true option (default value)");
+ let def = defer();
+
+ let initial = "\nMultiple\nLines\n";
+ let changed = " \nMultiple\nLines\n with more whitespace ";
+ createInplaceEditorAndClick({
+ initial: initial,
+ multiline: true,
+ start: function (editor) {
+ is(editor.input.value, initial, "Explicit initial value should be used.");
+ editor.input.value = changed;
+ EventUtils.sendKey("return");
+ },
+ done: onDone(changed.trim(), true, def)
+ }, doc);
+
+ return def.promise;
+}
+
+function onDone(value, isCommit, def) {
+ return function (actualValue, actualCommit) {
+ info("Inplace-editor's done callback executed, checking its state");
+ is(actualValue, value, "The value is correct");
+ is(actualCommit, isCommit, "The commit boolean is correct");
+ def.resolve();
+ };
+}