Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/apps/system/test/unit/mock_navigator_moz_telephony.js
diff options
context:
space:
mode:
Diffstat (limited to 'apps/system/test/unit/mock_navigator_moz_telephony.js')
-rw-r--r--apps/system/test/unit/mock_navigator_moz_telephony.js55
1 files changed, 55 insertions, 0 deletions
diff --git a/apps/system/test/unit/mock_navigator_moz_telephony.js b/apps/system/test/unit/mock_navigator_moz_telephony.js
new file mode 100644
index 0000000..21f461c
--- /dev/null
+++ b/apps/system/test/unit/mock_navigator_moz_telephony.js
@@ -0,0 +1,55 @@
+'use strict';
+
+(function() {
+
+ var props = ['active', 'calls'];
+
+ var listeners;
+
+ function mnmt_init() {
+ props.forEach(function(prop) {
+ Mock[prop] = null;
+ });
+
+ listeners = {};
+ }
+
+ function mnmt_addEventListener(evtName, func) {
+ listeners[evtName] = listeners[evtName] || [];
+ listeners[evtName].push(func);
+ }
+
+ function mnmt_removeEventListener(evtName, func) {
+ if (listeners[evtName]) {
+ var listenerArray = listeners[evtName];
+ var index = listenerArray.indexOf(func);
+ if (index !== -1) {
+ listenerArray.splice(index, 1);
+ }
+ }
+ }
+
+ function mnmt_mTriggerEvent(evt) {
+ var evtName = evt.type;
+ if (listeners[evtName]) {
+ listeners[evtName].forEach(function(listener) {
+ if (listener.handleEvent) {
+ listener.handleEvent(evt);
+ } else {
+ listener.call(Mock, evt);
+ }
+ });
+ }
+ }
+
+ var Mock= {
+ addEventListener: mnmt_addEventListener,
+ removeEventListener: mnmt_removeEventListener,
+ mTeardown: mnmt_init,
+ mTriggerEvent: mnmt_mTriggerEvent
+ };
+
+ mnmt_init();
+
+ window.MockNavigatorMozTelephony = Mock;
+})();