| <!DOCTYPE html> |
| <link rel=author href="mailto:jarhar@chromium.org"> |
| <link rel=help href="https://github.com/whatwg/html/pull/10126"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="/resources/testdriver.js"></script> |
| <script src="/resources/testdriver-vendor.js"></script> |
| |
| <!-- This test is marked as optional because the specification does not mandate |
| which particular elements support pickers or not. Picker support for elements |
| varies across browsers and platforms. This test reflects picker support in |
| desktop chromium. --> |
| |
| <button>reset</button> |
| |
| <div class=supported> |
| <input type=date> |
| <input type=datetime-local> |
| <input type=week> |
| <input type=month> |
| <input type=time> |
| <input type=color> |
| </div> |
| |
| <input type=text list=datalist> |
| <datalist id=datalist> |
| <option>one</option> |
| <option>two</option> |
| </datalist> |
| |
| <script> |
| document.querySelectorAll('.supported > input').forEach(input => { |
| const inputType = input.getAttribute('type'); |
| promise_test(async () => { |
| assert_false(input.matches(':open'), |
| 'Should not match :open at the start of the test.'); |
| |
| await test_driver.bless(); |
| input.showPicker(); |
| assert_true(input.matches(':open'), |
| 'Should match :open after opening the picker.'); |
| |
| await test_driver.click(document.querySelector('button')); |
| assert_false(input.matches(':open'), |
| 'Should not match :open after closing the picker.'); |
| }, `CSS :open for <input type=${inputType}>`); |
| }); |
| |
| // TODO(crbug.com/383306186): Support :open for <input type=text list=datalist> |
| promise_test(async () => { |
| const input = document.querySelector('input[list]'); |
| await test_driver.click(input); |
| assert_false(input.matches(':open'), |
| ':open is not supported yet.'); |
| }, 'CSS :open for <input type=text list=datalist>'); |
| </script> |