1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/dom/system/tests/marionette/test_proximity_change.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,83 @@ 1.4 +/* Any copyright is dedicated to the Public Domain. 1.5 + * http://creativecommons.org/publicdomain/zero/1.0/ */ 1.6 + 1.7 +MARIONETTE_TIMEOUT = 10000; 1.8 + 1.9 +let receivedEvent = false; 1.10 +let expectedEvent; 1.11 + 1.12 +function enableProximityListener() { 1.13 + // Setup device proximity event listener, expect defaults 1.14 + log("Enabling 'deviceproximity' event listener."); 1.15 + 1.16 + // Bug 814043: Device proximity event 'min' and 'max' attributes incorrect 1.17 + // Until that is fixed, expect 1:0:1 instead of 1:0:0 1.18 + // expectedEvent = new DeviceProximityEvent("deviceproximity", 1.19 + // {value:1, min:0, max:0}); 1.20 + expectedEvent = new DeviceProximityEvent("deviceproximity", 1.21 + {value:1, min:0, max:1}); 1.22 + 1.23 + window.addEventListener('deviceproximity', listener); 1.24 + log("Waiting for device proximity event."); 1.25 + waitFor(changeProximity, function() { 1.26 + return(receivedEvent); 1.27 + }); 1.28 +} 1.29 + 1.30 +function listener(event) { 1.31 + // Received proximity update 1.32 + log("Received 'deviceproximity' event via listener (value:" 1.33 + + event.value + " min:" + event.min + " max:" + event.max + ")."); 1.34 + // Verify event values are as expected 1.35 + is(event.value, expectedEvent.value, "value"); 1.36 + is(event.min, expectedEvent.min, "min"); 1.37 + is(event.max, expectedEvent.max, "max"); 1.38 + receivedEvent = true; 1.39 +} 1.40 + 1.41 +function changeProximity() { 1.42 + // Change emulator's proximity and verify event attributes 1.43 + let newValue = "7:3:15"; 1.44 + 1.45 + // Bug 814043: Device proximity event 'min' and 'max' attributes won't change 1.46 + // Until fixed, expect proximity event min to be '0' and max to be '1' always 1.47 + // expectedEvent = new DeviceProximityEvent("deviceproximity", 1.48 + // {value: 7, min: 3, max: 15}); 1.49 + expectedEvent = new DeviceProximityEvent("deviceproximity", 1.50 + {value:7, min:0, max:1}); 1.51 + 1.52 + // Setup handler and verify 'ondeviceproximity' event 1.53 + window.ondeviceproximity = function(event) { 1.54 + log("Received 'ondeviceproximity' event via handler (value:" 1.55 + + event.value + " min:" + event.min + " max:" 1.56 + + event.max + ")."); 1.57 + is(event.value, expectedEvent.value, "value"); 1.58 + is(event.min, expectedEvent.min, "min"); 1.59 + is(event.max, expectedEvent.max, "max"); 1.60 + // Turn off event handler and listener 1.61 + window.ondeviceproximity = null; 1.62 + window.removeEventListener('deviceproximity', listener); 1.63 + restoreProximity(); 1.64 + }; 1.65 + 1.66 + log("Sending emulator command to fake proximity change (" + newValue + ")."); 1.67 + runEmulatorCmd("sensor set proximity " + newValue, function(result) { 1.68 + log("Emulator callback."); 1.69 + }); 1.70 +} 1.71 + 1.72 +function restoreProximity() { 1.73 + // Set the emulator's proximity value back to original 1.74 + newValue = "1:0:0"; 1.75 + log("Sending emulator command to restore proximity (" + newValue + ")."); 1.76 + runEmulatorCmd("sensor set proximity " + newValue, function(result) { 1.77 + cleanUp(); 1.78 + }); 1.79 +} 1.80 + 1.81 +function cleanUp() { 1.82 + finish(); 1.83 +} 1.84 + 1.85 +// Start the test 1.86 +enableProximityListener();