summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/ua-client-hints
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/ua-client-hints')
-rw-r--r--testing/web-platform/tests/ua-client-hints/META.yml1
-rw-r--r--testing/web-platform/tests/ua-client-hints/idlharness.https.any.js21
-rw-r--r--testing/web-platform/tests/ua-client-hints/useragentdata.https.any.js20
3 files changed, 42 insertions, 0 deletions
diff --git a/testing/web-platform/tests/ua-client-hints/META.yml b/testing/web-platform/tests/ua-client-hints/META.yml
new file mode 100644
index 0000000000..c994748e0f
--- /dev/null
+++ b/testing/web-platform/tests/ua-client-hints/META.yml
@@ -0,0 +1 @@
+spec: https://wicg.github.io/ua-client-hints/
diff --git a/testing/web-platform/tests/ua-client-hints/idlharness.https.any.js b/testing/web-platform/tests/ua-client-hints/idlharness.https.any.js
new file mode 100644
index 0000000000..13a9225b47
--- /dev/null
+++ b/testing/web-platform/tests/ua-client-hints/idlharness.https.any.js
@@ -0,0 +1,21 @@
+// META: script=/resources/WebIDLParser.js
+// META: script=/resources/idlharness.js
+
+'use strict';
+
+// https://wicg.github.io/ua-client-hints/
+
+idl_test(
+ ['ua-client-hints'],
+ ['html', 'dom'],
+ idl_array => {
+ if (self.GLOBAL.isWorker()) {
+ idl_array.add_objects({ WorkerNavigator: ['navigator'] });
+ } else {
+ idl_array.add_objects({ Navigator: ['navigator'] });
+ }
+ idl_array.add_objects({
+ NavigatorUAData: ['navigator.userAgentData'],
+ });
+ }
+);
diff --git a/testing/web-platform/tests/ua-client-hints/useragentdata.https.any.js b/testing/web-platform/tests/ua-client-hints/useragentdata.https.any.js
new file mode 100644
index 0000000000..fa58835518
--- /dev/null
+++ b/testing/web-platform/tests/ua-client-hints/useragentdata.https.any.js
@@ -0,0 +1,20 @@
+// META: title=tests for navigator.userAgentData
+
+test(t => {
+ const brands = navigator.userAgentData.brands;
+ assert_true(brands.every(brand => brand.brand.length < 32),
+ "No brand should be longer than 32 characters.");
+});
+
+test(t => {
+ const uaData = navigator.userAgentData.toJSON();
+ assert_own_property(uaData, "brands", "toJSON() output has brands member");
+ assert_own_property(uaData, "mobile", "toJSON() output has mobile member");
+ assert_own_property(uaData, "platform", "toJSON() output has platform member");
+}, "test NavigatorUAData.toJSON() output");
+
+promise_test(() => {
+ return navigator.userAgentData.getHighEntropyValues(["architecture"]).then(
+ hints => assert_true(["x86", "arm"].some(item => item == hints.architecture))
+ );
+}, "Arch should be one of two permitted values.");