summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/direct-sockets
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/direct-sockets')
-rw-r--r--testing/web-platform/tests/direct-sockets/META.yml5
-rw-r--r--testing/web-platform/tests/direct-sockets/README.md2
-rw-r--r--testing/web-platform/tests/direct-sockets/disabled-by-permissions-policy.https.sub.html14
-rw-r--r--testing/web-platform/tests/direct-sockets/disabled-by-permissions-policy.https.sub.html.headers3
-rw-r--r--testing/web-platform/tests/direct-sockets/disabled-by-permissions-policy.js8
-rw-r--r--testing/web-platform/tests/direct-sockets/open-securecontext.http.html21
6 files changed, 53 insertions, 0 deletions
diff --git a/testing/web-platform/tests/direct-sockets/META.yml b/testing/web-platform/tests/direct-sockets/META.yml
new file mode 100644
index 0000000000..85c05e8c83
--- /dev/null
+++ b/testing/web-platform/tests/direct-sockets/META.yml
@@ -0,0 +1,5 @@
+spec: https://github.com/WICG/direct-sockets/blob/main/docs/explainer.md
+suggested_reviewers:
+ - ewilligers
+ - mgiuca
+ - phoglenix
diff --git a/testing/web-platform/tests/direct-sockets/README.md b/testing/web-platform/tests/direct-sockets/README.md
new file mode 100644
index 0000000000..71a19de690
--- /dev/null
+++ b/testing/web-platform/tests/direct-sockets/README.md
@@ -0,0 +1,2 @@
+These tests are for the TCP and UDP sockets API proposed in
+https://github.com/WICG/direct-sockets/blob/main/docs/explainer.md
diff --git a/testing/web-platform/tests/direct-sockets/disabled-by-permissions-policy.https.sub.html b/testing/web-platform/tests/direct-sockets/disabled-by-permissions-policy.https.sub.html
new file mode 100644
index 0000000000..f2f6e50be0
--- /dev/null
+++ b/testing/web-platform/tests/direct-sockets/disabled-by-permissions-policy.https.sub.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8" />
+ <title>Sockets test: Can be disabled by permissions policy</title>
+ <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>
+ </head>
+ <body>
+ <script src="disabled-by-permissions-policy.js"></script>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/direct-sockets/disabled-by-permissions-policy.https.sub.html.headers b/testing/web-platform/tests/direct-sockets/disabled-by-permissions-policy.https.sub.html.headers
new file mode 100644
index 0000000000..ba6f09f55b
--- /dev/null
+++ b/testing/web-platform/tests/direct-sockets/disabled-by-permissions-policy.https.sub.html.headers
@@ -0,0 +1,3 @@
+Cross-Origin-Opener-Policy: same-origin
+Cross-Origin-Embedder-Policy: require-corp
+Permissions-Policy: direct-sockets=() \ No newline at end of file
diff --git a/testing/web-platform/tests/direct-sockets/disabled-by-permissions-policy.js b/testing/web-platform/tests/direct-sockets/disabled-by-permissions-policy.js
new file mode 100644
index 0000000000..a27d1ddf49
--- /dev/null
+++ b/testing/web-platform/tests/direct-sockets/disabled-by-permissions-policy.js
@@ -0,0 +1,8 @@
+'use strict';
+
+test(() => {
+ assert_throws_dom("NotAllowedError", () => new TCPSocket("address.com", 53), "constructor should throw");
+}, "tcp disabled by permissions-policy");
+test(() => {
+ assert_throws_dom("NotAllowedError", () => new UDPSocket({ remoteAddress: "address.com", remotePort: 53 }), "constructor should throw");
+}, "udp disabled by permissions-policy");
diff --git a/testing/web-platform/tests/direct-sockets/open-securecontext.http.html b/testing/web-platform/tests/direct-sockets/open-securecontext.http.html
new file mode 100644
index 0000000000..c3a2a42a25
--- /dev/null
+++ b/testing/web-platform/tests/direct-sockets/open-securecontext.http.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>Sockets test: Open from non-secure context</title>
+ <link rel="help" href="https://github.com/WICG/direct-sockets/blob/main/docs/explainer.md#security-considerations">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <script>
+ test(() => {
+ assert_false(typeof TCPSocket !== 'undefined', 'TCPSocket is present');
+ }, 'TCPSocket must be undefined in non-secure context');
+
+ test(() => {
+ assert_false(typeof UDPSocket !== 'undefined', 'UDPSocket is present');
+ }, 'UDPSocket must be undefined in non-secure context');
+ </script>
+ </body>
+</html>