Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 'use strict'
7 const { setTimeout } = require('sdk/timers');
8 const { waitUntil } = require('sdk/test/utils');
10 exports.testWaitUntil = function (assert, done) {
11 let bool = false;
12 let finished = false;
13 waitUntil(() => {
14 if (finished)
15 assert.fail('interval should be cleared after predicate is truthy');
16 return bool;
17 }).then(function () {
18 assert.ok(bool,
19 'waitUntil shouldn\'t call until predicate is truthy');
20 finished = true;
21 done();
22 });
23 setTimeout(() => { bool = true; }, 20);
24 };
26 exports.testWaitUntilInterval = function (assert, done) {
27 let bool = false;
28 let finished = false;
29 let counter = 0;
30 waitUntil(() => {
31 if (finished)
32 assert.fail('interval should be cleared after predicate is truthy');
33 counter++;
34 return bool;
35 }, 50).then(function () {
36 assert.ok(bool,
37 'waitUntil shouldn\'t call until predicate is truthy');
38 assert.equal(counter, 1,
39 'predicate should only be called once with a higher interval');
40 finished = true;
41 done();
42 });
43 setTimeout(() => { bool = true; }, 10);
44 };
46 require('sdk/test').run(exports);