dom/system/tests/marionette/test_proximity_change.js

changeset 0
6474c204b198
     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();

mercurial