diff --git a/compute-pressure/README.md b/compute-pressure/README.md new file mode 100644 index 00000000000000..9766bb075f3618 --- /dev/null +++ b/compute-pressure/README.md @@ -0,0 +1,2 @@ +This directory contains (tentative) tests for the +[Compute Pressure](https://oyiptong.github.io/compute-pressure/) specification. diff --git a/compute-pressure/compute_pressure.tentative.https.window.js b/compute-pressure/compute_pressure.tentative.https.window.js new file mode 100644 index 00000000000000..4234d60a15d3f6 --- /dev/null +++ b/compute-pressure/compute_pressure.tentative.https.window.js @@ -0,0 +1,22 @@ +// META: script=/resources/testdriver.js +// META: script=/resources/testdriver-vendor.js +// META: script=resources/utils.js + +'use strict'; + +compute_pressure_test(async t => { + const obs = await navigator.deviceCompute.query(); + await new Promise(resolve => { + obs.addEventListener('update', event => { + assert_true((typeof event.cpuUtilization == 'number')); + assert_true((typeof event.cpuSpeedLimit == 'number')); + assert_greater_than_equal( + event.cpuUtilization, 0, + 'CPU Utilization is greater or equal to zero'); + assert_greater_than_equal( + event.cpuSpeedLimit, 0, + 'CPU Utilization is greater or equal to zero'); + resolve(); + }); + }); +}, 'query(): returns an EventTarget that fires an "update" event with CPU data'); diff --git a/compute-pressure/resources/utils.js b/compute-pressure/resources/utils.js new file mode 100644 index 00000000000000..178a9c7582c2f0 --- /dev/null +++ b/compute-pressure/resources/utils.js @@ -0,0 +1,20 @@ +'use strict'; + +function isPlatformSupported() { + if (navigator.platform.indexOf('Android') != -1 || + navigator.platform.indexOf('Linux') != -1) { + return true; + } + return false; +} + +function compute_pressure_test(test_function, name, properties) { + return promise_test(async (t) => { + if (!isPlatformSupported()) { + await promise_rejects_dom( + t, 'NotSupportedError', navigator.deviceCompute.query()); + return; + } + await test_function(t, name, properties); + }); +}