cordova-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From shaz...@apache.org
Subject [01/27] cordova-plugins git commit: Removed plugins other than create-test-files, moved plugin to root
Date Wed, 22 Feb 2017 19:14:39 GMT
Repository: cordova-plugins
Updated Branches:
  refs/heads/create-test-files 8f39c7015 -> daad7fd88


http://git-wip-us.apache.org/repos/asf/cordova-plugins/blob/daad7fd8/notification/src/firefoxos/notification.js
----------------------------------------------------------------------
diff --git a/notification/src/firefoxos/notification.js b/notification/src/firefoxos/notification.js
deleted file mode 100644
index 4ff541a..0000000
--- a/notification/src/firefoxos/notification.js
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/ 
-
-var NotificationError = require('./NotificationError');
-var modulemapper = require('cordova/modulemapper');
-
-// keep hold of notification for future use
-var mozNotifications = {};
-var mozNotification = modulemapper.getOriginalSymbol(window, 'window.Notification');
-
-var closeEvent = new Event('close');
-var clickEvent = new Event('click');
-var showEvent = new Event('show');
-var errorEvent = new Event('error');
-
-function makeNotification(successCB, errorCB, options) {
-    var title = options.title;
-    var nId = options.notificationId;
-    var pluginObject = options.pluginObject;
-    delete options.title;
-    delete options.notificationId;
-    delete options.pluginObject;
-
-    var notification = new mozNotification(title, options);
-    mozNotifications[nId] = notification;
-
-    // handle events
-    notification.onclose = function() {
-        pluginObject.dispatchEvent(closeEvent);
-    }
-    notification.onclick = function() {
-        pluginObject.dispatchEvent(clickEvent);
-    }
-    notification.onshow = function() {
-        pluginObject.dispatchEvent(showEvent);
-    }
-    notification.onerror = function() {
-        pluginObject.dispatchEvent(errorEvent);
-    }
-
-    successCB();
-}
-
-// errors currently reporting String for debug only
-function create(successCB, errorCB, options) {
-    console.log('FxOS DEBUG: create', options);
-
-    if (mozNotification.permission === 'denied') {
-        errorCB(new NotificationError(NotificationError.PERMISSION_DENIED,
-              'FxOS Notification: Permission denied'));
-        return;
-    }
-    if (mozNotification.permission === 'granted') {
-        makeNotification(successCB, errorCB, options);
-        return;
-    }
-    mozNotification.requestPermission(function (permission) {
-        if (permission === 'granted') {
-            makeNotification(successCB, errorCB, options);
-        } else {
-            errorCB(new NotificationError(NotificationError.USER_DENIED,
-                  'FxOS Notification: User denied'));
-        }
-    });
-}
-
-function remove(successCB, errorCB, params) {
-    successCB = (successCB) ? successCB : function() {};
-    errorCB = (errorCB) ? errorCB : function() {};
-    var nId = params.notificationId;
-    mozNotifications[nId].close();
-    successCB();
-}
-
-
-module.exports = {
-    create: create,
-    remove: remove
-};    
-    
-require("cordova/exec/proxy").add("Notification", module.exports);

http://git-wip-us.apache.org/repos/asf/cordova-plugins/blob/daad7fd8/notification/www/NotificationError.js
----------------------------------------------------------------------
diff --git a/notification/www/NotificationError.js b/notification/www/NotificationError.js
deleted file mode 100644
index 590720b..0000000
--- a/notification/www/NotificationError.js
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-/**
- * Notification error object
- *
- * @constructor
- * @param code
- * @param message
- */
-var NotificationError = function(code, message) {
-    this.code = code || null;
-    this.message = message || '';
-};
-
-// Notification error codes
-NotificationError.UNKNOWN_ERROR = 0;
-NotificationError.PERMISSION_DENIED = 1;
-NotificationError.USER_DENIED = 2;
-
-module.exports = NotificationError;

http://git-wip-us.apache.org/repos/asf/cordova-plugins/blob/daad7fd8/notification/www/notification.js
----------------------------------------------------------------------
diff --git a/notification/www/notification.js b/notification/www/notification.js
deleted file mode 100644
index f10bab3..0000000
--- a/notification/www/notification.js
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-var argscheck = require('cordova/argscheck'),
-    utils = require('cordova/utils'),
-    exec = require('cordova/exec');
-   
-// counter for a notification id
-var nId = 0;
-
-// This might not be the best idea
-// from http://stackoverflow.com/questions/22186467/how-to-use-javascript-eventtarget
-
-function Emitter () {
-  var eventTarget = document.createDocumentFragment();
-
-  function delegate (method) {
-    this[method] = eventTarget[method].bind(eventTarget);
-  }
-
-  Emitter.methods.forEach(delegate, this);
-}
-
-Emitter.methods = ["addEventListener", "dispatchEvent", "removeEventListener"];
-
-function Notification(title, options, successCB, errorCB) {
-
-    options = (options) ? options : {};
-    successCB = (successCB) ? successCB : function() {};
-    errorCB = (errorCB) ? errorCB : function() {};
-
-    // return object in success callback
-    var self = this;
-    function success() {
-        successCB(self);
-    }
-
-    // add emitter methods to Notification
-    Emitter.call(this);
-
-    // set parameters
-    this.title = options.title = title;
-    this.dir = options.dir || null;
-    this.lang = options.lang || null;
-    this.body = options.dir || null;
-    this.dir = options.dir || null;
-    this.dir = options.dir || null;
-    this.dir = options.dir || null;
-    // add and store notificationId
-    this._notificationId = options.notificationId = nId++;
-    options.pluginObject = self;
-    exec(success, errorCB, "Notification", "create", options);
-}
-
-// handling closing an event
-Notification.prototype.close = function(successCB, errorCB) {
-    var options = {notificationId: this._notificationId};
-    exec(successCB, errorCB, "Notification", "remove", options);
-};
-
-module.exports = Notification;

http://git-wip-us.apache.org/repos/asf/cordova-plugins/blob/daad7fd8/package.json
----------------------------------------------------------------------
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..5e0e81d
--- /dev/null
+++ b/package.json
@@ -0,0 +1,15 @@
+{
+  "name": "create-test-files",
+  "version": "1.0.0",
+  "description": "Create Obj-C test files and js test stub for a plugin.",
+  "main": "create-test-files.js",
+  "scripts": {
+    "test": "echo \"Error: no test specified\" && exit 1"
+  },
+  "author": "",
+  "license": "Apache-2.0",
+  "dependencies": {
+    "nopt": "^3.0.6",
+    "shelljs": "^0.7.0"
+  }
+}

http://git-wip-us.apache.org/repos/asf/cordova-plugins/blob/daad7fd8/tcpsocket/doc/index.md
----------------------------------------------------------------------
diff --git a/tcpsocket/doc/index.md b/tcpsocket/doc/index.md
deleted file mode 100644
index 7f840a1..0000000
--- a/tcpsocket/doc/index.md
+++ /dev/null
@@ -1,60 +0,0 @@
-<!---
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
--->
-
-# org.apache.cordova.labs.tcpsocket
-
-This plugin is used to run sockets
-
-## Objects
-
-- navigator.TCPSocket
-
-## Methods
-
-### navigator.TCPSocket.open
-
-	navigator.TCPSocket.open(host, port, successCallback, errorCallback, options)
-
-
-- host is a string representing the hostname of the server to connect to (it can also be its raw IP address).
-- port is a umber representing the TCP port to be used by the socket (some protocols have a standard port, for example 80 for HTTP, 447 for SSL, 25 for SMTP, etc. Port numbers beyond 1024 are not assigned to any specific protocol and can be used for any purpose.)
-- options is an object containing
-	- useSecureTransport (Boolean) false (default)
-	- binaryType (String) "string" (default) or "arrayBuffer"
-
-an instantiation of a new TCPSocket object is returned in success callback
-
-#### Firefox OS quirks
-
-Only certified apps can use a port below 1024.
-
-### navigator.TCPSocket.listen
-
-	navigator.TCPSocket.listen(port, successCallback, errorCallback, options, queueLimit)
-
-- port is a number representing the TCP port to be used to listen for connections. 
-- options is an optional object expecting a property called binaryType which is a string that can have two possible values: string and arraybuffer. If the value is arraybuffer then the TCPSocket.send() will use ArrayBuffers and the data received from the remote connection will also be available in that format.
-- queueLimit is a number representing the maximum lenght that the pending connections queue can grow.
-
-an instantiation of a new TCPSocket object is returned in success callback
-
-#### Firefox OS quirks
-
-Only certified apps can use a port below 1024.
-

http://git-wip-us.apache.org/repos/asf/cordova-plugins/blob/daad7fd8/tcpsocket/plugin.xml
----------------------------------------------------------------------
diff --git a/tcpsocket/plugin.xml b/tcpsocket/plugin.xml
deleted file mode 100644
index 8bb3d03..0000000
--- a/tcpsocket/plugin.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-
-<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
-    id="org.apache.cordova.labs.tcpsocket"
-    version="0.0.1">
-    <name>TCPSocket</name>
-    <description>Cordova TCP Socket Plugin</description>
-    <license>Apache 2.0</license>
-    <keywords>cordova,tcpsocket,socket,tcp</keywords>
-
-
-	<engines>
-		<engine name="cordova" version=">=3.6.0" />
-	</engines>
-
-    <js-module src="www/TCPSocket.js" name="TCPSocket">
-        <clobbers target="navigator.TCPSocket" />
-    </js-module>
-
-    <!-- firefoxos -->
-    <platform name="firefoxos">
-        <config-file target="config.xml" parent="/*">
-            <permission name="tcp-socket" description="Required for accessing TCP Socket"
-                        privileged="true"/>
-        </config-file>
-        <js-module src="src/firefoxos/TCPSocketProxy.js" name="TCPSocketProxy">
-            <runs />
-        </js-module>
-    </platform>
-</plugin>
-

http://git-wip-us.apache.org/repos/asf/cordova-plugins/blob/daad7fd8/tcpsocket/src/firefoxos/TCPSocketProxy.js
----------------------------------------------------------------------
diff --git a/tcpsocket/src/firefoxos/TCPSocketProxy.js b/tcpsocket/src/firefoxos/TCPSocketProxy.js
deleted file mode 100644
index bbdf1fa..0000000
--- a/tcpsocket/src/firefoxos/TCPSocketProxy.js
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-var mozTCPSocket = cordova.require('cordova/modulemapper').getOriginalSymbol(window, 'navigator.TCPSocket') || navigator.mozTCPSocket;
-
-function open(successCB, errorCB, options) {
-    try {
-        var socket = mozTCPSocket.open(options.host, options.port, options.setup);
-    } catch (e) {
-        errorCB(e);
-        return;
-    }
-    successCB(socket);
-}
-
-function listen(successCB, errorCB, options) {
-    try {
-        var socket = mozTCPSocket.listen(options.port, options.setup, options.queueLimit);
-    } catch (e) {
-        errorCB(e);
-        return;
-    }
-    successCB(socket);
-}
-
-require('cordova/exec/proxy').add('TCPSocket', {
-  open: open,
-  listen: listen
-});

http://git-wip-us.apache.org/repos/asf/cordova-plugins/blob/daad7fd8/tcpsocket/www/TCPSocket.js
----------------------------------------------------------------------
diff --git a/tcpsocket/www/TCPSocket.js b/tcpsocket/www/TCPSocket.js
deleted file mode 100644
index b2ab013..0000000
--- a/tcpsocket/www/TCPSocket.js
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-var cordova = require('cordova'),
-    exec = require('cordova/exec');
-
-var TCPSocket = {
-    open: function(host, port, successCB, errorCB, setup) {
-      setup = setup || {};
-      setup.useSecureTransport = setup.useSecureTransport || false;
-      setup.binaryType = setup.binaryType || 'string'; 
-      options = {
-        host: host,
-        port: port,
-        setup: setup
-      }
-      exec(successCB, errorCB, "TCPSocket", "open", options)
-    },
-    listen: function(port, successCB, errorCB, setup, queueLimit) {
-      setup = setup || {};
-      setup.binaryType = setup.binaryType || 'string'; 
-      options = {
-        port: port,
-        setup: setup
-      };
-      if (queueLimit) {
-          options.queueLimit = queueLimit;
-      }
-      exec(successCB, errorCB, "TCPSocket", "listen", options)
-    }
-}
-
-module.exports = TCPSocket;

http://git-wip-us.apache.org/repos/asf/cordova-plugins/blob/daad7fd8/tests-template/ios/README.md
----------------------------------------------------------------------
diff --git a/tests-template/ios/README.md b/tests-template/ios/README.md
new file mode 100644
index 0000000..0949a43
--- /dev/null
+++ b/tests-template/ios/README.md
@@ -0,0 +1,40 @@
+<!--
+# license: Licensed to the Apache Software Foundation (ASF) under one
+#         or more contributor license agreements.  See the NOTICE file
+#         distributed with this work for additional information
+#         regarding copyright ownership.  The ASF licenses this file
+#         to you under the Apache License, Version 2.0 (the
+#         "License"); you may not use this file except in compliance
+#         with the License.  You may obtain a copy of the License at
+#
+#           http://www.apache.org/licenses/LICENSE-2.0
+#
+#         Unless required by applicable law or agreed to in writing,
+#         software distributed under the License is distributed on an
+#         "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#         KIND, either express or implied.  See the License for the
+#         specific language governing permissions and limitations
+#         under the License.
+-->
+
+# iOS Tests for __PROJECT_NAME__
+
+You need to install `node.js` to pull in `cordova-ios`.
+
+First install cordova-ios:
+
+    npm install
+
+... in the current folder.
+
+
+# Testing from Xcode
+
+1. Launch the `__PROJECT_NAME__Test.xcworkspace` file.
+2. Choose "__PROJECT_NAME__LibTests" from the scheme drop-down menu
+3. Click and hold on the `Play` button, and choose the `Wrench` icon to run the tests
+
+
+# Testing from the command line
+
+    npm test

http://git-wip-us.apache.org/repos/asf/cordova-plugins/blob/daad7fd8/tests-template/ios/__PROJECT_NAME__Test.xcworkspace/contents.xcworkspacedata
----------------------------------------------------------------------
diff --git a/tests-template/ios/__PROJECT_NAME__Test.xcworkspace/contents.xcworkspacedata b/tests-template/ios/__PROJECT_NAME__Test.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000..6e3ea30
--- /dev/null
+++ b/tests-template/ios/__PROJECT_NAME__Test.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+   version = "1.0">
+   <FileRef
+      location = "container:__PROJECT_NAME__Test/__PROJECT_NAME__Test.xcodeproj">
+   </FileRef>
+</Workspace>

http://git-wip-us.apache.org/repos/asf/cordova-plugins/blob/daad7fd8/tests-template/ios/__PROJECT_NAME__Test.xcworkspace/xcshareddata/__PROJECT_NAME__Test.xccheckout
----------------------------------------------------------------------
diff --git a/tests-template/ios/__PROJECT_NAME__Test.xcworkspace/xcshareddata/__PROJECT_NAME__Test.xccheckout b/tests-template/ios/__PROJECT_NAME__Test.xcworkspace/xcshareddata/__PROJECT_NAME__Test.xccheckout
new file mode 100644
index 0000000..b923e92
--- /dev/null
+++ b/tests-template/ios/__PROJECT_NAME__Test.xcworkspace/xcshareddata/__PROJECT_NAME__Test.xccheckout
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>IDESourceControlProjectFavoriteDictionaryKey</key>
+	<false/>
+	<key>IDESourceControlProjectIdentifier</key>
+	<string>6BE9AD73-1B9F-4362-98D7-DC631BEC6185</string>
+	<key>IDESourceControlProjectName</key>
+	<string>__PROJECT_NAME__Test</string>
+	<key>IDESourceControlProjectOriginsDictionary</key>
+	<dict>
+		<key>BEF5A5D0FF64801E558286389440357A9233D7DB</key>
+		<string>https://git-wip-us.apache.org/repos/asf/__REPO_NAME__.git</string>
+	</dict>
+	<key>IDESourceControlProjectPath</key>
+	<string>tests/ios/__PROJECT_NAME__Test/__PROJECT_NAME__Test.xcodeproj</string>
+	<key>IDESourceControlProjectRelativeInstallPathDictionary</key>
+	<dict>
+		<key>BEF5A5D0FF64801E558286389440357A9233D7DB</key>
+		<string>../../../../..</string>
+	</dict>
+	<key>IDESourceControlProjectURL</key>
+	<string>https://git-wip-us.apache.org/repos/asf/__REPO_NAME__.git</string>
+	<key>IDESourceControlProjectVersion</key>
+	<integer>111</integer>
+	<key>IDESourceControlProjectWCCIdentifier</key>
+	<string>BEF5A5D0FF64801E558286389440357A9233D7DB</string>
+	<key>IDESourceControlProjectWCConfigurations</key>
+	<array>
+		<dict>
+			<key>IDESourceControlRepositoryExtensionIdentifierKey</key>
+			<string>public.vcs.git</string>
+			<key>IDESourceControlWCCIdentifierKey</key>
+			<string>BEF5A5D0FF64801E558286389440357A9233D7DB</string>
+			<key>IDESourceControlWCCName</key>
+			<string>__REPO_NAME__</string>
+		</dict>
+	</array>
+</dict>
+</plist>

http://git-wip-us.apache.org/repos/asf/cordova-plugins/blob/daad7fd8/tests-template/ios/__PROJECT_NAME__Test.xcworkspace/xcshareddata/xcschemes/CordovaLib.xcscheme
----------------------------------------------------------------------
diff --git a/tests-template/ios/__PROJECT_NAME__Test.xcworkspace/xcshareddata/xcschemes/CordovaLib.xcscheme b/tests-template/ios/__PROJECT_NAME__Test.xcworkspace/xcshareddata/xcschemes/CordovaLib.xcscheme
new file mode 100644
index 0000000..13f9a15
--- /dev/null
+++ b/tests-template/ios/__PROJECT_NAME__Test.xcworkspace/xcshareddata/xcschemes/CordovaLib.xcscheme
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "0600"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "D2AAC07D0554694100DB518D"
+               BuildableName = "libCordova.a"
+               BlueprintName = "CordovaLib"
+               ReferencedContainer = "container:node_modules/cordova-ios/CordovaLib/CordovaLib.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      buildConfiguration = "Debug">
+      <Testables>
+      </Testables>
+   </TestAction>
+   <LaunchAction
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      buildConfiguration = "Debug"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      allowLocationSimulation = "YES">
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "D2AAC07D0554694100DB518D"
+            BuildableName = "libCordova.a"
+            BlueprintName = "CordovaLib"
+            ReferencedContainer = "container:node_modules/cordova-ios/CordovaLib/CordovaLib.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </LaunchAction>
+   <ProfileAction
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      buildConfiguration = "Release"
+      debugDocumentVersioning = "YES">
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "D2AAC07D0554694100DB518D"
+            BuildableName = "libCordova.a"
+            BlueprintName = "CordovaLib"
+            ReferencedContainer = "container:node_modules/cordova-ios/CordovaLib/CordovaLib.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>

http://git-wip-us.apache.org/repos/asf/cordova-plugins/blob/daad7fd8/tests-template/ios/__PROJECT_NAME__Test/.gitignore
----------------------------------------------------------------------
diff --git a/tests-template/ios/__PROJECT_NAME__Test/.gitignore b/tests-template/ios/__PROJECT_NAME__Test/.gitignore
new file mode 100644
index 0000000..c795b05
--- /dev/null
+++ b/tests-template/ios/__PROJECT_NAME__Test/.gitignore
@@ -0,0 +1 @@
+build
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-plugins/blob/daad7fd8/tests-template/ios/__PROJECT_NAME__Test/__PROJECT_NAME__LibTests/Info.plist
----------------------------------------------------------------------
diff --git a/tests-template/ios/__PROJECT_NAME__Test/__PROJECT_NAME__LibTests/Info.plist b/tests-template/ios/__PROJECT_NAME__Test/__PROJECT_NAME__LibTests/Info.plist
new file mode 100644
index 0000000..95c8add
--- /dev/null
+++ b/tests-template/ios/__PROJECT_NAME__Test/__PROJECT_NAME__LibTests/Info.plist
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<!--
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+-->
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>en</string>
+	<key>CFBundleExecutable</key>
+	<string>$(EXECUTABLE_NAME)</string>
+	<key>CFBundleIdentifier</key>
+	<string>org.apache.cordova.$(PRODUCT_NAME:rfc1034identifier)</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>$(PRODUCT_NAME)</string>
+	<key>CFBundlePackageType</key>
+	<string>BNDL</string>
+	<key>CFBundleShortVersionString</key>
+	<string>1.0</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleVersion</key>
+	<string>1</string>
+</dict>
+</plist>

http://git-wip-us.apache.org/repos/asf/cordova-plugins/blob/daad7fd8/tests-template/ios/__PROJECT_NAME__Test/__PROJECT_NAME__LibTests/__PROJECT_NAME__Test.m
----------------------------------------------------------------------
diff --git a/tests-template/ios/__PROJECT_NAME__Test/__PROJECT_NAME__LibTests/__PROJECT_NAME__Test.m b/tests-template/ios/__PROJECT_NAME__Test/__PROJECT_NAME__LibTests/__PROJECT_NAME__Test.m
new file mode 100644
index 0000000..eb2a80c
--- /dev/null
+++ b/tests-template/ios/__PROJECT_NAME__Test/__PROJECT_NAME__LibTests/__PROJECT_NAME__Test.m
@@ -0,0 +1,57 @@
+/*
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+ 
+ http://www.apache.org/licenses/LICENSE-2.0
+ 
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ */
+
+#import <UIKit/UIKit.h>
+#import <XCTest/XCTest.h>
+#import "__PROJECT_NAME__.h"
+
+@interface __PROJECT_NAME__Test : XCTestCase
+
+@property (nonatomic, strong) __PROJECT_NAME__* plugin;
+
+@end
+
+@interface __PROJECT_NAME__ ()
+
+// TODO: expose private interface, if needed
+
+@end
+
+@implementation __PROJECT_NAME__Test
+
+- (void)setUp {
+    [super setUp];
+    // Put setup code here. This method is called before the invocation of each test method in the class.
+    
+    self.plugin = [[__PROJECT_NAME__ alloc] init];
+}
+
+- (void)tearDown {
+    // Put teardown code here. This method is called after the invocation of each test method in the class.
+    [super tearDown];
+}
+
+- (void) test__PROJECT_NAME__ {
+    
+    // Failing tests
+    XCTAssertTrue(NO);
+    XCTAssertFalse(YES);
+}
+
+@end

http://git-wip-us.apache.org/repos/asf/cordova-plugins/blob/daad7fd8/tests-template/ios/__PROJECT_NAME__Test/__PROJECT_NAME__Test.xcodeproj/project.pbxproj
----------------------------------------------------------------------
diff --git a/tests-template/ios/__PROJECT_NAME__Test/__PROJECT_NAME__Test.xcodeproj/project.pbxproj b/tests-template/ios/__PROJECT_NAME__Test/__PROJECT_NAME__Test.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..e3dc61d
--- /dev/null
+++ b/tests-template/ios/__PROJECT_NAME__Test/__PROJECT_NAME__Test.xcodeproj/project.pbxproj
@@ -0,0 +1,499 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 46;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		7E9F51AB19DA10AE00DA31AC /* __PROJECT_NAME__.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E9F51A919DA10AE00DA31AC /* __PROJECT_NAME__.m */; };
+		7E9F51B119DA114400DA31AC /* __PROJECT_NAME__Test.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E9F51B019DA114400DA31AC /* __PROJECT_NAME__Test.m */; };
+		7E9F51B319DA116500DA31AC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E9F51B219DA116500DA31AC /* Foundation.framework */; };
+		7E9F51B519DA127E00DA31AC /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E9F51B419DA127E00DA31AC /* UIKit.framework */; };
+		7E9F51B919DA1B1600DA31AC /* lib__PROJECT_NAME__Lib.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E9F519519DA102000DA31AC /* lib__PROJECT_NAME__Lib.a */; };
+		7E9F51BA19DA1B2000DA31AC /* libCordova.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E9F519019DA0F8300DA31AC /* libCordova.a */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+		7E9F518F19DA0F8300DA31AC /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 7E9F518B19DA0F8300DA31AC /* CordovaLib.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = 68A32D7114102E1C006B237C;
+			remoteInfo = CordovaLib;
+		};
+		7E9F51AC19DA10DE00DA31AC /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 7E9F517219DA09CE00DA31AC /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = 7E9F519419DA102000DA31AC;
+			remoteInfo = __PROJECT_NAME__Lib;
+		};
+		7E9F51AE19DA10E100DA31AC /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 7E9F518B19DA0F8300DA31AC /* CordovaLib.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = D2AAC07D0554694100DB518D;
+			remoteInfo = CordovaLib;
+		};
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+		7E9F519319DA102000DA31AC /* CopyFiles */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 2147483647;
+			dstPath = "include/$(PRODUCT_NAME)";
+			dstSubfolderSpec = 16;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+		7E9F518B19DA0F8300DA31AC /* CordovaLib.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = CordovaLib.xcodeproj; path = "../node_modules/cordova-ios/CordovaLib/CordovaLib.xcodeproj"; sourceTree = "<group>"; };
+		7E9F519519DA102000DA31AC /* lib__PROJECT_NAME__Lib.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = lib__PROJECT_NAME__Lib.a; sourceTree = BUILT_PRODUCTS_DIR; };
+		7E9F519F19DA102000DA31AC /* __PROJECT_NAME__LibTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = __PROJECT_NAME__LibTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
+		7E9F51A219DA102000DA31AC /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+		7E9F51A919DA10AE00DA31AC /* __PROJECT_NAME__.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = __PROJECT_NAME__.m; path = ../../../src/ios/__PROJECT_NAME__.m; sourceTree = SOURCE_ROOT; };
+		7E9F51AA19DA10AE00DA31AC /* __PROJECT_NAME__.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = __PROJECT_NAME__.h; path = ../../../src/ios/__PROJECT_NAME__.h; sourceTree = SOURCE_ROOT; };
+		7E9F51B019DA114400DA31AC /* __PROJECT_NAME__Test.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = __PROJECT_NAME__Test.m; sourceTree = "<group>"; };
+		7E9F51B219DA116500DA31AC /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
+		7E9F51B419DA127E00DA31AC /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.0.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		7E9F519219DA102000DA31AC /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		7E9F519C19DA102000DA31AC /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				7E9F51BA19DA1B2000DA31AC /* libCordova.a in Frameworks */,
+				7E9F51B919DA1B1600DA31AC /* lib__PROJECT_NAME__Lib.a in Frameworks */,
+				7E9F51B519DA127E00DA31AC /* UIKit.framework in Frameworks */,
+				7E9F51B319DA116500DA31AC /* Foundation.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		7E9F517119DA09CE00DA31AC = {
+			isa = PBXGroup;
+			children = (
+				7E9F51B419DA127E00DA31AC /* UIKit.framework */,
+				7E9F51B219DA116500DA31AC /* Foundation.framework */,
+				7E9F518B19DA0F8300DA31AC /* CordovaLib.xcodeproj */,
+				7E9F519619DA102000DA31AC /* __PROJECT_NAME__Lib */,
+				7E9F51A019DA102000DA31AC /* __PROJECT_NAME__LibTests */,
+				7E9F517D19DA0A0A00DA31AC /* Products */,
+			);
+			sourceTree = "<group>";
+		};
+		7E9F517D19DA0A0A00DA31AC /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				7E9F519519DA102000DA31AC /* lib__PROJECT_NAME__Lib.a */,
+				7E9F519F19DA102000DA31AC /* __PROJECT_NAME__LibTests.xctest */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		7E9F518C19DA0F8300DA31AC /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				7E9F519019DA0F8300DA31AC /* libCordova.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		7E9F519619DA102000DA31AC /* __PROJECT_NAME__Lib */ = {
+			isa = PBXGroup;
+			children = (
+				7E9F51A919DA10AE00DA31AC /* __PROJECT_NAME__.m */,
+				7E9F51AA19DA10AE00DA31AC /* __PROJECT_NAME__.h */,
+			);
+			path = __PROJECT_NAME__Lib;
+			sourceTree = SOURCE_ROOT;
+		};
+		7E9F51A019DA102000DA31AC /* __PROJECT_NAME__LibTests */ = {
+			isa = PBXGroup;
+			children = (
+				7E9F51A119DA102000DA31AC /* Supporting Files */,
+				7E9F51B019DA114400DA31AC /* __PROJECT_NAME__Test.m */,
+			);
+			path = __PROJECT_NAME__LibTests;
+			sourceTree = "<group>";
+		};
+		7E9F51A119DA102000DA31AC /* Supporting Files */ = {
+			isa = PBXGroup;
+			children = (
+				7E9F51A219DA102000DA31AC /* Info.plist */,
+			);
+			name = "Supporting Files";
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+		7E9F519419DA102000DA31AC /* __PROJECT_NAME__Lib */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 7E9F51A319DA102000DA31AC /* Build configuration list for PBXNativeTarget "__PROJECT_NAME__Lib" */;
+			buildPhases = (
+				7E9F519119DA102000DA31AC /* Sources */,
+				7E9F519219DA102000DA31AC /* Frameworks */,
+				7E9F519319DA102000DA31AC /* CopyFiles */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = __PROJECT_NAME__Lib;
+			productName = __PROJECT_NAME__Lib;
+			productReference = 7E9F519519DA102000DA31AC /* lib__PROJECT_NAME__Lib.a */;
+			productType = "com.apple.product-type.library.static";
+		};
+		7E9F519E19DA102000DA31AC /* __PROJECT_NAME__LibTests */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 7E9F51A619DA102000DA31AC /* Build configuration list for PBXNativeTarget "__PROJECT_NAME__LibTests" */;
+			buildPhases = (
+				7E9F519B19DA102000DA31AC /* Sources */,
+				7E9F519C19DA102000DA31AC /* Frameworks */,
+				7E9F519D19DA102000DA31AC /* Resources */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				7E9F51AF19DA10E100DA31AC /* PBXTargetDependency */,
+				7E9F51AD19DA10DE00DA31AC /* PBXTargetDependency */,
+			);
+			name = __PROJECT_NAME__LibTests;
+			productName = __PROJECT_NAME__LibTests;
+			productReference = 7E9F519F19DA102000DA31AC /* __PROJECT_NAME__LibTests.xctest */;
+			productType = "com.apple.product-type.bundle.unit-test";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		7E9F517219DA09CE00DA31AC /* Project object */ = {
+			isa = PBXProject;
+			attributes = {
+				LastUpgradeCheck = 0600;
+				TargetAttributes = {
+					7E9F519419DA102000DA31AC = {
+						CreatedOnToolsVersion = 6.0;
+					};
+					7E9F519E19DA102000DA31AC = {
+						CreatedOnToolsVersion = 6.0;
+					};
+				};
+			};
+			buildConfigurationList = 7E9F517519DA09CE00DA31AC /* Build configuration list for PBXProject "__PROJECT_NAME__Test" */;
+			compatibilityVersion = "Xcode 3.2";
+			developmentRegion = English;
+			hasScannedForEncodings = 0;
+			knownRegions = (
+				en,
+			);
+			mainGroup = 7E9F517119DA09CE00DA31AC;
+			productRefGroup = 7E9F517D19DA0A0A00DA31AC /* Products */;
+			projectDirPath = "";
+			projectReferences = (
+				{
+					ProductGroup = 7E9F518C19DA0F8300DA31AC /* Products */;
+					ProjectRef = 7E9F518B19DA0F8300DA31AC /* CordovaLib.xcodeproj */;
+				},
+			);
+			projectRoot = "";
+			targets = (
+				7E9F519419DA102000DA31AC /* __PROJECT_NAME__Lib */,
+				7E9F519E19DA102000DA31AC /* __PROJECT_NAME__LibTests */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXReferenceProxy section */
+		7E9F519019DA0F8300DA31AC /* libCordova.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = libCordova.a;
+			remoteRef = 7E9F518F19DA0F8300DA31AC /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+/* End PBXReferenceProxy section */
+
+/* Begin PBXResourcesBuildPhase section */
+		7E9F519D19DA102000DA31AC /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+		7E9F519119DA102000DA31AC /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				7E9F51AB19DA10AE00DA31AC /* __PROJECT_NAME__.m in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		7E9F519B19DA102000DA31AC /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				7E9F51B119DA114400DA31AC /* __PROJECT_NAME__Test.m in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+		7E9F51AD19DA10DE00DA31AC /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = 7E9F519419DA102000DA31AC /* __PROJECT_NAME__Lib */;
+			targetProxy = 7E9F51AC19DA10DE00DA31AC /* PBXContainerItemProxy */;
+		};
+		7E9F51AF19DA10E100DA31AC /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = CordovaLib;
+			targetProxy = 7E9F51AE19DA10E100DA31AC /* PBXContainerItemProxy */;
+		};
+/* End PBXTargetDependency section */
+
+/* Begin XCBuildConfiguration section */
+		7E9F517619DA09CE00DA31AC /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+			};
+			name = Debug;
+		};
+		7E9F517719DA09CE00DA31AC /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+			};
+			name = Release;
+		};
+		7E9F51A419DA102000DA31AC /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_MODULES = YES;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_UNREACHABLE_CODE = YES;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				COPY_PHASE_STRIP = NO;
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					"DEBUG=1",
+					"$(inherited)",
+				);
+				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = (
+					"$(inherited)",
+					"\"$(TARGET_BUILD_DIR)/usr/local/lib/include\"",
+					"\"$(OBJROOT)/UninstalledProducts/include\"",
+					"\"$(BUILT_PRODUCTS_DIR)\"",
+				);
+				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+				MTL_ENABLE_DEBUG_INFO = YES;
+				ONLY_ACTIVE_ARCH = YES;
+				OTHER_LDFLAGS = "-ObjC";
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SDKROOT = iphoneos;
+				SKIP_INSTALL = YES;
+			};
+			name = Debug;
+		};
+		7E9F51A519DA102000DA31AC /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_MODULES = YES;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_UNREACHABLE_CODE = YES;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				COPY_PHASE_STRIP = YES;
+				ENABLE_NS_ASSERTIONS = NO;
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = (
+					"$(inherited)",
+					"\"$(TARGET_BUILD_DIR)/usr/local/lib/include\"",
+					"\n\"$(OBJROOT)/UninstalledProducts/include\"\n\"$(BUILT_PRODUCTS_DIR)\"",
+				);
+				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+				MTL_ENABLE_DEBUG_INFO = NO;
+				OTHER_LDFLAGS = "-ObjC";
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SDKROOT = iphoneos;
+				SKIP_INSTALL = YES;
+				VALIDATE_PRODUCT = YES;
+			};
+			name = Release;
+		};
+		7E9F51A719DA102000DA31AC /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_MODULES = YES;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_UNREACHABLE_CODE = YES;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				COPY_PHASE_STRIP = NO;
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(SDKROOT)/Developer/Library/Frameworks",
+					"$(inherited)",
+				);
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					"DEBUG=1",
+					"$(inherited)",
+				);
+				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				INFOPLIST_FILE = __PROJECT_NAME__LibTests/Info.plist;
+				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+				MTL_ENABLE_DEBUG_INFO = YES;
+				ONLY_ACTIVE_ARCH = YES;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SDKROOT = iphoneos;
+			};
+			name = Debug;
+		};
+		7E9F51A819DA102000DA31AC /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_MODULES = YES;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_UNREACHABLE_CODE = YES;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				COPY_PHASE_STRIP = YES;
+				ENABLE_NS_ASSERTIONS = NO;
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(SDKROOT)/Developer/Library/Frameworks",
+					"$(inherited)",
+				);
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				INFOPLIST_FILE = __PROJECT_NAME__LibTests/Info.plist;
+				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+				MTL_ENABLE_DEBUG_INFO = NO;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SDKROOT = iphoneos;
+				VALIDATE_PRODUCT = YES;
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		7E9F517519DA09CE00DA31AC /* Build configuration list for PBXProject "__PROJECT_NAME__Test" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				7E9F517619DA09CE00DA31AC /* Debug */,
+				7E9F517719DA09CE00DA31AC /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		7E9F51A319DA102000DA31AC /* Build configuration list for PBXNativeTarget "__PROJECT_NAME__Lib" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				7E9F51A419DA102000DA31AC /* Debug */,
+				7E9F51A519DA102000DA31AC /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		7E9F51A619DA102000DA31AC /* Build configuration list for PBXNativeTarget "__PROJECT_NAME__LibTests" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				7E9F51A719DA102000DA31AC /* Debug */,
+				7E9F51A819DA102000DA31AC /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 7E9F517219DA09CE00DA31AC /* Project object */;
+}

http://git-wip-us.apache.org/repos/asf/cordova-plugins/blob/daad7fd8/tests-template/ios/__PROJECT_NAME__Test/__PROJECT_NAME__Test.xcodeproj/project.xcworkspace/contents.xcworkspacedata
----------------------------------------------------------------------
diff --git a/tests-template/ios/__PROJECT_NAME__Test/__PROJECT_NAME__Test.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/tests-template/ios/__PROJECT_NAME__Test/__PROJECT_NAME__Test.xcodeproj/project.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000..9856853
--- /dev/null
+++ b/tests-template/ios/__PROJECT_NAME__Test/__PROJECT_NAME__Test.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+   version = "1.0">
+   <FileRef
+      location = "self:__PROJECT_NAME__Test.xcodeproj">
+   </FileRef>
+</Workspace>

http://git-wip-us.apache.org/repos/asf/cordova-plugins/blob/daad7fd8/tests-template/ios/__PROJECT_NAME__Test/__PROJECT_NAME__Test.xcodeproj/project.xcworkspace/xcshareddata/__PROJECT_NAME__Test.xccheckout
----------------------------------------------------------------------
diff --git a/tests-template/ios/__PROJECT_NAME__Test/__PROJECT_NAME__Test.xcodeproj/project.xcworkspace/xcshareddata/__PROJECT_NAME__Test.xccheckout b/tests-template/ios/__PROJECT_NAME__Test/__PROJECT_NAME__Test.xcodeproj/project.xcworkspace/xcshareddata/__PROJECT_NAME__Test.xccheckout
new file mode 100644
index 0000000..b923e92
--- /dev/null
+++ b/tests-template/ios/__PROJECT_NAME__Test/__PROJECT_NAME__Test.xcodeproj/project.xcworkspace/xcshareddata/__PROJECT_NAME__Test.xccheckout
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>IDESourceControlProjectFavoriteDictionaryKey</key>
+	<false/>
+	<key>IDESourceControlProjectIdentifier</key>
+	<string>6BE9AD73-1B9F-4362-98D7-DC631BEC6185</string>
+	<key>IDESourceControlProjectName</key>
+	<string>__PROJECT_NAME__Test</string>
+	<key>IDESourceControlProjectOriginsDictionary</key>
+	<dict>
+		<key>BEF5A5D0FF64801E558286389440357A9233D7DB</key>
+		<string>https://git-wip-us.apache.org/repos/asf/__REPO_NAME__.git</string>
+	</dict>
+	<key>IDESourceControlProjectPath</key>
+	<string>tests/ios/__PROJECT_NAME__Test/__PROJECT_NAME__Test.xcodeproj</string>
+	<key>IDESourceControlProjectRelativeInstallPathDictionary</key>
+	<dict>
+		<key>BEF5A5D0FF64801E558286389440357A9233D7DB</key>
+		<string>../../../../..</string>
+	</dict>
+	<key>IDESourceControlProjectURL</key>
+	<string>https://git-wip-us.apache.org/repos/asf/__REPO_NAME__.git</string>
+	<key>IDESourceControlProjectVersion</key>
+	<integer>111</integer>
+	<key>IDESourceControlProjectWCCIdentifier</key>
+	<string>BEF5A5D0FF64801E558286389440357A9233D7DB</string>
+	<key>IDESourceControlProjectWCConfigurations</key>
+	<array>
+		<dict>
+			<key>IDESourceControlRepositoryExtensionIdentifierKey</key>
+			<string>public.vcs.git</string>
+			<key>IDESourceControlWCCIdentifierKey</key>
+			<string>BEF5A5D0FF64801E558286389440357A9233D7DB</string>
+			<key>IDESourceControlWCCName</key>
+			<string>__REPO_NAME__</string>
+		</dict>
+	</array>
+</dict>
+</plist>

http://git-wip-us.apache.org/repos/asf/cordova-plugins/blob/daad7fd8/tests-template/ios/__PROJECT_NAME__Test/__PROJECT_NAME__Test.xcodeproj/xcshareddata/xcschemes/__PROJECT_NAME__Lib.xcscheme
----------------------------------------------------------------------
diff --git a/tests-template/ios/__PROJECT_NAME__Test/__PROJECT_NAME__Test.xcodeproj/xcshareddata/xcschemes/__PROJECT_NAME__Lib.xcscheme b/tests-template/ios/__PROJECT_NAME__Test/__PROJECT_NAME__Test.xcodeproj/xcshareddata/xcschemes/__PROJECT_NAME__Lib.xcscheme
new file mode 100644
index 0000000..666abac
--- /dev/null
+++ b/tests-template/ios/__PROJECT_NAME__Test/__PROJECT_NAME__Test.xcodeproj/xcshareddata/xcschemes/__PROJECT_NAME__Lib.xcscheme
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "0600"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "7E9F519419DA102000DA31AC"
+               BuildableName = "lib__PROJECT_NAME__Lib.a"
+               BlueprintName = "__PROJECT_NAME__Lib"
+               ReferencedContainer = "container:__PROJECT_NAME__Test.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      buildConfiguration = "Debug">
+      <Testables>
+      </Testables>
+   </TestAction>
+   <LaunchAction
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      buildConfiguration = "Debug"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      allowLocationSimulation = "YES">
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "7E9F519419DA102000DA31AC"
+            BuildableName = "lib__PROJECT_NAME__Lib.a"
+            BlueprintName = "__PROJECT_NAME__Lib"
+            ReferencedContainer = "container:__PROJECT_NAME__Test.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </LaunchAction>
+   <ProfileAction
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      buildConfiguration = "Release"
+      debugDocumentVersioning = "YES">
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "7E9F519419DA102000DA31AC"
+            BuildableName = "lib__PROJECT_NAME__Lib.a"
+            BlueprintName = "__PROJECT_NAME__Lib"
+            ReferencedContainer = "container:__PROJECT_NAME__Test.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>

http://git-wip-us.apache.org/repos/asf/cordova-plugins/blob/daad7fd8/tests-template/ios/__PROJECT_NAME__Test/__PROJECT_NAME__Test.xcodeproj/xcshareddata/xcschemes/__PROJECT_NAME__LibTests.xcscheme
----------------------------------------------------------------------
diff --git a/tests-template/ios/__PROJECT_NAME__Test/__PROJECT_NAME__Test.xcodeproj/xcshareddata/xcschemes/__PROJECT_NAME__LibTests.xcscheme b/tests-template/ios/__PROJECT_NAME__Test/__PROJECT_NAME__Test.xcodeproj/xcshareddata/xcschemes/__PROJECT_NAME__LibTests.xcscheme
new file mode 100644
index 0000000..c83241a
--- /dev/null
+++ b/tests-template/ios/__PROJECT_NAME__Test/__PROJECT_NAME__Test.xcodeproj/xcshareddata/xcschemes/__PROJECT_NAME__LibTests.xcscheme
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "0600"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "NO"
+            buildForArchiving = "NO"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "7E9F519E19DA102000DA31AC"
+               BuildableName = "__PROJECT_NAME__LibTests.xctest"
+               BlueprintName = "__PROJECT_NAME__LibTests"
+               ReferencedContainer = "container:__PROJECT_NAME__Test.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      buildConfiguration = "Debug">
+      <Testables>
+         <TestableReference
+            skipped = "NO">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "7E9F519E19DA102000DA31AC"
+               BuildableName = "__PROJECT_NAME__LibTests.xctest"
+               BlueprintName = "__PROJECT_NAME__LibTests"
+               ReferencedContainer = "container:__PROJECT_NAME__Test.xcodeproj">
+            </BuildableReference>
+         </TestableReference>
+      </Testables>
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "7E9F519E19DA102000DA31AC"
+            BuildableName = "__PROJECT_NAME__LibTests.xctest"
+            BlueprintName = "__PROJECT_NAME__LibTests"
+            ReferencedContainer = "container:__PROJECT_NAME__Test.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
+   </TestAction>
+   <LaunchAction
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      buildConfiguration = "Debug"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      allowLocationSimulation = "YES">
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "7E9F519E19DA102000DA31AC"
+            BuildableName = "__PROJECT_NAME__LibTests.xctest"
+            BlueprintName = "__PROJECT_NAME__LibTests"
+            ReferencedContainer = "container:__PROJECT_NAME__Test.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </LaunchAction>
+   <ProfileAction
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      buildConfiguration = "Release"
+      debugDocumentVersioning = "YES">
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "7E9F519E19DA102000DA31AC"
+            BuildableName = "__PROJECT_NAME__LibTests.xctest"
+            BlueprintName = "__PROJECT_NAME__LibTests"
+            ReferencedContainer = "container:__PROJECT_NAME__Test.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>

http://git-wip-us.apache.org/repos/asf/cordova-plugins/blob/daad7fd8/tests-template/ios/package.json
----------------------------------------------------------------------
diff --git a/tests-template/ios/package.json b/tests-template/ios/package.json
new file mode 100644
index 0000000..d05fd19
--- /dev/null
+++ b/tests-template/ios/package.json
@@ -0,0 +1,13 @@
+{
+    "name": "__REPO_NAME__-test-ios",
+    "version": "1.0.0",
+    "description": "iOS Unit Tests for __REPO_NAME__ Plugin",
+    "author": "Apache Software Foundation",
+    "license": "Apache Version 2.0",
+    "dependencies": {
+        "cordova-ios": "*"
+    },
+    "scripts": {
+        "test": "xcodebuild test -workspace __PROJECT_NAME__Test.xcworkspace -scheme __PROJECT_NAME__LibTests -destination 'platform=iOS Simulator,name=iPhone 5' CONFIGURATION_BUILD_DIR='/tmp' HEADER_SEARCH_PATHS='$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include'"
+    }
+}

http://git-wip-us.apache.org/repos/asf/cordova-plugins/blob/daad7fd8/tests-template/plugin.xml
----------------------------------------------------------------------
diff --git a/tests-template/plugin.xml b/tests-template/plugin.xml
new file mode 100644
index 0000000..52fc2ba
--- /dev/null
+++ b/tests-template/plugin.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
+    id="__REPO_NAME__-tests"
+    version="1.0.0-dev">
+    <name>__REPO_NAME__ Tests</name>
+    <license>Apache 2.0</license>
+
+    <js-module src="tests.js" name="tests">
+    </js-module>
+</plugin>

http://git-wip-us.apache.org/repos/asf/cordova-plugins/blob/daad7fd8/tests-template/tests.js
----------------------------------------------------------------------
diff --git a/tests-template/tests.js b/tests-template/tests.js
new file mode 100644
index 0000000..b94d56c
--- /dev/null
+++ b/tests-template/tests.js
@@ -0,0 +1,44 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+
+/* jshint jasmine: true */
+
+exports.defineAutoTests = function () {
+    describe('__REPO_NAME__ (cordova)', function () {
+        it("__REPO_NAME__.spec.1 should exist", function () {
+            //expect(window).toBeDefined();
+        });
+    });
+};
+
+exports.defineManualTests = function (contentEl, createActionButton) {
+
+    contentEl.innerHTML = 'Your HTML instructions here';
+
+    createActionButton('Do something 1', function () {
+        // do something 1;
+    }, 'do-something-1');
+
+    createActionButton('Do something 2', function () {
+        // do something 2;
+    }, 'do-something-2');
+
+};

http://git-wip-us.apache.org/repos/asf/cordova-plugins/blob/daad7fd8/wkwebview-engine-localhost/README.md
----------------------------------------------------------------------
diff --git a/wkwebview-engine-localhost/README.md b/wkwebview-engine-localhost/README.md
deleted file mode 100644
index 77b5ce9..0000000
--- a/wkwebview-engine-localhost/README.md
+++ /dev/null
@@ -1,21 +0,0 @@
-Cordova WKWebView Engine with http server (localhost) support
-======
-
-This plugin uses the:
-- [cordova-plugin-wkwebview-engine](https://git-wip-us.apache.org/repos/asf/cordova-plugin-wkwebview-engine.git) plugin
-- [cordova-labs-local-webserver](https://git-wip-us.apache.org/repos/asf/cordova-plugins.git#master:local-webserver) plugin
-
-This plugin requires at least version 4.1.0 `cordova-ios`.
-
-To try this:
-
-    cordova create wkwvtest my.project.id wkwvtest
-    cd wkwvtest
-    cordova platform add ios@4
-    cordova plugin add https://github.com/apache/cordova-plugins.git#master:wkwebview-engine-localhost
-
-
-Supported Platforms
--------------------
-
-- iOS

http://git-wip-us.apache.org/repos/asf/cordova-plugins/blob/daad7fd8/wkwebview-engine-localhost/plugin.xml
----------------------------------------------------------------------
diff --git a/wkwebview-engine-localhost/plugin.xml b/wkwebview-engine-localhost/plugin.xml
deleted file mode 100644
index 6003793..0000000
--- a/wkwebview-engine-localhost/plugin.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
-    xmlns:rim="http://www.blackberry.com/ns/widgets"
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    id="cordova-labs-wkwebview-engine-localhost"
-    version="0.5.0">
-    <name>Cordova WKWebView Engine with http server (localhost) support</name>
-    <description>Cordova WKWebView Engine with HTTP Server Plugin</description>
-    <license>Apache 2.0</license>
-    <keywords>cordova,wkwebview,webview</keywords>
-    <repo>https://git-wip-us.apache.org/repos/asf/cordova-plugins.git</repo>
-
-	<engines>
-        <engine name="cordova-ios" version=">=4.1.0" />
-        <engine name="apple-ios" version=">=8.0" />
-	</engines>
-
-    <dependency id="cordova-labs-local-webserver" url="https://git-wip-us.apache.org/repos/asf/cordova-plugins.git#master:local-webserver" version=">=2.3.1" />
-    <dependency id="cordova-plugin-wkwebview-engine" version=">=1.0.1" />
-
-    <!-- ios -->
-    <platform name="ios">
-    </platform>
-
-</plugin>


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org


Mime
View raw message