From f290cacccddb1a8fd2eaf13c364f08a5ee7afe88 Mon Sep 17 00:00:00 2001 From: Jon Leighton Date: Fri, 17 Nov 2017 15:57:24 +0100 Subject: [PATCH] Refactor selection-start-end test Move assertions about the initial value of selection{Start,End} to their own tests. This ensures that when one of these assertions fails, it doesn't prevent other tests from being defined. Thus we have a clearer view of which tests are passing or failing, since all tests get defined regardless of which assertions fail. --- tests/wpt/metadata/MANIFEST.json | 2 +- .../selection-start-end.html.ini | 53 +++++++++++++++++-- .../selection-start-end.html | 18 +++---- 3 files changed, 57 insertions(+), 16 deletions(-) diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index e7636c5440d1..b052f787fdd6 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -542575,7 +542575,7 @@ "testharness" ], "html/semantics/forms/textfieldselection/selection-start-end.html": [ - "e38a79075e27780327f49e7ae9cadd2558165eac", + "3fd1c942f7ac3ed3097bbd1ec89db15fb0805476", "testharness" ], "html/semantics/forms/textfieldselection/selection-value-interactions.html": [ diff --git a/tests/wpt/metadata/html/semantics/forms/textfieldselection/selection-start-end.html.ini b/tests/wpt/metadata/html/semantics/forms/textfieldselection/selection-start-end.html.ini index 9947ba411b70..83d352f76fe1 100644 --- a/tests/wpt/metadata/html/semantics/forms/textfieldselection/selection-start-end.html.ini +++ b/tests/wpt/metadata/html/semantics/forms/textfieldselection/selection-start-end.html.ini @@ -1,17 +1,60 @@ [selection-start-end.html] type: testharness - [onselect should fire when selectionStart is changed] + expected: TIMEOUT + [Setting selectionStart to a value larger than selectionEnd should increase selectionEnd] expected: FAIL - [onselect should fire when selectionEnd is changed] + [Setting selectionEnd to a value smaller than selectionStart should decrease selectionStart] expected: FAIL - [Setting selectionStart to a value larger than selectionEnd should increase selectionEnd] + [selectionStart edge-case values] expected: FAIL - [Setting selectionEnd to a value smaller than selectionStart should decrease selectionStart] + [Initial .value set on textarea-appended should set selectionStart to end of value] expected: FAIL - [selectionStart edge-case values] + [Initial .value set on textarea-not-appended should set selectionStart to end of value] + expected: FAIL + + [Initial .value set on textarea-appended-prefocused should set selectionStart to end of value] + expected: FAIL + + [Initial .value set on textarea-not-appended-prefocused should set selectionStart to end of value] + expected: FAIL + + [onselect should fire when selectionStart is changed on textarea-appended] + expected: NOTRUN + + [onselect should fire when selectionStart is changed on textarea-not-appended] + expected: NOTRUN + + [onselect should fire when selectionStart is changed on textarea-appended-prefocused] + expected: NOTRUN + + [onselect should fire when selectionStart is changed on textarea-not-appended-prefocused] + expected: NOTRUN + + [onselect should fire when selectionEnd is changed on textarea-appended] + expected: NOTRUN + + [onselect should fire when selectionEnd is changed on textarea-not-appended] + expected: NOTRUN + + [onselect should fire when selectionEnd is changed on textarea-appended-prefocused] + expected: NOTRUN + + [onselect should fire when selectionEnd is changed on textarea-not-appended-prefocused] + expected: NOTRUN + + [Initial .value set on textarea-appended should set selectionEnd to end of value] + expected: FAIL + + [Initial .value set on textarea-not-appended should set selectionEnd to end of value] + expected: FAIL + + [Initial .value set on textarea-appended-prefocused should set selectionEnd to end of value] + expected: FAIL + + [Initial .value set on textarea-not-appended-prefocused should set selectionEnd to end of value] expected: FAIL diff --git a/tests/wpt/web-platform-tests/html/semantics/forms/textfieldselection/selection-start-end.html b/tests/wpt/web-platform-tests/html/semantics/forms/textfieldselection/selection-start-end.html index 0638380bf1d3..17fd28c2ef66 100644 --- a/tests/wpt/web-platform-tests/html/semantics/forms/textfieldselection/selection-start-end.html +++ b/tests/wpt/web-platform-tests/html/semantics/forms/textfieldselection/selection-start-end.html @@ -59,10 +59,16 @@ assert_equals(testValue.length, 10); }, "Sanity check for testValue length; if this fails, variou absolute offsets in the test below need to be adjusted to be less than testValue.length"); + for (let prop of ["selectionStart", "selectionEnd"]) { + for (let el of createTestElements(testValue)) { + test(function() { + assert_equals(el.selectionStart, testValue.length); + }, `Initial .value set on ${el.id} should set ${prop} to end of value`); + } + } + test(function() { for (let el of createTestElements(testValue)) { - assert_equals(el.selectionStart, testValue.length, - `Initial .value set on ${el.id} should set selectionStart to end of value`); var t = async_test(`onselect should fire when selectionStart is changed on ${el.id}`); el.onselect = t.step_func_done(function(e) { assert_equals(e.type, "select"); @@ -74,8 +80,6 @@ test(function() { for (let el of createTestElements(testValue)) { - assert_equals(el.selectionEnd, testValue.length, - `Initial .value set on ${el.id} should set selectionEnd to end of value`); var t = async_test(`onselect should fire when selectionEnd is changed on ${el.id}`); el.onselect = t.step_func_done(function(e) { assert_equals(e.type, "select"); @@ -87,8 +91,6 @@ test(function() { for (let el of createTestElements(testValue)) { - assert_equals(el.selectionStart, testValue.length, - `Initial .value set on ${el.id} should set selectionStart to end of value`); el.selectionStart = 0; el.selectionEnd = 5; el.selectionStart = 8; @@ -100,10 +102,6 @@ test(function() { for (let el of createTestElements(testValue)) { - assert_equals(el.selectionStart, testValue.length, - `Initial .value set on ${el.id} should set selectionStart to end of value`); - assert_equals(el.selectionEnd, testValue.length, - `Initial .value set on ${el.id} should set selectionEnd to end of value`); el.selectionStart = 8; el.selectionEnd = 5; assert_equals(el.selectionStart, 5, `selectionStart on ${el.id}`);