summaryrefslogtreecommitdiffstats
path: root/devtools/client/inspector/markup/test/browser_markup_html_edit_undo-redo.js
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--devtools/client/inspector/markup/test/browser_markup_html_edit_undo-redo.js88
1 files changed, 88 insertions, 0 deletions
diff --git a/devtools/client/inspector/markup/test/browser_markup_html_edit_undo-redo.js b/devtools/client/inspector/markup/test/browser_markup_html_edit_undo-redo.js
new file mode 100644
index 0000000000..6f76d524d8
--- /dev/null
+++ b/devtools/client/inspector/markup/test/browser_markup_html_edit_undo-redo.js
@@ -0,0 +1,88 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+// Test that the undo/redo stack is correctly cleared when opening the HTML editor on a
+// new node. Bug 1327674.
+
+const DIV1_HTML = '<div id="d1">content1</div>';
+const DIV2_HTML = '<div id="d2">content2</div>';
+const DIV2_HTML_UPDATED = '<div id="d2">content2_updated</div>';
+
+const TEST_URL =
+ "data:text/html," +
+ "<!DOCTYPE html>" +
+ "<head><meta charset='utf-8' /></head>" +
+ "<body>" +
+ DIV1_HTML +
+ DIV2_HTML +
+ "</body>" +
+ "</html>";
+
+add_task(async function () {
+ const { inspector } = await openInspectorForURL(TEST_URL);
+
+ inspector.markup._frame.focus();
+
+ await selectNode("#d1", inspector);
+
+ info("Open the HTML editor on node #d1");
+ let onHtmlEditorCreated = once(inspector.markup, "begin-editing");
+ EventUtils.sendKey("F2", inspector.markup._frame.contentWindow);
+ await onHtmlEditorCreated;
+
+ ok(inspector.markup.htmlEditor._visible, "HTML Editor is visible");
+ is(
+ inspector.markup.htmlEditor.editor.getText(),
+ DIV1_HTML,
+ "The editor content for d1 is correct."
+ );
+
+ info("Hide the HTML editor for #d1");
+ let onEditorHidden = once(inspector.markup.htmlEditor, "popuphidden");
+ EventUtils.sendKey("ESCAPE", inspector.markup.htmlEditor.doc.defaultView);
+ await onEditorHidden;
+ ok(!inspector.markup.htmlEditor._visible, "HTML Editor is not visible");
+
+ await selectNode("#d2", inspector);
+
+ info("Open the HTML editor on node #d2");
+ onHtmlEditorCreated = once(inspector.markup, "begin-editing");
+ EventUtils.sendKey("F2", inspector.markup._frame.contentWindow);
+ await onHtmlEditorCreated;
+
+ ok(inspector.markup.htmlEditor._visible, "HTML Editor is visible");
+ is(
+ inspector.markup.htmlEditor.editor.getText(),
+ DIV2_HTML,
+ "The editor content for d2 is correct."
+ );
+
+ inspector.markup.htmlEditor.editor.setText(DIV2_HTML_UPDATED);
+ is(
+ inspector.markup.htmlEditor.editor.getText(),
+ DIV2_HTML_UPDATED,
+ "The editor content for d2 is updated."
+ );
+
+ inspector.markup.htmlEditor.editor.undo();
+ is(
+ inspector.markup.htmlEditor.editor.getText(),
+ DIV2_HTML,
+ "The editor content for d2 is reverted."
+ );
+
+ inspector.markup.htmlEditor.editor.undo();
+ is(
+ inspector.markup.htmlEditor.editor.getText(),
+ DIV2_HTML,
+ "The editor content for d2 has not been set to content1."
+ );
+
+ info("Hide the HTML editor for #d2");
+ onEditorHidden = once(inspector.markup.htmlEditor, "popuphidden");
+ EventUtils.sendKey("ESCAPE", inspector.markup.htmlEditor.doc.defaultView);
+ await onEditorHidden;
+ ok(!inspector.markup.htmlEditor._visible, "HTML Editor is not visible");
+});