|
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(); |