dom/system/tests/marionette/test_proximity_change.js

branch
TOR_BUG_9701
changeset 15
b8a032363ba2
equal deleted inserted replaced
-1:000000000000 0:609b84a2792e
1 /* Any copyright is dedicated to the Public Domain.
2 * http://creativecommons.org/publicdomain/zero/1.0/ */
3
4 MARIONETTE_TIMEOUT = 10000;
5
6 let receivedEvent = false;
7 let expectedEvent;
8
9 function enableProximityListener() {
10 // Setup device proximity event listener, expect defaults
11 log("Enabling 'deviceproximity' event listener.");
12
13 // Bug 814043: Device proximity event 'min' and 'max' attributes incorrect
14 // Until that is fixed, expect 1:0:1 instead of 1:0:0
15 // expectedEvent = new DeviceProximityEvent("deviceproximity",
16 // {value:1, min:0, max:0});
17 expectedEvent = new DeviceProximityEvent("deviceproximity",
18 {value:1, min:0, max:1});
19
20 window.addEventListener('deviceproximity', listener);
21 log("Waiting for device proximity event.");
22 waitFor(changeProximity, function() {
23 return(receivedEvent);
24 });
25 }
26
27 function listener(event) {
28 // Received proximity update
29 log("Received 'deviceproximity' event via listener (value:"
30 + event.value + " min:" + event.min + " max:" + event.max + ").");
31 // Verify event values are as expected
32 is(event.value, expectedEvent.value, "value");
33 is(event.min, expectedEvent.min, "min");
34 is(event.max, expectedEvent.max, "max");
35 receivedEvent = true;
36 }
37
38 function changeProximity() {
39 // Change emulator's proximity and verify event attributes
40 let newValue = "7:3:15";
41
42 // Bug 814043: Device proximity event 'min' and 'max' attributes won't change
43 // Until fixed, expect proximity event min to be '0' and max to be '1' always
44 // expectedEvent = new DeviceProximityEvent("deviceproximity",
45 // {value: 7, min: 3, max: 15});
46 expectedEvent = new DeviceProximityEvent("deviceproximity",
47 {value:7, min:0, max:1});
48
49 // Setup handler and verify 'ondeviceproximity' event
50 window.ondeviceproximity = function(event) {
51 log("Received 'ondeviceproximity' event via handler (value:"
52 + event.value + " min:" + event.min + " max:"
53 + event.max + ").");
54 is(event.value, expectedEvent.value, "value");
55 is(event.min, expectedEvent.min, "min");
56 is(event.max, expectedEvent.max, "max");
57 // Turn off event handler and listener
58 window.ondeviceproximity = null;
59 window.removeEventListener('deviceproximity', listener);
60 restoreProximity();
61 };
62
63 log("Sending emulator command to fake proximity change (" + newValue + ").");
64 runEmulatorCmd("sensor set proximity " + newValue, function(result) {
65 log("Emulator callback.");
66 });
67 }
68
69 function restoreProximity() {
70 // Set the emulator's proximity value back to original
71 newValue = "1:0:0";
72 log("Sending emulator command to restore proximity (" + newValue + ").");
73 runEmulatorCmd("sensor set proximity " + newValue, function(result) {
74 cleanUp();
75 });
76 }
77
78 function cleanUp() {
79 finish();
80 }
81
82 // Start the test
83 enableProximityListener();

mercurial