Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1119)

Unified Diff: third_party/WebKit/LayoutTests/external/wpt/innerText/setter.html

Issue 2786903002: [innerText] Add more tests to setter.html. (Closed)
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | third_party/WebKit/LayoutTests/external/wpt/innerText/setter-expected.txt » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/LayoutTests/external/wpt/innerText/setter.html
diff --git a/third_party/WebKit/LayoutTests/external/wpt/innerText/setter.html b/third_party/WebKit/LayoutTests/external/wpt/innerText/setter.html
index b8ff0c9599fbcc07f469527aa870f427a279e895..2c47ff6274e8406a9e4adb07a6d12775ee169d0d 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/innerText/setter.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/innerText/setter.html
@@ -4,6 +4,10 @@
<script src="/resources/testharnessreport.js"></script>
<div id="container"></div>
<script>
+// As of March 2017, WebKit and Blink have inconsistent results depending on
+// rendered or not. setupTest() tests a rendered case, and setupTestDetached()
+// tests a not-rendered case.
+
function setupTest(context, plain) {
// context is either a string or an element node
if (typeof context === "string") {
@@ -16,34 +20,68 @@ function setupTest(context, plain) {
while (e && e.nodeType != Node.ELEMENT_NODE) {
e = e.nextSibling;
}
+ e.offsetWidth;
var oldChild = e.firstChild;
e.innerText = plain;
return [e, oldChild];
}
+
+function setupTestDetached(context, plain) {
+ var detachedContainer = document.createElement("div");
+ // context is either a string or an element node
+ if (typeof context === "string") {
+ detachedContainer.innerHTML = context;
+ } else {
+ detachedContainer.innerHTML = "";
+ detachedContainer.appendChild(context);
+ }
+ var e = detachedContainer.firstChild;
+ while (e && e.nodeType != Node.ELEMENT_NODE) {
+ e = e.nextSibling;
+ }
+ var oldChild = e.firstChild;
+ e.innerText = plain;
+ return [e, oldChild];
+}
+
+function assertNewSingleTextNode(newChild, expectedText, oldChild) {
+ assert_not_equals(newChild, null, "Should have a child");
+ assert_equals(newChild.nodeType, Node.TEXT_NODE, "Child should be a text node");
+ assert_equals(newChild.nextSibling, null, "Should have only one child");
+ assert_equals(newChild.data, expectedText);
+ assert_not_equals(newChild, oldChild, "Child should be a *new* text node");
+}
+
+function assertNoEmptyTextChild(parent) {
+ for (var child = parent.firstChild; child; child = child.nextSibling) {
+ if (child.nodeType === Node.TEXT_NODE) {
+ assert_not_equals(child.data, "", "Should not have empty text nodes");
+ }
+ }
+}
+
function testText(context, plain, expectedText, msg) {
test(function(){
var arr = setupTest(context, plain);
- var e = arr[0];
- var oldChild = arr[1];
- assert_not_equals(e.firstChild, null, "Should have a child");
- assert_equals(e.firstChild.nodeType, Node.TEXT_NODE, "Child should be a text node");
- assert_equals(e.firstChild.nextSibling, null, "Should have only one child");
- assert_equals(e.firstChild.data, expectedText);
- assert_not_equals(e.firstChild, oldChild, "Child should be a *new* text node");
+ assertNewSingleTextNode(arr[0].firstChild, expectedText, arr[1]);
}, msg);
+ test(function() {
+ var arr = setupTestDetached(context, plain);
+ assertNewSingleTextNode(arr[0].firstChild, expectedText, arr[1]);
+ }, msg + ", detached");
}
+
function testHTML(context, plain, expectedHTML, msg) {
test(function(){
var e = setupTest(context, plain)[0];
assert_equals(e.innerHTML, expectedHTML);
- var child = e.firstChild;
- while (child) {
- if (child.nodeType === Node.TEXT_NODE) {
- assert_not_equals(child.data, "", "Should not have empty text nodes");
- }
- child = child.nextSibling;
- }
+ assertNoEmptyTextChild(e);
}, msg);
+ test(function() {
+ var e = setupTestDetached(context, plain)[0];
+ assert_equals(e.innerHTML, expectedHTML);
+ assertNoEmptyTextChild(e);
+ }, msg + ", detached");
}
</script>
<script src="setter-tests.js"></script>
« no previous file with comments | « no previous file | third_party/WebKit/LayoutTests/external/wpt/innerText/setter-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698