| <!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> |