mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-27 12:15:33 +00:00
528d9653a3
Although low, 150 evaluations appears to cause intermittents with on slow try environments, such as Android emulators. Since the purpose of this test is to check that the timeout elapses properly, we are not reducing quality by testing for a lower number of evaluations. MozReview-Commit-ID: KqOTARg1AHP --HG-- extra : rebase_source : b10f0b066ce6201c07c5e7b40ebc32e60698374c
75 lines
1.7 KiB
JavaScript
75 lines
1.7 KiB
JavaScript
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
const {utils: Cu} = Components;
|
|
|
|
Cu.import("chrome://marionette/content/wait.js");
|
|
|
|
add_task(function* test_until_types() {
|
|
for (let typ of [true, false, "foo", 42, [], {}]) {
|
|
strictEqual(typ, yield wait.until(resolve => resolve(typ)));
|
|
}
|
|
});
|
|
|
|
add_task(function* test_until_timeoutElapse() {
|
|
let nevals = 0;
|
|
let start = new Date().getTime();
|
|
yield wait.until((resolve, reject) => {
|
|
++nevals;
|
|
reject();
|
|
});
|
|
let end = new Date().getTime();
|
|
greaterOrEqual((end - start), 2000);
|
|
greaterOrEqual(nevals, 15);
|
|
});
|
|
|
|
add_task(function* test_until_rethrowError() {
|
|
let nevals = 0;
|
|
let err;
|
|
try {
|
|
yield wait.until(() => {
|
|
++nevals;
|
|
throw new Error();
|
|
});
|
|
} catch (e) {
|
|
err = e;
|
|
}
|
|
equal(1, nevals);
|
|
ok(err instanceof Error);
|
|
});
|
|
|
|
add_task(function* test_until_noTimeout() {
|
|
// run at least once when timeout is 0
|
|
let nevals = 0;
|
|
let start = new Date().getTime();
|
|
yield wait.until((resolve, reject) => {
|
|
++nevals;
|
|
reject();
|
|
}, 0);
|
|
let end = new Date().getTime();
|
|
equal(1, nevals);
|
|
less((end - start), 2000);
|
|
});
|
|
|
|
add_task(function* test_until_timeout() {
|
|
let nevals = 0;
|
|
let start = new Date().getTime();
|
|
yield wait.until((resolve, reject) => {
|
|
++nevals;
|
|
reject();
|
|
}, 100);
|
|
let end = new Date().getTime();
|
|
greater(nevals, 1);
|
|
greaterOrEqual((end - start), 100);
|
|
});
|
|
|
|
add_task(function* test_until_interval() {
|
|
let nevals = 0;
|
|
yield wait.until((resolve, reject) => {
|
|
++nevals;
|
|
reject();
|
|
}, 100, 100);
|
|
equal(2, nevals);
|
|
});
|