diff options
Diffstat (limited to 'apps/system/test/unit/mock_navigator_settings.js')
-rw-r--r-- | apps/system/test/unit/mock_navigator_settings.js | 64 |
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); |