Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: chrome/content/tests/filterNotifier.js

Issue 29355735: Issue 4223 - Remove tests migrated to adblockpluscore (Closed)
Patch Set: Restored elemhide.js Created Oct. 4, 2016, 2:19 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/content/tests/filterListener.js ('k') | chrome/content/tests/filterStorage.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 (function()
2 {
3 module("Filter notifier", {setup: prepareFilterComponents, teardown: restoreFi lterComponents});
4
5 let triggeredListeners = [];
6 let listeners = [
7 (action, item) => triggeredListeners.push(["listener1", action, item]),
8 (action, item) => triggeredListeners.push(["listener2", action, item]),
9 (action, item) => triggeredListeners.push(["listener3", action, item])
10 ];
11
12 function compareListeners(test, list)
13 {
14 let result1 = triggeredListeners = [];
15 FilterNotifier.triggerListeners("foo", {bar: true});
16
17 let result2 = triggeredListeners = [];
18 for (let observer of list)
19 observer("foo", {bar: true});
20
21 deepEqual(result1, result2, test);
22 }
23
24 test("Adding/removing listeners", function()
25 {
26 let [listener1, listener2, listener3] = listeners;
27
28 compareListeners("No listeners", []);
29
30 FilterNotifier.addListener(listener1);
31 compareListeners("addListener(listener1)", [listener1]);
32
33 FilterNotifier.addListener(listener1);
34 compareListeners("addListener(listener1) again", [listener1]);
35
36 FilterNotifier.addListener(listener2);
37 compareListeners("addListener(listener2)", [listener1, listener2]);
38
39 FilterNotifier.removeListener(listener1);
40 compareListeners("removeListener(listener1)", [listener2]);
41
42 FilterNotifier.removeListener(listener1);
43 compareListeners("removeListener(listener1) again", [listener2]);
44
45 FilterNotifier.addListener(listener3);
46 compareListeners("addListener(listener3)", [listener2, listener3]);
47
48 FilterNotifier.addListener(listener1);
49 compareListeners("addListener(listener1)", [listener2, listener3, listener1] );
50
51 FilterNotifier.removeListener(listener3);
52 compareListeners("removeListener(listener3)", [listener2, listener1]);
53
54 FilterNotifier.removeListener(listener1);
55 compareListeners("removeListener(listener1)", [listener2]);
56
57 FilterNotifier.removeListener(listener2);
58 compareListeners("removeListener(listener2)", []);
59 });
60
61 test("Removing listeners while being called", function()
62 {
63 let listener1 = function()
64 {
65 listeners[0].apply(this, arguments);
66 FilterNotifier.removeListener(listener1);
67 };
68 let listener2 = listeners[1];
69 FilterNotifier.addListener(listener1);
70 FilterNotifier.addListener(listener2);
71
72 compareListeners("Initial call", [listener1, listener2]);
73 compareListeners("Subsequent calls", [listener2]);
74 });
75 })();
OLDNEW
« no previous file with comments | « chrome/content/tests/filterListener.js ('k') | chrome/content/tests/filterStorage.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld