summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/netinfo
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
commit36d22d82aa202bb199967e9512281e9a53db42c9 (patch)
tree105e8c98ddea1c1e4784a60a5a6410fa416be2de /testing/web-platform/tests/netinfo
parentInitial commit. (diff)
downloadfirefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz
firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip
Adding upstream version 115.7.0esr.upstream/115.7.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/netinfo')
-rw-r--r--testing/web-platform/tests/netinfo/META.yml6
-rw-r--r--testing/web-platform/tests/netinfo/idlharness.any.js20
-rw-r--r--testing/web-platform/tests/netinfo/netinfo-basics.html52
3 files changed, 78 insertions, 0 deletions
diff --git a/testing/web-platform/tests/netinfo/META.yml b/testing/web-platform/tests/netinfo/META.yml
new file mode 100644
index 0000000000..220c5d6d32
--- /dev/null
+++ b/testing/web-platform/tests/netinfo/META.yml
@@ -0,0 +1,6 @@
+spec: https://wicg.github.io/netinfo/
+suggested_reviewers:
+ - jkarlin
+ - igrigorik
+ - marcoscaceres
+ - tarunban
diff --git a/testing/web-platform/tests/netinfo/idlharness.any.js b/testing/web-platform/tests/netinfo/idlharness.any.js
new file mode 100644
index 0000000000..21d5595012
--- /dev/null
+++ b/testing/web-platform/tests/netinfo/idlharness.any.js
@@ -0,0 +1,20 @@
+// META: script=/resources/WebIDLParser.js
+// META: script=/resources/idlharness.js
+// META: timeout=long
+
+'use strict';
+
+// https://wicg.github.io/netinfo/
+
+idl_test(
+ ['netinfo'],
+ ['html', 'dom'],
+ idl_array => {
+ idl_array.add_objects({ NetworkInformation: ['navigator.connection'] });
+ if (self.GLOBAL.isWorker()) {
+ idl_array.add_objects({ WorkerNavigator: ['navigator'] });
+ } else {
+ idl_array.add_objects({ Navigator: ['navigator'] });
+ }
+ }
+);
diff --git a/testing/web-platform/tests/netinfo/netinfo-basics.html b/testing/web-platform/tests/netinfo/netinfo-basics.html
new file mode 100644
index 0000000000..7d08e12280
--- /dev/null
+++ b/testing/web-platform/tests/netinfo/netinfo-basics.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>NetInfo basic functionality</title>
+<link rel="help" href="https://wicg.github.io/netinfo/">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<script>
+test(function() {
+ assert_in_array(navigator.connection.type, ["bluetooth", "cellular",
+ "ethernet", "mixed", "none", "other", "unknown", "wifi", "wimax"], 'type is unexpected');
+}, "type attribute");
+
+test(function() {
+ assert_in_array(navigator.connection.saveData, [false, true], 'saveData is unexpected');
+}, "saveData attribute");
+
+test(function() {
+ assert_greater_than_equal(navigator.connection.downlinkMax, 0);
+}, "downlinkMax attribute");
+
+test(function() {
+ assert_in_array(navigator.connection.effectiveType, ["slow-2g", "2g",
+ "3g", "4g"], 'effectiveType is unexpected');
+}, "effectiveType attribute");
+
+test(function() {
+ var rtt = navigator.connection.rtt;
+ assert_greater_than_equal(rtt, 0);
+ assert_less_than_equal(rtt, 3000);
+ assert_equals(rtt % 50, 0, 'rtt must be a multiple of 50 msec');
+}, "rtt attribute");
+
+test(function() {
+ var downlinkKbps = navigator.connection.downlink * 1000;
+ assert_greater_than_equal(downlinkKbps, 0);
+ assert_less_than_equal(downlinkKbps, 10000);
+
+ // Verify that downlinkKbps is a multiple of 50.
+ var quotient = parseInt(downlinkKbps / 50, 10);
+ // mod is the remainder left after dividing downlinkKbps by 50 while
+ // restricting the quotient to an integer. For example, if downlinkKbps is
+ // 1050, then mod will be 0. If downlinkKpbps is 1030, mod will be 30.
+ var mod = downlinkKbps - 50 * quotient;
+ assert_less_than_equal(0.0, mod, 'mod outside the range');
+ assert_greater_than(50.0, mod, 'mod outside the range');
+ // It is possible that mod is not exactly 0 because of floating point
+ // computations. e.g., downlinkKbps may be 99.999999, in which case mod
+ // will be 49.999999.
+ assert_true(mod < 1e-5 || (50-mod) < 1e-5, 'downlink must be a multiple of 50 kbps');
+}, "downlink attribute");
+</script>