123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- '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");
- }
- };
- };
|