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

Unified Diff: third_party/WebKit/LayoutTests/imported/web-platform-tests/html/semantics/forms/the-input-element/radio.html

Issue 1666363003: Import web-platform-tests@27e3d93f88a71a249d1df872a5d613b3243b9588 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Missed win failiure in TestExpectations Created 4 years, 10 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
Index: third_party/WebKit/LayoutTests/imported/web-platform-tests/html/semantics/forms/the-input-element/radio.html
diff --git a/third_party/WebKit/LayoutTests/imported/web-platform-tests/html/semantics/forms/the-input-element/radio.html b/third_party/WebKit/LayoutTests/imported/web-platform-tests/html/semantics/forms/the-input-element/radio.html
index 7021bfaaf983df12c1c3feb36dcb0abbfc61c2f5..e0d540f4dbcbbd2f257d0807811188f70a35d23b 100644
--- a/third_party/WebKit/LayoutTests/imported/web-platform-tests/html/semantics/forms/the-input-element/radio.html
+++ b/third_party/WebKit/LayoutTests/imported/web-platform-tests/html/semantics/forms/the-input-element/radio.html
@@ -15,8 +15,8 @@
<input type=radio id=radio5>
<input type=radio id=radio6 disabled>
-<input type=radio id=radio71 checked>
-<input type=radio id=radio72>
+<input type=radio name="group5" id=radio71 checked>
+<input type=radio name="group5" id=radio72>
<input type=radio name=group3 id=radio8 checked>
<input type=radio name=group3 id=radio9>
@@ -37,8 +37,7 @@
radio9 = document.getElementById('radio9'),
radio10 = document.getElementById('radio10'),
radio11 = document.getElementById('radio11'),
- t1 = async_test("click on mutable radio fires the input event"),
- t2 = async_test("click on mutable radio fires the change event"),
+ t1 = async_test("click on mutable radio fires click event, then input event, then change event"),
t3 = async_test("click on non-mutable radio doesn't fire the input event"),
t4 = async_test("click on non-mutable radio doesn't fire the change event"),
t5 = async_test("canceled activation steps on unchecked radio"),
@@ -80,18 +79,28 @@
assert_false(radio11.checked);
}, "changing the name of a radio input element and setting its checkedness to true makes all the other elements' checkedness in the same radio button group be set to false");
- radio5.oninput= t1.step_func(function(e) {
+ radio5.onclick = t1.step_func(function(e) {
+ click_fired = true;
+ assert_false(input_fired, "click event should fire before input event");
+ assert_false(change_fired, "click event should fire before change event");
+ });
+
+ radio5.oninput = t1.step_func(function(e) {
input_fired = true;
- assert_true(e.bubbles, "event should bubble")
- assert_true(e.isTrusted, "event should be trusted");
- assert_false(e.cancelable, "event shoud not be cancelable");
+ assert_true(click_fired, "input event should fire after click event");
+ assert_false(change_fired, "input event should fire before change event");
+ assert_true(e.bubbles, "input event should bubble")
+ assert_true(e.isTrusted, "input event should be trusted");
+ assert_false(e.cancelable, "input event should not be cancelable");
});
- radio5.onchange = t2.step_func(function(e) {
+ radio5.onchange = t1.step_func(function(e) {
change_fired = true;
- assert_true(e.bubbles, "event should bubble")
- assert_true(e.isTrusted, "event should be trusted");
- assert_false(e.cancelable, "event shoud not be cancelable");
+ assert_true(click_fired, "change event should fire after click event");
+ assert_true(input_fired, "change event should fire after input event");
+ assert_true(e.bubbles, "change event should bubble")
+ assert_true(e.isTrusted, "change event should be trusted");
+ assert_false(e.cancelable, "change event should not be cancelable");
});
radio6.oninput= t3.step_func_done(function(e) {
@@ -108,11 +117,6 @@
t1.done();
});
- t2.step(function() {
- assert_true(change_fired);
- t2.done();
- })
-
t3.step(function(){
radio6.click();
t3.done();
@@ -120,18 +124,20 @@
});
radio72.onclick = t5.step_func_done(function(e){
- assert_false(radio71.checked);
- assert_true(radio72.checked);
+ assert_false(radio71.checked, "click on radio should uncheck other radio in same group");
+ assert_true(radio72.checked, "click on radio should check that radio");
e.preventDefault();
- assert_false(radio71.checked);
- assert_true(radio72.checked);
+ // The cancelation of the click doesn't have an effect until after all the click event handlers have been run.
+ assert_false(radio71.checked, "radio remains unchecked immediately after click event on other radio in same group is canceled");
+ assert_true(radio72.checked, "clicked radio remains checked immediately after click event is canceled");
});
t5.step(function(){
- assert_true(radio71.checked);
- assert_false(radio72.checked);
+ assert_true(radio71.checked, "initially checked radio should be checked");
+ assert_false(radio72.checked, "other radios in same group as initially-checked radio should be unchecked");
radio72.click();
- assert_true(radio71.checked);
- assert_false(radio72.checked);
+ // Now that the click event has been fully dispatched, its cancelation has taken effect.
+ assert_true(radio71.checked, "canceled click event on radio should leave the previously-checked radio checked");
+ assert_false(radio72.checked, "canceled click event on previously-unchecked radio should leave that radio unchecked");
});
</script>

Powered by Google App Engine
This is Rietveld 408576698