Bug 1647556 - Add some WPTs for testing how to treat invisible leading and trailing white-spaces in block element r=m_kato

This adds some WPTs for testing how to treat invisible leading and/or trailing
white-spaces in block elements.  I think that they should be removed as far
as possible because they may become visible suddenly if browsers fail to handle
them with their bugs.  However, it's acceptable if the result keeps white-
spaces as invisible.  Therefore, this makes some new tests allow multiple
results.

Differential Revision: https://phabricator.services.mozilla.com/D82268
This commit is contained in:
Masayuki Nakano 2020-07-06 02:36:24 +00:00
parent b3bf2ee99f
commit 91d82d7cbf
12 changed files with 365 additions and 7 deletions

View File

@ -694,3 +694,13 @@
[[["delete",""\]\] "<div>foo</div><!-- comment --><div>[\]bar</div>" compare innerHTML]
expected: FAIL
[[["delete",""\]\] "<div> a[\]bc</div>" compare innerHTML]
expected: FAIL
[[["delete",""\]\] "<div>abc </div> <div> [\]def</div>" compare innerHTML]
expected: FAIL
[[["delete",""\]\] "<div> a[\]bc</div>" compare innerHTML]
expected: FAIL

View File

@ -589,3 +589,34 @@
[[["forwarddelete",""\]\] "<ol><li>foo[<li>\]bar</ol>" compare innerHTML]
expected: FAIL
[[["forwarddelete",""\]\] "<div>abc [\] </div>" compare innerHTML]
expected: FAIL
[[["forwarddelete",""\]\] "<div>abc [\] </div><div> def</div>" compare innerHTML]
expected: FAIL
[[["forwarddelete",""\]\] "<div>abc [\] </div><div>def</div>" compare innerHTML]
expected: FAIL
[[["forwarddelete",""\]\] "<div>abc[\] </div><div>def</div>" compare innerHTML]
expected: FAIL
[[["forwarddelete",""\]\] "<div>ab[\]c </div>" compare innerHTML]
expected: FAIL
[[["forwarddelete",""\]\] "<div>abc[\] </div><div> def</div>" compare innerHTML]
expected: FAIL
[[["forwarddelete",""\]\] "<div>ab[\]c </div>" compare innerHTML]
expected: FAIL
[[["forwarddelete",""\]\] "<div>abc[\] </div><div>def</div>" compare innerHTML]
expected: FAIL
[[["forwarddelete",""\]\] "<div>abc[\] </div> <div> def</div>" compare innerHTML]
expected: FAIL
[[["forwarddelete",""\]\] "<div>abc[\] </div>" compare innerHTML]
expected: FAIL

View File

@ -44,3 +44,15 @@
[[["insertlinebreak",""\]\] "<table><tr><td>[foo<td>bar\]<tr><td>baz<td>quz</table>" compare innerHTML]
expected: FAIL
[[["insertlinebreak",""\]\] "<div>abc[\] </div>" compare innerHTML]
expected: FAIL
[[["insertlinebreak",""\]\] "<div>abc [\] </div>" compare innerHTML]
expected: FAIL
[[["insertlinebreak",""\]\] "<div> [\]abc</div>" compare innerHTML]
expected: FAIL
[[["insertlinebreak",""\]\] "<div> [\] abc</div>" compare innerHTML]
expected: FAIL

View File

@ -387,3 +387,19 @@
[[["defaultparagraphseparator","p"\],["insertparagraph",""\]\] "<ol><li class=a id=x><p class=b id=y>foo[\]bar</ol>" compare innerHTML]
expected: FAIL
[[["defaultparagraphseparator","div"\],["insertparagraph",""\]\] "<div> [\]abc</div>" compare innerHTML]
expected: FAIL
[[["defaultparagraphseparator","div"\],["insertparagraph",""\]\] "<div>abc[\] </div>" compare innerHTML]
expected: FAIL
[[["defaultparagraphseparator","div"\],["insertparagraph",""\]\] "<div> [\] abc</div>" compare innerHTML]
expected: FAIL
[[["defaultparagraphseparator","div"\],["insertparagraph",""\]\] "<div>abc [\] </div>" compare innerHTML]
expected: FAIL
[[["defaultparagraphseparator","div"\],["insertparagraph",""\]\] "<div>abc[\] </div>" compare innerHTML]
expected: FAIL

View File

@ -335,3 +335,21 @@
[[["stylewithcss","false"\],["inserttext","a"\]\] "[foo<font size=3><sub>bar\]</sub></font>baz" compare innerHTML]
expected: FAIL
[[["inserttext"," "\]\] "<div> [\]abc</div>" compare innerHTML]
expected: FAIL
[[["inserttext"," "\]\] "<div> [\] abc</div>" compare innerHTML]
expected: FAIL
[[["inserttext"," "\]\] "<div> [\]abc</div>" compare innerHTML]
expected: FAIL
[[["inserttext"," "\]\] "<div>abc[\] </div>" compare innerHTML]
expected: FAIL
[[["inserttext"," "\]\] "<div>abc[\] </div>" compare innerHTML]
expected: FAIL
[[["inserttext"," "\]\] "<div>abc [\] </div>" compare innerHTML]
expected: FAIL

View File

@ -85,6 +85,13 @@ matches the expected HTML provided here. As on line 1, the characters []{}
expected to be in the HTML. However, on this line they don't affect the test's
processing -- there are no tests of what the final selection is.
This can be array of string if there are some acceptable cases. However,
array shouldn't be used as far as possible because WPT checks compatibility
between browsers. So, this should be used when:
- There are some different behaviors in edge cases.
- There are some differences which are not related to the test.
## Line 4: expected return values ##
["foo[bar]baz",

View File

@ -2494,5 +2494,65 @@ var browserTests = [
[["delete",""]],
"<div>foobar</div>",
[true],
{"delete":[false,false,"",false,false,""]}]
{"delete":[false,false,"",false,false,""]}],
["<div> a[]bc</div>",
[["delete",""]],
"<div>bc</div>",
[true],
{"delete":[false,false,"",false,false,""]}],
["<div> a[]bc</div>",
[["delete",""]],
"<div>bc</div>",
[true],
{"delete":[false,false,"",false,false,""]}],
["<div> []abc</div>",
[["delete",""]],
"<div> abc</div>",
[true],
{"delete":[false,false,"",false,false,""]}],
["<div> [] abc</div>",
[["delete",""]],
"<div> abc</div>",
[true],
{"delete":[false,false,"",false,false,""]}],
["<div>abc</div><div> []def</div>",
[["delete",""]],
"<div>abcdef</div>",
[true],
{"delete":[false,false,"",false,false,""]}],
["<div>abc</div><div> [] def</div>",
[["delete",""]],
"<div>abcdef</div>",
[true],
{"delete":[false,false,"",false,false,""]}],
["<div>abc</div><div> []def</div>",
[["delete",""]],
"<div>abcdef</div>",
[true],
{"delete":[false,false,"",false,false,""]}],
["<div>abc </div><div>[]def</div>",
[["delete",""]],
"<div>abcdef</div>",
[true],
{"delete":[false,false,"",false,false,""]}],
["<div>abc </div><div>[]def</div>",
[["delete",""]],
"<div>abcdef</div>",
[true],
{"delete":[false,false,"",false,false,""]}],
["<div>abc </div><div> []def</div>",
[["delete",""]],
"<div>abcdef</div>",
[true],
{"delete":[false,false,"",false,false,""]}],
["<div>abc </div><div> [] def</div>",
[["delete",""]],
"<div>abcdef</div>",
[true],
{"delete":[false,false,"",false,false,""]}],
["<div>abc </div> <div> []def</div>",
[["delete",""]],
"<div>abcdef</div>",
[true],
{"delete":[false,false,"",false,false,""]}],
]

View File

@ -2379,5 +2379,65 @@ var browserTests = [
[["forwarddelete",""]],
"<div>foobar</div>",
[true],
{"forwarddelete":[false,false,"",false,false,""]}]
{"forwarddelete":[false,false,"",false,false,""]}],
["<div>ab[]c </div>",
[["forwarddelete",""]],
"<div>ab</div>",
[true],
{"forwarddelete":[false,false,"",false,false,""]}],
["<div>ab[]c </div>",
[["forwarddelete",""]],
"<div>ab</div>",
[true],
{"forwarddelete":[false,false,"",false,false,""]}],
["<div>abc[] </div>",
[["forwarddelete",""]],
"<div>abc </div>",
[true],
{"forwarddelete":[false,false,"",false,false,""]}],
["<div>abc [] </div>",
[["forwarddelete",""]],
"<div>abc </div>",
[true],
{"forwarddelete":[false,false,"",false,false,""]}],
["<div>abc[] </div><div>def</div>",
[["forwarddelete",""]],
"<div>abcdef</div>",
[true],
{"forwarddelete":[false,false,"",false,false,""]}],
["<div>abc[] </div><div>def</div>",
[["forwarddelete",""]],
"<div>abcdef</div>",
[true],
{"forwarddelete":[false,false,"",false,false,""]}],
["<div>abc [] </div><div>def</div>",
[["forwarddelete",""]],
"<div>abcdef</div>",
[true],
{"forwarddelete":[false,false,"",false,false,""]}],
["<div>abc[]</div><div> def</div>",
[["forwarddelete",""]],
"<div>abcdef</div>",
[true],
{"forwarddelete":[false,false,"",false,false,""]}],
["<div>abc[]</div><div> def</div>",
[["forwarddelete",""]],
"<div>abcdef</div>",
[true],
{"forwarddelete":[false,false,"",false,false,""]}],
["<div>abc[] </div><div> def</div>",
[["forwarddelete",""]],
"<div>abcdef</div>",
[true],
{"forwarddelete":[false,false,"",false,false,""]}],
["<div>abc [] </div><div> def</div>",
[["forwarddelete",""]],
"<div>abcdef</div>",
[true],
{"forwarddelete":[false,false,"",false,false,""]}],
["<div>abc[] </div> <div> def</div>",
[["forwarddelete",""]],
"<div>abcdef</div>",
[true],
{"forwarddelete":[false,false,"",false,false,""]}],
]

View File

@ -834,5 +834,40 @@ var browserTests = [
[["insertlinebreak",""]],
"<div class=\"a\" id=\"x\"><p class=\"b\" id=\"y\">foo<br>{}bar</p></div>",
[true],
{"insertlinebreak":[false,false,"",false,false,""]}]
{"insertlinebreak":[false,false,"",false,false,""]}],
["<div>abc [] </div>",
[["insertlinebreak",""]],
"<div>abc<br><br></div>",
[true,true],
{"insertlinebreak":[false,false,"",false,false,""]}],
["<div>abc[] </div>",
[["insertlinebreak",""]],
"<div>abc<br><br></div>",
[true,true],
{"insertlinebreak":[false,false,"",false,false,""]}],
["<div>[] abc</div>",
[["insertlinebreak",""]],
["<div><br>abc</div>",
"<div><br> abc</div>"],
[true,true],
{"insertlinebreak":[false,false,"",false,false,""]}],
["<div>[] abc</div>",
[["insertlinebreak",""]],
["<div><br>abc</div>",
"<div><br> abc</div>"],
[true,true],
{"insertlinebreak":[false,false,"",false,false,""]}],
["<div> [] abc</div>",
[["insertlinebreak",""]],
["<div><br>abc</div>",
"<div><br> abc</div>",
"<div><br> abc</div>"],
[true,true],
{"insertlinebreak":[false,false,"",false,false,""]}],
["<div> []abc</div>",
[["insertlinebreak",""]],
["<div><br>abc</div>",
"<div><br> abc</div>"],
[true,true],
{"insertlinebreak":[false,false,"",false,false,""]}],
]

View File

@ -1886,4 +1886,48 @@ var browserTests = [
"<div contenteditable=\"false\"><foo-bar contenteditable=\"\"><div>foo</div><div>bar</div></foo-bar></div>",
[true,true],
{"defaultparagraphseparator":[false,false,"div",false,false,"p"],"insertparagraph":[false,false,"",false,false,""]}],
["<div>abc[] </div>",
[["defaultparagraphseparator","div"],["insertparagraph",""]],
["<div>abc</div><div><br></div>",
"<div>abc </div><div><br></div>"],
[true,true],
{"insertparagraph":[false,false,"",false,false,""]}],
["<div>abc[] </div>",
[["defaultparagraphseparator","div"],["insertparagraph",""]],
["<div>abc</div><div><br></div>",
"<div>abc </div><div><br></div>"],
[true,true],
{"insertparagraph":[false,false,"",false,false,""]}],
["<div>abc [] </div>",
[["defaultparagraphseparator","div"],["insertparagraph",""]],
["<div>abc</div><div><br></div>",
"<div>abc </div><div><br></div>",
"<div>abc </div><div><br></div>"],
[true,true],
{"insertparagraph":[false,false,"",false,false,""]}],
["<div>[] abc</div>",
[["defaultparagraphseparator","div"],["insertparagraph",""]],
["<div><br></div><div>abc</div>",
"<div><br></div><div> abc</div>"],
[true,true],
{"insertparagraph":[false,false,"",false,false,""]}],
["<div>[] abc</div>",
[["defaultparagraphseparator","div"],["insertparagraph",""]],
["<div><br></div><div>abc</div>",
"<div><br></div><div> abc</div>"],
[true,true],
{"insertparagraph":[false,false,"",false,false,""]}],
["<div> [] abc</div>",
[["defaultparagraphseparator","div"],["insertparagraph",""]],
["<div><br></div><div>abc</div>",
"<div><br></div><div> abc</div>",
"<div><br></div><div> abc</div>"],
[true,true],
{"insertparagraph":[false,false,"",false,false,""]}],
["<div> []abc</div>",
[["defaultparagraphseparator","div"],["insertparagraph",""]],
["<div><br></div><div>abc</div>",
"<div><br></div><div> abc</div>"],
[true,true],
{"insertparagraph":[false,false,"",false,false,""]}],
]

View File

@ -1189,5 +1189,60 @@ var browserTests = [
[["inserttext","a"]],
"<blockquote><font color=\"blue\">a[]</font></blockquote>",
[true],
{"inserttext":[false,false,"",false,false,""]}]
{"inserttext":[false,false,"",false,false,""]}],
["<div>[] abc</div>",
[["inserttext"," "]],
"<div>&nbsp;abc</div>",
[true],
{"inserttext":[false,false,"",false,false,""]}],
["<div> []abc</div>",
[["inserttext"," "]],
"<div>&nbsp;abc</div>",
[true],
{"inserttext":[false,false,"",false,false,""]}],
["<div>[] abc</div>",
[["inserttext"," "]],
"<div>&nbsp;abc</div>",
[true],
{"inserttext":[false,false,"",false,false,""]}],
["<div> [] abc</div>",
[["inserttext"," "]],
"<div>&nbsp;abc</div>",
[true],
{"inserttext":[false,false,"",false,false,""]}],
["<div> []abc</div>",
[["inserttext"," "]],
"<div>&nbsp;abc</div>",
[true],
{"inserttext":[false,false,"",false,false,""]}],
["<div>abc[] </div>",
[["inserttext"," "]],
["<div>abc&nbsp;</div>",
"<div>abc <br></div>"],
[true],
{"inserttext":[false,false,"",false,false,""]}],
["<div>abc []</div>",
[["inserttext"," "]],
["<div>abc&nbsp;</div>",
"<div>abc <br></div>"],
[true],
{"inserttext":[false,false,"",false,false,""]}],
["<div>abc[] </div>",
[["inserttext"," "]],
["<div>abc&nbsp;</div>",
"<div>abc <br></div>"],
[true],
{"inserttext":[false,false,"",false,false,""]}],
["<div>abc [] </div>",
[["inserttext"," "]],
["<div>abc&nbsp;</div>",
"<div>abc <br></div>"],
[true],
{"inserttext":[false,false,"",false,false,""]}],
["<div>abc []</div>",
[["inserttext"," "]],
["<div>abc&nbsp;</div>",
"<div>abc <br></div>"],
[true],
{"inserttext":[false,false,"",false,false,""]}],
]

View File

@ -5667,9 +5667,19 @@ function runConformanceTest(browserTest) {
subsetTest(test, function() {
assert_equals(exception, null, "Setup must not throw an exception");
if (Array.isArray(browserTest[2])) {
var expectedInnerHTMLArray = [];
browserTest[2].forEach(function (expectedInnerHTML) {
expectedInnerHTMLArray.push(expectedInnerHTML.replace(/[\[\]{}]/g, ""));
});
assert_in_array(testDiv.innerHTML,
expectedInnerHTMLArray,
"Unexpected innerHTML (after normalizing inline style)");
} else {
assert_equals(testDiv.innerHTML,
browserTest[2].replace(/[\[\]{}]/g, ""),
"Unexpected innerHTML (after normalizing inline style)");
}
}, testName + " compare innerHTML");
for (var command in expectedQueryResults) {