зеркало из https://github.com/mozilla/gecko-dev.git
54 строки
1.5 KiB
JavaScript
54 строки
1.5 KiB
JavaScript
|
/* Any copyright is dedicated to the Public Domain.
|
||
|
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
||
|
|
||
|
MARIONETTE_TIMEOUT = 120000;
|
||
|
MARIONETTE_HEAD_JS = 'head.js';
|
||
|
|
||
|
function doTest(aAzimuth, aPitch, aRoll) {
|
||
|
log("Testing [azimuth, pitch, roll] = " + Array.slice(arguments));
|
||
|
|
||
|
return setEmulatorOrientationValues(aAzimuth, aPitch, aRoll)
|
||
|
.then(() => waitForWindowEvent("deviceorientation"))
|
||
|
.then(function(aEvent) {
|
||
|
is(aEvent.alpha, aAzimuth, "azimuth");
|
||
|
is(aEvent.beta, aPitch, "pitch");
|
||
|
is(aEvent.gamma, aRoll, "roll");
|
||
|
});
|
||
|
}
|
||
|
|
||
|
function testAllPermutations() {
|
||
|
const angles = [-180, -90, 0, 90, 180];
|
||
|
let promise = Promise.resolve();
|
||
|
for (let i = 0; i < angles.length; i++) {
|
||
|
for (let j = 0; j < angles.length; j++) {
|
||
|
for (let k = 0; k < angles.length; k++) {
|
||
|
promise =
|
||
|
promise.then(doTest.bind(null, angles[i], angles[j], angles[k]));
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
return promise;
|
||
|
}
|
||
|
|
||
|
startTestBase(function() {
|
||
|
let origValues;
|
||
|
|
||
|
return Promise.resolve()
|
||
|
|
||
|
// Retrieve original status.
|
||
|
.then(() => getEmulatorOrientationValues())
|
||
|
.then(function(aValues) {
|
||
|
origValues = aValues;
|
||
|
is(typeof origValues, "object", "typeof origValues");
|
||
|
is(origValues.length, 3, "origValues.length");
|
||
|
})
|
||
|
|
||
|
// Test original status
|
||
|
.then(() => doTest.apply(null, origValues))
|
||
|
|
||
|
.then(testAllPermutations)
|
||
|
|
||
|
// Restore original status.
|
||
|
.then(() => setEmulatorOrientationValues.apply(null, origValues));
|
||
|
});
|