12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- define(function(require) {
-
- var elgg = require('elgg');
-
- describe("elgg.hooks", function() {
-
- beforeEach(function() {
- elgg.config.hooks = {};
- elgg.provide('elgg.config.hooks.all.all');
- });
-
- describe("elgg.trigger_hook()", function() {
- it("return value defaults to null", function() {
- expect(elgg.trigger_hook("fee", "fum")).toBe(null);
-
- elgg.register_hook_handler('fee', 'fum', elgg.nullFunction);
- expect(elgg.trigger_hook("fee", "fum")).toBe(null);
- expect(elgg.trigger_hook('x', 'y', {}, null)).toBe(null);
- expect(elgg.trigger_hook('x', 'z', {}, false)).toBe(false);
- });
- it("handlers returning null/undefined don't change returnvalue", function() {
- elgg.register_hook_handler('test', 'test', elgg.nullFunction);
- expect(elgg.trigger_hook('test', 'test', {}, 1984)).toBe(1984);
- elgg.register_hook_handler('test', 'test', function(hook, type, params, value) {
- return undefined;
- });
- expect(elgg.trigger_hook('test', 'test', {}, 42)).toBe(42);
- });
- it("triggers handlers registered with 'all'", function() {
- elgg.register_hook_handler('all', 'bar', elgg.abstractMethod);
- expect(function() { elgg.trigger_hook('foo', 'bar'); }).toThrow();
-
- elgg.register_hook_handler('foo', 'all', elgg.abstractMethod);
- expect(function() { elgg.trigger_hook('foo', 'baz'); }).toThrow();
-
- elgg.register_hook_handler('all', 'all', elgg.abstractMethod);
- expect(function() { elgg.trigger_hook('pinky', 'winky'); }).toThrow();
- });
- });
-
- describe("elgg.register_hook_handler()", function() {
- it("only accepts functions as handlers", function() {
- expect(function() { elgg.register_hook_handler('str', 'str', 'oops'); }).toThrow();
- });
- });
- });
- });
|