Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate sinon.Event testsuite to CommonJS #1115

Merged
merged 1 commit into from
Jul 31, 2016
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 26 additions & 23 deletions test/util/event-test.js
Original file line number Diff line number Diff line change
@@ -1,93 +1,96 @@
"use strict";

var referee = require("referee");
var sinon = require("../../lib/sinon");
var assert = referee.assert;

var sinonEvent = require("../../lib/sinon/util/event");
var sinonExtend = require("../../lib/sinon/extend");
var sinonSpy = require("../../lib/sinon/spy");

describe("sinon.EventTarget", function () {
beforeEach(function () {
this.target = sinon.extend({}, sinon.EventTarget);
this.target = sinonExtend({}, sinonEvent.EventTarget);
});

it("notifies event listener", function () {
var listener = sinon.spy();
var listener = sinonSpy();
this.target.addEventListener("dummy", listener);

var event = new sinon.Event("dummy");
var event = new sinonEvent.Event("dummy");
this.target.dispatchEvent(event);

assert(listener.calledOnce);
assert(listener.calledWith(event));
});

it("notifies event listener with target as this", function () {
var listener = sinon.spy();
var listener = sinonSpy();
this.target.addEventListener("dummy", listener);

var event = new sinon.Event("dummy");
var event = new sinonEvent.Event("dummy");
this.target.dispatchEvent(event);

assert(listener.calledOn(this.target));
});

it("notifies all event listeners", function () {
var listeners = [sinon.spy(), sinon.spy()];
var listeners = [sinonSpy(), sinonSpy()];
this.target.addEventListener("dummy", listeners[0]);
this.target.addEventListener("dummy", listeners[1]);

var event = new sinon.Event("dummy");
var event = new sinonEvent.Event("dummy");
this.target.dispatchEvent(event);

assert(listeners[0].calledOnce);
assert(listeners[0].calledOnce);
});

it("notifies event listener of type listener", function () {
var listener = { handleEvent: sinon.spy() };
var listener = { handleEvent: sinonSpy() };
this.target.addEventListener("dummy", listener);

this.target.dispatchEvent(new sinon.Event("dummy"));
this.target.dispatchEvent(new sinonEvent.Event("dummy"));

assert(listener.handleEvent.calledOnce);
});

it("does not notify listeners of other events", function () {
var listeners = [sinon.spy(), sinon.spy()];
var listeners = [sinonSpy(), sinonSpy()];
this.target.addEventListener("dummy", listeners[0]);
this.target.addEventListener("other", listeners[1]);

this.target.dispatchEvent(new sinon.Event("dummy"));
this.target.dispatchEvent(new sinonEvent.Event("dummy"));

assert.isFalse(listeners[1].called);
});

it("does not notify unregistered listeners", function () {
var listener = sinon.spy();
var listener = sinonSpy();
this.target.addEventListener("dummy", listener);
this.target.removeEventListener("dummy", listener);

this.target.dispatchEvent(new sinon.Event("dummy"));
this.target.dispatchEvent(new sinonEvent.Event("dummy"));

assert.isFalse(listener.called);
});

it("notifies existing listeners after removing one", function () {
var listeners = [sinon.spy(), sinon.spy(), sinon.spy()];
var listeners = [sinonSpy(), sinonSpy(), sinonSpy()];
this.target.addEventListener("dummy", listeners[0]);
this.target.addEventListener("dummy", listeners[1]);
this.target.addEventListener("dummy", listeners[2]);
this.target.removeEventListener("dummy", listeners[1]);

this.target.dispatchEvent(new sinon.Event("dummy"));
this.target.dispatchEvent(new sinonEvent.Event("dummy"));

assert(listeners[0].calledOnce);
assert(listeners[2].calledOnce);
});

it("returns false when event.preventDefault is not called", function () {
this.target.addEventListener("dummy", sinon.spy());
this.target.addEventListener("dummy", sinonSpy());

var event = new sinon.Event("dummy");
var event = new sinonEvent.Event("dummy");
var result = this.target.dispatchEvent(event);

assert.isFalse(result);
Expand All @@ -98,16 +101,16 @@ describe("sinon.EventTarget", function () {
e.preventDefault();
});

var result = this.target.dispatchEvent(new sinon.Event("dummy"));
var result = this.target.dispatchEvent(new sinonEvent.Event("dummy"));

assert.isTrue(result);
});

it("notifies ProgressEvent listener with progress data ", function () {
var listener = sinon.spy();
var listener = sinonSpy();
this.target.addEventListener("dummyProgress", listener);

var progressEvent = new sinon.ProgressEvent("dummyProgress", {loaded: 50, total: 120});
var progressEvent = new sinonEvent.ProgressEvent("dummyProgress", {loaded: 50, total: 120});
this.target.dispatchEvent(progressEvent);

assert.isTrue(progressEvent.lengthComputable);
Expand All @@ -116,10 +119,10 @@ describe("sinon.EventTarget", function () {
});

it("notifies CustomEvent listener with custom data", function () {
var listener = sinon.spy();
var listener = sinonSpy();
this.target.addEventListener("dummyCustom", listener);

var customEvent = new sinon.CustomEvent("dummyCustom", {detail: "hola"});
var customEvent = new sinonEvent.CustomEvent("dummyCustom", {detail: "hola"});
this.target.dispatchEvent(customEvent);

assert(listener.calledOnce);
Expand Down