summaryrefslogtreecommitdiffstats
path: root/addon-sdk/source/test/event/helpers.js
diff options
context:
space:
mode:
authorMatt A. Tobin <email@mattatobin.com>2018-02-09 06:46:43 -0500
committerMatt A. Tobin <email@mattatobin.com>2018-02-09 06:46:43 -0500
commitac46df8daea09899ce30dc8fd70986e258c746bf (patch)
tree2750d3125fc253fd5b0671e4bd268eff1fd97296 /addon-sdk/source/test/event/helpers.js
parent8cecf8d5208f3945b35f879bba3015bb1a11bec6 (diff)
downloadUXP-ac46df8daea09899ce30dc8fd70986e258c746bf.tar
UXP-ac46df8daea09899ce30dc8fd70986e258c746bf.tar.gz
UXP-ac46df8daea09899ce30dc8fd70986e258c746bf.tar.lz
UXP-ac46df8daea09899ce30dc8fd70986e258c746bf.tar.xz
UXP-ac46df8daea09899ce30dc8fd70986e258c746bf.zip
Move Add-on SDK source to toolkit/jetpack
Diffstat (limited to 'addon-sdk/source/test/event/helpers.js')
-rw-r--r--addon-sdk/source/test/event/helpers.js112
1 files changed, 0 insertions, 112 deletions
diff --git a/addon-sdk/source/test/event/helpers.js b/addon-sdk/source/test/event/helpers.js
deleted file mode 100644
index d0d63d46f..000000000
--- a/addon-sdk/source/test/event/helpers.js
+++ /dev/null
@@ -1,112 +0,0 @@
-/* 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/. */
-
-"use strict";
-
-const { on, once, off, emit, count } = require("sdk/event/core");
-
-const { setImmediate, setTimeout } = require("sdk/timers");
-const { defer } = require("sdk/core/promise");
-
-/**
- * Utility function that returns a promise once the specified event's `type`
- * is emitted on the given `target`, or the delay specified is passed.
- *
- * @param {Object|Number} [target]
- * The delay to wait, or the object that receives the event.
- * If not given, the function returns a promise that will be resolved
- * as soon as possible.
- * @param {String} [type]
- * A string representing the event type to waiting for.
- * @param {Boolean} [capture]
- * If `true`, `capture` indicates that the user wishes to initiate capture.
- *
- * @returns {Promise}
- * A promise resolved once the delay given is passed, or the object
- * receives the event specified
- */
-const wait = function(target, type, capture) {
- let { promise, resolve, reject } = defer();
-
- if (!arguments.length) {
- setImmediate(resolve);
- }
- else if (typeof(target) === "number") {
- setTimeout(resolve, target);
- }
- else if (typeof(target.once) === "function") {
- target.once(type, resolve);
- }
- else if (typeof(target.addEventListener) === "function") {
- target.addEventListener(type, function listener(...args) {
- this.removeEventListener(type, listener, capture);
- resolve(...args);
- }, capture);
- }
- else if (typeof(target) === "object" && target !== null) {
- once(target, type, resolve);
- }
- else {
- reject('Invalid target given.');
- }
-
- return promise;
-};
-exports.wait = wait;
-
-function scenario(setup) {
- return function(unit) {
- return function(assert) {
- let actual = [];
- let input = {};
- unit(input, function(output, events, expected, message) {
- let result = setup(output, expected, actual);
-
- events.forEach(event => emit(input, "data", event));
-
- assert.deepEqual(actual, result, message);
- });
- }
- }
-}
-
-exports.emits = scenario(function(output, expected, actual) {
- on(output, "data", function(data) {
- return actual.push(this, data);
- });
-
- return expected.reduce(($$, $) => $$.concat(output, $), []);
-});
-
-exports.registerOnce = scenario(function(output, expected, actual) {
- function listener(data) {
- return actual.push(data);
- }
- on(output, "data", listener);
- on(output, "data", listener);
- on(output, "data", listener);
-
- return expected;
-});
-
-exports.ignoreNew = scenario(function(output, expected, actual) {
- on(output, "data", function(data) {
- actual.push(data + "#1");
- on(output, "data", function(data) {
- actual.push(data + "#2");
- });
- });
-
- return expected.map($ => $ + "#1");
-});
-
-exports.FIFO = scenario(function(target, expected, actual) {
- on(target, "data", $ => actual.push($ + "#1"));
- on(target, "data", $ => actual.push($ + "#2"));
- on(target, "data", $ => actual.push($ + "#3"));
-
- return expected.reduce(function(result, value) {
- return result.concat(value + "#1", value + "#2", value + "#3");
- }, []);
-});