| Index: LayoutTests/imported/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-showModal.html
|
| diff --git a/LayoutTests/imported/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-showModal.html b/LayoutTests/imported/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-showModal.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..59170fe9fdfc85bc420709176b1600aa6ad202f5
|
| --- /dev/null
|
| +++ b/LayoutTests/imported/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-showModal.html
|
| @@ -0,0 +1,125 @@
|
| +<!DOCTYPE html>
|
| +<meta charset=utf-8>
|
| +<title>dialog element: showModal()</title>
|
| +<link rel="author" title="Denis Ah-Kang" href="mailto:denis@w3.org">
|
| +<link rel=help href="https://html.spec.whatwg.org/multipage/#the-dialog-element">
|
| +<script src="../../../../../../resources/testharness.js"></script>
|
| +<script src="../../../../../../resources/testharnessreport.js"></script>
|
| +<div id="log"></div>
|
| +<button id="b0">OK</button>
|
| +<dialog id="d1">
|
| + <p>foobar</p>
|
| + <button id="b1">OK</button>
|
| +</dialog>
|
| +<dialog id="d2" open>
|
| + <p>foobar</p>
|
| + <button>OK</button>
|
| +</dialog>
|
| +<dialog id="d3">
|
| + <p>foobar</p>
|
| + <button id="b3">OK</button>
|
| +</dialog>
|
| +<dialog id="d4">
|
| + <p>foobar</p>
|
| + <button id="b4">OK</button>
|
| +</dialog>
|
| +<dialog id="d5">
|
| + <p>foobar</p>
|
| + <button id="b5">OK</button>
|
| +</dialog>
|
| +<dialog id="d6"></dialog>
|
| +<dialog id="d7">
|
| + <input id="i71" value="foobar">
|
| + <input id="i72" value="foobar">
|
| + <button id="b7">OK</button>
|
| +</dialog>
|
| +<dialog id="d8">
|
| + <input id="i81" value="foobar">
|
| + <input id="i82" value="foobar" autofocus>
|
| + <button id="b8">OK</button>
|
| +</dialog>
|
| +<script>
|
| + var d1 = document.getElementById('d1'),
|
| + d2 = document.getElementById('d2'),
|
| + d3 = document.getElementById('d3'),
|
| + d4 = document.getElementById('d4'),
|
| + d5 = document.getElementById('d5'),
|
| + d6 = document.getElementById('d6'),
|
| + d7 = document.getElementById('d7'),
|
| + d8 = document.getElementById('d8'),
|
| + b0 = document.getElementById('b0'),
|
| + b1 = document.getElementById('b1'),
|
| + b3 = document.getElementById('b3'),
|
| + b4 = document.getElementById('b4'),
|
| + b5 = document.getElementById('b5');
|
| +
|
| + test(function(){
|
| + assert_false(d1.open);
|
| + assert_false(b0.commandDisabled);
|
| + d1.showModal();
|
| + this.add_cleanup(function() { d1.close(); });
|
| + assert_true(d1.open);
|
| + assert_true(b0.commandDisabled);
|
| + assert_equals(document.activeElement, b1);
|
| + });
|
| +
|
| + test(function(){
|
| + assert_throws("INVALID_STATE_ERR", function() {
|
| + d2.showModal();
|
| + this.add_cleanup(function() { d2.close(); });
|
| + });
|
| + }, "showModal() on a <dialog> that already has an open attribute throws an InvalidStateError exception");
|
| +
|
| + test(function(){
|
| + var d = document.createElement("dialog");
|
| + assert_throws("INVALID_STATE_ERR", function() {
|
| + d.showModal();
|
| + this.add_cleanup(function() { d.close(); });
|
| + });
|
| + }, "showModal() on a <dialog> not in a Document throws an InvalidStateError exception");
|
| +
|
| + test(function(){
|
| + assert_false(d3.open);
|
| + assert_false(b3.commandDisabled);
|
| + assert_false(d4.open);
|
| + assert_false(b4.commandDisabled);
|
| + assert_false(d5.open);
|
| + assert_false(b5.commandDisabled);
|
| + d3.showModal();
|
| + this.add_cleanup(function() { d3.close(); });
|
| + d4.showModal();
|
| + this.add_cleanup(function() { d4.close(); });
|
| + d5.showModal();
|
| + this.add_cleanup(function() { d5.close(); });
|
| + assert_true(d3.open);
|
| + assert_true(b3.commandDisabled);
|
| + assert_true(d4.open);
|
| + assert_true(b4.commandDisabled);
|
| + assert_true(d5.open);
|
| + assert_false(b5.commandDisabled);
|
| + }, "when opening multiple dialogs, only the newest one is non-inert");
|
| +
|
| + test(function(){
|
| + assert_false(d6.open);
|
| + d6.showModal();
|
| + this.add_cleanup(function() { d6.close(); });
|
| + assert_true(d6.open);
|
| + assert_equals(document.activeElement, d6);
|
| + }, "opening dialog without focusable children");
|
| +
|
| + test(function(){
|
| + assert_false(d7.open);
|
| + d7.showModal();
|
| + this.add_cleanup(function() { d7.close(); });
|
| + assert_true(d7.open);
|
| + assert_equals(document.activeElement, document.getElementById("i71"));
|
| + }, "opening dialog with multiple focusable children");
|
| +
|
| + test(function(){
|
| + assert_false(d8.open);
|
| + d8.showModal();
|
| + this.add_cleanup(function() { d8.close(); });
|
| + assert_true(d8.open);
|
| + assert_equals(document.activeElement, document.getElementById("i82"));
|
| + }, "opening dialog with multiple focusable children, one having the autofocus attribute");
|
| +</script>
|
|
|