| // META: title=Idle Detection API: Basics |
| |
| 'use strict'; |
| |
| promise_test(async t => { |
| let status = new IdleDetector(); |
| |
| let watcher = new EventWatcher(t, status, ["change"]); |
| |
| await status.start(); |
| |
| await watcher.wait_for("change"); |
| |
| assert_true(['active', 'idle'].includes(status.state.user), |
| 'status has a valid user state'); |
| assert_true(['locked', 'unlocked'].includes(status.state.screen), |
| 'status has a valid screen state'); |
| |
| }, 'start() basics'); |
| |
| promise_test(async t => { |
| let used = false; |
| |
| new IdleDetector({ |
| get threshold() { |
| used = true; |
| return 60; |
| } |
| }); |
| |
| assert_true(used, 'constructor options "threshold" member was used'); |
| }, 'constructor uses threshold property'); |
| |
| promise_test(async t => { |
| try { |
| new IdleDetector({threshold: 0}); |
| assert_unreached('Threshold under 60 should reject'); |
| } catch (error) { |
| assert_equals(error.name, 'TypeError'); |
| } |
| }, 'constructor throws with invalid threshold (0)'); |
| |
| promise_test(async t => { |
| try { |
| new IdleDetector({threshold: 59}); |
| assert_unreached('Threshold under 60 should reject'); |
| } catch (error) { |
| assert_equals(error.name, 'TypeError'); |
| } |
| }, 'constructor throws with threshold below minimum (59)'); |
| |
| promise_test(async t => { |
| new IdleDetector({threshold: 60}); |
| }, 'constructor allows threshold (60)'); |
| |
| promise_test(async t => { |
| new IdleDetector({threshold: 61}); |
| }, 'constructor allows threshold (61)'); |
| |
| promise_test(async t => { |
| try { |
| new IdleDetector({threshold: null}); |
| assert_unreached('Threshold of null should reject'); |
| } catch (error) { |
| assert_equals(error.name, 'TypeError'); |
| } |
| }, 'constructor throws with invalid threshold (null)'); |
| |
| promise_test(async t => { |
| try { |
| new IdleDetector({threshold: -1}); |
| assert_unreached('Threshold of negative numbers should reject'); |
| } catch (error) { |
| assert_equals(error.name, 'TypeError'); |
| } |
| }, 'constructor throws with invalid threshold (-1)'); |
| |
| promise_test(async t => { |
| try { |
| new IdleDetector({threshold: NaN}); |
| assert_unreached('Threshold of NaN should reject'); |
| } catch (error) { |
| assert_equals(error.name, 'TypeError'); |
| } |
| }, 'constructor throws with invalid threshold (NaN)'); |
| |
| promise_test(async t => { |
| new IdleDetector(); |
| }, 'constructor uses a default value for the threshold when none is passed'); |
| |
| promise_test(async t => { |
| new IdleDetector({threshold: undefined}); |
| }, 'constructor uses a default value for the threshold'); |
| |