summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/infrastructure
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/infrastructure')
-rw-r--r--testing/web-platform/tests/infrastructure/channels/test_serialize.html2
-rw-r--r--testing/web-platform/tests/infrastructure/expected-fail/user-prompt.html28
-rw-r--r--testing/web-platform/tests/infrastructure/metadata/infrastructure/expected-fail/user-prompt.html.ini17
3 files changed, 46 insertions, 1 deletions
diff --git a/testing/web-platform/tests/infrastructure/channels/test_serialize.html b/testing/web-platform/tests/infrastructure/channels/test_serialize.html
index 88a9ce5221..59226db6e7 100644
--- a/testing/web-platform/tests/infrastructure/channels/test_serialize.html
+++ b/testing/web-platform/tests/infrastructure/channels/test_serialize.html
@@ -27,7 +27,7 @@ for (let [name, obj] of Object.entries(objects)) {
promise_test(async t => {
let remoteValue = RemoteObject.from(document.head);
let result = await remote.call(inputValue => {
- if (!inputValue instanceof RemoteObject) {
+ if (!(inputValue instanceof RemoteObject)) {
throw new AssertionError(`Expected RemoteObject`);
}
return inputValue;
diff --git a/testing/web-platform/tests/infrastructure/expected-fail/user-prompt.html b/testing/web-platform/tests/infrastructure/expected-fail/user-prompt.html
new file mode 100644
index 0000000000..adac0bc909
--- /dev/null
+++ b/testing/web-platform/tests/infrastructure/expected-fail/user-prompt.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<title>Unhandled user prompt dismisses and notifies</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<meta name="variant" content="?type=alert">
+<meta name="variant" content="?type=confirm">
+<meta name="variant" content="?type=prompt">
+<meta name="variant" content="?type=alert&wait">
+<meta name="variant" content="?type=confirm&wait">
+<meta name="variant" content="?type=prompt&wait">
+<script>
+ let params = new URL(location).searchParams;
+ setup({ single_test: true });
+ // Waiting exercises the case where a user prompt appears while waiting for
+ // the next testdriver event. The WebDriver-specified behavior is to resolve
+ // with `null` [1, 2], which the WebDriver executor should ignore. The
+ // testdriver event loop will handle the open prompt on its next cycle. For
+ // the default "dismiss and notify" handler, this throws an unexpected alert
+ // open error in the executor.
+ //
+ // [1]: Step 5.3 of https://www.w3.org/TR/webdriver/#execute-async-script
+ // [2]: https://www.w3.org/TR/webdriver/#dfn-execute-a-function-body
+ step_timeout(() => {
+ let type = params.get("type");
+ window[type]("this user prompt should be dismissed");
+ done();
+ }, params.has("wait") ? 1000 : 0);
+</script>
diff --git a/testing/web-platform/tests/infrastructure/metadata/infrastructure/expected-fail/user-prompt.html.ini b/testing/web-platform/tests/infrastructure/metadata/infrastructure/expected-fail/user-prompt.html.ini
new file mode 100644
index 0000000000..45ebf7acc3
--- /dev/null
+++ b/testing/web-platform/tests/infrastructure/metadata/infrastructure/expected-fail/user-prompt.html.ini
@@ -0,0 +1,17 @@
+[user-prompt.html?type=alert]
+ expected: ERROR
+
+[user-prompt.html?type=confirm]
+ expected: ERROR
+
+[user-prompt.html?type=prompt]
+ expected: ERROR
+
+[user-prompt.html?type=alert&wait]
+ expected: ERROR
+
+[user-prompt.html?type=confirm&wait]
+ expected: ERROR
+
+[user-prompt.html?type=prompt&wait]
+ expected: ERROR