diff options
Diffstat (limited to 'testing/web-platform/tests/netinfo')
-rw-r--r-- | testing/web-platform/tests/netinfo/META.yml | 6 | ||||
-rw-r--r-- | testing/web-platform/tests/netinfo/idlharness.any.js | 20 | ||||
-rw-r--r-- | testing/web-platform/tests/netinfo/netinfo-basics.html | 52 |
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> |