Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/apps/system/test/unit/mock_notification_screen.js
diff options
context:
space:
mode:
Diffstat (limited to 'apps/system/test/unit/mock_notification_screen.js')
-rw-r--r--apps/system/test/unit/mock_notification_screen.js38
1 files changed, 38 insertions, 0 deletions
diff --git a/apps/system/test/unit/mock_notification_screen.js b/apps/system/test/unit/mock_notification_screen.js
new file mode 100644
index 0000000..2c88a90
--- /dev/null
+++ b/apps/system/test/unit/mock_notification_screen.js
@@ -0,0 +1,38 @@
+var MockNotificationScreen = {
+ wasMethodCalled: {},
+
+ mockMethods: [
+ 'incExternalNotifications',
+ 'decExternalNotifications',
+ 'updateStatusBarIcon'
+ ],
+
+ mockPopulate: function mockPopulate() {
+ this.mockMethods.forEach(function(methodName) {
+ // we could probably put this method outside if we had a closure
+ this[methodName] = function mns_method() {
+ this.methodCalled(methodName);
+ };
+ }, this);
+ },
+
+ init: function mns_init() {
+ this.wasMethodCalled = {};
+ this.mockMethods.forEach(function(methodName) {
+ this[methodName].wasCalled = false;
+ }, this);
+ },
+
+ methodCalled: function mns_methodCalled(name) {
+ this.wasMethodCalled[name] =
+ this.wasMethodCalled[name] ? this.wasMethodCalled[name]++ : 1;
+ this[name].wasCalled = true;
+ },
+
+ mTeardown: function mns_mTeardown() {
+ this.init();
+ }
+};
+
+MockNotificationScreen.mockPopulate();
+