Index: third_party/WebKit/LayoutTests/imported/wpt/editing/other/restoration.html |
diff --git a/third_party/WebKit/LayoutTests/imported/wpt/editing/other/restoration.html b/third_party/WebKit/LayoutTests/imported/wpt/editing/other/restoration.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..4c53008b41027c4e11734dea068a57ea0e7283db |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/imported/wpt/editing/other/restoration.html |
@@ -0,0 +1,90 @@ |
+<!DOCTYPE html> |
+<meta charset=utf-8> |
+<title>Restoration of style tests</title> |
+<!-- |
+No spec, based on: https://bugzilla.mozilla.org/show_bug.cgi?id=1250805 |
+If the user presses Ctrl+B and then hits Enter and then types text, the text |
+should still be bold. Hitting Enter shouldn't make it forget. And so too for |
+other commands. |
+--> |
+<script src=/resources/testharness.js></script> |
+<script src=/resources/testharnessreport.js></script> |
+<div contenteditable></div> |
+<script> |
+var div = document.querySelector("div"); |
+ |
+function doTestInner(cmd, param, startBold) { |
+ div.innerHTML = startBold ? "<b>foo</b>bar" : "foobar"; |
+ getSelection().collapse(startBold ? div.firstChild.firstChild |
+ : div.firstChild, 3); |
+ |
+ // Set/unset bold, then run command and see if it's still there |
+ assert_true(document.execCommand("bold", false, ""), |
+ "execCommand needs to return true for bold"); |
+ |
+ assert_true(document.execCommand(cmd, false, param), |
+ "execCommand needs to return true for " + cmd + " " + param); |
+ |
+ assert_equals(document.queryCommandState("bold"), !startBold, |
+ "bold state"); |
+ |
+ assert_true(document.execCommand("inserttext", false, "x"), |
+ "execCommand needs to return true for inserttext x"); |
+ |
+ // Find the new text node and check that it's actually bold (or not) |
+ var node = div; |
+ while (node) { |
+ if (node.nodeType == Node.TEXT_NODE && node.nodeValue.indexOf("x") != -1) { |
+ assert_in_array(getComputedStyle(node.parentNode).fontWeight, |
+ !startBold ? ["700", "bold"] : ["400", "normal"], |
+ "font-weight"); |
+ return; |
+ } |
+ if (node.firstChild) { |
+ node = node.firstChild; |
+ continue; |
+ } |
+ while (node != div && !node.nextSibling) { |
+ node = node.parentNode; |
+ } |
+ if (node == div) { |
+ assert_unreached("x not found!"); |
+ break; |
+ } |
+ node = node.nextSibling; |
+ } |
+} |
+ |
+function doTest(cmd, param) { |
+ if (param === undefined) { |
+ param = ""; |
+ } |
+ |
+ test(function() { |
+ doTestInner(cmd, param, true); |
+ }, cmd + " " + param + " starting bold"); |
+ |
+ test(function() { |
+ doTestInner(cmd, param, false); |
+ }, cmd + " " + param + " starting not bold"); |
+} |
+ |
+doTest("insertparagraph"); |
+doTest("insertlinebreak"); |
+doTest("delete"); |
+doTest("forwarddelete"); |
+doTest("insertorderedlist"); |
+doTest("insertunorderedlist"); |
+doTest("indent"); |
+// Outdent does nothing here, but should be harmless. |
+doTest("outdent"); |
+doTest("justifyleft"); |
+doTest("justifyright"); |
+doTest("justifycenter"); |
+doTest("justifyfull"); |
+doTest("formatblock", "div"); |
+doTest("formatblock", "blockquote"); |
+doTest("inserthorizontalrule"); |
+doTest("insertimage", "a"); |
+doTest("inserttext", "bar"); |
+</script> |