diff options
author | Daniel Narvaez <dwnarvaez@gmail.com> | 2013-02-06 13:49:14 (GMT) |
---|---|---|
committer | Daniel Narvaez <dwnarvaez@gmail.com> | 2013-02-06 13:49:14 (GMT) |
commit | 821413607a0718156f9d25d895e89b1c3d37aa8b (patch) | |
tree | 01c285af734ed5bba64b73b489e1e0226a94a262 /apps/system/test/unit/mock_navigator_settings.js | |
parent | c110fb485b3af0066c6df7aeac8c055e9d767efa (diff) |
Copy various bits from gaia
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); |