| Index: third_party/WebKit/LayoutTests/imported/web-platform-tests/html/semantics/forms/the-input-element/checkbox.html
|
| diff --git a/third_party/WebKit/LayoutTests/imported/web-platform-tests/html/semantics/forms/the-input-element/checkbox.html b/third_party/WebKit/LayoutTests/imported/web-platform-tests/html/semantics/forms/the-input-element/checkbox.html
|
| index d0b029a4f2cf2f13fccbb57b8cdd98acb30ccca3..ffdeecb238ea90e68059dac49b2c4b4911d9744d 100644
|
| --- a/third_party/WebKit/LayoutTests/imported/web-platform-tests/html/semantics/forms/the-input-element/checkbox.html
|
| +++ b/third_party/WebKit/LayoutTests/imported/web-platform-tests/html/semantics/forms/the-input-element/checkbox.html
|
| @@ -2,7 +2,8 @@
|
| <meta charset=utf-8>
|
| <title>input type checkbox</title>
|
| <link rel="author" title="Denis Ah-Kang" href="mailto:denis@w3.org">
|
| -<link rel=help href="https://html.spec.whatwg.org/multipage/#checkbox-state-(type=checkbox)">
|
| +<link rel="help" href="https://html.spec.whatwg.org/multipage/#checkbox-state-(type=checkbox)">
|
| +<link rel="help" href="https://html.spec.whatwg.org/multipage/#run-synthetic-click-activation-steps">
|
| <script src="../../../../../../resources/testharness.js"></script>
|
| <script src="../../../../../../resources/testharnessreport.js"></script>
|
| <div id="log"></div>
|
| @@ -19,28 +20,39 @@
|
| checkbox4 = document.getElementById('checkbox4'),
|
| checkbox5 = document.getElementById('checkbox5'),
|
| checkbox6 = document.getElementById('checkbox6'),
|
| - c1_input_fired = false, c1_change_fired = false,
|
| - t1 = async_test("click on mutable checkbox fires the input and change events"),
|
| + c1_click_fired = false,
|
| + c1_input_fired = false,
|
| + c1_change_fired = false,
|
| + t1 = async_test("click on mutable checkbox fires a click event, then an input event, then a change event"),
|
| t2 = async_test("click on non-mutable checkbox doesn't fire the input or change event"),
|
| t3 = async_test("pre-activation steps on unchecked checkbox"),
|
| t4 = async_test("pre-activation steps on checked checkbox"),
|
| t5 = async_test("canceled activation steps on unchecked checkbox"),
|
| t6 = async_test("canceled activation steps on unchecked checkbox (indeterminate=true in onclick)");
|
|
|
| - checkbox1.oninput= t1.step_func(function(e) {
|
| + checkbox1.onclick = t1.step_func(function () {
|
| + c1_click_fired = true;
|
| + assert_false(c1_input_fired, "click event should fire before input event");
|
| + assert_false(c1_change_fired, "click event should fire before change event");
|
| + });
|
| + checkbox1.oninput = t1.step_func(function(e) {
|
| c1_input_fired = true;
|
| + assert_true(c1_click_fired, "input event should fire after click event");
|
| + assert_false(c1_change_fired, "input event should fire before change event");
|
| 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_false(e.cancelable, "event should not be cancelable");
|
| assert_true(checkbox1.checked, "checkbox is checked");
|
| assert_false(checkbox1.indeterminate, "checkbox is not indeterminate");
|
| });
|
|
|
| checkbox1.onchange = t1.step_func(function(e) {
|
| c1_change_fired = true;
|
| + assert_true(c1_click_fired, "change event should fire after click event");
|
| + assert_true(c1_input_fired, "change event should fire after input event");
|
| 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_false(e.cancelable, "event should not be cancelable");
|
| assert_true(checkbox1.checked, "checkbox is checked");
|
| assert_false(checkbox1.indeterminate, "checkbox is not indeterminate");
|
| });
|
| @@ -83,9 +95,22 @@
|
|
|
| checkbox5.onclick = t5.step_func(function(e) {
|
| e.preventDefault();
|
| - assert_false(checkbox5.checked);
|
| + /*
|
| + The prevention of the click doesn't have an effect until after all the
|
| + click event handlers have been run.
|
| + */
|
| + assert_true(checkbox5.checked);
|
| assert_false(checkbox5.indeterminate);
|
| - t5.done();
|
| + window.setTimeout(t5.step_func(function(e) {
|
| + /*
|
| + The click event has finished being dispatched, so the checkedness and
|
| + determinateness have been toggled back by now because the event
|
| + was preventDefault-ed.
|
| + */
|
| + assert_false(checkbox5.checked);
|
| + assert_false(checkbox5.indeterminate);
|
| + t5.done();
|
| + }), 0);
|
| });
|
|
|
| t5.step(function(){
|
| @@ -97,9 +122,22 @@
|
| checkbox6.onclick = t6.step_func(function(e) {
|
| checkbox6.indeterminate = true;
|
| e.preventDefault();
|
| - assert_false(checkbox6.checked);
|
| - assert_false(checkbox6.indeterminate);
|
| - t6.done();
|
| + /*
|
| + The prevention of the click doesn't have an effect until after all the
|
| + click event handlers have been run.
|
| + */
|
| + assert_true(checkbox6.checked);
|
| + assert_true(checkbox6.indeterminate);
|
| + window.setTimeout(t6.step_func(function(e) {
|
| + /*
|
| + The click event has finished being dispatched, so the checkedness and
|
| + determinateness have been toggled back by now because the event
|
| + was preventDefault-ed.
|
| + */
|
| + assert_false(checkbox6.checked);
|
| + assert_false(checkbox6.indeterminate);
|
| + t6.done();
|
| + }), 0);
|
| });
|
|
|
| t6.step(function(){
|
|
|