summaryrefslogtreecommitdiff
path: root/plugins/phonegap-plugin-push/spec/helper
diff options
context:
space:
mode:
authorArjun Roychowdhury <pliablepixels@gmail.com>2015-10-18 20:27:36 -0400
committerArjun Roychowdhury <pliablepixels@gmail.com>2015-10-18 20:27:36 -0400
commitced14a385a8606319e5d7d604f65c7a33c8e1476 (patch)
treea146b48048b31fd36c6a0336052ee5d2c34093b4 /plugins/phonegap-plugin-push/spec/helper
parent50f2e00b5be8c0e13e5790c11cc2dc234577d447 (diff)
switched to new push plugin that works with JSON payloads
Diffstat (limited to 'plugins/phonegap-plugin-push/spec/helper')
-rw-r--r--plugins/phonegap-plugin-push/spec/helper/cordova.js83
1 files changed, 83 insertions, 0 deletions
diff --git a/plugins/phonegap-plugin-push/spec/helper/cordova.js b/plugins/phonegap-plugin-push/spec/helper/cordova.js
new file mode 100644
index 00000000..02bdee5f
--- /dev/null
+++ b/plugins/phonegap-plugin-push/spec/helper/cordova.js
@@ -0,0 +1,83 @@
+/* global cordova:true */
+
+/*!
+ * Module dependencies.
+ */
+
+/**
+ * cordova.js for node.
+ *
+ * Think of this as cordova-node, which would be simliar to cordova-android
+ * or cordova-browser. The purpose of this module is to enable testing
+ * of a plugin's JavaScript interface.
+ *
+ * When this module is first required, it will insert a global cordova
+ * instance, which can hijack cordova-specific commands within the pluin's
+ * implementation.
+ *
+ * Remember to require this module before the plugin that you want to test.
+ *
+ * Example:
+ *
+ * var cordova = require('./helper/cordova'),
+ * myPlugin = require('../www/myPlugin');
+ */
+
+module.exports = global.cordova = cordova = {
+
+ /**
+ * cordova.require Mock.
+ *
+ * Hijacks all cordova.requires. By default, it returns an empty function.
+ * You can define your own implementation of each required module before
+ * or after it has been required.
+ *
+ * See `cordova.required` to learn how to add your own module implemtnation.
+ */
+
+ require: function(moduleId) {
+ // define a default function if it doesn't exist
+ if (!cordova.required[moduleId]) {
+ cordova.required[moduleId] = function() {};
+ }
+ // create a new module mapping between the module Id and cordova.required.
+ return new ModuleMap(moduleId);
+ },
+
+ /**
+ * Cordova module implementations.
+ *
+ * A key-value hash, where the key is the module such as 'cordova/exec'
+ * and the value is the function or object returned.
+ *
+ * For example:
+ *
+ * var exec = require('cordova/exec');
+ *
+ * Will map to:
+ *
+ * cordova.required['cordova/exec'];
+ */
+
+ required: {
+ // populated at runtime
+ }
+};
+
+/**
+ * Module Mapper.
+ *
+ * Returns a function that when executed will lookup the implementation
+ * in cordova.required[id].
+ *
+ * @param {String} moduleId is the module name/path, such as 'cordova/exec'
+ * @return {Function}.
+ */
+
+function ModuleMap(moduleId) {
+ return function() {
+ // lookup and execute the module's mock implementation, passing
+ // in any parameters that were provided.
+ return cordova.required[moduleId].apply(this, arguments);
+ };
+}