blob: 81fa2e152162c8c71325e4aa781e2f1d513a2541 [file] [log] [blame]
/*
* Copyright 2010-2011 Research In Motion Limited.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
var _libDir = __dirname + "./../../../../lib/",
appEventPrefix = "application.",
appEvents,
mockedApplication;
describe("lib/events/applicationEvents", function () {
beforeEach(function () {
mockedApplication = {
addEventListener: jasmine.createSpy("application addEventListener"),
removeEventListener: jasmine.createSpy("application removeEventListener")
};
GLOBAL.window = {
qnx: {
webplatform: {
getApplication: function () {
return mockedApplication;
}
}
}
};
appEvents = require(_libDir + "events/applicationEvents");
});
afterEach(function () {
mockedApplication = null;
delete GLOBAL.window;
appEvents = null;
delete require.cache[require.resolve(_libDir + "events/applicationEvents")];
});
describe("addEventListener", function () {
it("adds event name with application prepended", function () {
var eventName = "MostAwesomeEventEver",
trigger = function () {};
appEvents.addEventListener(eventName, trigger);
expect(mockedApplication.addEventListener).toHaveBeenCalledWith(appEventPrefix + eventName, trigger);
});
it("warns in the console if the eventName is falsey", function () {
var eventName = false,
trigger = function () {};
spyOn(console, "warn");
appEvents.addEventListener(eventName, trigger);
expect(mockedApplication.addEventListener).not.toHaveBeenCalledWith(appEventPrefix + eventName, trigger);
expect(console.warn).toHaveBeenCalledWith(jasmine.any(String));
});
});
describe("removeEventListener", function () {
it("adds event name with application prepended", function () {
var eventName = "MostAwesomeEventEver",
trigger = function () {};
appEvents.removeEventListener(eventName, trigger);
expect(mockedApplication.removeEventListener).toHaveBeenCalledWith(appEventPrefix + eventName, trigger);
});
it("warns in the console if the eventName is falsey", function () {
var eventName = false,
trigger = function () {};
spyOn(console, "warn");
appEvents.removeEventListener(eventName, trigger);
expect(mockedApplication.removeEventListener).not.toHaveBeenCalledWith(appEventPrefix + eventName, trigger);
expect(console.warn).toHaveBeenCalledWith(jasmine.any(String));
});
});
});