summaryrefslogtreecommitdiff
path: root/tools/eslint/node_modules/escope/node_modules/es6-map/node_modules/event-emitter/test/unify.js
diff options
context:
space:
mode:
Diffstat (limited to 'tools/eslint/node_modules/escope/node_modules/es6-map/node_modules/event-emitter/test/unify.js')
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-map/node_modules/event-emitter/test/unify.js123
1 files changed, 123 insertions, 0 deletions
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-map/node_modules/event-emitter/test/unify.js b/tools/eslint/node_modules/escope/node_modules/es6-map/node_modules/event-emitter/test/unify.js
new file mode 100644
index 0000000000..69295e0657
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-map/node_modules/event-emitter/test/unify.js
@@ -0,0 +1,123 @@
+'use strict';
+
+var ee = require('../');
+
+module.exports = function (t) {
+
+ return {
+ "": function (a) {
+ var x = {}, y = {}, z = {}, count, count2, count3;
+
+ ee(x);
+ ee(y);
+ ee(z);
+
+ count = 0;
+ count2 = 0;
+ count3 = 0;
+ x.on('foo', function () { ++count; });
+ y.on('foo', function () { ++count2; });
+ z.on('foo', function () { ++count3; });
+
+ x.emit('foo');
+ a(count, 1, "Pre unify, x");
+ a(count2, 0, "Pre unify, y");
+ a(count3, 0, "Pre unify, z");
+
+ t(x, y);
+ a(x.__ee__, y.__ee__, "Post unify y");
+ x.emit('foo');
+ a(count, 2, "Post unify, x");
+ a(count2, 1, "Post unify, y");
+ a(count3, 0, "Post unify, z");
+
+ y.emit('foo');
+ a(count, 3, "Post unify, on y, x");
+ a(count2, 2, "Post unify, on y, y");
+ a(count3, 0, "Post unify, on y, z");
+
+ t(x, z);
+ a(x.__ee__, x.__ee__, "Post unify z");
+ x.emit('foo');
+ a(count, 4, "Post unify z, x");
+ a(count2, 3, "Post unify z, y");
+ a(count3, 1, "Post unify z, z");
+ },
+ "On empty": function (a) {
+ var x = {}, y = {}, z = {}, count, count2, count3;
+
+ ee(x);
+ ee(y);
+ ee(z);
+
+ count = 0;
+ count2 = 0;
+ count3 = 0;
+ y.on('foo', function () { ++count2; });
+ x.emit('foo');
+ a(count, 0, "Pre unify, x");
+ a(count2, 0, "Pre unify, y");
+ a(count3, 0, "Pre unify, z");
+
+ t(x, y);
+ a(x.__ee__, y.__ee__, "Post unify y");
+ x.on('foo', function () { ++count; });
+ x.emit('foo');
+ a(count, 1, "Post unify, x");
+ a(count2, 1, "Post unify, y");
+ a(count3, 0, "Post unify, z");
+
+ y.emit('foo');
+ a(count, 2, "Post unify, on y, x");
+ a(count2, 2, "Post unify, on y, y");
+ a(count3, 0, "Post unify, on y, z");
+
+ t(x, z);
+ a(x.__ee__, z.__ee__, "Post unify z");
+ z.on('foo', function () { ++count3; });
+ x.emit('foo');
+ a(count, 3, "Post unify z, x");
+ a(count2, 3, "Post unify z, y");
+ a(count3, 1, "Post unify z, z");
+ },
+ Many: function (a) {
+ var x = {}, y = {}, z = {}, count, count2, count3;
+
+ ee(x);
+ ee(y);
+ ee(z);
+
+ count = 0;
+ count2 = 0;
+ count3 = 0;
+ x.on('foo', function () { ++count; });
+ y.on('foo', function () { ++count2; });
+ y.on('foo', function () { ++count2; });
+ z.on('foo', function () { ++count3; });
+
+ x.emit('foo');
+ a(count, 1, "Pre unify, x");
+ a(count2, 0, "Pre unify, y");
+ a(count3, 0, "Pre unify, z");
+
+ t(x, y);
+ a(x.__ee__, y.__ee__, "Post unify y");
+ x.emit('foo');
+ a(count, 2, "Post unify, x");
+ a(count2, 2, "Post unify, y");
+ a(count3, 0, "Post unify, z");
+
+ y.emit('foo');
+ a(count, 3, "Post unify, on y, x");
+ a(count2, 4, "Post unify, on y, y");
+ a(count3, 0, "Post unify, on y, z");
+
+ t(x, z);
+ a(x.__ee__, x.__ee__, "Post unify z");
+ x.emit('foo');
+ a(count, 4, "Post unify z, x");
+ a(count2, 6, "Post unify z, y");
+ a(count3, 1, "Post unify z, z");
+ }
+ };
+};