You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by mm...@apache.org on 2013/12/13 17:02:42 UTC

[1/4] git commit: Refactoring test plugin

Updated Branches:
  refs/heads/cdvtest 78337f6a7 -> adc757661


Refactoring test plugin


Project: http://git-wip-us.apache.org/repos/asf/cordova-labs/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-labs/commit/52ff719c
Tree: http://git-wip-us.apache.org/repos/asf/cordova-labs/tree/52ff719c
Diff: http://git-wip-us.apache.org/repos/asf/cordova-labs/diff/52ff719c

Branch: refs/heads/cdvtest
Commit: 52ff719c2b120c10d4f7392f4fdef0ec8565e7ff
Parents: c2ccde6
Author: Michal Mocny <mm...@gmail.com>
Authored: Fri Nov 8 14:19:39 2013 -0500
Committer: Michal Mocny <mm...@gmail.com>
Committed: Fri Nov 8 14:19:44 2013 -0500

----------------------------------------------------------------------
 cordova-app-test-harness/www/main.js | 107 ++++++++++++++++--------------
 1 file changed, 57 insertions(+), 50 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-labs/blob/52ff719c/cordova-app-test-harness/www/main.js
----------------------------------------------------------------------
diff --git a/cordova-app-test-harness/www/main.js b/cordova-app-test-harness/www/main.js
index 1de8781..4be5c47 100644
--- a/cordova-app-test-harness/www/main.js
+++ b/cordova-app-test-harness/www/main.js
@@ -117,32 +117,30 @@ function runAutoTests() {
     return specFilter.matches(spec.getFullName());
   };
   */
-  createHtmlReporter(jasmine);
-  createCouchdbReporter(jasmine, function(){runtests(jasmine);});
-}
 
-function runtests(jasmine){
-  // Define our tests
-  var test = cordova.require('org.apache.cordova.test-framework.test');
-  logger(test);
-  test.initForAutoTests(jasmine);
+  createHtmlReporter(jasmine);
+  createCouchdbReporter(jasmine, function() {
+    var test = cordova.require('org.apache.cordova.test-framework.test');
+    test.initForAutoTests(jasmine);
+
+    // Define our tests
+    getPluginTestsJsModules().forEach(function(id) {
+      var tests;
+      try {
+        tests = cordova.require(id);
+      } catch(ex) {
+        logger('Failed to load:', id);
+        return;
+      }
+      tests.init();
+      logger('Loaded:', id);
+    });
 
-  getPluginTestsJsModules().forEach(function(id) {
-    var tests;
-    try {
-      tests = cordova.require(id);
-    } catch(ex) {
-      logger('Failed to load:', id);
-      return;
-    }
-    tests.init();
-    logger('Loaded:', id);
+    // Run!
+    test.runAutoTests();
   });
-
-  // Run!
-  test.runAutoTests();
-
 }
+
 function createHtmlReporter(jasmine) {
    // Set up jasmine html reporter
   var jasmineEnv = jasmine.getEnv();
@@ -160,38 +158,47 @@ function createHtmlReporter(jasmine) {
 
   jasmineEnv.addReporter(htmlReporter);
 }
- 
+
 function createCouchdbReporter(jasmine, callback) {
   var settings = cordova.require('org.apache.cordova.appsettings.appsettings');
-  settings.get( function(dbsettings){configureCouchReporter(dbsettings,jasmine,callback);},
-              function(){configureCouchReporter(null,jasmine,callback);},
-              ["CouchdbUrl", "CouchdbPrivateUrl","TestSha"]);
+  var win = function(dbsettings) {
+    configureCouchReporter(dbsettings,jasmine,callback);
+  };
+  var fail = function() {
+    configureCouchReporter(null,jasmine,callback);
+  };
+  settings.get(win, fail, ["CouchdbUrl", "CouchdbPrivateUrl", "TestSha"]);
 }
-             
-function configureCouchReporter(dbsettings, jasmine, callback){
-    if(dbsettings) {
-      try{
-        var reporteroptions =  {serverip: dbsettings['CouchdbUrl'],
-          serverpublic: dbsettings['CouchdbPrivateUrl'],
-          sha: dbsettings['TestSha']};
-        var ciReporter = new jasmine.CouchDBReporter({
-          env: jasmine.getEnv(),
-          queryString: getURLParameter,
-          onRaiseExceptionsClick: function() { /*queryString.setParam("catch", !jasmineEnv.catchingExceptions());*/ },
-          getContainer: function() { return contentEl; },
-          createElement: function() { return document.createElement.apply(document, arguments); },
-          createTextNode: function() { return document.createTextNode.apply(document, arguments); },
-          timer: new jasmine.Timer() ,
-          couch: reporteroptions});
- 
-        jasmine.getEnv().addReporter(ciReporter);
-      } catch(ex) {
-        logger('Invalid CouchDB settings:', ex);
-      }
-    } else {
-      logger('CouchDB Settings unavailable.' );
+
+function configureCouchReporter(dbsettings, jasmine, callback) {
+    if (!dbsettings) {
+      console.warn('Not reporting results to CouchDB.');
+      return callback();
     }
-    callback();
+
+    try {
+      var reporteroptions = {
+        serverip: dbsettings['CouchdbUrl'],
+        serverpublic: dbsettings['CouchdbPrivateUrl'],
+        sha: dbsettings['TestSha'],
+      };
+      var ciReporter = new jasmine.CouchDBReporter({
+        env: jasmine.getEnv(),
+        queryString: getURLParameter,
+        onRaiseExceptionsClick: function() { /*queryString.setParam("catch", !jasmineEnv.catchingExceptions());*/ },
+        getContainer: function() { return contentEl; },
+        createElement: function() { return document.createElement.apply(document, arguments); },
+        createTextNode: function() { return document.createTextNode.apply(document, arguments); },
+        timer: new jasmine.Timer(),
+        couch: reporteroptions
+      });
+
+      jasmine.getEnv().addReporter(ciReporter);
+    } catch(ex) {
+      logger('Invalid CouchDB settings:', ex);
+    }
+
+    return callback();
 }
 
 /******************************************************************************/


[2/4] git commit: Chaning API for adding manual tests

Posted by mm...@apache.org.
Chaning API for adding manual tests


Project: http://git-wip-us.apache.org/repos/asf/cordova-labs/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-labs/commit/c2ccde64
Tree: http://git-wip-us.apache.org/repos/asf/cordova-labs/tree/c2ccde64
Diff: http://git-wip-us.apache.org/repos/asf/cordova-labs/diff/c2ccde64

Branch: refs/heads/cdvtest
Commit: c2ccde6471853416a7bdc09d00b9bfc02a301b8d
Parents: 78337f6
Author: Michal Mocny <mm...@gmail.com>
Authored: Fri Nov 1 14:18:11 2013 -0400
Committer: Michal Mocny <mm...@gmail.com>
Committed: Fri Nov 8 14:19:44 2013 -0500

----------------------------------------------------------------------
 cordova-plugin-test-framework/www/test.js | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-labs/blob/c2ccde64/cordova-plugin-test-framework/www/test.js
----------------------------------------------------------------------
diff --git a/cordova-plugin-test-framework/www/test.js b/cordova-plugin-test-framework/www/test.js
index fcb1eba..56bc407 100644
--- a/cordova-plugin-test-framework/www/test.js
+++ b/cordova-plugin-test-framework/www/test.js
@@ -146,8 +146,18 @@ exports.initForManualTests = function() {
 
 /******************************************************************************/
 
-exports.addManualTest = function(title, handler) {
-  createActionButtonFn(title, handler);
+exports.addManualTestFn = function(title, fn) {
+  createActionButtonFn(title, fn);
+};
+
+/******************************************************************************/
+
+exports.addManualTestPage = function(title, url) {
+  createActionButtonFn(title, function() {
+    // TODO: This should probably have a way to get back.
+    // Perhaps open the page in a frame?
+    window.href = url;
+  });
 };
 
 /******************************************************************************/


[3/4] git commit: Updating the way we create jasmineInterface

Posted by mm...@apache.org.
Updating the way we create jasmineInterface


Project: http://git-wip-us.apache.org/repos/asf/cordova-labs/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-labs/commit/42e92abd
Tree: http://git-wip-us.apache.org/repos/asf/cordova-labs/tree/42e92abd
Diff: http://git-wip-us.apache.org/repos/asf/cordova-labs/diff/42e92abd

Branch: refs/heads/cdvtest
Commit: 42e92abdb54da05a7a46c3c63bcfbd90d17bb394
Parents: 52ff719
Author: Michal Mocny <mm...@gmail.com>
Authored: Fri Dec 6 14:38:23 2013 -0500
Committer: Michal Mocny <mm...@gmail.com>
Committed: Fri Dec 13 09:59:34 2013 -0500

----------------------------------------------------------------------
 cordova-plugin-test-framework/www/test.js | 75 ++++++++------------------
 1 file changed, 23 insertions(+), 52 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-labs/blob/42e92abd/cordova-plugin-test-framework/www/test.js
----------------------------------------------------------------------
diff --git a/cordova-plugin-test-framework/www/test.js b/cordova-plugin-test-framework/www/test.js
index 56bc407..68b3108 100644
--- a/cordova-plugin-test-framework/www/test.js
+++ b/cordova-plugin-test-framework/www/test.js
@@ -50,63 +50,34 @@ Object.defineProperty(exports, "log", {
 (function() {
 
 var jasmine,
-    jasmineEnv,
     jasmineInterface;
 
 /******************************************************************************/
 
 exports.initForAutoTests = function(jasmine_) {
   jasmine = jasmine_;
-  jasmineEnv = jasmine.getEnv();
-  jasmineInterface = {
-    describe: function(description, specDefinitions) {
-      return jasmineEnv.describe(description, specDefinitions);
-    },
-
-    xdescribe: function(description, specDefinitions) {
-      return jasmineEnv.xdescribe(description, specDefinitions);
-    },
-
-    it: function(desc, func) {
-      return jasmineEnv.it(desc, func);
-    },
-
-    xit: function(desc, func) {
-      return jasmineEnv.xit(desc, func);
-    },
-
-    beforeEach: function(beforeEachFunction) {
-      return jasmineEnv.beforeEach(beforeEachFunction);
-    },
-
-    afterEach: function(afterEachFunction) {
-      return jasmineEnv.afterEach(afterEachFunction);
-    },
-
-    expect: function(actual) {
-      return jasmineEnv.expect(actual);
-    },
-
-    pending: function() {
-      return jasmineEnv.pending();
-    },
-
-    addMatchers: function(matchers) {
-      return jasmineEnv.addMatchers(matchers);
-    },
-
-    spyOn: function(obj, methodName) {
-      return jasmineEnv.spyOn(obj, methodName);
-    },
-
-    clock: jasmineEnv.clock,
-
-    jsApiReporter: new jasmine.JsApiReporter({
-      timer: new jasmine.Timer()
-    }),
-
-    jasmine: jasmine,
-  };
+  jasmineInterface = {};
+
+  var jasmineEnv = jasmine.getEnv();
+
+  // Fill in jasmineInterface
+  var jasmine_functions = ['describe',
+                           'xdescribe',
+                           'it',
+                           'xit',
+                           'beforeEach',
+                           'afterEach',
+                           'expect',
+                           'pending',
+                           'addMatchers',
+                           'spyOn'];
+  jasmine_functions.forEach(function(fn) {
+    jasmineInterface[fn] = jasmineEnv[fn].bind(jasmineEnv);
+  });
+  jasmineInterface.clock = jasmineEnv.clock;
+  jasmineInterface.jsApiReporter = new jasmine.JsApiReporter({ timer: new jasmine.Timer() });
+  jasmineInterface.jasmine = jasmine;
+  jasmineInterface.log = exports.log;
 
   jasmineEnv.addReporter(jasmineInterface.jsApiReporter);
 };
@@ -114,7 +85,7 @@ exports.initForAutoTests = function(jasmine_) {
 /******************************************************************************/
 
 exports.runAutoTests = function() {
-  jasmineEnv.execute();
+  jasmine.getEnv().execute();
 };
 
 /******************************************************************************/


[4/4] git commit: rename settings plugin; add dependancy for it

Posted by mm...@apache.org.
rename settings plugin; add dependancy for it


Project: http://git-wip-us.apache.org/repos/asf/cordova-labs/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-labs/commit/adc75766
Tree: http://git-wip-us.apache.org/repos/asf/cordova-labs/tree/adc75766
Diff: http://git-wip-us.apache.org/repos/asf/cordova-labs/diff/adc75766

Branch: refs/heads/cdvtest
Commit: adc757661df7ed6421fe618deb3eb031b8258b3b
Parents: 42e92ab
Author: Michal Mocny <mm...@gmail.com>
Authored: Fri Dec 13 11:02:15 2013 -0500
Committer: Michal Mocny <mm...@gmail.com>
Committed: Fri Dec 13 11:02:15 2013 -0500

----------------------------------------------------------------------
 cordova-plugin-appsettings/LICENSE              | 191 +++++++++++++++++++
 cordova-plugin-appsettings/README.md            |   2 +
 cordova-plugin-appsettings/plugin.xml           |  44 +++++
 .../src/android/AppSettings.java                |  35 ++++
 .../src/ios/AppSettings.h                       |  13 ++
 .../src/ios/AppSettings.m                       |  39 ++++
 cordova-plugin-appsettings/www/appsettings.js   |  22 +++
 cordova-plugin-settings/LICENSE                 | 191 -------------------
 cordova-plugin-settings/README.md               |   2 -
 cordova-plugin-settings/plugin.xml              |  44 -----
 .../src/android/AppSettings.java                |  35 ----
 cordova-plugin-settings/src/ios/AppSettings.h   |  13 --
 cordova-plugin-settings/src/ios/AppSettings.m   |  39 ----
 cordova-plugin-settings/www/appsettings.js      |  22 ---
 cordova-plugin-test-framework/plugin.xml        |   2 +
 15 files changed, 348 insertions(+), 346 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-labs/blob/adc75766/cordova-plugin-appsettings/LICENSE
----------------------------------------------------------------------
diff --git a/cordova-plugin-appsettings/LICENSE b/cordova-plugin-appsettings/LICENSE
new file mode 100644
index 0000000..37ec93a
--- /dev/null
+++ b/cordova-plugin-appsettings/LICENSE
@@ -0,0 +1,191 @@
+Apache License
+Version 2.0, January 2004
+http://www.apache.org/licenses/
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+"License" shall mean the terms and conditions for use, reproduction, and
+distribution as defined by Sections 1 through 9 of this document.
+
+"Licensor" shall mean the copyright owner or entity authorized by the copyright
+owner that is granting the License.
+
+"Legal Entity" shall mean the union of the acting entity and all other entities
+that control, are controlled by, or are under common control with that entity.
+For the purposes of this definition, "control" means (i) the power, direct or
+indirect, to cause the direction or management of such entity, whether by
+contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the
+outstanding shares, or (iii) beneficial ownership of such entity.
+
+"You" (or "Your") shall mean an individual or Legal Entity exercising
+permissions granted by this License.
+
+"Source" form shall mean the preferred form for making modifications, including
+but not limited to software source code, documentation source, and configuration
+files.
+
+"Object" form shall mean any form resulting from mechanical transformation or
+translation of a Source form, including but not limited to compiled object code,
+generated documentation, and conversions to other media types.
+
+"Work" shall mean the work of authorship, whether in Source or Object form, made
+available under the License, as indicated by a copyright notice that is included
+in or attached to the work (an example is provided in the Appendix below).
+
+"Derivative Works" shall mean any work, whether in Source or Object form, that
+is based on (or derived from) the Work and for which the editorial revisions,
+annotations, elaborations, or other modifications represent, as a whole, an
+original work of authorship. For the purposes of this License, Derivative Works
+shall not include works that remain separable from, or merely link (or bind by
+name) to the interfaces of, the Work and Derivative Works thereof.
+
+"Contribution" shall mean any work of authorship, including the original version
+of the Work and any modifications or additions to that Work or Derivative Works
+thereof, that is intentionally submitted to Licensor for inclusion in the Work
+by the copyright owner or by an individual or Legal Entity authorized to submit
+on behalf of the copyright owner. For the purposes of this definition,
+"submitted" means any form of electronic, verbal, or written communication sent
+to the Licensor or its representatives, including but not limited to
+communication on electronic mailing lists, source code control systems, and
+issue tracking systems that are managed by, or on behalf of, the Licensor for
+the purpose of discussing and improving the Work, but excluding communication
+that is conspicuously marked or otherwise designated in writing by the copyright
+owner as "Not a Contribution."
+
+"Contributor" shall mean Licensor and any individual or Legal Entity on behalf
+of whom a Contribution has been received by Licensor and subsequently
+incorporated within the Work.
+
+2. Grant of Copyright License.
+
+Subject to the terms and conditions of this License, each Contributor hereby
+grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
+irrevocable copyright license to reproduce, prepare Derivative Works of,
+publicly display, publicly perform, sublicense, and distribute the Work and such
+Derivative Works in Source or Object form.
+
+3. Grant of Patent License.
+
+Subject to the terms and conditions of this License, each Contributor hereby
+grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
+irrevocable (except as stated in this section) patent license to make, have
+made, use, offer to sell, sell, import, and otherwise transfer the Work, where
+such license applies only to those patent claims licensable by such Contributor
+that are necessarily infringed by their Contribution(s) alone or by combination
+of their Contribution(s) with the Work to which such Contribution(s) was
+submitted. If You institute patent litigation against any entity (including a
+cross-claim or counterclaim in a lawsuit) alleging that the Work or a
+Contribution incorporated within the Work constitutes direct or contributory
+patent infringement, then any patent licenses granted to You under this License
+for that Work shall terminate as of the date such litigation is filed.
+
+4. Redistribution.
+
+You may reproduce and distribute copies of the Work or Derivative Works thereof
+in any medium, with or without modifications, and in Source or Object form,
+provided that You meet the following conditions:
+
+You must give any other recipients of the Work or Derivative Works a copy of
+this License; and
+You must cause any modified files to carry prominent notices stating that You
+changed the files; and
+You must retain, in the Source form of any Derivative Works that You distribute,
+all copyright, patent, trademark, and attribution notices from the Source form
+of the Work, excluding those notices that do not pertain to any part of the
+Derivative Works; and
+If the Work includes a "NOTICE" text file as part of its distribution, then any
+Derivative Works that You distribute must include a readable copy of the
+attribution notices contained within such NOTICE file, excluding those notices
+that do not pertain to any part of the Derivative Works, in at least one of the
+following places: within a NOTICE text file distributed as part of the
+Derivative Works; within the Source form or documentation, if provided along
+with the Derivative Works; or, within a display generated by the Derivative
+Works, if and wherever such third-party notices normally appear. The contents of
+the NOTICE file are for informational purposes only and do not modify the
+License. You may add Your own attribution notices within Derivative Works that
+You distribute, alongside or as an addendum to the NOTICE text from the Work,
+provided that such additional attribution notices cannot be construed as
+modifying the License.
+You may add Your own copyright statement to Your modifications and may provide
+additional or different license terms and conditions for use, reproduction, or
+distribution of Your modifications, or for any such Derivative Works as a whole,
+provided Your use, reproduction, and distribution of the Work otherwise complies
+with the conditions stated in this License.
+
+5. Submission of Contributions.
+
+Unless You explicitly state otherwise, any Contribution intentionally submitted
+for inclusion in the Work by You to the Licensor shall be under the terms and
+conditions of this License, without any additional terms or conditions.
+Notwithstanding the above, nothing herein shall supersede or modify the terms of
+any separate license agreement you may have executed with Licensor regarding
+such Contributions.
+
+6. Trademarks.
+
+This License does not grant permission to use the trade names, trademarks,
+service marks, or product names of the Licensor, except as required for
+reasonable and customary use in describing the origin of the Work and
+reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty.
+
+Unless required by applicable law or agreed to in writing, Licensor provides the
+Work (and each Contributor provides its Contributions) on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,
+including, without limitation, any warranties or conditions of TITLE,
+NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are
+solely responsible for determining the appropriateness of using or
+redistributing the Work and assume any risks associated with Your exercise of
+permissions under this License.
+
+8. Limitation of Liability.
+
+In no event and under no legal theory, whether in tort (including negligence),
+contract, or otherwise, unless required by applicable law (such as deliberate
+and grossly negligent acts) or agreed to in writing, shall any Contributor be
+liable to You for damages, including any direct, indirect, special, incidental,
+or consequential damages of any character arising as a result of this License or
+out of the use or inability to use the Work (including but not limited to
+damages for loss of goodwill, work stoppage, computer failure or malfunction, or
+any and all other commercial damages or losses), even if such Contributor has
+been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability.
+
+While redistributing the Work or Derivative Works thereof, You may choose to
+offer, and charge a fee for, acceptance of support, warranty, indemnity, or
+other liability obligations and/or rights consistent with this License. However,
+in accepting such obligations, You may act only on Your own behalf and on Your
+sole responsibility, not on behalf of any other Contributor, and only if You
+agree to indemnify, defend, and hold each Contributor harmless for any liability
+incurred by, or claims asserted against, such Contributor by reason of your
+accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Apache License to your work
+
+To apply the Apache License to your work, attach the following boilerplate
+notice, with the fields enclosed by brackets "[]" replaced with your own
+identifying information. (Don't include the brackets!) The text should be
+enclosed in the appropriate comment syntax for the file format. We also
+recommend that a file or class name and description of purpose be included on
+the same "printed page" as the copyright notice for easier identification within
+third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed 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.

http://git-wip-us.apache.org/repos/asf/cordova-labs/blob/adc75766/cordova-plugin-appsettings/README.md
----------------------------------------------------------------------
diff --git a/cordova-plugin-appsettings/README.md b/cordova-plugin-appsettings/README.md
new file mode 100644
index 0000000..a3f281f
--- /dev/null
+++ b/cordova-plugin-appsettings/README.md
@@ -0,0 +1,2 @@
+A plugin to access the preference tags (settings) in config.xml
+

http://git-wip-us.apache.org/repos/asf/cordova-labs/blob/adc75766/cordova-plugin-appsettings/plugin.xml
----------------------------------------------------------------------
diff --git a/cordova-plugin-appsettings/plugin.xml b/cordova-plugin-appsettings/plugin.xml
new file mode 100644
index 0000000..fcbe633
--- /dev/null
+++ b/cordova-plugin-appsettings/plugin.xml
@@ -0,0 +1,44 @@
+<?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="org.apache.cordova.appsettings"
+    version="0.1">
+    <name>Settings Plugin</name>
+    <description>Cordova Config.XML settings access Plugin</description>
+    <license>Apache 2.0</license>
+    <keywords>cordova,settings,appsettings</keywords>
+
+    <js-module src="www/appsettings.js" name="appsettings" />
+
+  <!-- android -->
+  <platform name="android">
+    <config-file target="res/xml/config.xml" parent="/*">
+      <feature name="AppSettings" >
+        <param name="android-package" value="org.apache.cordova.appsettings.AppSettings"/>
+      </feature>
+      <preference name="CouchdbUrl" value="http://172.23.188.139:5900" />
+      <preference name="CouchdbPrivateUrl" value="http://172.23.188.139:5900" />
+      <preference name="TestSha" value="shashashasha" />
+    </config-file>
+    
+    <source-file src="src/android/AppSettings.java" target-dir="src/org/apache/cordova/appsettings" />
+  </platform>
+
+  <!-- ios -->
+  <platform name="ios">
+    <config-file target="config.xml" parent="/*">
+      <feature name="AppSettings">
+        <param name="ios-package" value="AppSettings"/>
+      </feature>
+      <preference name="CouchdbUrl" value="http://172.23.188.139:5900" />
+      <preference name="CouchdbPrivateUrl" value="http://172.23.188.139/:5900" />
+      <preference name="TestSha" value="shashashasha" />
+    </config-file>
+    
+    <header-file src="src/ios/AppSettings.h" />
+    <source-file src="src/ios/AppSettings.m" />
+  </platform>
+  
+</plugin>

http://git-wip-us.apache.org/repos/asf/cordova-labs/blob/adc75766/cordova-plugin-appsettings/src/android/AppSettings.java
----------------------------------------------------------------------
diff --git a/cordova-plugin-appsettings/src/android/AppSettings.java b/cordova-plugin-appsettings/src/android/AppSettings.java
new file mode 100644
index 0000000..b580c23
--- /dev/null
+++ b/cordova-plugin-appsettings/src/android/AppSettings.java
@@ -0,0 +1,35 @@
+package org.apache.cordova.appsettings;
+
+import java.util.Locale;
+
+import org.apache.cordova.CallbackContext;
+import org.apache.cordova.CordovaPlugin;
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+
+public class AppSettings extends CordovaPlugin {
+
+
+    @Override
+    public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
+    	JSONObject options = new JSONObject();
+        if (action.equals("get")) {
+        	try{
+                for(int i=0;i<args.length();i++){
+        	        String key=args.getString(i);
+                    String keyvalue = cordova.getActivity().getIntent().getStringExtra(key.toLowerCase(Locale.getDefault()));        		
+                    if (keyvalue != null) {
+                        options.put(key, keyvalue);
+                    }
+                }
+                callbackContext.success(options);
+        	} catch (Exception ex) {
+            	callbackContext.error(0);
+            }
+            return true;
+        }
+        return false;
+    }
+}

http://git-wip-us.apache.org/repos/asf/cordova-labs/blob/adc75766/cordova-plugin-appsettings/src/ios/AppSettings.h
----------------------------------------------------------------------
diff --git a/cordova-plugin-appsettings/src/ios/AppSettings.h b/cordova-plugin-appsettings/src/ios/AppSettings.h
new file mode 100644
index 0000000..dc42533
--- /dev/null
+++ b/cordova-plugin-appsettings/src/ios/AppSettings.h
@@ -0,0 +1,13 @@
+//
+//  AppPreferences.h
+//  
+//
+
+#import <Cordova/CDV.h>
+#import <Cordova/CDVViewController.h>
+
+@interface AppSettings : CDVPlugin 
+
+- (void)get:(CDVInvokedUrlCommand*)command;
+
+@end

http://git-wip-us.apache.org/repos/asf/cordova-labs/blob/adc75766/cordova-plugin-appsettings/src/ios/AppSettings.m
----------------------------------------------------------------------
diff --git a/cordova-plugin-appsettings/src/ios/AppSettings.m b/cordova-plugin-appsettings/src/ios/AppSettings.m
new file mode 100644
index 0000000..50c9fce
--- /dev/null
+++ b/cordova-plugin-appsettings/src/ios/AppSettings.m
@@ -0,0 +1,39 @@
+//
+//  AppSettings.m
+//  
+
+#import "AppSettings.h"
+
+@implementation AppSettings
+
+- (void)get:(CDVInvokedUrlCommand*)command
+{
+    CDVPluginResult* result = nil;
+
+    NSArray* options = command.arguments;
+
+    if (!options) {
+        result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"no setting keys"];
+        [self.commandDelegate sendPluginResult:result callbackId:[command callbackId]];
+        return;
+    }
+
+    @try {
+        NSMutableDictionary *settings = [[NSMutableDictionary alloc] initWithCapacity:20];
+      
+      
+        NSDictionary *sets = self.commandDelegate.settings;
+        for (NSString* settingName in options) {
+          if(sets[ [settingName lowercaseString]] != nil) {
+             settings[[settingName lowercaseString ]] = sets[ [settingName lowercaseString]];
+          }
+        }
+        result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary: [settings copy]];
+    } @catch (NSException * e) {
+        result = [CDVPluginResult resultWithStatus:CDVCommandStatus_NO_RESULT messageAsString:[e reason]];
+    } @finally {
+        [self.commandDelegate sendPluginResult:result callbackId:[command callbackId]];
+    }
+}
+
+@end

http://git-wip-us.apache.org/repos/asf/cordova-labs/blob/adc75766/cordova-plugin-appsettings/www/appsettings.js
----------------------------------------------------------------------
diff --git a/cordova-plugin-appsettings/www/appsettings.js b/cordova-plugin-appsettings/www/appsettings.js
new file mode 100644
index 0000000..0bfa9ee
--- /dev/null
+++ b/cordova-plugin-appsettings/www/appsettings.js
@@ -0,0 +1,22 @@
+
+var argscheck = require('cordova/argscheck'),
+    exec = require('cordova/exec');
+
+function AppSettings() {
+
+}
+/**
+ * Get a config.xml settings (preference) value
+ *
+ * @param {Function} successCallback The function to call when the value is available
+ * @param {Function} errorCallback The function to call when value is unavailable
+ * @param {String} key Key
+ */
+AppSettings.prototype.get = function (successCallback, errorCallback, keyArray) {
+    argscheck.checkArgs('fFa', 'AppSettings.get', arguments);
+
+    exec (successCallback, errorCallback, "AppSettings", "get", keyArray);
+};
+
+module.exports = new AppSettings();
+

http://git-wip-us.apache.org/repos/asf/cordova-labs/blob/adc75766/cordova-plugin-settings/LICENSE
----------------------------------------------------------------------
diff --git a/cordova-plugin-settings/LICENSE b/cordova-plugin-settings/LICENSE
deleted file mode 100644
index 37ec93a..0000000
--- a/cordova-plugin-settings/LICENSE
+++ /dev/null
@@ -1,191 +0,0 @@
-Apache License
-Version 2.0, January 2004
-http://www.apache.org/licenses/
-
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-1. Definitions.
-
-"License" shall mean the terms and conditions for use, reproduction, and
-distribution as defined by Sections 1 through 9 of this document.
-
-"Licensor" shall mean the copyright owner or entity authorized by the copyright
-owner that is granting the License.
-
-"Legal Entity" shall mean the union of the acting entity and all other entities
-that control, are controlled by, or are under common control with that entity.
-For the purposes of this definition, "control" means (i) the power, direct or
-indirect, to cause the direction or management of such entity, whether by
-contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the
-outstanding shares, or (iii) beneficial ownership of such entity.
-
-"You" (or "Your") shall mean an individual or Legal Entity exercising
-permissions granted by this License.
-
-"Source" form shall mean the preferred form for making modifications, including
-but not limited to software source code, documentation source, and configuration
-files.
-
-"Object" form shall mean any form resulting from mechanical transformation or
-translation of a Source form, including but not limited to compiled object code,
-generated documentation, and conversions to other media types.
-
-"Work" shall mean the work of authorship, whether in Source or Object form, made
-available under the License, as indicated by a copyright notice that is included
-in or attached to the work (an example is provided in the Appendix below).
-
-"Derivative Works" shall mean any work, whether in Source or Object form, that
-is based on (or derived from) the Work and for which the editorial revisions,
-annotations, elaborations, or other modifications represent, as a whole, an
-original work of authorship. For the purposes of this License, Derivative Works
-shall not include works that remain separable from, or merely link (or bind by
-name) to the interfaces of, the Work and Derivative Works thereof.
-
-"Contribution" shall mean any work of authorship, including the original version
-of the Work and any modifications or additions to that Work or Derivative Works
-thereof, that is intentionally submitted to Licensor for inclusion in the Work
-by the copyright owner or by an individual or Legal Entity authorized to submit
-on behalf of the copyright owner. For the purposes of this definition,
-"submitted" means any form of electronic, verbal, or written communication sent
-to the Licensor or its representatives, including but not limited to
-communication on electronic mailing lists, source code control systems, and
-issue tracking systems that are managed by, or on behalf of, the Licensor for
-the purpose of discussing and improving the Work, but excluding communication
-that is conspicuously marked or otherwise designated in writing by the copyright
-owner as "Not a Contribution."
-
-"Contributor" shall mean Licensor and any individual or Legal Entity on behalf
-of whom a Contribution has been received by Licensor and subsequently
-incorporated within the Work.
-
-2. Grant of Copyright License.
-
-Subject to the terms and conditions of this License, each Contributor hereby
-grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
-irrevocable copyright license to reproduce, prepare Derivative Works of,
-publicly display, publicly perform, sublicense, and distribute the Work and such
-Derivative Works in Source or Object form.
-
-3. Grant of Patent License.
-
-Subject to the terms and conditions of this License, each Contributor hereby
-grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
-irrevocable (except as stated in this section) patent license to make, have
-made, use, offer to sell, sell, import, and otherwise transfer the Work, where
-such license applies only to those patent claims licensable by such Contributor
-that are necessarily infringed by their Contribution(s) alone or by combination
-of their Contribution(s) with the Work to which such Contribution(s) was
-submitted. If You institute patent litigation against any entity (including a
-cross-claim or counterclaim in a lawsuit) alleging that the Work or a
-Contribution incorporated within the Work constitutes direct or contributory
-patent infringement, then any patent licenses granted to You under this License
-for that Work shall terminate as of the date such litigation is filed.
-
-4. Redistribution.
-
-You may reproduce and distribute copies of the Work or Derivative Works thereof
-in any medium, with or without modifications, and in Source or Object form,
-provided that You meet the following conditions:
-
-You must give any other recipients of the Work or Derivative Works a copy of
-this License; and
-You must cause any modified files to carry prominent notices stating that You
-changed the files; and
-You must retain, in the Source form of any Derivative Works that You distribute,
-all copyright, patent, trademark, and attribution notices from the Source form
-of the Work, excluding those notices that do not pertain to any part of the
-Derivative Works; and
-If the Work includes a "NOTICE" text file as part of its distribution, then any
-Derivative Works that You distribute must include a readable copy of the
-attribution notices contained within such NOTICE file, excluding those notices
-that do not pertain to any part of the Derivative Works, in at least one of the
-following places: within a NOTICE text file distributed as part of the
-Derivative Works; within the Source form or documentation, if provided along
-with the Derivative Works; or, within a display generated by the Derivative
-Works, if and wherever such third-party notices normally appear. The contents of
-the NOTICE file are for informational purposes only and do not modify the
-License. You may add Your own attribution notices within Derivative Works that
-You distribute, alongside or as an addendum to the NOTICE text from the Work,
-provided that such additional attribution notices cannot be construed as
-modifying the License.
-You may add Your own copyright statement to Your modifications and may provide
-additional or different license terms and conditions for use, reproduction, or
-distribution of Your modifications, or for any such Derivative Works as a whole,
-provided Your use, reproduction, and distribution of the Work otherwise complies
-with the conditions stated in this License.
-
-5. Submission of Contributions.
-
-Unless You explicitly state otherwise, any Contribution intentionally submitted
-for inclusion in the Work by You to the Licensor shall be under the terms and
-conditions of this License, without any additional terms or conditions.
-Notwithstanding the above, nothing herein shall supersede or modify the terms of
-any separate license agreement you may have executed with Licensor regarding
-such Contributions.
-
-6. Trademarks.
-
-This License does not grant permission to use the trade names, trademarks,
-service marks, or product names of the Licensor, except as required for
-reasonable and customary use in describing the origin of the Work and
-reproducing the content of the NOTICE file.
-
-7. Disclaimer of Warranty.
-
-Unless required by applicable law or agreed to in writing, Licensor provides the
-Work (and each Contributor provides its Contributions) on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,
-including, without limitation, any warranties or conditions of TITLE,
-NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are
-solely responsible for determining the appropriateness of using or
-redistributing the Work and assume any risks associated with Your exercise of
-permissions under this License.
-
-8. Limitation of Liability.
-
-In no event and under no legal theory, whether in tort (including negligence),
-contract, or otherwise, unless required by applicable law (such as deliberate
-and grossly negligent acts) or agreed to in writing, shall any Contributor be
-liable to You for damages, including any direct, indirect, special, incidental,
-or consequential damages of any character arising as a result of this License or
-out of the use or inability to use the Work (including but not limited to
-damages for loss of goodwill, work stoppage, computer failure or malfunction, or
-any and all other commercial damages or losses), even if such Contributor has
-been advised of the possibility of such damages.
-
-9. Accepting Warranty or Additional Liability.
-
-While redistributing the Work or Derivative Works thereof, You may choose to
-offer, and charge a fee for, acceptance of support, warranty, indemnity, or
-other liability obligations and/or rights consistent with this License. However,
-in accepting such obligations, You may act only on Your own behalf and on Your
-sole responsibility, not on behalf of any other Contributor, and only if You
-agree to indemnify, defend, and hold each Contributor harmless for any liability
-incurred by, or claims asserted against, such Contributor by reason of your
-accepting any such warranty or additional liability.
-
-END OF TERMS AND CONDITIONS
-
-APPENDIX: How to apply the Apache License to your work
-
-To apply the Apache License to your work, attach the following boilerplate
-notice, with the fields enclosed by brackets "[]" replaced with your own
-identifying information. (Don't include the brackets!) The text should be
-enclosed in the appropriate comment syntax for the file format. We also
-recommend that a file or class name and description of purpose be included on
-the same "printed page" as the copyright notice for easier identification within
-third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed 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.

http://git-wip-us.apache.org/repos/asf/cordova-labs/blob/adc75766/cordova-plugin-settings/README.md
----------------------------------------------------------------------
diff --git a/cordova-plugin-settings/README.md b/cordova-plugin-settings/README.md
deleted file mode 100644
index a3f281f..0000000
--- a/cordova-plugin-settings/README.md
+++ /dev/null
@@ -1,2 +0,0 @@
-A plugin to access the preference tags (settings) in config.xml
-

http://git-wip-us.apache.org/repos/asf/cordova-labs/blob/adc75766/cordova-plugin-settings/plugin.xml
----------------------------------------------------------------------
diff --git a/cordova-plugin-settings/plugin.xml b/cordova-plugin-settings/plugin.xml
deleted file mode 100644
index fcbe633..0000000
--- a/cordova-plugin-settings/plugin.xml
+++ /dev/null
@@ -1,44 +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="org.apache.cordova.appsettings"
-    version="0.1">
-    <name>Settings Plugin</name>
-    <description>Cordova Config.XML settings access Plugin</description>
-    <license>Apache 2.0</license>
-    <keywords>cordova,settings,appsettings</keywords>
-
-    <js-module src="www/appsettings.js" name="appsettings" />
-
-  <!-- android -->
-  <platform name="android">
-    <config-file target="res/xml/config.xml" parent="/*">
-      <feature name="AppSettings" >
-        <param name="android-package" value="org.apache.cordova.appsettings.AppSettings"/>
-      </feature>
-      <preference name="CouchdbUrl" value="http://172.23.188.139:5900" />
-      <preference name="CouchdbPrivateUrl" value="http://172.23.188.139:5900" />
-      <preference name="TestSha" value="shashashasha" />
-    </config-file>
-    
-    <source-file src="src/android/AppSettings.java" target-dir="src/org/apache/cordova/appsettings" />
-  </platform>
-
-  <!-- ios -->
-  <platform name="ios">
-    <config-file target="config.xml" parent="/*">
-      <feature name="AppSettings">
-        <param name="ios-package" value="AppSettings"/>
-      </feature>
-      <preference name="CouchdbUrl" value="http://172.23.188.139:5900" />
-      <preference name="CouchdbPrivateUrl" value="http://172.23.188.139/:5900" />
-      <preference name="TestSha" value="shashashasha" />
-    </config-file>
-    
-    <header-file src="src/ios/AppSettings.h" />
-    <source-file src="src/ios/AppSettings.m" />
-  </platform>
-  
-</plugin>

http://git-wip-us.apache.org/repos/asf/cordova-labs/blob/adc75766/cordova-plugin-settings/src/android/AppSettings.java
----------------------------------------------------------------------
diff --git a/cordova-plugin-settings/src/android/AppSettings.java b/cordova-plugin-settings/src/android/AppSettings.java
deleted file mode 100644
index b580c23..0000000
--- a/cordova-plugin-settings/src/android/AppSettings.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package org.apache.cordova.appsettings;
-
-import java.util.Locale;
-
-import org.apache.cordova.CallbackContext;
-import org.apache.cordova.CordovaPlugin;
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
-
-
-public class AppSettings extends CordovaPlugin {
-
-
-    @Override
-    public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
-    	JSONObject options = new JSONObject();
-        if (action.equals("get")) {
-        	try{
-                for(int i=0;i<args.length();i++){
-        	        String key=args.getString(i);
-                    String keyvalue = cordova.getActivity().getIntent().getStringExtra(key.toLowerCase(Locale.getDefault()));        		
-                    if (keyvalue != null) {
-                        options.put(key, keyvalue);
-                    }
-                }
-                callbackContext.success(options);
-        	} catch (Exception ex) {
-            	callbackContext.error(0);
-            }
-            return true;
-        }
-        return false;
-    }
-}

http://git-wip-us.apache.org/repos/asf/cordova-labs/blob/adc75766/cordova-plugin-settings/src/ios/AppSettings.h
----------------------------------------------------------------------
diff --git a/cordova-plugin-settings/src/ios/AppSettings.h b/cordova-plugin-settings/src/ios/AppSettings.h
deleted file mode 100644
index dc42533..0000000
--- a/cordova-plugin-settings/src/ios/AppSettings.h
+++ /dev/null
@@ -1,13 +0,0 @@
-//
-//  AppPreferences.h
-//  
-//
-
-#import <Cordova/CDV.h>
-#import <Cordova/CDVViewController.h>
-
-@interface AppSettings : CDVPlugin 
-
-- (void)get:(CDVInvokedUrlCommand*)command;
-
-@end

http://git-wip-us.apache.org/repos/asf/cordova-labs/blob/adc75766/cordova-plugin-settings/src/ios/AppSettings.m
----------------------------------------------------------------------
diff --git a/cordova-plugin-settings/src/ios/AppSettings.m b/cordova-plugin-settings/src/ios/AppSettings.m
deleted file mode 100644
index 50c9fce..0000000
--- a/cordova-plugin-settings/src/ios/AppSettings.m
+++ /dev/null
@@ -1,39 +0,0 @@
-//
-//  AppSettings.m
-//  
-
-#import "AppSettings.h"
-
-@implementation AppSettings
-
-- (void)get:(CDVInvokedUrlCommand*)command
-{
-    CDVPluginResult* result = nil;
-
-    NSArray* options = command.arguments;
-
-    if (!options) {
-        result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"no setting keys"];
-        [self.commandDelegate sendPluginResult:result callbackId:[command callbackId]];
-        return;
-    }
-
-    @try {
-        NSMutableDictionary *settings = [[NSMutableDictionary alloc] initWithCapacity:20];
-      
-      
-        NSDictionary *sets = self.commandDelegate.settings;
-        for (NSString* settingName in options) {
-          if(sets[ [settingName lowercaseString]] != nil) {
-             settings[[settingName lowercaseString ]] = sets[ [settingName lowercaseString]];
-          }
-        }
-        result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary: [settings copy]];
-    } @catch (NSException * e) {
-        result = [CDVPluginResult resultWithStatus:CDVCommandStatus_NO_RESULT messageAsString:[e reason]];
-    } @finally {
-        [self.commandDelegate sendPluginResult:result callbackId:[command callbackId]];
-    }
-}
-
-@end

http://git-wip-us.apache.org/repos/asf/cordova-labs/blob/adc75766/cordova-plugin-settings/www/appsettings.js
----------------------------------------------------------------------
diff --git a/cordova-plugin-settings/www/appsettings.js b/cordova-plugin-settings/www/appsettings.js
deleted file mode 100644
index 0bfa9ee..0000000
--- a/cordova-plugin-settings/www/appsettings.js
+++ /dev/null
@@ -1,22 +0,0 @@
-
-var argscheck = require('cordova/argscheck'),
-    exec = require('cordova/exec');
-
-function AppSettings() {
-
-}
-/**
- * Get a config.xml settings (preference) value
- *
- * @param {Function} successCallback The function to call when the value is available
- * @param {Function} errorCallback The function to call when value is unavailable
- * @param {String} key Key
- */
-AppSettings.prototype.get = function (successCallback, errorCallback, keyArray) {
-    argscheck.checkArgs('fFa', 'AppSettings.get', arguments);
-
-    exec (successCallback, errorCallback, "AppSettings", "get", keyArray);
-};
-
-module.exports = new AppSettings();
-

http://git-wip-us.apache.org/repos/asf/cordova-labs/blob/adc75766/cordova-plugin-test-framework/plugin.xml
----------------------------------------------------------------------
diff --git a/cordova-plugin-test-framework/plugin.xml b/cordova-plugin-test-framework/plugin.xml
index 16d71dd..25ed129 100644
--- a/cordova-plugin-test-framework/plugin.xml
+++ b/cordova-plugin-test-framework/plugin.xml
@@ -10,6 +10,8 @@
     <license>Apache 2.0</license>
     <keywords>cordova,test</keywords>
 
+    <dependency id="org.apache.cordova.appsettings" url="." subdir="cordova-plugin-appsettings" />
+
     <js-module src="www/test.js" name="test" />
 
     <!-- android -->