You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.4 KiB
JavaScript
56 lines
1.4 KiB
JavaScript
10 years ago
|
describe("handler - set from hash", function(){
|
||
|
|
||
|
describe("when adding multiple handlers via an object literal / hash", function(){
|
||
|
var handlers, hndlrs;
|
||
|
|
||
|
beforeEach(function(){
|
||
|
hndlrs = {
|
||
|
"foo": jasmine.createSpy("foo handler"),
|
||
|
"bar": jasmine.createSpy("bar handler")
|
||
|
};
|
||
|
|
||
|
handlers = new Wreqr.Handlers();
|
||
|
handlers.setHandlers(hndlrs);
|
||
|
});
|
||
|
|
||
|
it("should add all named handlers", function(){
|
||
|
expect(handlers.hasHandler("foo")).toBe(true);
|
||
|
expect(handlers.hasHandler("bar")).toBe(true);
|
||
|
});
|
||
|
|
||
|
it("should execute the handler", function(){
|
||
|
handlers.getHandler("foo")();
|
||
|
handlers.getHandler("bar")();
|
||
|
|
||
|
expect(hndlrs.foo).toHaveBeenCalled();
|
||
|
expect(hndlrs.bar).toHaveBeenCalled();
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe("when the object literal values are objects with a callback and context attribute", function(){
|
||
|
var handlers, hndlrs, ctx;
|
||
|
|
||
|
beforeEach(function(){
|
||
|
ctx = {};
|
||
|
|
||
|
hndlrs = {
|
||
|
"foo": {
|
||
|
callback: jasmine.createSpy("foo handler"),
|
||
|
context: ctx
|
||
|
}
|
||
|
};
|
||
|
|
||
|
handlers = new Wreqr.Handlers();
|
||
|
handlers.setHandlers(hndlrs);
|
||
|
|
||
|
handlers.getHandler("foo")();
|
||
|
});
|
||
|
|
||
|
it("should execute the handler callback with the specified context", function(){
|
||
|
expect(hndlrs.foo.callback).toHaveBeenCalled();
|
||
|
expect(hndlrs.foo.callback.mostRecentCall.object).toBe(ctx);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
});
|