Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/apps/system/test/unit/mock_navigator_settings.js
diff options
context:
space:
mode:
Diffstat (limited to 'apps/system/test/unit/mock_navigator_settings.js')
-rw-r--r--apps/system/test/unit/mock_navigator_settings.js64
1 files changed, 64 insertions, 0 deletions
diff --git a/apps/system/test/unit/mock_navigator_settings.js b/apps/system/test/unit/mock_navigator_settings.js
new file mode 100644
index 0000000..8b0de8a
--- /dev/null
+++ b/apps/system/test/unit/mock_navigator_settings.js
@@ -0,0 +1,64 @@
+(function(window) {
+ var observers = {},
+ settings = {},
+ removedObservers = {};
+
+ function mns_mLockSet(obj) {
+ for (var key in obj) {
+ settings[key] = obj[key];
+ }
+ }
+
+ function mns_addObserver(name, cb) {
+ observers[name] = observers[name] || [];
+ observers[name].push(cb);
+ }
+
+ function mns_removeObserver(name, cb) {
+ removedObservers[name] = removedObservers[name] || [];
+ removedObservers[name].push(cb);
+ }
+
+ function mns_createLock() {
+ return {
+ set: mns_mLockSet
+ };
+ }
+
+ function mns_mTriggerObservers(name, args) {
+ var theseObservers = observers[name];
+
+ if (! theseObservers) {
+ return;
+ }
+
+ theseObservers.forEach(function(func) {
+ func(args);
+ });
+ }
+
+ function mns_teardown() {
+ observers = {};
+ settings = {};
+ removedObservers = {};
+ }
+
+ window.MockNavigatorSettings = {
+ addObserver: mns_addObserver,
+ removeObserver: mns_removeObserver,
+ createLock: mns_createLock,
+
+ mTriggerObservers: mns_mTriggerObservers,
+ mTeardown: mns_teardown,
+ get mObservers() {
+ return observers;
+ },
+ get mSettings() {
+ return settings;
+ },
+ get mRemovedObservers() {
+ return removedObservers;
+ }
+ };
+
+})(this);