You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by st...@apache.org on 2017/01/18 01:56:18 UTC

[01/50] [abbrv] cordova-lib git commit: CB-11979 added deprecation warning for subdirectories

Repository: cordova-lib
Updated Branches:
  refs/heads/fetch-1.0.x c7583807a -> 3c08c7268
  refs/heads/master 2bf351704 -> 3af82219f


CB-11979 added deprecation warning for subdirectories


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

Branch: refs/heads/fetch-1.0.x
Commit: 328980c2a91dada8049f1e4f27103df67ba07532
Parents: 35e9ead
Author: Sterling <st...@gmail.com>
Authored: Tue Oct 18 15:29:09 2016 -0700
Committer: Jesse MacFadyen <pu...@gmail.com>
Committed: Thu Oct 20 13:34:36 2016 -0700

----------------------------------------------------------------------
 cordova-lib/src/plugman/fetch.js | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/328980c2/cordova-lib/src/plugman/fetch.js
----------------------------------------------------------------------
diff --git a/cordova-lib/src/plugman/fetch.js b/cordova-lib/src/plugman/fetch.js
index d33e460..036558e 100644
--- a/cordova-lib/src/plugman/fetch.js
+++ b/cordova-lib/src/plugman/fetch.js
@@ -68,8 +68,12 @@ function fetchPlugin(plugin_src, plugins_dir, options) {
             if (result[2])
                 options.subdir = result[2];
             //if --fetch was used, throw error for subdirectories
-            if (result[2] && options.fetch) {
-                return Q.reject(new CordovaError('--fetch does not support subdirectories'));
+
+            if(options.subdir) {
+                events.emit('warn', 'support for subdirectories is deprecated and will be removed in Cordova@7');
+                if (options.fetch) {
+                    return Q.reject(new CordovaError('--fetch does not support subdirectories'));
+                }
             }
 
             // Recurse and exit with the new options and truncated URL.


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


[20/50] [abbrv] cordova-lib git commit: CB-12163 Add reference attrib to resource-file for Windows

Posted by st...@apache.org.
CB-12163 Add reference attrib to resource-file for Windows

 This closes #509


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

Branch: refs/heads/fetch-1.0.x
Commit: b66ec165784fd9c196c9958c7e9baac7d25436f9
Parents: 110b46f
Author: ktop <kt...@gmail.com>
Authored: Mon Dec 12 14:35:04 2016 -0500
Committer: Steve Gill <st...@gmail.com>
Committed: Fri Jan 6 16:47:51 2017 -0800

----------------------------------------------------------------------
 cordova-common/src/PluginInfo/PluginInfo.js | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b66ec165/cordova-common/src/PluginInfo/PluginInfo.js
----------------------------------------------------------------------
diff --git a/cordova-common/src/PluginInfo/PluginInfo.js b/cordova-common/src/PluginInfo/PluginInfo.js
index 60ce848..44501fa 100644
--- a/cordova-common/src/PluginInfo/PluginInfo.js
+++ b/cordova-common/src/PluginInfo/PluginInfo.js
@@ -225,7 +225,8 @@ function PluginInfo(dirname) {
                 target: tag.attrib.target,
                 versions: tag.attrib.versions,
                 deviceTarget: tag.attrib['device-target'],
-                arch: tag.attrib.arch
+                arch: tag.attrib.arch,
+                reference: tag.attrib.reference
             };
         });
         return resourceFiles;


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


[09/50] [abbrv] cordova-lib git commit: CI prod

Posted by st...@apache.org.
CI prod


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

Branch: refs/heads/fetch-1.0.x
Commit: 6e687ec691b0e3fc104ff1e51e236ac86cc93c00
Parents: 824561b
Author: Shazron Abdullah <sh...@apache.org>
Authored: Tue Nov 1 11:34:32 2016 -0700
Committer: Shazron Abdullah <sh...@apache.org>
Committed: Tue Nov 1 11:34:32 2016 -0700

----------------------------------------------------------------------

----------------------------------------------------------------------



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


[29/50] [abbrv] cordova-lib git commit: fixjasmine : CB-12018 : fixed jasmine tests to work with uninstallPlugin and removed waitsFor/runs, updated promise syntax, calls.reset, and labled tests

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-common/spec/PlatformJson.spec.js
----------------------------------------------------------------------
diff --git a/cordova-common/spec/PlatformJson.spec.js b/cordova-common/spec/PlatformJson.spec.js
index 293b51d..58a4533 100644
--- a/cordova-common/spec/PlatformJson.spec.js
+++ b/cordova-common/spec/PlatformJson.spec.js
@@ -30,7 +30,7 @@ var FAKE_MODULE = {
 };
 
 describe('PlatformJson class', function() {
-    it('should be constructable', function () {
+    it('Test 001 : should be constructable', function () {
         expect(new PlatformJson()).toEqual(jasmine.any(PlatformJson));
     });
 
@@ -47,19 +47,19 @@ describe('PlatformJson class', function() {
         });
         
         describe('addPluginMetadata method', function () {
-            it('should not throw if root "modules" property is missing', function () {
+            it('Test 002 : should not throw if root "modules" property is missing', function () {
                 expect(function () {
                     platformJson.addPluginMetadata(fakePlugin);
                 }).not.toThrow();
             });
     
-            it('should add each module to "root.modules" array', function () {
+            it('Test 003 : should add each module to "root.modules" array', function () {
                 platformJson.addPluginMetadata(fakePlugin);
                 expect(platformJson.root.modules.length).toBe(1);
                 expect(platformJson.root.modules[0]).toEqual(jasmine.any(ModuleMetadata));
             });
             
-            it('shouldn\'t add module if there is already module with the same file added', function () {
+            it('Test 004 : shouldn\'t add module if there is already module with the same file added', function () {
                 platformJson.root.modules = [{
                     name: 'fakePlugin2',
                     file: 'plugins/fakeId/www/fakeModule.js'
@@ -70,20 +70,20 @@ describe('PlatformJson class', function() {
                 expect(platformJson.root.modules[0].name).toBe('fakePlugin2');
             });
             
-            it('should add entry to plugin_metadata with corresponding version', function () {
+            it('Test 005 : should add entry to plugin_metadata with corresponding version', function () {
                 platformJson.addPluginMetadata(fakePlugin);
                 expect(platformJson.root.plugin_metadata[fakePlugin.id]).toBe(fakePlugin.version);
             });
         });
         
         describe('removePluginMetadata method', function () {
-            it('should not throw if root "modules" property is missing', function () {
+            it('Test 006 : should not throw if root "modules" property is missing', function () {
                 expect(function () {
                     platformJson.removePluginMetadata(fakePlugin);
                 }).not.toThrow();
             });
     
-            it('should remove plugin modules from "root.modules" array based on file path', function () {
+            it('Test 007 : should remove plugin modules from "root.modules" array based on file path', function () {
                 
                 var pluginPaths = [
                     'plugins/fakeId/www/fakeModule.js',
@@ -100,7 +100,7 @@ describe('PlatformJson class', function() {
                 expect(resultantPaths.length).toBe(0);
             });
             
-            it('should remove entry from plugin_metadata with corresponding version', function () {
+            it('Test 008 : should remove entry from plugin_metadata with corresponding version', function () {
                 platformJson.root.plugin_metadata = {};
                 platformJson.root.plugin_metadata[fakePlugin.id] = fakePlugin.version;
                 platformJson.removePluginMetadata(fakePlugin);
@@ -109,7 +109,7 @@ describe('PlatformJson class', function() {
         });
         
         describe('generateMetadata method', function () {
-            it('should generate text metadata containing list of installed modules', function () {
+            it('Test 009 : should generate text metadata containing list of installed modules', function () {
                 var meta = platformJson.addPluginMetadata(fakePlugin).generateMetadata();
                 expect(typeof meta).toBe('string');
                 expect(meta.indexOf(JSON.stringify(platformJson.root.modules, null, 4))).toBeGreaterThan(0);
@@ -121,7 +121,7 @@ describe('PlatformJson class', function() {
 });
 
 describe('ModuleMetadata class', function () {
-    it('should be constructable', function () {
+    it('Test 010 : should be constructable', function () {
         var meta;
         expect(function name(params) {
             meta = new ModuleMetadata('fakePlugin', {src: 'www/fakeModule.js'});
@@ -129,31 +129,31 @@ describe('ModuleMetadata class', function () {
         expect(meta instanceof ModuleMetadata).toBeTruthy();
     });
     
-    it('should throw if either pluginId or jsModule argument isn\'t specified', function () {
+    it('Test 011 : should throw if either pluginId or jsModule argument isn\'t specified', function () {
         expect(ModuleMetadata).toThrow();
         expect(function () { new ModuleMetadata('fakePlugin', {}); }).toThrow();
     });
     
-    it('should guess module id either from name property of from module src', function () {
+    it('Test 012 : should guess module id either from name property of from module src', function () {
         expect(new ModuleMetadata('fakePlugin', {name: 'fakeModule'}).id).toMatch(/fakeModule$/);
         expect(new ModuleMetadata('fakePlugin', {src: 'www/fakeModule.js'}).id).toMatch(/fakeModule$/);
     });
     
-    it('should read "clobbers" property from module', function () {
+    it('Test 013 : should read "clobbers" property from module', function () {
         expect(new ModuleMetadata('fakePlugin', {name: 'fakeModule'}).clobbers).not.toBeDefined();
         var metadata = new ModuleMetadata('fakePlugin', FAKE_MODULE);
         expect(metadata.clobbers).toEqual(jasmine.any(Array));
         expect(metadata.clobbers[0]).toBe(FAKE_MODULE.clobbers[0].target);
     });
     
-    it('should read "merges" property from module', function () {
+    it('Test 014 : should read "merges" property from module', function () {
         expect(new ModuleMetadata('fakePlugin', {name: 'fakeModule'}).merges).not.toBeDefined();
         var metadata = new ModuleMetadata('fakePlugin', FAKE_MODULE);
         expect(metadata.merges).toEqual(jasmine.any(Array));
         expect(metadata.merges[0]).toBe(FAKE_MODULE.merges[0].target);
     });
     
-    it('should read "runs" property from module', function () {
+    it('Test 015 : should read "runs" property from module', function () {
         expect(new ModuleMetadata('fakePlugin', {name: 'fakeModule'}).runs).not.toBeDefined();
         expect(new ModuleMetadata('fakePlugin', FAKE_MODULE).runs).toBe(true);
     });

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-common/spec/PluginInfo/PluginInfo.spec.js
----------------------------------------------------------------------
diff --git a/cordova-common/spec/PluginInfo/PluginInfo.spec.js b/cordova-common/spec/PluginInfo/PluginInfo.spec.js
index 935d8cd..e509913 100644
--- a/cordova-common/spec/PluginInfo/PluginInfo.spec.js
+++ b/cordova-common/spec/PluginInfo/PluginInfo.spec.js
@@ -23,7 +23,7 @@ var PluginInfo = require('../../src/PluginInfo/PluginInfo'),
 var pluginsDir = path.join(__dirname, '../fixtures/plugins');
 
 describe('PluginInfo', function () {
-    it('should read a plugin.xml file', function () {
+    it('Test 001 : should read a plugin.xml file', function () {
         var p, prefs, assets, deps, configFiles, infos, srcFiles;
         var headerFiles, libFiles, resourceFiles;
         expect(function () {
@@ -42,7 +42,7 @@ describe('PluginInfo', function () {
         expect(p.name).toEqual('Child Browser');
         // TODO: Add some expectations for results of getSomething.
     });
-    it('should throw when there is no plugin.xml file', function () {
+    it('Test 002 : should throw when there is no plugin.xml file', function () {
         expect(function () {
             new PluginInfo('/non/existent/dir');
         }).toThrow();

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-common/spec/PluginInfo/PluginInfoProvider.spec.js
----------------------------------------------------------------------
diff --git a/cordova-common/spec/PluginInfo/PluginInfoProvider.spec.js b/cordova-common/spec/PluginInfo/PluginInfoProvider.spec.js
index 40ec6bb..9c86501 100644
--- a/cordova-common/spec/PluginInfo/PluginInfoProvider.spec.js
+++ b/cordova-common/spec/PluginInfo/PluginInfoProvider.spec.js
@@ -24,7 +24,7 @@ var pluginsDir = path.join(__dirname, '../fixtures/plugins');
 
 describe('PluginInfoProvider', function () {
     describe('getAllWithinSearchPath', function () {
-        it('should load all plugins in a dir', function () {
+        it('Test 001 : should load all plugins in a dir', function () {
             var pluginInfoProvider = new PluginInfoProvider();
             var plugins = pluginInfoProvider.getAllWithinSearchPath(pluginsDir);
             expect(plugins.length).not.toBe(0);

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-common/spec/PluginManager.spec.js
----------------------------------------------------------------------
diff --git a/cordova-common/spec/PluginManager.spec.js b/cordova-common/spec/PluginManager.spec.js
index cba7c79..7f6d7e8 100644
--- a/cordova-common/spec/PluginManager.spec.js
+++ b/cordova-common/spec/PluginManager.spec.js
@@ -17,7 +17,8 @@
     under the License.
 */
 
-require ('promise-matchers');
+// Promise-matchers do not work with jasmine 2.0.
+//require('promise-matchers');
 
 var Q = require('q');
 var fs = require('fs');
@@ -44,11 +45,11 @@ describe('PluginManager class', function() {
         spyOn(shell, 'mkdir');
     });
 
-    it('should be constructable', function () {
+    it('Test 001 : should be constructable', function () {
         expect(new PluginManager(FAKE_PLATFORM, FAKE_LOCATIONS)).toEqual(jasmine.any(PluginManager));
     });
 
-    it('should return new instance for every PluginManager.get call', function () {
+    it('Test 002 : should return new instance for every PluginManager.get call', function () {
         expect(PluginManager.get(FAKE_PLATFORM, FAKE_LOCATIONS)).toEqual(jasmine.any(PluginManager));
         expect(PluginManager.get(FAKE_PLATFORM, FAKE_LOCATIONS))
             .not.toBe(PluginManager.get(FAKE_PLATFORM, FAKE_LOCATIONS));
@@ -64,7 +65,7 @@ describe('PluginManager class', function() {
             FAKE_PROJECT = jasmine.createSpyObj('project', ['getInstaller', 'getUninstaller', 'write']);
             manager = new PluginManager('windows', FAKE_LOCATIONS, FAKE_PROJECT);
             actions = jasmine.createSpyObj('actions', ['createAction', 'push', 'process']);
-            actions.process.andReturn(Q.resolve());
+            actions.process.and.returnValue(Q.resolve());
             PluginManager.__set__('ActionStack', function () { return actions; });
         });
 
@@ -76,20 +77,20 @@ describe('PluginManager class', function() {
             it('should return a promise', function () {
                 expect(Q.isPromise(manager.addPlugin(null, {}))).toBe(true);
             });
-
-            it('should reject if "plugin" parameter is not specified or not a PluginInfo instance', function () {
-                expect(manager.addPlugin(null, {})).toHaveBeenRejected();
-                expect(manager.addPlugin({}, {})).toHaveBeenRejected();
-                expect(manager.addPlugin(new PluginInfo(DUMMY_PLUGIN), {})).not.toHaveBeenRejected();
+            // Promise-matchers do not work with jasmine 2.0.
+            xit('Test 003 : should reject if "plugin" parameter is not specified or not a PluginInfo instance', function (done) {
+                expect(manager.addPlugin(null, {})).toHaveBeenRejected(done);
+                expect(manager.addPlugin({}, {})).toHaveBeenRejected(done);
+                expect(manager.addPlugin(new PluginInfo(DUMMY_PLUGIN), {})).not.toHaveBeenRejected(done);
             });
 
-            it('should iterate through all plugin\'s files and frameworks', function (done) {
+            it('Test 004 : should iterate through all plugin\'s files and frameworks', function (done) {
                 manager.addPlugin(new PluginInfo(DUMMY_PLUGIN), {})
                 .then(function () {
-                    expect(FAKE_PROJECT.getInstaller.calls.length).toBe(16);
-                    expect(FAKE_PROJECT.getUninstaller.calls.length).toBe(16);
+                    expect(FAKE_PROJECT.getInstaller.calls.count()).toBe(16);
+                    expect(FAKE_PROJECT.getUninstaller.calls.count()).toBe(16);
 
-                    expect(actions.push.calls.length).toBe(16);
+                    expect(actions.push.calls.count()).toBe(16);
                     expect(actions.process).toHaveBeenCalled();
                     expect(FAKE_PROJECT.write).toHaveBeenCalled();
                 })
@@ -100,7 +101,7 @@ describe('PluginManager class', function() {
                 });
             });
 
-            it('should save plugin metadata to www directory', function (done) {
+            it('Test 005 : should save plugin metadata to www directory', function (done) {
                 var metadataPath = path.join(manager.locations.www, 'cordova_plugins.js');
                 var platformWwwMetadataPath = path.join(manager.locations.platformWww, 'cordova_plugins.js');
 
@@ -116,7 +117,7 @@ describe('PluginManager class', function() {
                 });
             });
 
-            it('should save plugin metadata to both www ans platform_www directories when options.usePlatformWww is specified', function (done) {
+            it('Test 006 : should save plugin metadata to both www ans platform_www directories when options.usePlatformWww is specified', function (done) {
                 var metadataPath = path.join(manager.locations.www, 'cordova_plugins.js');
                 var platformWwwMetadataPath = path.join(manager.locations.platformWww, 'cordova_plugins.js');
 

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-common/spec/events.spec.js
----------------------------------------------------------------------
diff --git a/cordova-common/spec/events.spec.js b/cordova-common/spec/events.spec.js
index a9e7f43..863664c 100644
--- a/cordova-common/spec/events.spec.js
+++ b/cordova-common/spec/events.spec.js
@@ -23,13 +23,13 @@ describe('forwardEventsTo method', function () {
     afterEach(function() {
         events.forwardEventsTo(null);
     });
-    it('should not go to infinite loop when trying to forward to self', function () {
+    it('Test 001 : should not go to infinite loop when trying to forward to self', function () {
         expect(function() {
             events.forwardEventsTo(events);
             events.emit('log', 'test message');
         }).not.toThrow();
     });
-    it('should reset forwarding after trying to forward to self', function () {
+    it('Test 002 : should reset forwarding after trying to forward to self', function () {
         var EventEmitter = require('events').EventEmitter;
         var anotherEventEmitter = new EventEmitter();
         var logSpy = jasmine.createSpy('logSpy');
@@ -39,7 +39,7 @@ describe('forwardEventsTo method', function () {
         events.emit('log', 'test message #1');
         expect(logSpy).toHaveBeenCalled();
 
-        logSpy.reset();
+        logSpy.calls.reset();
 
         events.forwardEventsTo(events);
         events.emit('log', 'test message #2');

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-common/spec/superspawn.spec.js
----------------------------------------------------------------------
diff --git a/cordova-common/spec/superspawn.spec.js b/cordova-common/spec/superspawn.spec.js
index 2539199..73a85d9 100644
--- a/cordova-common/spec/superspawn.spec.js
+++ b/cordova-common/spec/superspawn.spec.js
@@ -30,12 +30,12 @@ describe('spawn method', function() {
         failSpy = jasmine.createSpy('fail');
     });
 
-    it('should return a promise', function () {
+    it('Test 001 : should return a promise', function () {
         expect(Q.isPromise(superspawn.spawn(LS))).toBe(true);
         expect(Q.isPromise(superspawn.spawn('invalid_command'))).toBe(true);
     });
 
-    it('should notify about stdout "data" events', function (done) {
+    it('Test 002 : should notify about stdout "data" events', function (done) {
         superspawn.spawn(LS, [], {stdio: 'pipe'})
         .progress(progressSpy)
         .fin(function () {
@@ -44,7 +44,7 @@ describe('spawn method', function() {
         });
     });
 
-    it('should notify about stderr "data" events', function (done) {
+    it('Test 003 : should notify about stderr "data" events', function (done) {
         superspawn.spawn(LS, ['doesnt-exist'], {stdio: 'pipe'})
         .progress(progressSpy)
         .fin(function () {

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-common/spec/util/xml-helpers.spec.js
----------------------------------------------------------------------
diff --git a/cordova-common/spec/util/xml-helpers.spec.js b/cordova-common/spec/util/xml-helpers.spec.js
index 0becf72..916e9af 100644
--- a/cordova-common/spec/util/xml-helpers.spec.js
+++ b/cordova-common/spec/util/xml-helpers.spec.js
@@ -54,7 +54,7 @@ var TEST_XML = '<?xml version="1.0" encoding="UTF-8"?>\n' +
 
 describe('xml-helpers', function(){
     describe('parseElementtreeSync', function() {
-        it('should parse xml with a byte order mark', function() {
+        it('Test 001 : should parse xml with a byte order mark', function() {
             var xml_path = path.join(__dirname, '../fixtures/projects/windows/bom_test.xml');
             expect(function() {
                 xml_helpers.parseElementtreeSync(xml_path);
@@ -62,35 +62,35 @@ describe('xml-helpers', function(){
         });
     });
     describe('equalNodes', function() {
-        it('should return false for different tags', function(){
+        it('Test 002 : should return false for different tags', function(){
             expect(xml_helpers.equalNodes(usesNetworkOne, title)).toBe(false);
         });
 
-        it('should return true for identical tags', function(){
+        it('Test 003 : should return true for identical tags', function(){
             expect(xml_helpers.equalNodes(usesNetworkOne, usesNetworkTwo)).toBe(true);
         });
 
-        it('should return false for different attributes', function(){
+        it('Test 004 : should return false for different attributes', function(){
             expect(xml_helpers.equalNodes(usesNetworkOne, usesReceive)).toBe(false);
         });
 
-        it('should distinguish between text', function(){
+        it('Test 005 : should distinguish between text', function(){
             expect(xml_helpers.equalNodes(helloTagOne, goodbyeTag)).toBe(false);
         });
 
-        it('should ignore whitespace in text', function(){
+        it('Test 006 : should ignore whitespace in text', function(){
             expect(xml_helpers.equalNodes(helloTagOne, helloTagTwo)).toBe(true);
         });
 
         describe('should compare children', function(){
-            it('by child quantity', function(){
+            it('Test 007: by child quantity', function(){
                 var one = et.XML('<i><b>o</b></i>'),
                     two = et.XML('<i><b>o</b><u></u></i>');
 
                 expect(xml_helpers.equalNodes(one, two)).toBe(false);
             });
 
-            it('by child equality', function(){
+            it('Test 008 : by child equality', function(){
                 var one = et.XML('<i><b>o</b></i>'),
                     two = et.XML('<i><u></u></i>'),
                     uno = et.XML('<i>\n<b>o</b>\n</i>');
@@ -107,22 +107,22 @@ describe('xml-helpers', function(){
             config_xml = xml_helpers.parseElementtreeSync(path.join(__dirname, '../fixtures/projects/android/res/xml/config.xml'));
         });
 
-        it('should remove any children that match the specified selector', function() {
+        it('Test 009 : should remove any children that match the specified selector', function() {
             var children = config_xml.findall('plugins/plugin');
             xml_helpers.pruneXML(config_xml, children, 'plugins');
             expect(config_xml.find('plugins').getchildren().length).toEqual(0);
         });
-        it('should do nothing if the children cannot be found', function() {
+        it('Test 010 : should do nothing if the children cannot be found', function() {
             var children = [title];
             xml_helpers.pruneXML(config_xml, children, 'plugins');
             expect(config_xml.find('plugins').getchildren().length).toEqual(17);
         });
-        it('should be able to handle absolute selectors', function() {
+        it('Test 011 : should be able to handle absolute selectors', function() {
             var children = config_xml.findall('plugins/plugin');
             xml_helpers.pruneXML(config_xml, children, '/cordova/plugins');
             expect(config_xml.find('plugins').getchildren().length).toEqual(0);
         });
-        it('should be able to handle absolute selectors with wildcards', function() {
+        it('Test 012 : should be able to handle absolute selectors with wildcards', function() {
             var children = config_xml.findall('plugins/plugin');
             xml_helpers.pruneXML(config_xml, children, '/*/plugins');
             expect(config_xml.find('plugins').getchildren().length).toEqual(0);
@@ -135,7 +135,7 @@ describe('xml-helpers', function(){
         beforeEach(function() {
             android_manifest_xml = xml_helpers.parseElementtreeSync(path.join(__dirname, '../fixtures/projects/android/AndroidManifest.xml'));
         });
-        it('should restore attributes at the specified selector', function() {
+        it('Test 013 : should restore attributes at the specified selector', function() {
             var xml = {
                 oldAttrib: {'android:icon': '@drawable/icon', 'android:label': '@string/app_name', 'android:debuggable': 'false'}
             };
@@ -144,7 +144,7 @@ describe('xml-helpers', function(){
             expect(Object.keys(applicationAttr).length).toEqual(3);
             expect(applicationAttr['android:debuggable']).toEqual('false');
         });
-        it('should do nothing if the old attributes cannot be found', function() {
+        it('Test 014 : should do nothing if the old attributes cannot be found', function() {
             var xml = {
                 notOldAttrib: {'android:icon': '@drawable/icon', 'android:label': '@string/app_name', 'android:debuggable': 'false'}
             };
@@ -153,7 +153,7 @@ describe('xml-helpers', function(){
             expect(Object.keys(applicationAttr).length).toEqual(3);
             expect(applicationAttr['android:debuggable']).toEqual('true');
         });
-        it('should be able to handle absolute selectors', function() {
+        it('Test 015 : should be able to handle absolute selectors', function() {
             var xml = {
                 oldAttrib: {'android:icon': '@drawable/icon', 'android:label': '@string/app_name', 'android:debuggable': 'false'}
             };
@@ -162,7 +162,7 @@ describe('xml-helpers', function(){
             expect(Object.keys(applicationAttr).length).toEqual(3);
             expect(applicationAttr['android:debuggable']).toEqual('false');
         });
-        it('should be able to handle absolute selectors with wildcards', function() {
+        it('Test 016 : should be able to handle absolute selectors with wildcards', function() {
             var xml = {
                 oldAttrib: {'android:name': 'ChildApp', 'android:label': '@string/app_name', 'android:configChanges': 'orientation|keyboardHidden', 'android:enabled': 'true'}
             };
@@ -171,7 +171,7 @@ describe('xml-helpers', function(){
             expect(Object.keys(activityAttr).length).toEqual(4);
             expect(activityAttr['android:enabled']).toEqual('true');
         });
-        it('should be able to handle xpath selectors', function() {
+        it('Test 017 : should be able to handle xpath selectors', function() {
             var xml = {
                 oldAttrib: {'android:name': 'com.phonegap.DroidGap', 'android:label': '@string/app_name', 'android:configChanges': 'orientation|keyboardHidden', 'android:enabled': 'true'}
             };
@@ -190,17 +190,17 @@ describe('xml-helpers', function(){
             plugin_xml = xml_helpers.parseElementtreeSync(path.join(__dirname, '../fixtures/plugins/ChildBrowser/plugin.xml'));
         });
 
-        it('should add children to the specified selector', function() {
+        it('Test 018 : should add children to the specified selector', function() {
             var children = plugin_xml.find('config-file').getchildren();
             xml_helpers.graftXML(config_xml, children, 'plugins');
             expect(config_xml.find('plugins').getchildren().length).toEqual(19);
         });
-        it('should be able to handle absolute selectors', function() {
+        it('Test 019 : should be able to handle absolute selectors', function() {
             var children = plugin_xml.find('config-file').getchildren();
             xml_helpers.graftXML(config_xml, children, '/cordova');
             expect(config_xml.findall('access').length).toEqual(3);
         });
-        it('should be able to handle absolute selectors with wildcards', function() {
+        it('Test 020 : should be able to handle absolute selectors with wildcards', function() {
             var children = plugin_xml.find('config-file').getchildren();
             xml_helpers.graftXML(config_xml, children, '/*');
             expect(config_xml.findall('access').length).toEqual(3);
@@ -214,7 +214,7 @@ describe('xml-helpers', function(){
             plugin_xml = xml_helpers.parseElementtreeSync(path.join(__dirname, '../fixtures/plugins/org.test.editconfigtest/plugin.xml'));
             android_manifest_xml = xml_helpers.parseElementtreeSync(path.join(__dirname, '../fixtures/projects/android/AndroidManifest.xml'));
         });
-        it ('should merge attributes at specified selector', function() {
+        it ('Test 021 : should merge attributes at specified selector', function() {
             var children = plugin_xml.find('platform/edit-config[@mode=\"merge\"]').getchildren();
             xml_helpers.graftXMLMerge(android_manifest_xml, children, 'application/activity[@android:name=\"com.phonegap.DroidGap\"]', {});
             var activityAttr = android_manifest_xml.find('application/activity[@android:name=\"com.phonegap.DroidGap\"]').attrib;
@@ -222,7 +222,7 @@ describe('xml-helpers', function(){
             expect(activityAttr['android:enabled']).toEqual('true');
             expect(activityAttr['android:configChanges']).toEqual('keyboardHidden');
         });
-        it ('should be able to handle absolute selectors', function() {
+        it ('Test 022 : should be able to handle absolute selectors', function() {
             var children = plugin_xml.find('platform/edit-config[@mode=\"merge\"]').getchildren();
             xml_helpers.graftXMLMerge(android_manifest_xml, children, '/manifest/application/activity[@android:name=\"com.phonegap.DroidGap\"]', {});
             var activityAttr = android_manifest_xml.find('application/activity[@android:name=\"com.phonegap.DroidGap\"]').attrib;
@@ -230,7 +230,7 @@ describe('xml-helpers', function(){
             expect(activityAttr['android:enabled']).toEqual('true');
             expect(activityAttr['android:configChanges']).toEqual('keyboardHidden');
         });
-        it ('should be able to handle absolute selectors with wildcards', function() {
+        it ('Test 023 : should be able to handle absolute selectors with wildcards', function() {
             var children = plugin_xml.find('platform/edit-config[@mode=\"merge\"]').getchildren();
             xml_helpers.graftXMLMerge(android_manifest_xml, children, '/*/*/activity[@android:name=\"com.phonegap.DroidGap\"]', {});
             var activityAttr = android_manifest_xml.find('application/activity[@android:name=\"com.phonegap.DroidGap\"]').attrib;
@@ -238,7 +238,7 @@ describe('xml-helpers', function(){
             expect(activityAttr['android:enabled']).toEqual('true');
             expect(activityAttr['android:configChanges']).toEqual('keyboardHidden');
         });
-        it ('should be able to handle xpath selectors', function() {
+        it ('Test 024 : should be able to handle xpath selectors', function() {
             var children = plugin_xml.find('platform/edit-config[@mode=\"merge\"]').getchildren();
             xml_helpers.graftXMLMerge(android_manifest_xml, children, 'application/activity[@android:name=\"com.phonegap.DroidGap\"]', {});
             var activityAttr = android_manifest_xml.find('application/activity[@android:name=\"com.phonegap.DroidGap\"]').attrib;
@@ -255,7 +255,7 @@ describe('xml-helpers', function(){
             plugin_xml = xml_helpers.parseElementtreeSync(path.join(__dirname, '../fixtures/plugins/org.test.editconfigtest/plugin.xml'));
             android_manifest_xml = xml_helpers.parseElementtreeSync(path.join(__dirname, '../fixtures/projects/android/AndroidManifest.xml'));
         });
-        it ('should overwrite attributes at specified selector', function() {
+        it ('Test 025 : should overwrite attributes at specified selector', function() {
             var children = plugin_xml.find('platform/edit-config[@mode=\"overwrite\"]').getchildren();
             xml_helpers.graftXMLOverwrite(android_manifest_xml, children, 'application/activity', {});
             var activityAttr = android_manifest_xml.find('application/activity').attrib;
@@ -263,7 +263,7 @@ describe('xml-helpers', function(){
             expect(activityAttr['android:enabled']).toEqual('true');
             expect(activityAttr['android:configChanges']).not.toBeDefined();
         });
-        it ('should be able to handle absolute selectors', function() {
+        it ('Test 026 : should be able to handle absolute selectors', function() {
             var children = plugin_xml.find('platform/edit-config[@mode=\"overwrite\"]').getchildren();
             xml_helpers.graftXMLOverwrite(android_manifest_xml, children, '/manifest/application/activity', {});
             var activityAttr = android_manifest_xml.find('application/activity').attrib;
@@ -271,7 +271,7 @@ describe('xml-helpers', function(){
             expect(activityAttr['android:enabled']).toEqual('true');
             expect(activityAttr['android:configChanges']).not.toBeDefined();
         });
-        it ('should be able to handle absolute selectors with wildcards', function() {
+        it ('Test 027 : should be able to handle absolute selectors with wildcards', function() {
             var children = plugin_xml.find('platform/edit-config[@mode=\"overwrite\"]').getchildren();
             xml_helpers.graftXMLOverwrite(android_manifest_xml, children, '/*/*/activity', {});
             var activityAttr = android_manifest_xml.find('application/activity').attrib;
@@ -279,7 +279,7 @@ describe('xml-helpers', function(){
             expect(activityAttr['android:enabled']).toEqual('true');
             expect(activityAttr['android:configChanges']).not.toBeDefined();
         });
-        it ('should be able to handle xpath selectors', function() {
+        it ('Test 028 : should be able to handle xpath selectors', function() {
             var children = plugin_xml.find('platform/edit-config[@mode=\"overwrite\"]').getchildren();
             xml_helpers.graftXMLOverwrite(android_manifest_xml, children, 'application/activity[@android:name=\"ChildApp\"]', {});
             var activityAttr = android_manifest_xml.find('application/activity').attrib;
@@ -295,7 +295,7 @@ describe('xml-helpers', function(){
             dstXml = et.XML(TEST_XML);
         });
 
-        it('should merge attributes and text of the root element without clobbering', function () {
+        it('Test 029 : should merge attributes and text of the root element without clobbering', function () {
             var testXml = et.XML('<widget foo="bar" id="NOTANID">TEXT</widget>');
             xml_helpers.mergeXml(testXml, dstXml);
             expect(dstXml.attrib.foo).toEqual('bar');
@@ -303,7 +303,7 @@ describe('xml-helpers', function(){
             expect(dstXml.text).not.toEqual('TEXT');
         });
 
-        it('should merge attributes and text of the root element with clobbering', function () {
+        it('Test 030 : should merge attributes and text of the root element with clobbering', function () {
             var testXml = et.XML('<widget foo="bar" id="NOTANID">TEXT</widget>');
             xml_helpers.mergeXml(testXml, dstXml, 'foo', true);
             expect(dstXml.attrib.foo).toEqual('bar');
@@ -311,7 +311,7 @@ describe('xml-helpers', function(){
             expect(dstXml.text).toEqual('TEXT');
         });
 
-        it('should handle attributes values with quotes correctly', function () {
+        it('Test 031 : should handle attributes values with quotes correctly', function () {
             var testXml = et.XML('<widget><quote foo="some \'quoted\' string" bar="another &quot;quoted&quot; string" baz="&quot;mixed&quot; \'quotes\'" /></widget>');
             xml_helpers.mergeXml(testXml, dstXml);
             expect(dstXml.find('quote')).toBeDefined();
@@ -320,7 +320,7 @@ describe('xml-helpers', function(){
             expect(dstXml.find('quote').attrib.baz).toEqual('"mixed" \'quotes\'');
         });
 
-        it('should not merge platform tags with the wrong platform', function () {
+        it('Test 032 : should not merge platform tags with the wrong platform', function () {
             var testXml = et.XML('<widget><platform name="bar"><testElement testAttrib="value">testTEXT</testElement></platform></widget>'),
                 origCfg = et.tostring(dstXml);
 
@@ -328,7 +328,7 @@ describe('xml-helpers', function(){
             expect(et.tostring(dstXml)).toEqual(origCfg);
         });
 
-        it('should merge platform tags with the correct platform', function () {
+        it('Test 033 : should merge platform tags with the correct platform', function () {
             var testXml = et.XML('<widget><platform name="bar"><testElement testAttrib="value">testTEXT</testElement></platform></widget>'),
                 origCfg = et.tostring(dstXml);
 
@@ -340,7 +340,7 @@ describe('xml-helpers', function(){
             expect(testElement.text).toEqual('testTEXT');
         });
 
-        it('should merge singleton children without clobber', function () {
+        it('Test 034 : should merge singleton children without clobber', function () {
             var testXml = et.XML('<widget><author testAttrib="value" href="http://www.nowhere.com">SUPER_AUTHOR</author></widget>');
 
             xml_helpers.mergeXml(testXml, dstXml);
@@ -353,7 +353,7 @@ describe('xml-helpers', function(){
             expect(testElements[0].text).toContain('Apache Cordova Team');
         });
 
-        it('should merge singleton name without clobber', function () {
+        it('Test 035 : should merge singleton name without clobber', function () {
             var testXml = et.XML('<widget><name>SUPER_NAME</name></widget>');
 
             xml_helpers.mergeXml(testXml, dstXml);
@@ -363,7 +363,7 @@ describe('xml-helpers', function(){
             expect(testElements[0].text).toContain('Hello Cordova');
         });
 
-        it('should clobber singleton children with clobber', function () {
+        it('Test 036 : should clobber singleton children with clobber', function () {
             var testXml = et.XML('<widget><author testAttrib="value" href="http://www.nowhere.com">SUPER_AUTHOR</author></widget>');
 
             xml_helpers.mergeXml(testXml, dstXml, '', true);
@@ -376,7 +376,7 @@ describe('xml-helpers', function(){
             expect(testElements[0].text).toEqual('SUPER_AUTHOR');
         });
 
-        it('should merge singleton name with clobber', function () {
+        it('Test 037 : should merge singleton name with clobber', function () {
             var testXml = et.XML('<widget><name>SUPER_NAME</name></widget>');
 
             xml_helpers.mergeXml(testXml, dstXml, '', true);
@@ -386,7 +386,7 @@ describe('xml-helpers', function(){
             expect(testElements[0].text).toContain('SUPER_NAME');
         });
 
-        it('should append non singelton children', function () {
+        it('Test 038 : should append non singelton children', function () {
             var testXml = et.XML('<widget><preference num="1"/> <preference num="2"/></widget>');
 
             xml_helpers.mergeXml(testXml, dstXml, '', true);
@@ -394,7 +394,7 @@ describe('xml-helpers', function(){
             expect(testElements.length).toEqual(4);
         });
 
-        it('should handle namespaced elements', function () {
+        it('Test 039 : should handle namespaced elements', function () {
             var testXml = et.XML('<widget><foo:bar testAttrib="value">testText</foo:bar></widget>');
 
             xml_helpers.mergeXml(testXml, dstXml, 'foo', true);
@@ -404,7 +404,7 @@ describe('xml-helpers', function(){
             expect(testElement.text).toEqual('testText');
         });
 
-        it('should not append duplicate non singelton children', function () {
+        it('Test 040 : should not append duplicate non singelton children', function () {
             var testXml = et.XML('<widget><preference name="fullscreen" value="true"/></widget>');
 
             xml_helpers.mergeXml(testXml, dstXml, '', true);
@@ -412,7 +412,7 @@ describe('xml-helpers', function(){
             expect(testElements.length).toEqual(2);
         });
 
-        it('should not skip partial duplicate non singelton children', function () {
+        it('Test 041 : should not skip partial duplicate non singelton children', function () {
             //remove access tags from dstXML
             var testElements = dstXml.findall('access');
             for(var i = 0; i < testElements.length; i++) {
@@ -433,7 +433,7 @@ describe('xml-helpers', function(){
 
         });
 
-        it('should remove duplicate preferences (by name attribute value)', function () {
+        it('Test 042 : should remove duplicate preferences (by name attribute value)', function () {
             var testXml = et.XML(
                 '<?xml version="1.0" encoding="UTF-8"?>\n' +
                 '<widget xmlns     = "http://www.w3.org/ns/widgets"\n' +
@@ -454,7 +454,7 @@ describe('xml-helpers', function(){
             expect(testElements.length).toEqual(1);
         });
 
-        it('should merge preferences, with platform preferences written last', function () {
+        it('Test 043 : should merge preferences, with platform preferences written last', function () {
             var testXml = et.XML(
                 '<?xml version="1.0" encoding="UTF-8"?>\n' +
                 '<widget xmlns     = "http://www.w3.org/ns/widgets"\n' +

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-cordova/HooksRunner.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/HooksRunner.spec.js b/cordova-lib/spec-cordova/HooksRunner.spec.js
index 697787d..859822d 100644
--- a/cordova-lib/spec-cordova/HooksRunner.spec.js
+++ b/cordova-lib/spec-cordova/HooksRunner.spec.js
@@ -81,19 +81,19 @@ describe('HooksRunner', function() {
         process.chdir(path.join(__dirname, '..'));  // Non e2e tests assume CWD is repo root.
     });
 
-    it('should throw if provided directory is not a cordova project', function() {
+    it('Test 001 : should throw if provided directory is not a cordova project', function() {
         expect(function() {
             new HooksRunner(tmpDir);
         }).toThrow();
     });
 
-    it('should not throw if provided directory is a cordova project', function() {
+    it('Test 002 : should not throw if provided directory is a cordova project', function() {
         expect(function () {
             new HooksRunner(project);
         }).not.toThrow();
     });
 
-    it('should init test fixtures', function(done) {
+    it('Test 003 : should init test fixtures', function(done) {
         hooksRunner = new HooksRunner(project);
 
         // Now we load the config.json in the newly created project and edit the target platform's lib entry
@@ -243,7 +243,7 @@ describe('HooksRunner', function() {
         }
 
         describe('application hooks', function() {
-            it('should execute hook scripts serially', function (done) {
+            it('Test 004 : should execute hook scripts serially', function (done) {
                 var test_event = 'before_build';
                 var projectRoot = cordovaUtil.isCordova();
                 var hooksOrderFile = path.join(projectRoot, 'hooks_order.txt');
@@ -259,7 +259,7 @@ describe('HooksRunner', function() {
                 });
             });
 
-            it('should execute hook scripts serially from .cordova/hooks/hook_type and hooks/hook_type directories', function (done) {
+            it('Test 005 : should execute hook scripts serially from .cordova/hooks/hook_type and hooks/hook_type directories', function (done) {
                 var test_event = 'before_build';
                 var projectRoot = cordovaUtil.isCordova();
                 var hooksOrderFile = path.join(projectRoot, 'hooks_order.txt');
@@ -278,7 +278,7 @@ describe('HooksRunner', function() {
                 });
             });
 
-            it('should execute hook scripts serially from config.xml', function (done) {
+            it('Test 006 : should execute hook scripts serially from config.xml', function (done) {
                 var test_event = 'before_build';
                 var projectRoot = cordovaUtil.isCordova();
                 var hooksOrderFile = path.join(projectRoot, 'hooks_order.txt');
@@ -297,7 +297,7 @@ describe('HooksRunner', function() {
                 });
             });
 
-            it('should execute hook scripts serially from config.xml including platform scripts', function (done) {
+            it('Test 007 : should execute hook scripts serially from config.xml including platform scripts', function (done) {
                 var test_event = 'before_build';
                 var projectRoot = cordovaUtil.isCordova();
                 var hooksOrderFile = path.join(projectRoot, 'hooks_order.txt');
@@ -316,7 +316,7 @@ describe('HooksRunner', function() {
                 });
             });
 
-            it('should filter hook scripts from config.xml by platform', function (done) {
+            it('Test 008 : should filter hook scripts from config.xml by platform', function (done) {
                 var test_event = 'before_build';
                 var projectRoot = cordovaUtil.isCordova();
                 var hooksOrderFile = path.join(projectRoot, 'hooks_order.txt');
@@ -345,7 +345,7 @@ describe('HooksRunner', function() {
         });
 
         describe('plugin hooks', function() {
-            it('should execute hook scripts serially from plugin.xml', function (done) {
+            it('Test 009 : should execute hook scripts serially from plugin.xml', function (done) {
                 var test_event = 'before_build';
                 var projectRoot = cordovaUtil.isCordova();
                 var hooksOrderFile = path.join(projectRoot, 'hooks_order.txt');
@@ -364,7 +364,7 @@ describe('HooksRunner', function() {
                 });
             });
 
-            it('should execute hook scripts serially from plugin.xml including platform scripts', function (done) {
+            it('Test 010 : should execute hook scripts serially from plugin.xml including platform scripts', function (done) {
                 var test_event = 'before_build';
                 var projectRoot = cordovaUtil.isCordova();
                 var hooksOrderFile = path.join(projectRoot, 'hooks_order.txt');
@@ -383,7 +383,7 @@ describe('HooksRunner', function() {
                 });
             });
 
-            it('should filter hook scripts from plugin.xml by platform', function (done) {
+            it('Test 011 : should filter hook scripts from plugin.xml by platform', function (done) {
                 var test_event = 'before_build';
                 var projectRoot = cordovaUtil.isCordova();
                 var hooksOrderFile = path.join(projectRoot, 'hooks_order.txt');
@@ -410,7 +410,7 @@ describe('HooksRunner', function() {
                 });
             });
 
-            it('should run before_plugin_uninstall, before_plugin_install, after_plugin_install hooks for a plugin being installed with correct opts.plugin context', function (done) {
+            it('Test 012 : should run before_plugin_uninstall, before_plugin_install, after_plugin_install hooks for a plugin being installed with correct opts.plugin context', function (done) {
                 var projectRoot = cordovaUtil.isCordova();
 
                 // remove plugin
@@ -467,7 +467,7 @@ describe('HooksRunner', function() {
                 });
             });
 
-            it('should not execute the designated hook when --nohooks option specifies the exact hook name', function (done) {
+            it('Test 013 : should not execute the designated hook when --nohooks option specifies the exact hook name', function (done) {
                 var test_event = 'before_build';
                 hookOptions.nohooks = ['before_build'];
 
@@ -481,7 +481,7 @@ describe('HooksRunner', function() {
                 });
             });
 
-            it('should not execute a set of matched hooks when --nohooks option specifies the hook pattern.', function (done) {
+            it('Test 014 : should not execute a set of matched hooks when --nohooks option specifies the hook pattern.', function (done) {
                 var test_events = ['before_build', 'after_plugin_add', 'before_platform_rm', 'before_prepare'];
                 hookOptions.nohooks = ['before*'];
 
@@ -502,7 +502,7 @@ describe('HooksRunner', function() {
                 });
             });
 
-            it('should not execute all hooks when --nohooks option specifies .', function (done) {
+            it('Test 015 : should not execute all hooks when --nohooks option specifies .', function (done) {
                 var test_events = ['before_build', 'after_plugin_add', 'before_platform_rm', 'before_prepare'];
                 hookOptions.nohooks = ['.'];
 
@@ -527,10 +527,10 @@ describe('HooksRunner', function() {
 
             afterEach(function () {
                 cordova.removeAllListeners(test_event);
-                handler.reset();
+                handler.calls.reset();
             });
 
-            it('should fire handlers using cordova.on', function(done) {
+            it('Test 016 : should fire handlers using cordova.on', function(done) {
                 cordova.on(test_event, handler);
                 hooksRunner.fire(test_event, hookOptions).then(function () {
                     expect(handler).toHaveBeenCalled();
@@ -539,7 +539,7 @@ describe('HooksRunner', function() {
                 }).fin(done);
             });
 
-            it('should pass the project root folder as parameter into the module-level handlers', function (done) {
+            it('Test 017 : should pass the project root folder as parameter into the module-level handlers', function (done) {
                 cordova.on(test_event, handler);
                 hooksRunner.fire(test_event, hookOptions).then(function () {
                     expect(handler).toHaveBeenCalledWith(hookOptions);
@@ -549,7 +549,7 @@ describe('HooksRunner', function() {
                 }).fin(done);
             });
 
-            it('should be able to stop listening to events using cordova.off', function(done) {
+            it('Test 018 : should be able to stop listening to events using cordova.off', function(done) {
                 cordova.on(test_event, handler);
                 cordova.off(test_event, handler);
                 hooksRunner.fire(test_event, hookOptions).then(function () {
@@ -560,7 +560,7 @@ describe('HooksRunner', function() {
                 }).fin(done);
             });
 
-            it('should execute event listeners serially', function(done) {
+            it('Test 019 : should execute event listeners serially', function(done) {
                 var h1_fired = false;
                 var h1 = function() {
                     expect(h2_fired).toBe(false);
@@ -592,7 +592,7 @@ describe('HooksRunner', function() {
                 });
             });
 
-            it('should allow for hook to opt into asynchronous execution and block further hooks from firing using the done callback', function(done) {
+            it('Test 020 : should allow for hook to opt into asynchronous execution and block further hooks from firing using the done callback', function(done) {
                 var h1_fired = false;
                 var h1 = function () {
                     h1_fired = true;
@@ -615,7 +615,7 @@ describe('HooksRunner', function() {
                 });
             });
 
-            it('should pass data object that fire calls into async handlers', function(done) {
+            it('Test 021 : should pass data object that fire calls into async handlers', function(done) {
                 var async = function (opts) {
                     expect(opts).toEqual(hookOptions);
                     return Q();
@@ -626,7 +626,7 @@ describe('HooksRunner', function() {
                 });
             });
 
-            it('should pass data object that fire calls into sync handlers', function(done) {
+            it('Test 022 : should pass data object that fire calls into sync handlers', function(done) {
                 var async = function (opts) {
                     expect(opts).toEqual(hookOptions);
                 };
@@ -634,7 +634,7 @@ describe('HooksRunner', function() {
                 hooksRunner.fire(test_event, hookOptions).fin(done);
             });
 
-            it('should error if any script exits with non-zero code', function(done) {
+            it('Test 023 : should error if any script exits with non-zero code', function(done) {
                 hooksRunner.fire('fail', hookOptions).then(function () {
                     expect('the call').toBe('a failure');
                 }, function (err) {
@@ -643,7 +643,7 @@ describe('HooksRunner', function() {
             });
         });
 
-        it('should not error if the hook is unrecognized', function(done) {
+        it('Test 024 :should not error if the hook is unrecognized', function(done) {
             hooksRunner.fire('CLEAN YOUR SHORTS GODDAMNIT LIKE A BIG BOY!', hookOptions).fail(function (err) {
                 expect('Call with unrecognized hook ').toBe('successful.\n' + err);
             }).fin(done);
@@ -651,7 +651,7 @@ describe('HooksRunner', function() {
     });
 
     // Cleanup. Must be the last spec. Is there a better place for final cleanup in Jasmine?
-    it('should not fail during cleanup', function () {
+    it('Test 025 : should not fail during cleanup', function () {
         process.chdir(path.join(__dirname, '..'));  // Non e2e tests assume CWD is repo root.
         if (ext == 'sh') {
             shell.rm('-rf', tmpDir);

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-cordova/build.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/build.spec.js b/cordova-lib/spec-cordova/build.spec.js
index 3f7f90e..d1fe02e 100644
--- a/cordova-lib/spec-cordova/build.spec.js
+++ b/cordova-lib/spec-cordova/build.spec.js
@@ -38,7 +38,7 @@ describe('build command', function() {
         compile_spy = spyOn(cordova.raw, 'compile').and.returnValue(Q());
     });
     describe('failure', function() {
-        it('should not run inside a project with no platforms', function(done) {
+        it('Test 001 : should not run inside a project with no platforms', function(done) {
             list_platforms.and.returnValue([]);
             cordova.raw.build()
             .then(function() {
@@ -50,7 +50,7 @@ describe('build command', function() {
             }).fin(done);
         });
 
-        it('should not run outside of a Cordova-based project', function(done) {
+        it('Test 002 : should not run outside of a Cordova-based project', function(done) {
             is_cordova.and.returnValue(false);
 
             cordova.raw.build()
@@ -65,15 +65,15 @@ describe('build command', function() {
     });
 
     describe('success', function() {
-        it('should run inside a Cordova-based project with at least one added platform and call both prepare and compile', function(done) {
+        it('Test 003 : should run inside a Cordova-based project with at least one added platform and call both prepare and compile', function(done) {
             cordova.raw.build(['android','ios']).then(function() {
-                var opts = Object({ platforms: [ 'android', 'ios' ], verbose: false, options: Object({  }) })
+                var opts = Object({ platforms: [ 'android', 'ios' ], verbose: false, options: Object({  }) });
                 expect(prepare_spy).toHaveBeenCalledWith(opts);
                 expect(compile_spy).toHaveBeenCalledWith(opts);
                 done();
             });
         });
-        it('should pass down options', function(done) {
+        it('Test 004 : should pass down options', function(done) {
             cordova.raw.build({platforms: ['android'], options: {release: true}}).then(function() {
                 var opts = {platforms: ['android'], options: {release: true}, verbose: false};
                 expect(prepare_spy).toHaveBeenCalledWith(opts);
@@ -82,7 +82,7 @@ describe('build command', function() {
             });
         });
 
-        it('should convert options from old format and warn user about this', function (done) {
+        it('Test 005 : should convert options from old format and warn user about this', function (done) {
             function warnSpy(message) {
                 expect(message).toMatch('The format of cordova.raw.* methods "options" argument was changed');
             }
@@ -100,22 +100,22 @@ describe('build command', function() {
 
     describe('hooks', function() {
         describe('when platforms are added', function() {
-            it('should fire before hooks through the hooker module', function(done) {
+            it('Test 006 : should fire before hooks through the hooker module', function(done) {
                 cordova.raw.build(['android', 'ios']).then(function() {
-                    expect(fire).toHaveBeenCalledWith('before_build', {verbose: false, platforms:['android', 'ios'], options: []});
+                    expect(fire.calls.argsFor(0)).toEqual(['before_build', {verbose: false, platforms:['android', 'ios'] , options: {}}]);
                     done();
                 });
             });
-            it('should fire after hooks through the hooker module', function(done) {
+            it('Test 007 : should fire after hooks through the hooker module', function(done) {
                 cordova.raw.build('android').then(function() {
-                     expect(fire).toHaveBeenCalledWith('after_build', {verbose: false, platforms:['android'], options: []});
+                     expect(fire.calls.argsFor(1)).toEqual([ 'after_build', { platforms: [ 'android' ], verbose: false, options: {} } ]);
                      done();
                 });
             });
         });
 
         describe('with no platforms added', function() {
-            it('should not fire the hooker', function(done) {
+            it('Test 008 : should not fire the hooker', function(done) {
                 list_platforms.and.returnValue([]);
                 Q().then(cordova.raw.build).then(function() {
                     expect('this call').toBe('fail');

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-cordova/compile.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/compile.spec.js b/cordova-lib/spec-cordova/compile.spec.js
index 4371425..4cd1c1d 100644
--- a/cordova-lib/spec-cordova/compile.spec.js
+++ b/cordova-lib/spec-cordova/compile.spec.js
@@ -39,7 +39,7 @@ describe('compile command', function() {
         fail = function (err) { expect(err.stack).not.toBeDefined(); };
     });
     describe('failure', function() {
-        it('should not run inside a Cordova-based project with no added platforms by calling util.listPlatforms', function(done) {
+        it('Test 001 : should not run inside a Cordova-based project with no added platforms by calling util.listPlatforms', function(done) {
             list_platforms.and.returnValue([]);
             var success = jasmine.createSpy('success');
             cordova.raw.compile()
@@ -52,7 +52,7 @@ describe('compile command', function() {
                 done();
             });
         });
-        it('should not run outside of a Cordova-based project', function(done) {
+        it('Test 002 : should not run outside of a Cordova-based project', function(done) {
             is_cordova.and.returnValue(false);
             var success = jasmine.createSpy('success');
             cordova.raw.compile()
@@ -67,7 +67,7 @@ describe('compile command', function() {
     });
 
     describe('success', function() {
-        it('should run inside a Cordova-based project with at least one added platform and shell out to build', function(done) {
+        it('Test 003 : should run inside a Cordova-based project with at least one added platform and shell out to build', function(done) {
             cordova.raw.compile(['android','ios']).then(function() {
                 expect(getPlatformApi).toHaveBeenCalledWith('android');
                 expect(getPlatformApi).toHaveBeenCalledWith('ios');
@@ -77,7 +77,7 @@ describe('compile command', function() {
             .fin(done);
         });
 
-        it('should pass down optional parameters', function (done) {
+        it('Test 004 : should pass down optional parameters', function (done) {
             cordova.raw.compile({platforms:['blackberry10'], options:{release: true}}).then(function () {
                 expect(getPlatformApi).toHaveBeenCalledWith('blackberry10');
                 expect(platformApi.build).toHaveBeenCalledWith({release: true});
@@ -86,7 +86,7 @@ describe('compile command', function() {
             .fin(done);
         });
 
-        it('should convert options from old format and warn user about this', function (done) {
+        it('Test 005 : should convert options from old format and warn user about this', function (done) {
             function warnSpy(message) {
                 expect(message).toMatch('The format of cordova.raw.* methods "options" argument was changed');
             }
@@ -106,18 +106,18 @@ describe('compile command', function() {
 
     describe('hooks', function() {
         describe('when platforms are added', function() {
-            it('should fire before hooks through the hooker module', function(done) {
+            it('Test 006 : should fire before hooks through the hooker module', function(done) {
                 cordova.raw.compile(['android', 'ios']).then(function() {
-                    expect(fire).toHaveBeenCalledWith('before_compile', {verbose: false, platforms:['android', 'ios'], options: []});
+                    expect(fire.calls.argsFor(0)).toEqual(['before_compile', {verbose: false, platforms:['android', 'ios'] , options: {}}]);
                     done();
                 })
                 .fail(fail)
                 .fin(done);
             });
-            it('should fire after hooks through the hooker module', function(done) {
+            it('Test 007 : should fire after hooks through the hooker module', function(done) {
                 cordova.raw.compile('android').then(function() {
-                     expect(fire).toHaveBeenCalledWith('after_compile', {verbose: false, platforms:['android'], options: []});
-                     done();
+                    expect(fire.calls.argsFor(1)).toEqual(['after_compile', {verbose: false, platforms:['android'] , options: {}}]);
+                    done();
                 })
                 .fail(fail)
                 .fin(done);
@@ -125,7 +125,7 @@ describe('compile command', function() {
         });
 
         describe('with no platforms added', function() {
-            it('should not fire the hooker', function(done) {
+            it('Test 008 : should not fire the hooker', function(done) {
                 list_platforms.and.returnValue([]);
                 Q().then(cordova.raw.compile).then(function() {
                     expect('this call').toBe('fail');

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-cordova/create.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/create.spec.js b/cordova-lib/spec-cordova/create.spec.js
index 2876fe6..d731ccb 100644
--- a/cordova-lib/spec-cordova/create.spec.js
+++ b/cordova-lib/spec-cordova/create.spec.js
@@ -39,7 +39,7 @@ var configBasic = {
 };
 
 describe('cordova create checks for valid-identifier', function() {
-    it('should reject reserved words from start of id', function(done) {
+    it('Test 001 : should reject reserved words from start of id', function(done) {
         cordova.raw.create('projectPath', 'int.bob', 'appName', {}, events)
         .fail(function(err) {
             expect(err.message).toBe('App id contains a reserved word, or is not a valid identifier.');
@@ -47,7 +47,7 @@ describe('cordova create checks for valid-identifier', function() {
         .fin(done);
     });
     
-    it('should reject reserved words from end of id', function(done) {
+    it('Test 002 : should reject reserved words from end of id', function(done) {
         cordova.raw.create('projectPath', 'bob.class', 'appName', {}, events)
         .fail(function(err) {
             expect(err.message).toBe('App id contains a reserved word, or is not a valid identifier.');
@@ -94,7 +94,7 @@ describe('create basic test (see more in cordova-create)', function() {
     var results;
     events.on('results', function(res) { results = res; });
 
-    it('should successfully run', function(done) {
+    it('Test 003 : should successfully run', function(done) {
         // Call cordova create with no args, should return help.
         Q()
             .then(function() {

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-cordova/emulate.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/emulate.spec.js b/cordova-lib/spec-cordova/emulate.spec.js
index 7372df2..ecb6440 100644
--- a/cordova-lib/spec-cordova/emulate.spec.js
+++ b/cordova-lib/spec-cordova/emulate.spec.js
@@ -44,7 +44,7 @@ describe('emulate command', function() {
         getPlatformApi = spyOn(platforms, 'getPlatformApi').and.returnValue(platformApi);
     });
     describe('failure', function() {
-        it('should not run inside a Cordova-based project with no added platforms by calling util.listPlatforms', function(done) {
+        it('Test 001 : should not run inside a Cordova-based project with no added platforms by calling util.listPlatforms', function(done) {
             list_platforms.and.returnValue([]);
             var success = jasmine.createSpy('success');
             cordova.raw.compile()
@@ -57,7 +57,7 @@ describe('emulate command', function() {
                 done();
             });
         });
-        it('should not run outside of a Cordova-based project', function(done) {
+        it('Test 002 : should not run outside of a Cordova-based project', function(done) {
             is_cordova.and.returnValue(false);
             var success = jasmine.createSpy('success');
             cordova.raw.compile()
@@ -72,7 +72,7 @@ describe('emulate command', function() {
     });
 
     describe('success', function() {
-        it('should run inside a Cordova-based project with at least one added platform and call prepare and shell out to the emulate script', function(done) {
+        it('Test 003 : should run inside a Cordova-based project with at least one added platform and call prepare and shell out to the emulate script', function(done) {
             cordova.raw.emulate(['android','ios']).then(function(err) {
                 expect(prepare_spy).toHaveBeenCalledWith(jasmine.objectContaining({platforms: ['android', 'ios']}));
                 expect(getPlatformApi).toHaveBeenCalledWith('android');
@@ -83,7 +83,7 @@ describe('emulate command', function() {
             .fail(fail)
             .fin(done);
         });
-        it('should pass down options', function(done) {
+        it('Test 004 : should pass down options', function(done) {
             cordova.raw.emulate({platforms: ['ios'], options: {optionTastic: true }}).then(function(err) {
                 expect(prepare_spy).toHaveBeenCalledWith(jasmine.objectContaining({platforms: ['ios']}));
                 expect(getPlatformApi).toHaveBeenCalledWith('ios');
@@ -93,7 +93,7 @@ describe('emulate command', function() {
             .fail(fail)
             .fin(done);
         });
-        it('should convert options from old format and warn user about this', function (done) {
+        it('Test 005 : should convert options from old format and warn user about this', function (done) {
             function warnSpy(message) {
                 expect(message).toMatch('The format of cordova.raw.* methods "options" argument was changed');
             }
@@ -122,7 +122,7 @@ describe('emulate command', function() {
             afterEach(function() {
                 platformApi.build = originalBuildSpy;
             });
-            it('should leave parameters unchanged', function(done) {
+            it('Test 006 : should leave parameters unchanged', function(done) {
                 cordova.raw.run({platforms: ['blackberry10'], options:{password: '1q1q'}}).then(function() {
                     expect(prepare_spy).toHaveBeenCalledWith({ platforms: [ 'blackberry10' ], options: { password: '1q1q', 'couldBeModified': 'insideBuild' }, verbose: false });
                     expect(platformApi.build).toHaveBeenCalledWith({password: '1q1q', 'couldBeModified': 'insideBuild'});
@@ -133,7 +133,7 @@ describe('emulate command', function() {
             });
         });
 
-        it('should call platform\'s build method', function (done) {
+        it('Test 007 : should call platform\'s build method', function (done) {
             cordova.raw.emulate({platforms: ['blackberry10']})
             .then(function() {
                 expect(prepare_spy).toHaveBeenCalled();
@@ -145,7 +145,7 @@ describe('emulate command', function() {
             .fin(done);
         });
 
-        it('should not call build if --nobuild option is passed', function (done) {
+        it('Test 008 : should not call build if --nobuild option is passed', function (done) {
             cordova.raw.emulate({platforms: ['blackberry10'], options: { nobuild: true }})
             .then(function() {
                 expect(prepare_spy).toHaveBeenCalled();
@@ -160,7 +160,7 @@ describe('emulate command', function() {
 
     describe('hooks', function() {
         describe('when platforms are added', function() {
-            it('should fire before hooks through the hooker module', function(done) {
+            it('Test 009 : should fire before hooks through the hooker module', function(done) {
                 cordova.raw.emulate(['android', 'ios']).then(function() {
                     expect(fire).toHaveBeenCalledWith('before_emulate',
                         jasmine.objectContaining({verbose: false, platforms:['android', 'ios'], options: jasmine.any(Object)}));
@@ -168,7 +168,7 @@ describe('emulate command', function() {
                 .fail(fail)
                 .fin(done);
             });
-            it('should fire after hooks through the hooker module', function(done) {
+            it('Test 010 : should fire after hooks through the hooker module', function(done) {
                 cordova.raw.emulate('android').then(function() {
                      expect(fire).toHaveBeenCalledWith('after_emulate',
                         jasmine.objectContaining({verbose: false, platforms:['android'], options: jasmine.any(Object)}));
@@ -179,7 +179,7 @@ describe('emulate command', function() {
         });
 
         describe('with no platforms added', function() {
-            it('should not fire the hooker', function(done) {
+            it('Test 011 : should not fire the hooker', function(done) {
                 list_platforms.and.returnValue([]);
                 Q().then(cordova.raw.emulate).then(function() {
                     expect('this call').toBe('fail');

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-cordova/helpers.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/helpers.js b/cordova-lib/spec-cordova/helpers.js
index e77078a..76686df 100644
--- a/cordova-lib/spec-cordova/helpers.js
+++ b/cordova-lib/spec-cordova/helpers.js
@@ -157,14 +157,14 @@ beforeEach(function () {
                     result.pass = fs.existsSync(actual);
 
                     if(result.pass) {
-                        result.message = "expected " + actual + " to not exist";
+                        result.message = 'expected ' + actual + ' to not exist';
                     } else {
-                        result.message = "expected " + actual + " to exist";
+                        result.message = 'expected ' + actual + ' to exist';
                     }
 
                     return result;
                 }
-            }
+            };
         }
     });
 });

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-cordova/lazy_load.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/lazy_load.spec.js b/cordova-lib/spec-cordova/lazy_load.spec.js
index e421cc8..dc0f816 100644
--- a/cordova-lib/spec-cordova/lazy_load.spec.js
+++ b/cordova-lib/spec-cordova/lazy_load.spec.js
@@ -55,14 +55,14 @@ describe('lazy_load module', function() {
         afterEach(function () {
             platforms.android.version = version;
         });
-        it('should throw if platform is not a stock cordova platform', function(done) {
+        it('Test 001: should throw if platform is not a stock cordova platform', function(done) {
             lazy_load.cordova('atari').then(function() {
                 expect('this call').toEqual('to fail');
             }, function(err) {
                 expect('' + err).toContain('Cordova library "atari" not recognized.');
             }).fin(done);
         });
-        it('should invoke lazy_load.custom with appropriate url, platform, and version as specified in platforms manifest', function(done) {
+        it('Test 002 : should invoke lazy_load.custom with appropriate url, platform, and version as specified in platforms manifest', function(done) {
             lazy_load.cordova('android').then(function(dir) {
                 expect(cachePackage).toHaveBeenCalled();
                 expect(dir).toBeDefined();
@@ -82,7 +82,7 @@ describe('lazy_load module', function() {
             fire = spyOn(HooksRunner, 'fire').and.returnValue(Q());
         });
 
-        it('should callback with no errors and not fire event hooks if library already exists', function(done) {
+        it('Test 003 : should callback with no errors and not fire event hooks if library already exists', function(done) {
             exists.and.returnValue(true);
             var mock_platforms = {
                 'platform X': {
@@ -97,7 +97,7 @@ describe('lazy_load module', function() {
                 expect(err).not.toBeDefined();
             }).fin(done);
         });
-        it('should callback with no errors and fire event hooks even if library already exists if the lib url is a local dir', function(done) {
+        it('Test 004 : should callback with no errors and fire event hooks even if library already exists if the lib url is a local dir', function(done) {
             exists.and.returnValue(true);
             var mock_platforms = {
                 'platform X': {
@@ -125,8 +125,8 @@ describe('lazy_load module', function() {
                 };
             beforeEach(function() {
                 events = {};
-                fakeRequest.on.reset();
-                fakeRequest.pipe.reset();
+                fakeRequest.on.calls.reset();
+                fakeRequest.pipe.calls.reset();
                 req = spyOn(request, 'get').and.callFake(function() {
                     // Fire the 'end' event shortly.
                     setTimeout(function() {
@@ -138,7 +138,7 @@ describe('lazy_load module', function() {
                 spyOn(npm.config, 'get').and.returnValue(null);
             });
 
-            it('should call request with appropriate url params', function(done) {
+            it('Test 005 : should call request with appropriate url params', function(done) {
                 var url = 'https://github.com/apache/someplugin';
                 var with_android_platform = {
                     'android': {
@@ -155,7 +155,7 @@ describe('lazy_load module', function() {
                     expect(err).not.toBeDefined();
                 }).fin(done);
             });
-            it('should take into account https-proxy npm configuration var if exists for https:// calls', function(done) {
+            it('Test 006 : should take into account https-proxy npm configuration var if exists for https:// calls', function(done) {
                 var proxy = 'https://somelocalproxy.com';
                 npm.config.get.and.returnValue(proxy);
                 var url = 'https://github.com/apache/someplugin';
@@ -175,7 +175,7 @@ describe('lazy_load module', function() {
                     expect(err).not.toBeDefined();
                 }).fin(done);
             });
-            it('should take into account proxy npm config var if exists for http:// calls', function(done) {
+            it('Test 007 : should take into account proxy npm config var if exists for http:// calls', function(done) {
                 var proxy = 'http://somelocalproxy.com';
                 npm.config.get.and.returnValue(proxy);
                 var url = 'http://github.com/apache/someplugin';
@@ -198,7 +198,7 @@ describe('lazy_load module', function() {
         });
 
         describe('local paths for libraries', function() {
-            it('should return the local path, no symlink', function(done) {
+            it('Test 009 : should return the local path, no symlink', function(done) {
                 var mock_platforms = {
                     'X': {
                         id: 'id',
@@ -212,7 +212,7 @@ describe('lazy_load module', function() {
                     expect(err).toBeUndefined();
                 }).fin(done);
             });
-            it('should not file download hook', function(done) {
+            it('Test 010 : should not file download hook', function(done) {
                 var mock_platforms = {
                     'X': {
                         id: 'id',
@@ -235,7 +235,7 @@ describe('lazy_load module', function() {
             cordova = spyOn(lazy_load, 'cordova').and.returnValue(Q());
             custom = spyOn(lazy_load, 'custom').and.returnValue(Q());
         });
-        it('should invoke custom if a custom lib is specified', function(done) {
+        it('Test 011 : should invoke custom if a custom lib is specified', function(done) {
             read = spyOn(config, 'read').and.returnValue({
                 lib:{
                     maybe:{
@@ -260,7 +260,7 @@ describe('lazy_load module', function() {
                 expect(err).toBeUndefined();
             }).fin(done);
         });
-        it('should invoke cordova if no custom lib is specified', function(done) {
+        it('Test 012 : should invoke cordova if no custom lib is specified', function(done) {
             lazy_load.based_on_config('yup', 'ios').then(function() {
                 expect(cordova).toHaveBeenCalled();
             }, function(err) {

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-cordova/metadata/android_parser.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/metadata/android_parser.spec.js b/cordova-lib/spec-cordova/metadata/android_parser.spec.js
index 48c9d16..5d3d6db 100644
--- a/cordova-lib/spec-cordova/metadata/android_parser.spec.js
+++ b/cordova-lib/spec-cordova/metadata/android_parser.spec.js
@@ -52,8 +52,8 @@ describe('android project parser', function() {
     var android_proj = path.join(proj, 'platforms', 'android');
     var exists;
     beforeEach(function() {
-        exists = spyOn(fs, 'existsSync').andReturn(true);
-        spyOn(config, 'has_custom_path').andReturn(false);
+        exists = spyOn(fs, 'existsSync').and.returnValue(true);
+        spyOn(config, 'has_custom_path').and.returnValue(false);
     });
 
     function errorWrapper(p, done, post) {
@@ -64,7 +64,7 @@ describe('android project parser', function() {
 
     describe('constructions', function() {
         it('should throw if provided directory does not contain an AndroidManifest.xml', function() {
-            exists.andReturn(false);
+            exists.and.returnValue(false);
             expect(function() {
                 new androidParser(android_proj);
             }).toThrow();
@@ -98,11 +98,11 @@ describe('android project parser', function() {
             p = new androidParser(android_proj);
             cp = spyOn(shell, 'cp');
             rm = spyOn(shell, 'rm');
-            is_cordova = spyOn(util, 'isCordova').andReturn(android_proj);
+            is_cordova = spyOn(util, 'isCordova').and.returnValue(android_proj);
             write = spyOn(fs, 'writeFileSync');
             read = spyOn(fs, 'readFileSync');
             mkdir = spyOn(shell, 'mkdir');
-            spyOn(xmlHelpers, 'parseElementtreeSync').andCallFake(function(path) {
+            spyOn(xmlHelpers, 'parseElementtreeSync').and.callFake(function(path) {
                 if (/strings/.exec(path)) {
                     return stringsRoot = new et.ElementTree(et.XML(STRINGS_XML));
                 } else if (/AndroidManifest/.exec(path)) {
@@ -116,45 +116,45 @@ describe('android project parser', function() {
 
         describe('update_from_config method', function() {
             beforeEach(function() {
-                spyOn(fs, 'readdirSync').andReturn([ path.join(android_proj, 'src', 'android_pkg', 'MyApp.java') ]);
+                spyOn(fs, 'readdirSync').and.returnValue([ path.join(android_proj, 'src', 'android_pkg', 'MyApp.java') ]);
                 cfg.name = function() { return 'testname'; };
                 cfg.packageName = function() { return 'testpkg'; };
                 cfg.version = function() { return 'one point oh'; };
-                read.andReturn('package org.cordova.somepackage; public class MyApp extends CordovaActivity { }');
+                read.and.returnValue('package org.cordova.somepackage; public class MyApp extends CordovaActivity { }');
             });
 
             it('should write out the orientation preference value', function() {
-                getOrientation.andCallThrough();
+                getOrientation.and.callThrough();
                 p.update_from_config(cfg);
                 expect(manifestRoot.getroot().find('./application/activity').attrib['android:screenOrientation']).toEqual('landscape');
             });
             it('should handle no orientation', function() {
-                getOrientation.andReturn('');
+                getOrientation.and.returnValue('');
                 p.update_from_config(cfg);
                 expect(manifestRoot.getroot().find('./application/activity').attrib['android:screenOrientation']).toBeUndefined();
             });
             it('should handle default orientation', function() {
-                getOrientation.andReturn(p.helper.ORIENTATION_DEFAULT);
+                getOrientation.and.returnValue(p.helper.ORIENTATION_DEFAULT);
                 p.update_from_config(cfg);
                 expect(manifestRoot.getroot().find('./application/activity').attrib['android:screenOrientation']).toBeUndefined();
             });
             it('should handle portrait orientation', function() {
-                getOrientation.andReturn(p.helper.ORIENTATION_PORTRAIT);
+                getOrientation.and.returnValue(p.helper.ORIENTATION_PORTRAIT);
                 p.update_from_config(cfg);
                 expect(manifestRoot.getroot().find('./application/activity').attrib['android:screenOrientation']).toEqual('portrait');
             });
             it('should handle landscape orientation', function() {
-                getOrientation.andReturn(p.helper.ORIENTATION_LANDSCAPE);
+                getOrientation.and.returnValue(p.helper.ORIENTATION_LANDSCAPE);
                 p.update_from_config(cfg);
                 expect(manifestRoot.getroot().find('./application/activity').attrib['android:screenOrientation']).toEqual('landscape');
             });
             it('should handle sensorLandscape orientation', function() {
-                getOrientation.andReturn(p.helper.ORIENTATION_SENSOR_LANDSCAPE);
+                getOrientation.and.returnValue(p.helper.ORIENTATION_SENSOR_LANDSCAPE);
                 p.update_from_config(cfg2);
                 expect(manifestRoot.getroot().find('./application/activity').attrib['android:screenOrientation']).toEqual('sensorLandscape');
             });
             it('should handle custom orientation', function() {
-                getOrientation.andReturn('some-custom-orientation');
+                getOrientation.and.returnValue('some-custom-orientation');
                 p.update_from_config(cfg);
                 expect(manifestRoot.getroot().find('./application/activity').attrib['android:screenOrientation']).toEqual('some-custom-orientation');
             });
@@ -196,7 +196,7 @@ describe('android project parser', function() {
         });
         describe('update_overrides method', function() {
             it('should do nothing if merges directory does not exist', function() {
-                exists.andReturn(false);
+                exists.and.returnValue(false);
                 p.update_overrides();
                 expect(cp).not.toHaveBeenCalled();
             });
@@ -219,7 +219,7 @@ describe('android project parser', function() {
             });
             it('should throw if update_from_config throws', function(done) {
                 var err = new Error('uh oh!');
-                config.andCallFake(function() { throw err; });
+                config.and.callFake(function() { throw err; });
                 errorWrapper(p.update_project({}), done, function(err) {
                     expect(err).toEqual(err);
                 });

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-cordova/metadata/blackberry_parser.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/metadata/blackberry_parser.spec.js b/cordova-lib/spec-cordova/metadata/blackberry_parser.spec.js
index 034681a..a9fbd20 100644
--- a/cordova-lib/spec-cordova/metadata/blackberry_parser.spec.js
+++ b/cordova-lib/spec-cordova/metadata/blackberry_parser.spec.js
@@ -52,10 +52,10 @@ describe('blackberry10 project parser', function() {
     var proj = '/some/path';
     var exists, custom;
     beforeEach(function() {
-        exists = spyOn(fs, 'existsSync').andReturn(true);
-        custom = spyOn(config, 'has_custom_path').andReturn(false);
+        exists = spyOn(fs, 'existsSync').and.returnValue(true);
+        custom = spyOn(config, 'has_custom_path').and.returnValue(false);
         spyOn(ConfigParser.prototype, 'write');
-        spyOn(xmlHelpers, 'parseElementtreeSync').andCallFake(function() {
+        spyOn(xmlHelpers, 'parseElementtreeSync').and.callFake(function() {
             return new et.ElementTree(et.XML(TEST_XML));
         });
     });
@@ -74,7 +74,7 @@ describe('blackberry10 project parser', function() {
 
     describe('constructions', function() {
         it('should throw an exception with a path that is not a native blackberry project', function() {
-            exists.andReturn(false);
+            exists.and.returnValue(false);
             expect(function() {
                 new blackberryParser(proj);
             }).toThrow();
@@ -104,7 +104,7 @@ describe('blackberry10 project parser', function() {
             cp = spyOn(shell, 'cp');
             rm = spyOn(shell, 'rm');
             mkdir = spyOn(shell, 'mkdir');
-            is_cordova = spyOn(util, 'isCordova').andReturn(proj);
+            is_cordova = spyOn(util, 'isCordova').and.returnValue(proj);
             write = spyOn(fs, 'writeFileSync');
             read = spyOn(fs, 'readFileSync');
         });
@@ -165,7 +165,7 @@ describe('blackberry10 project parser', function() {
         });
         describe('update_overrides method', function() {
             it('should do nothing if merges directory does not exist', function() {
-                exists.andReturn(false);
+                exists.and.returnValue(false);
                 p.update_overrides();
                 expect(cp).not.toHaveBeenCalled();
             });
@@ -181,7 +181,7 @@ describe('blackberry10 project parser', function() {
                 www = spyOn(p, 'update_www');
                 overrides = spyOn(p, 'update_overrides');
                 svn = spyOn(util, 'deleteSvnFolders');
-                parse = spyOn(JSON, 'parse').andReturn({blackberry:{qnx:{}}});
+                parse = spyOn(JSON, 'parse').and.returnValue({blackberry:{qnx:{}}});
             });
             it('should call update_from_config', function(done) {
                 wrapper(p.update_project(), done, function() {
@@ -190,7 +190,7 @@ describe('blackberry10 project parser', function() {
             });
             it('should throw if update_from_config throws', function(done) {
                 var err = new Error('uh oh!');
-                config.andCallFake(function() { throw err; });
+                config.and.callFake(function() { throw err; });
                 errorWrapper(p.update_project({}), done, function(e) {
                     expect(e).toEqual(err);
                 });

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-cordova/metadata/browser_parser.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/metadata/browser_parser.spec.js b/cordova-lib/spec-cordova/metadata/browser_parser.spec.js
index 4d640fe..0914006 100644
--- a/cordova-lib/spec-cordova/metadata/browser_parser.spec.js
+++ b/cordova-lib/spec-cordova/metadata/browser_parser.spec.js
@@ -30,7 +30,7 @@ describe('browser project parser', function() {
     var exists, origDirExists;
 
     beforeEach(function() {
-        exists = spyOn(fs, 'existsSync').andReturn(true);
+        exists = spyOn(fs, 'existsSync').and.returnValue(true);
         origDirExists = browserParser.__get__('dirExists');
         browserParser.__set__('dirExists', function () {
             return true;
@@ -67,7 +67,7 @@ describe('browser project parser', function() {
             cp = spyOn(shell, 'cp');
             rm = spyOn(shell, 'rm');
             mkdir = spyOn(shell, 'mkdir');
-            is_cordova = spyOn(util, 'isCordova').andReturn(proj);
+            is_cordova = spyOn(util, 'isCordova').and.returnValue(proj);
         });
 
         describe('www_dir method', function() {
@@ -92,7 +92,7 @@ describe('browser project parser', function() {
 
         describe('update_overrides method', function() {
             it('should do nothing if merges directory does not exist', function() {
-                exists.andReturn(false);
+                exists.and.returnValue(false);
                 p.update_overrides();
                 expect(cp).not.toHaveBeenCalled();
             });


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


[11/50] [abbrv] cordova-lib git commit: CB-12116 updated pinned android to 6.1.0

Posted by st...@apache.org.
CB-12116 updated pinned android to 6.1.0


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

Branch: refs/heads/fetch-1.0.x
Commit: 9af68fe407def096819f6fef50b49d10a8ce15ac
Parents: d3c9209
Author: Steve Gill <st...@gmail.com>
Authored: Thu Nov 10 15:13:48 2016 -0800
Committer: Steve Gill <st...@gmail.com>
Committed: Thu Nov 10 15:13:48 2016 -0800

----------------------------------------------------------------------
 cordova-lib/src/platforms/platformsConfig.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/9af68fe4/cordova-lib/src/platforms/platformsConfig.json
----------------------------------------------------------------------
diff --git a/cordova-lib/src/platforms/platformsConfig.json b/cordova-lib/src/platforms/platformsConfig.json
index cb9a1a2..a754008 100644
--- a/cordova-lib/src/platforms/platformsConfig.json
+++ b/cordova-lib/src/platforms/platformsConfig.json
@@ -21,7 +21,7 @@
         "parser_file": "../cordova/metadata/android_parser",
         "handler_file": "../plugman/platforms/android",
         "url": "https://git-wip-us.apache.org/repos/asf?p=cordova-android.git",
-        "version": "~6.0.0",
+        "version": "~6.1.0",
         "apiCompatibleSince": "5.0.0",
         "deprecated": false
     },


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


[12/50] [abbrv] cordova-lib git commit: CB-12197 : replaced multiple occurances of Anis and Brett with current Apache License

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/spec-plugman/plugins/org.test.plugins.weblessplugin/plugin.xml
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/plugins/org.test.plugins.weblessplugin/plugin.xml b/cordova-lib/spec-plugman/plugins/org.test.plugins.weblessplugin/plugin.xml
index f32cb28..05deac4 100644
--- a/cordova-lib/spec-plugman/plugins/org.test.plugins.weblessplugin/plugin.xml
+++ b/cordova-lib/spec-plugman/plugins/org.test.plugins.weblessplugin/plugin.xml
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-
- Copyright 2013 Anis Kadri
-
- 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.
-
+    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://cordova.apache.org/ns/plugins/1.0"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/spec-plugman/plugins/org.test.plugins.webnotifications/plugin.xml
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/plugins/org.test.plugins.webnotifications/plugin.xml b/cordova-lib/spec-plugman/plugins/org.test.plugins.webnotifications/plugin.xml
index 55d5ae6..4b8e249 100644
--- a/cordova-lib/spec-plugman/plugins/org.test.plugins.webnotifications/plugin.xml
+++ b/cordova-lib/spec-plugman/plugins/org.test.plugins.webnotifications/plugin.xml
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-
- Copyright 2013 Anis Kadri
-
- 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.
-
+    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://cordova.apache.org/ns/plugins/1.0"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/spec-plugman/plugins/org.test.shareddeps/plugin.xml
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/plugins/org.test.shareddeps/plugin.xml b/cordova-lib/spec-plugman/plugins/org.test.shareddeps/plugin.xml
index fb669c8..f54e5be 100644
--- a/cordova-lib/spec-plugman/plugins/org.test.shareddeps/plugin.xml
+++ b/cordova-lib/spec-plugman/plugins/org.test.shareddeps/plugin.xml
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-
- Copyright 2013 Anis Kadri
-
- 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.
-
+    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://cordova.apache.org/ns/plugins/1.0"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/spec-plugman/plugins/recursivePlug/plugin.xml
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/plugins/recursivePlug/plugin.xml b/cordova-lib/spec-plugman/plugins/recursivePlug/plugin.xml
index ea130e5..ac472e5 100644
--- a/cordova-lib/spec-plugman/plugins/recursivePlug/plugin.xml
+++ b/cordova-lib/spec-plugman/plugins/recursivePlug/plugin.xml
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-
- Copyright 2013 Anis Kadri
-
- 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.
-
+    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://cordova.apache.org/ns/plugins/1.0"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/spec-plugman/projects/android_one/AndroidManifest.xml
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/projects/android_one/AndroidManifest.xml b/cordova-lib/spec-plugman/projects/android_one/AndroidManifest.xml
index 1068fb4..09ee546 100644
--- a/cordova-lib/spec-plugman/projects/android_one/AndroidManifest.xml
+++ b/cordova-lib/spec-plugman/projects/android_one/AndroidManifest.xml
@@ -1,21 +1,21 @@
 <?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
 
- Copyright 2013 Anis Kadri
-
- 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://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.
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:windowSoftInputMode="adjustPan"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/spec-plugman/projects/android_one/res/xml/plugins.xml
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/projects/android_one/res/xml/plugins.xml b/cordova-lib/spec-plugman/projects/android_one/res/xml/plugins.xml
index d8ea328..9d284d1 100644
--- a/cordova-lib/spec-plugman/projects/android_one/res/xml/plugins.xml
+++ b/cordova-lib/spec-plugman/projects/android_one/res/xml/plugins.xml
@@ -1,21 +1,21 @@
 <?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
 
- Copyright 2013 Anis Kadri
-
- 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://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.
 -->
 
 <plugins>

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/spec-plugman/projects/android_two/AndroidManifest.xml
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/projects/android_two/AndroidManifest.xml b/cordova-lib/spec-plugman/projects/android_two/AndroidManifest.xml
index 17489ca..019caae 100644
--- a/cordova-lib/spec-plugman/projects/android_two/AndroidManifest.xml
+++ b/cordova-lib/spec-plugman/projects/android_two/AndroidManifest.xml
@@ -1,21 +1,21 @@
 <?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
 
- Copyright 2013 Anis Kadri
-
- 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://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.
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:windowSoftInputMode="adjustPan"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/spec-plugman/projects/android_two_no_perms/AndroidManifest.xml
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/projects/android_two_no_perms/AndroidManifest.xml b/cordova-lib/spec-plugman/projects/android_two_no_perms/AndroidManifest.xml
index f4fcb54..74aeecc 100644
--- a/cordova-lib/spec-plugman/projects/android_two_no_perms/AndroidManifest.xml
+++ b/cordova-lib/spec-plugman/projects/android_two_no_perms/AndroidManifest.xml
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-
- Copyright 2013 Anis Kadri
-
- 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.
-
+    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.
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:windowSoftInputMode="adjustPan"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/spec-plugman/projects/multiple-children/AndroidManifest.xml
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/projects/multiple-children/AndroidManifest.xml b/cordova-lib/spec-plugman/projects/multiple-children/AndroidManifest.xml
index 17489ca..019caae 100644
--- a/cordova-lib/spec-plugman/projects/multiple-children/AndroidManifest.xml
+++ b/cordova-lib/spec-plugman/projects/multiple-children/AndroidManifest.xml
@@ -1,21 +1,21 @@
 <?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
 
- Copyright 2013 Anis Kadri
-
- 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://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.
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:windowSoftInputMode="adjustPan"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/spec-plugman/projects/multiple-children/res/xml/plugins.xml
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/projects/multiple-children/res/xml/plugins.xml b/cordova-lib/spec-plugman/projects/multiple-children/res/xml/plugins.xml
index d8ea328..9d284d1 100644
--- a/cordova-lib/spec-plugman/projects/multiple-children/res/xml/plugins.xml
+++ b/cordova-lib/spec-plugman/projects/multiple-children/res/xml/plugins.xml
@@ -1,21 +1,21 @@
 <?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
 
- Copyright 2013 Anis Kadri
-
- 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://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.
 -->
 
 <plugins>

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/src/plugman/platforms/amazon-fireos.js
----------------------------------------------------------------------
diff --git a/cordova-lib/src/plugman/platforms/amazon-fireos.js b/cordova-lib/src/plugman/platforms/amazon-fireos.js
index 98ef779..6df4d5b 100644
--- a/cordova-lib/src/plugman/platforms/amazon-fireos.js
+++ b/cordova-lib/src/plugman/platforms/amazon-fireos.js
@@ -1,20 +1,20 @@
 /*
- *
- * Copyright 2013 Anis Kadri
- *
- * 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.
- *
+    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 laxcomma:true, sub:true */

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/src/plugman/platforms/android.js
----------------------------------------------------------------------
diff --git a/cordova-lib/src/plugman/platforms/android.js b/cordova-lib/src/plugman/platforms/android.js
index e59025c..e24a44e 100644
--- a/cordova-lib/src/plugman/platforms/android.js
+++ b/cordova-lib/src/plugman/platforms/android.js
@@ -1,20 +1,20 @@
 /*
- *
- * Copyright 2013 Anis Kadri
- *
- * 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.
- *
+    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 laxcomma:true, sub:true */

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/src/plugman/platforms/blackberry10.js
----------------------------------------------------------------------
diff --git a/cordova-lib/src/plugman/platforms/blackberry10.js b/cordova-lib/src/plugman/platforms/blackberry10.js
index 6156eb6..c3d0310 100644
--- a/cordova-lib/src/plugman/platforms/blackberry10.js
+++ b/cordova-lib/src/plugman/platforms/blackberry10.js
@@ -1,20 +1,20 @@
 /*
- *
- * Copyright 2013 Anis Kadri
- *
- * 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.
- *
+    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 laxcomma:true, sub:true */

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/src/plugman/platforms/ios.js
----------------------------------------------------------------------
diff --git a/cordova-lib/src/plugman/platforms/ios.js b/cordova-lib/src/plugman/platforms/ios.js
index 37503c5..003544b 100644
--- a/cordova-lib/src/plugman/platforms/ios.js
+++ b/cordova-lib/src/plugman/platforms/ios.js
@@ -1,20 +1,20 @@
 /*
- *
- * Copyright 2013 Anis Kadri
- *
- * 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.
- *
+    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 laxcomma:true, sub:true */

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/src/plugman/plugman.js
----------------------------------------------------------------------
diff --git a/cordova-lib/src/plugman/plugman.js b/cordova-lib/src/plugman/plugman.js
index 4265bc6..3957e7f 100644
--- a/cordova-lib/src/plugman/plugman.js
+++ b/cordova-lib/src/plugman/plugman.js
@@ -1,20 +1,20 @@
 /*
- *
- * Copyright 2013 Anis Kadri
- *
- * 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.
- *
+    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.
 */
 
 // copyright (c) 2013 Andrew Lunny, Adobe Systems

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/src/plugman/util/plist-helpers.js
----------------------------------------------------------------------
diff --git a/cordova-lib/src/plugman/util/plist-helpers.js b/cordova-lib/src/plugman/util/plist-helpers.js
index 9dee5c6..2c60d4c 100644
--- a/cordova-lib/src/plugman/util/plist-helpers.js
+++ b/cordova-lib/src/plugman/util/plist-helpers.js
@@ -1,21 +1,21 @@
-/*
- *
- * Copyright 2013 Brett Rudd
- *
- * 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.
- *
-*/
+ /**
+    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.
+*/ 
 
 // contains PLIST utility functions
 var __     = require('underscore');

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/src/plugman/util/plugins.js
----------------------------------------------------------------------
diff --git a/cordova-lib/src/plugman/util/plugins.js b/cordova-lib/src/plugman/util/plugins.js
index 8fa8724..b3cef6a 100644
--- a/cordova-lib/src/plugman/util/plugins.js
+++ b/cordova-lib/src/plugman/util/plugins.js
@@ -1,20 +1,20 @@
 /*
- *
- * Copyright 2013 Anis Kadri
- *
- * 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.
- *
+    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 path = require('path'),

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/src/plugman/util/search-and-replace.js
----------------------------------------------------------------------
diff --git a/cordova-lib/src/plugman/util/search-and-replace.js b/cordova-lib/src/plugman/util/search-and-replace.js
index 1f42594..e84f7a0 100644
--- a/cordova-lib/src/plugman/util/search-and-replace.js
+++ b/cordova-lib/src/plugman/util/search-and-replace.js
@@ -1,22 +1,22 @@
 #!/usr/bin/env node
-/*
- *
- * Copyright 2013 Brett Rudd
- *
- * 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.
- *
-*/
+ /**
+    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 glob = require('glob'),
     fs = require('fs');


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


[46/50] [abbrv] cordova-lib git commit: CB-12358: updated .ratignore

Posted by st...@apache.org.
CB-12358: updated .ratignore


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

Branch: refs/heads/master
Commit: 3c08c7268018f2122628dd36223b119fbb8cc1f8
Parents: a54f2e5
Author: Steve Gill <st...@gmail.com>
Authored: Tue Jan 17 15:42:55 2017 -0800
Committer: Steve Gill <st...@gmail.com>
Committed: Tue Jan 17 15:42:55 2017 -0800

----------------------------------------------------------------------
 cordova-common/.ratignore | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/3c08c726/cordova-common/.ratignore
----------------------------------------------------------------------
diff --git a/cordova-common/.ratignore b/cordova-common/.ratignore
index 26f7205..d9f5e52 100644
--- a/cordova-common/.ratignore
+++ b/cordova-common/.ratignore
@@ -1,2 +1,3 @@
 fixtures
 coverage
+jasmine.json


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


[22/50] [abbrv] cordova-lib git commit: fixjasmine : CB-12018 : labeled and updated tests to work with jasmine (spyOn and return, callThrough, waitsFor, toExist, callFake, describe)

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/0e0d7a55/cordova-lib/spec-plugman/install.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/install.spec.js b/cordova-lib/spec-plugman/install.spec.js
index c9376f0..49c09cc 100644
--- a/cordova-lib/spec-plugman/install.spec.js
+++ b/cordova-lib/spec-plugman/install.spec.js
@@ -118,12 +118,12 @@ describe('plugman install start', function() {
 
     beforeEach(function() {
         config_queue_add = spyOn(PlatformJson.prototype, 'addInstalledPluginToPrepareQueue');
-        proc = spyOn(actions.prototype, 'process').andReturn( Q(true) );
+        proc = spyOn(actions.prototype, 'process').and.returnValue( Q(true) );
         actions_push = spyOn(actions.prototype, 'push');
         ca = spyOn(actions.prototype, 'createAction');
 
         var origParseElementtreeSync = xmlHelpers.parseElementtreeSync.bind(xmlHelpers);
-        spyOn(xmlHelpers, 'parseElementtreeSync').andCallFake(function(path) {
+        spyOn(xmlHelpers, 'parseElementtreeSync').and.callFake(function(path) {
             if (/config.xml$/.test(path)) return new et.ElementTree(et.XML(TEST_XML));
             return origParseElementtreeSync(path);
         });
@@ -138,7 +138,7 @@ describe('plugman install start', function() {
         var returnValues = [true, {}, [], 'foo', function(){}];
         var api = knownPlatforms.getPlatformApi('android', project);
         var addPluginOrig = api.addPlugin;
-        spyOn(api, 'addPlugin').andCallFake(function () {
+        spyOn(api, 'addPlugin').and.callFake(function () {
             return addPluginOrig.apply(api, arguments)
             .thenResolve(returnValues[returnValueIndex++]);
         });
@@ -206,19 +206,19 @@ describe('install', function() {
 
     beforeEach(function() {
 
-        exec = spyOn(child_process, 'exec').andCallFake(function(cmd, cb) {
+        exec = spyOn(child_process, 'exec').and.callFake(function(cmd, cb) {
             cb(false, '', '');
         });
-        spawnSpy = spyOn(superspawn, 'spawn').andReturn(Q('3.1.0'));
-        spyOn(fs, 'mkdirSync').andReturn(true);
-        spyOn(shell, 'mkdir').andReturn(true);
-        spyOn(platforms, 'copyFile').andReturn(true);
-
-        fetchSpy = spyOn(plugman.raw, 'fetch').andReturn( Q( plugins['com.cordova.engine'] ) );
-        chmod = spyOn(fs, 'chmodSync').andReturn(true);
-        spyOn(fs, 'writeFileSync').andReturn(true);
-        cp = spyOn(shell, 'cp').andReturn(true);
-        rm = spyOn(shell, 'rm').andReturn(true);
+        spawnSpy = spyOn(superspawn, 'spawn').and.returnValue(Q('3.1.0'));
+        spyOn(fs, 'mkdirSync').and.returnValue(true);
+        spyOn(shell, 'mkdir').and.returnValue(true);
+        spyOn(platforms, 'copyFile').and.returnValue(true);
+
+        fetchSpy = spyOn(plugman.raw, 'fetch').and.returnValue( Q( plugins['com.cordova.engine'] ) );
+        chmod = spyOn(fs, 'chmodSync').and.returnValue(true);
+        spyOn(fs, 'writeFileSync').and.returnValue(true);
+        cp = spyOn(shell, 'cp').and.returnValue(true);
+        rm = spyOn(shell, 'rm').and.returnValue(true);
         add_to_queue = spyOn(PlatformJson.prototype, 'addInstalledPluginToPrepareQueue');
         done = false;
     });
@@ -237,8 +237,8 @@ describe('install', function() {
             expect(results['emit_results'][2]).toBe('Remember that your api key is batman!');
         });
         it('should call fetch if provided plugin cannot be resolved locally', function() {
-            fetchSpy.andReturn( Q( plugins['org.test.plugins.dummyplugin'] ) );
-            spyOn(fs, 'existsSync').andCallFake( fake['existsSync']['noPlugins'] );
+            fetchSpy.and.returnValue( Q( plugins['org.test.plugins.dummyplugin'] ) );
+            spyOn(fs, 'existsSync').and.callFake( fake['existsSync']['noPlugins'] );
 
             runs(function() {
                 installPromise(install('android', project, 'CLEANYOURSHORTS' ));
@@ -250,8 +250,8 @@ describe('install', function() {
             });
         });
         it('should call fetch and convert oldID to newID', function() {
-            fetchSpy.andReturn( Q( plugins['org.test.plugins.dummyplugin'] ) );
-            spyOn(fs, 'existsSync').andCallFake( fake['existsSync']['noPlugins'] );
+            fetchSpy.and.returnValue( Q( plugins['org.test.plugins.dummyplugin'] ) );
+            spyOn(fs, 'existsSync').and.callFake( fake['existsSync']['noPlugins'] );
             var emit = spyOn(events, 'emit');
             runs(function() {
                 installPromise(install('android', project, 'org.apache.cordova.device' ));
@@ -268,12 +268,12 @@ describe('install', function() {
             var fail, satisfies;
             beforeEach(function () {
                 fail = jasmine.createSpy('fail');
-                satisfies = spyOn(semver, 'satisfies').andReturn(true);
-                spyOn(PlatformJson.prototype, 'isPluginInstalled').andReturn(false);
+                satisfies = spyOn(semver, 'satisfies').and.returnValue(true);
+                spyOn(PlatformJson.prototype, 'isPluginInstalled').and.returnValue(false);
             });
 
             it('should check version if plugin has engine tag', function(done){
-                exec.andCallFake(function(cmd, cb) { cb(null, '2.5.0\n'); });
+                exec.and.callFake(function(cmd, cb) { cb(null, '2.5.0\n'); });
                 install('android', project, plugins['com.cordova.engine'])
                 .fail(fail)
                 .fin(function () {
@@ -282,7 +282,7 @@ describe('install', function() {
                 });
             });
             it('should check version and munge it a little if it has "rc" in it so it plays nice with semver (introduce a dash in it)', function(done) {
-                exec.andCallFake(function(cmd, cb) { cb(null, '3.0.0rc1\n'); });
+                exec.and.callFake(function(cmd, cb) { cb(null, '3.0.0rc1\n'); });
                 install('android', project, plugins['com.cordova.engine'])
                 .fail(fail)
                 .fin(function () {
@@ -291,7 +291,7 @@ describe('install', function() {
                 });
             });
             it('should check specific platform version over cordova version if specified', function(done) {
-                exec.andCallFake(function(cmd, cb) { cb(null, '3.1.0\n'); });
+                exec.and.callFake(function(cmd, cb) { cb(null, '3.1.0\n'); });
                 install('android', project, plugins['com.cordova.engine-android'])
                 .fail(fail)
                 .fin(function() {
@@ -301,7 +301,7 @@ describe('install', function() {
             });
             it('should check platform sdk version if specified', function(done) {
                 var cordovaVersion = require('../package.json').version.replace(/-dev|-nightly.*$/, '');
-                exec.andCallFake(function(cmd, cb) { cb(null, '18\n'); });
+                exec.and.callFake(function(cmd, cb) { cb(null, '18\n'); });
                 install('android', project, plugins['com.cordova.engine-android'])
                 .fail(fail)
                 .fin(function() {
@@ -344,7 +344,7 @@ describe('install', function() {
         });
 
         it('should not check custom engine version that is not supported for platform', function() {
-            var spy = spyOn(semver, 'satisfies').andReturn(true);
+            var spy = spyOn(semver, 'satisfies').and.returnValue(true);
             runs(function() {
                 installPromise( install('blackberry10', project, plugins['com.cordova.engine']) );
             });
@@ -357,10 +357,10 @@ describe('install', function() {
         describe('with dependencies', function() {
             var emit;
             beforeEach(function() {
-                spyOn(fs, 'existsSync').andCallFake( fake['existsSync']['noPlugins'] );
-                fetchSpy.andCallFake( fake['fetch']['dependencies'] );
+                spyOn(fs, 'existsSync').and.callFake( fake['existsSync']['noPlugins'] );
+                fetchSpy.and.callFake( fake['fetch']['dependencies'] );
                 emit = spyOn(events, 'emit');
-                exec.andCallFake(function(cmd, cb) {
+                exec.and.callFake(function(cmd, cb) {
                     cb(null, '9.0.0\n');
                 });
             });
@@ -450,7 +450,7 @@ describe('install', function() {
             it('install uses meta data (if available) of top level plugin source', function() {
                 // Fake metadata so plugin 'B' appears from 'meta/B'
                 var meta = require('../src/plugman/util/metadata');
-                spyOn(meta, 'get_fetch_metadata').andCallFake(function(){
+                spyOn(meta, 'get_fetch_metadata').and.callFake(function(){
                     return {
                         source: {type: 'dir', url: path.join(plugins['B'], '..', 'meta')}
                     };
@@ -490,7 +490,7 @@ describe('install', function() {
         });
         it('should throw if variables are missing', function(done) {
             var success = jasmine.createSpy('success');
-            spyOn(PlatformJson.prototype, 'isPluginInstalled').andReturn(false);
+            spyOn(PlatformJson.prototype, 'isPluginInstalled').and.returnValue(false);
             install('android', project, plugins['com.adobe.vars'])
             .then(success)
             .fail(function (err) {
@@ -502,9 +502,9 @@ describe('install', function() {
             });
         });
         it('should throw if git is not found on the path and a remote url is requested', function() {
-            spyOn(fs, 'existsSync').andCallFake( fake['existsSync']['noPlugins'] );
-            fetchSpy.andCallThrough();
-            spyOn(shell, 'which').andReturn(null);
+            spyOn(fs, 'existsSync').and.callFake( fake['existsSync']['noPlugins'] );
+            fetchSpy.and.callThrough();
+            spyOn(shell, 'which').and.returnValue(null);
             runs(function() {
                 installPromise( install('android', project, 'https://git-wip-us.apache.org/repos/asf/cordova-plugin-camera.git') );
             });
@@ -514,8 +514,8 @@ describe('install', function() {
             });
         });
         it('should not fail when trying to install plugin less than minimum version. Skip instead  ', function(){
-            spyOn(semver, 'satisfies').andReturn(false);
-            exec.andCallFake(function(cmd, cb) {
+            spyOn(semver, 'satisfies').and.returnValue(false);
+            exec.and.callFake(function(cmd, cb) {
                 cb(null, '0.0.1\n');
             });
             runs(function() {
@@ -528,13 +528,13 @@ describe('install', function() {
         });
         it('should throw if the engine scriptSrc escapes out of the plugin dir.', function(done) {
             var success = jasmine.createSpy('success'),
-                fail = jasmine.createSpy('fail').andCallFake(function(err) {
+                fail = jasmine.createSpy('fail').and.callFake(function(err) {
                     // <engine name="path-escaping-plugin" version=">=1.0.0" scriptSrc="../../../malicious/script" platform="*" />
                     expect(err).toBeDefined();
                     expect(err.message.indexOf('Security violation:')).toBe(0);
                 });
 
-            spyOn(PlatformJson.prototype, 'isPluginInstalled').andReturn(false);
+            spyOn(PlatformJson.prototype, 'isPluginInstalled').and.returnValue(false);
             install('android', project, plugins['org.test.invalid.engine.script'])
                 .then(success)
                 .fail(fail)
@@ -547,7 +547,7 @@ describe('install', function() {
         it('should throw if a non-default cordova engine platform attribute is not defined.', function(done) {
             var success = jasmine.createSpy('success'),
                 fail = jasmine.createSpy('fail');
-            spyOn(PlatformJson.prototype, 'isPluginInstalled').andReturn(false);
+            spyOn(PlatformJson.prototype, 'isPluginInstalled').and.returnValue(false);
             install('android', project, plugins['org.test.invalid.engine.no.platform'])
                 .then(success)
                 .fail(fail)
@@ -560,7 +560,7 @@ describe('install', function() {
         it('should throw if a non-default cordova engine scriptSrc attribute is not defined.', function(done) {
             var success = jasmine.createSpy('success'),
                 fail = jasmine.createSpy('fail');
-            spyOn(PlatformJson.prototype, 'isPluginInstalled').andReturn(false);
+            spyOn(PlatformJson.prototype, 'isPluginInstalled').and.returnValue(false);
             install('android', project, plugins['org.test.invalid.engine.no.scriptSrc'])
                 .then(success)
                 .fail(fail)

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/0e0d7a55/cordova-lib/spec-plugman/owner.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/owner.spec.js b/cordova-lib/spec-plugman/owner.spec.js
index d406d06..045510b 100644
--- a/cordova-lib/spec-plugman/owner.spec.js
+++ b/cordova-lib/spec-plugman/owner.spec.js
@@ -22,7 +22,7 @@ var owner = require('../src/plugman/owner'),
 
 describe('owner', function() {
     it('should run owner', function() {
-        var sOwner = spyOn(registry, 'owner').andReturn(Q());
+        var sOwner = spyOn(registry, 'owner').and.returnValue(Q());
         var params = ['add', 'anis', 'org.test.plugins.dummyplugin'];
         owner(params);
         expect(sOwner).toHaveBeenCalledWith(params);

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/0e0d7a55/cordova-lib/spec-plugman/search.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/search.spec.js b/cordova-lib/spec-plugman/search.spec.js
index 800c0a4..f2acb01 100644
--- a/cordova-lib/spec-plugman/search.spec.js
+++ b/cordova-lib/spec-plugman/search.spec.js
@@ -22,7 +22,7 @@ var search = require('../src/plugman/search'),
 
 describe('search', function() {
     it('should search a plugin', function() {
-        var sSearch = spyOn(registry, 'search').andReturn(Q());
+        var sSearch = spyOn(registry, 'search').and.returnValue(Q());
         search(new Array('myplugin', 'keyword'));
         expect(sSearch).toHaveBeenCalledWith(['myplugin', 'keyword']);
     });

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/0e0d7a55/cordova-lib/spec-plugman/uninstall.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/uninstall.spec.js b/cordova-lib/spec-plugman/uninstall.spec.js
index af3a678..fe1e96c 100644
--- a/cordova-lib/spec-plugman/uninstall.spec.js
+++ b/cordova-lib/spec-plugman/uninstall.spec.js
@@ -78,7 +78,7 @@ function uninstallPromise(f) {
 describe('plugman uninstall start', function() {
     beforeEach(function () {
         var origParseElementtreeSync = xmlHelpers.parseElementtreeSync.bind(xmlHelpers);
-        spyOn(xmlHelpers, 'parseElementtreeSync').andCallFake(function(path) {
+        spyOn(xmlHelpers, 'parseElementtreeSync').and.callFake(function(path) {
             if (/config.xml$/.test(path)) return new et.ElementTree(et.XML(TEST_XML));
             return origParseElementtreeSync(path);
         });
@@ -121,17 +121,17 @@ describe('uninstallPlatform', function() {
     var fsWrite;
 
     beforeEach(function() {
-        proc = spyOn(actions.prototype, 'process').andReturn(Q());
-        fsWrite = spyOn(fs, 'writeFileSync').andReturn(true);
-        rm = spyOn(shell, 'rm').andReturn(true);
-        spyOn(shell, 'cp').andReturn(true);
+        proc = spyOn(actions.prototype, 'process').and.returnValue(Q());
+        fsWrite = spyOn(fs, 'writeFileSync').and.returnValue(true);
+        rm = spyOn(shell, 'rm').and.returnValue(true);
+        spyOn(shell, 'cp').and.returnValue(true);
         done = false;
     });
     describe('success', function() {
 
         it('should get PlatformApi instance for platform and invoke its\' removePlugin method', function(done) {
-            var platformApi = { removePlugin: jasmine.createSpy('removePlugin').andReturn(Q()) };
-            var getPlatformApi = spyOn(platforms, 'getPlatformApi').andReturn(platformApi);
+            var platformApi = { removePlugin: jasmine.createSpy('removePlugin').and.returnValue(Q()) };
+            var getPlatformApi = spyOn(platforms, 'getPlatformApi').and.returnValue(platformApi);
 
             uninstall.uninstallPlatform('android', project, dummy_id)
             .then(function() {
@@ -144,21 +144,21 @@ describe('uninstallPlatform', function() {
 
         it('should return propagate value returned by PlatformApi removePlugin method', function(done) {
             var platformApi = { removePlugin: jasmine.createSpy('removePlugin') };
-            spyOn(platforms, 'getPlatformApi').andReturn(platformApi);
+            spyOn(platforms, 'getPlatformApi').and.returnValue(platformApi);
 
             var existsSyncOrig = fs.existsSync;
-            spyOn(fs, 'existsSync').andCallFake(function (file) {
+            spyOn(fs, 'existsSync').and.callFake(function (file) {
                 if (file.indexOf(dummy_id) >= 0) return true;
                 return existsSyncOrig.call(fs, file);
             });
 
             var fakeProvider = jasmine.createSpyObj('fakeProvider', ['get']);
-            fakeProvider.get.andReturn(dummyPluginInfo);
+            fakeProvider.get.and.returnValue(dummyPluginInfo);
 
             function validateReturnedResultFor(values, expectedResult) {
                 return values.reduce(function (promise, value) {
                     return promise.then(function () {
-                        platformApi.removePlugin.andReturn(Q(value));
+                        platformApi.removePlugin.and.returnValue(Q(value));
                         return uninstall.uninstallPlatform('android', project, dummy_id, null,
                             { pluginInfoProvider: fakeProvider, platformVersion: '9.9.9' });
                     })
@@ -220,8 +220,8 @@ describe('uninstallPlugin', function() {
     var rm, fsWrite, rmstack = [], emit;
 
     beforeEach(function() {
-        fsWrite = spyOn(fs, 'writeFileSync').andReturn(true);
-        rm = spyOn(shell, 'rm').andCallFake(function(f,p) { rmstack.push(p); return true; });
+        fsWrite = spyOn(fs, 'writeFileSync').and.returnValue(true);
+        rm = spyOn(shell, 'rm').and.callFake(function(f,p) { rmstack.push(p); return true; });
         rmstack = [];
         emit = spyOn(events, 'emit');
         done = false;
@@ -302,8 +302,8 @@ describe('uninstall', function() {
     var fsWrite, rm;
 
     beforeEach(function() {
-        fsWrite = spyOn(fs, 'writeFileSync').andReturn(true);
-        rm = spyOn(shell, 'rm').andReturn(true);
+        fsWrite = spyOn(fs, 'writeFileSync').and.returnValue(true);
+        rm = spyOn(shell, 'rm').and.returnValue(true);
         done = false;
     });
 

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/0e0d7a55/cordova-lib/spec-plugman/wrappers.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/wrappers.spec.js b/cordova-lib/spec-plugman/wrappers.spec.js
index 97bf0dd..30218be 100644
--- a/cordova-lib/spec-plugman/wrappers.spec.js
+++ b/cordova-lib/spec-plugman/wrappers.spec.js
@@ -34,13 +34,13 @@ describe('callback wrapper', function() {
             });
 
             it('should work with no callback and success', function() {
-                raw.andReturn(Q());
+                raw.and.returnValue(Q());
                 plugman[call]();
                 expect(raw).toHaveBeenCalled();
             });
 
             it('should call the callback on success', function(done) {
-                raw.andReturn(Q(1));
+                raw.and.returnValue(Q(1));
                 plugman[call](function(err) {
                     expect(err).toBeUndefined();
                     done();
@@ -49,7 +49,7 @@ describe('callback wrapper', function() {
 
             it('should call the callback with the error on failure', function(done) {
                 var err = new Error('junk');
-                raw.andCallFake(function() { return Q.reject(err); });
+                raw.and.callFake(function() { return Q.reject(err); });
                 plugman[call](function(err) {
                     expect(err).toEqual(err);
                     done();


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


[02/50] [abbrv] cordova-lib git commit: Update appveyor badge to correct repo.

Posted by st...@apache.org.
Update appveyor badge to correct repo.


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

Branch: refs/heads/fetch-1.0.x
Commit: d6dc6b5416c19a3b1e5aab628d3698b8c2d7b5ee
Parents: 328980c
Author: Shazron Abdullah <sh...@apache.org>
Authored: Thu Oct 20 16:12:36 2016 -0700
Committer: Shazron Abdullah <sh...@apache.org>
Committed: Thu Oct 20 16:12:36 2016 -0700

----------------------------------------------------------------------
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d6dc6b54/README.md
----------------------------------------------------------------------
diff --git a/README.md b/README.md
index ad7d4d7..e5bad4b 100644
--- a/README.md
+++ b/README.md
@@ -19,7 +19,7 @@
 #
 -->
 
-[![Build status](https://ci.appveyor.com/api/projects/status/q9s459ssqvs1t7j6/branch/master)](https://ci.appveyor.com/project/Humbedooh/cordova-lib)
+[![Build status](https://ci.appveyor.com/api/projects/status/hovrl5rwj03co6oa/branch/master?svg=true)](https://ci.appveyor.com/project/ApacheSoftwareFoundation/cordova-lib/branch/master)
 [![Build Status](https://travis-ci.org/apache/cordova-lib.svg?branch=master)](https://travis-ci.org/apache/cordova-lib)
 [![Code coverage](https://codecov.io/github/apache/cordova-lib/coverage.svg?branch=master)](https://codecov.io/github/apache/cordova-lib?branch=master)
 [![NPM](https://nodei.co/npm/cordova.png)](https://nodei.co/npm/cordova/)


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


[14/50] [abbrv] cordova-lib git commit: trigger github mirror

Posted by st...@apache.org.
trigger github mirror


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

Branch: refs/heads/fetch-1.0.x
Commit: acf7b4873e4fb04b660718c6e5a1ef6a7d5d8434
Parents: 6dc192d
Author: Steve Gill <st...@gmail.com>
Authored: Tue Dec 13 15:55:40 2016 -0800
Committer: Steve Gill <st...@gmail.com>
Committed: Tue Dec 13 15:55:40 2016 -0800

----------------------------------------------------------------------

----------------------------------------------------------------------



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


[45/50] [abbrv] cordova-lib git commit: CB-12358: updated .ratignore

Posted by st...@apache.org.
CB-12358: updated .ratignore


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

Branch: refs/heads/fetch-1.0.x
Commit: 3c08c7268018f2122628dd36223b119fbb8cc1f8
Parents: a54f2e5
Author: Steve Gill <st...@gmail.com>
Authored: Tue Jan 17 15:42:55 2017 -0800
Committer: Steve Gill <st...@gmail.com>
Committed: Tue Jan 17 15:42:55 2017 -0800

----------------------------------------------------------------------
 cordova-common/.ratignore | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/3c08c726/cordova-common/.ratignore
----------------------------------------------------------------------
diff --git a/cordova-common/.ratignore b/cordova-common/.ratignore
index 26f7205..d9f5e52 100644
--- a/cordova-common/.ratignore
+++ b/cordova-common/.ratignore
@@ -1,2 +1,3 @@
 fixtures
 coverage
+jasmine.json


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


[33/50] [abbrv] cordova-lib git commit: update git mirror

Posted by st...@apache.org.
update git mirror


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

Branch: refs/heads/fetch-1.0.x
Commit: e4b920ff266166e5c2292545de6800f1038ee435
Parents: 1818532
Author: Steve Gill <st...@gmail.com>
Authored: Wed Jan 11 17:38:31 2017 -0800
Committer: Steve Gill <st...@gmail.com>
Committed: Wed Jan 11 17:38:31 2017 -0800

----------------------------------------------------------------------

----------------------------------------------------------------------



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


[07/50] [abbrv] cordova-lib git commit: CB-12039 Updated version and RELEASENOTES.md for release 6.4.0

Posted by st...@apache.org.
CB-12039 Updated version and RELEASENOTES.md for release 6.4.0


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

Branch: refs/heads/fetch-1.0.x
Commit: cad6496048c88c6ece194c02276a0c0f1d05d30c
Parents: 860e746
Author: Steve Gill <st...@gmail.com>
Authored: Fri Oct 21 23:00:47 2016 -0700
Committer: Steve Gill <st...@gmail.com>
Committed: Fri Oct 21 23:00:47 2016 -0700

----------------------------------------------------------------------
 cordova-lib/RELEASENOTES.md | 20 ++++++++++++++++++++
 cordova-lib/package.json    |  4 ++--
 2 files changed, 22 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/cad64960/cordova-lib/RELEASENOTES.md
----------------------------------------------------------------------
diff --git a/cordova-lib/RELEASENOTES.md b/cordova-lib/RELEASENOTES.md
index 95179ba..d6bdbca 100644
--- a/cordova-lib/RELEASENOTES.md
+++ b/cordova-lib/RELEASENOTES.md
@@ -20,6 +20,26 @@
 -->
 # Cordova-lib Release Notes
 
+### 6.4.0 (Oct 21, 2016)
+* [CB-12039](https://issues.apache.org/jira/browse/CB-12039) updated pinned `Android` to 6.0.0 and `iOS` to 4.3.0
+* [CB-11979](https://issues.apache.org/jira/browse/CB-11979) added deprecation warning for installing plugins via subdirectories
+* [CB-11730](https://issues.apache.org/jira/browse/CB-11730) Modify condition of if clause to avoid similar project name with plugin name
+* [CB-11985](https://issues.apache.org/jira/browse/CB-11985) Check if cached platform/plugin exists before `npm cache`
+* [CB-11951](https://issues.apache.org/jira/browse/CB-11951) [CB-11967](https://issues.apache.org/jira/browse/CB-11967) Respect preference default values when installling plugins
+* [CB-11771](https://issues.apache.org/jira/browse/CB-11771) Deep symlink directories to target project instead of linking the directory itself
+* [CB-11908](https://issues.apache.org/jira/browse/CB-11908) Handle `edit-config` in `config.xml` on prepare
+* Add github pull request template
+* [CB-8320](https://issues.apache.org/jira/browse/CB-8320) We look for a `build.gradle` to make sure it's **Android**, not an `AndroidManifest`, because it moved
+* [CB-11811](https://issues.apache.org/jira/browse/CB-11811) Moved **iOS** platform specific tests to `platform.spec.ios.js`, added `test-ios` npm run script.
+* [CB-11811](https://issues.apache.org/jira/browse/CB-11811) disable `CocoaPods` e2e test temporarily since it is platform specific and requires cocoapods to be installed.
+* updated `save.spec.js` to use latest **android** and newer fb plugin
+* [CB-11607](https://issues.apache.org/jira/browse/CB-11607) breakout `cordova-create` from `cordova-lib`
+* [CB-9825](https://issues.apache.org/jira/browse/CB-9825) framework tag spec parsing
+* [CB-11698](https://issues.apache.org/jira/browse/CB-11698) Fix plugin installation when restoring platform
+* [CB-11679](https://issues.apache.org/jira/browse/CB-11679) Speed up save/restore tests
+* [CB-11205](https://issues.apache.org/jira/browse/CB-11205) Respect saved variables when installing plugin
+* [CB-11589](https://issues.apache.org/jira/browse/CB-11589) Fix missing plugin files after restore
+
 ### 6.3.1 (Aug 08, 2016)
 * [CB-11652](https://issues.apache.org/jira/browse/CB-11652) Update run and emulate to skip build
 * [CB-11194](https://issues.apache.org/jira/browse/CB-11194) Defer creating of libDir folder until something actually requests it

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/cad64960/cordova-lib/package.json
----------------------------------------------------------------------
diff --git a/cordova-lib/package.json b/cordova-lib/package.json
index 8550938..ed0dab8 100644
--- a/cordova-lib/package.json
+++ b/cordova-lib/package.json
@@ -3,7 +3,7 @@
   "name": "cordova-lib",
   "license": "Apache-2.0",
   "description": "Apache Cordova tools core lib and API",
-  "version": "6.4.0-dev",
+  "version": "6.4.0",
   "repository": {
     "type": "git",
     "url": "git://git-wip-us.apache.org/repos/asf/cordova-lib.git"
@@ -22,7 +22,7 @@
     "cordova-common": "1.5.x",
     "cordova-fetch": "^1.0.1",
     "cordova-create": "^1.0.1",
-    "cordova-js": "4.1.4",
+    "cordova-js": "4.2.0",
     "cordova-registry-mapper": "1.x",
     "cordova-serve": "^1.0.0",
     "dep-graph": "1.1.0",


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


[27/50] [abbrv] cordova-lib git commit: fixjasmine : CB-12018 : fixed jasmine tests to work with uninstallPlugin and removed waitsFor/runs, updated promise syntax, calls.reset, and labled tests

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-cordova/save.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/save.spec.js b/cordova-lib/spec-cordova/save.spec.js
index 3dce296..a340b17 100644
--- a/cordova-lib/spec-cordova/save.spec.js
+++ b/cordova-lib/spec-cordova/save.spec.js
@@ -135,7 +135,7 @@ describe('(save flag)', function () {
     }
 
     describe('preparing fixtures', function () {
-        it('cloning "old" platform', function (done) {
+        it('Test 001 : cloning "old" platform', function (done) {
             shell.rm('-rf', platformLocalPathOld);
             gitClone(platformGitUrl, platformLocalPathOld, platformVersionOld, function (err) {
                 expect(err).toBe(0);
@@ -143,7 +143,7 @@ describe('(save flag)', function () {
             });
         }, BIG_TIMEOUT);
 
-        it('cloning "new" platform', function (done) {
+        it('Test 002 : cloning "new" platform', function (done) {
             shell.rm('-rf', platformLocalPathNew);
             gitClone(platformGitUrl, platformLocalPathNew, platformVersionNew, function (err) {
                 expect(err).toBe(0);
@@ -151,7 +151,7 @@ describe('(save flag)', function () {
             });
         }, BIG_TIMEOUT);
 
-        it('cloning "newer" platform', function (done) {
+        it('Test 003 : cloning "newer" platform', function (done) {
             shell.rm('-rf', platformLocalPathNewer);
             gitClone(platformGitUrl, platformLocalPathNewer, platformVersionNewer, function (err) {
                 expect(err).toBe(0);
@@ -161,7 +161,7 @@ describe('(save flag)', function () {
     });
 
     describe('platform add --save', function () {
-        it('spec.1 should support custom tgz files', function (done) {
+        it('Test 004 : spec.1 should support custom tgz files', function (done) {
             helpers.removeEngine(appPath, platformName);
             platform('add', platformName + '@' + platformTgzUrl, { 'save': true })
             .then(function () {
@@ -174,7 +174,7 @@ describe('(save flag)', function () {
             });
         }, BIG_TIMEOUT);
 
-        it('spec.2 should save platform to config', function (done) {
+        it('Test 005 : spec.2 should save platform to config', function (done) {
             helpers.removeEngine(appPath, platformName);
             mockDownloadPlatform(platformLocalPathNew, platformVersionNew);
 
@@ -191,7 +191,7 @@ describe('(save flag)', function () {
             });
         }, TIMEOUT);
 
-        it('spec.3 should overwrite platform in config, spec = version', function (done) {
+        it('Test 006 : spec.3 should overwrite platform in config, spec = version', function (done) {
             helpers.setEngineSpec(appPath, platformName, platformVersionOld);
             mockDownloadPlatform(platformLocalPathOld, platformVersionOld);
 
@@ -208,7 +208,7 @@ describe('(save flag)', function () {
             });
         }, TIMEOUT);
 
-        it('spec.4 should overwrite platform in config, spec = path', function (done) {
+        it('Test 007 : spec.4 should overwrite platform in config, spec = path', function (done) {
             helpers.setEngineSpec(appPath, platformName, platformLocalPathNewer);
             mockDownloadPlatform(platformLocalPathNewer, platformVersionNewer);
 
@@ -225,7 +225,7 @@ describe('(save flag)', function () {
             });
         }, TIMEOUT);
 
-        it('spec.5 should fail and should not update config if invalid version is specified', function (done) {
+        it('Test 008 : spec.5 should fail and should not update config if invalid version is specified', function (done) {
             helpers.removeEngine(appPath, platformName);
 
             platform('add', platformName + '@3.969.696', { 'save': true })
@@ -239,7 +239,7 @@ describe('(save flag)', function () {
             });
         });
 
-        it('spec.6 should save local path as spec if added using only local path', function (done) {
+        it('Test 009 : spec.6 should save local path as spec if added using only local path', function (done) {
             helpers.removeEngine(appPath, platformName);
 
             platform('add', platformLocalPathNewer, { 'save': true })
@@ -253,7 +253,7 @@ describe('(save flag)', function () {
             });
         }, TIMEOUT);
 
-        it('spec.7 should save git url with git ref properly', function (done) {
+        it('Test 010 : spec.7 should save git url with git ref properly', function (done) {
             var platformUrl = platformGitUrl + '#' + platformGitRef;
             helpers.removeEngine(appPath, platformName);
             mockDownloadPlatform(platformLocalPathNew, platformVersionNew);
@@ -273,7 +273,7 @@ describe('(save flag)', function () {
     });
 
     describe('platform remove --save', function () {
-        it('spec.8 should not update config if there is no engine in it', function (done) {
+        it('Test 011 : spec.8 should not update config if there is no engine in it', function (done) {
             helpers.removeEngine(appPath, platformName);
 
             platform('add', platformLocalPathNewer)
@@ -289,7 +289,7 @@ describe('(save flag)', function () {
             });
         }, TIMEOUT);
 
-        it('spec.9 should remove engine from config', function (done) {
+        it('Test 012 : spec.9 should remove engine from config', function (done) {
             helpers.setEngineSpec(appPath, platformName, platformLocalPathNewer);
 
             platform('add', platformLocalPathNewer)
@@ -307,7 +307,7 @@ describe('(save flag)', function () {
     });
 
     describe('platform update --save', function () {
-        it('spec.10 should update config with new spec', function (done) {
+        it('Test 013 : spec.10 should update config with new spec', function (done) {
             helpers.setEngineSpec(appPath, platformName, platformVersionNew);
             mockDownloadPlatform(platformLocalPathNew, platformVersionNew);
 
@@ -334,7 +334,7 @@ describe('(save flag)', function () {
             });
         }, TIMEOUT);
 
-        it('spec.11 should update spec with git url when updating using git url', function (done) {
+        it('Test 014 : spec.11 should update spec with git url when updating using git url', function (done) {
             helpers.setEngineSpec(appPath, platformName, platformVersionNew);
             mockDownloadPlatform(platformLocalPathOld, platformVersionOld);
 
@@ -364,7 +364,7 @@ describe('(save flag)', function () {
     });
 
     describe('plugin add --save', function () {
-        it('spec.12 should save plugin to config', function (done) {
+        it('Test 015 : spec.12 should save plugin to config', function (done) {
             platform('add', platformLocalPathNewer)
             .then(function () {
                 return cordova.raw.plugin('add', pluginName, { 'save': true });
@@ -378,7 +378,7 @@ describe('(save flag)', function () {
             });
         }, TIMEOUT);
 
-        it('spec.13 should create new plugin tag in config with old plugin id when downgrading from plugin with new id', function (done) {
+        it('Test 016 : spec.13 should create new plugin tag in config with old plugin id when downgrading from plugin with new id', function (done) {
             platform('add', platformLocalPathNewer)
             .then(function () {
                 helpers.setPluginSpec(appPath, pluginName, pluginOldVersion);
@@ -393,7 +393,7 @@ describe('(save flag)', function () {
             });
         }, TIMEOUT);
 
-        it('spec.14 should save variables', function (done) {
+        it('Test 017 : spec.14 should save variables', function (done) {
             platform('add', platformLocalPathNewer)
             .then(function () {
                 return cordova.raw.plugin('add', variablePluginUrl, {
@@ -414,7 +414,7 @@ describe('(save flag)', function () {
             });
         }, TIMEOUT);
 
-        it('spec.14.1 should restore plugin with variables', function (done) {
+        it('Test 018 : spec.14.1 should restore plugin with variables', function (done) {
             platform('add', platformLocalPathNewer)
             .then(function () {
                 return cordova.raw.plugin('add', variablePluginUrl, {
@@ -441,7 +441,7 @@ describe('(save flag)', function () {
             });
         }, TIMEOUT);
 
-        it('spec.15 save git url as spec', function (done) {
+        it('Test 019 : spec.15 save git url as spec', function (done) {
             platform('add', platformLocalPathNewer)
             .then(function () {
                 return cordova.raw.plugin('add', pluginGitUrl, { 'save': true });
@@ -455,7 +455,7 @@ describe('(save flag)', function () {
             });
         }, TIMEOUT);
 
-        it('spec.16 should save local directory as spec', function (done) {
+        it('Test 020 : spec.16 should save local directory as spec', function (done) {
             platform('add', platformLocalPathNewer)
             .then(function () {
                 return cordova.raw.plugin('add', localPluginPath, { 'save': true });
@@ -469,7 +469,7 @@ describe('(save flag)', function () {
             });
         }, TIMEOUT);
 
-        it('spec.16.1 save scoped registry packages as spec', function (done) {
+        it('Test 021 : spec.16.1 save scoped registry packages as spec', function (done) {
             redirectRegistryCalls(pluginName + '@' + pluginVersion);
             var scopedPackage = '@test-scope/' + pluginName;
 
@@ -489,7 +489,7 @@ describe('(save flag)', function () {
     });
 
     describe('plugin remove --save', function () {
-        it('spec.17 should not add plugin to config', function (done) {
+        it('Test 022 : spec.17 should not add plugin to config', function (done) {
             platform('add', platformLocalPathNewer)
             .then(function () {
                 return cordova.raw.plugin('add', pluginName);
@@ -505,7 +505,7 @@ describe('(save flag)', function () {
             });
         }, TIMEOUT);
 
-        it('spec.18 should remove plugin from config', function (done) {
+        it('Test 023 : spec.18 should remove plugin from config', function (done) {
             platform('add', platformLocalPathNewer)
             .then(function () {
                 return cordova.raw.plugin('add', pluginName);
@@ -524,7 +524,7 @@ describe('(save flag)', function () {
     });
 
     describe('platform save', function () {
-        it('spec.19 should not update config when there are no platforms installed', function (done) {
+        it('Test 024 : spec.19 should not update config when there are no platforms installed', function (done) {
             var configContent = helpers.getConfigContent(appPath);
             platform('save')
             .then(function () {
@@ -537,7 +537,7 @@ describe('(save flag)', function () {
             });
         }, TIMEOUT);
 
-        it('spec.20 should add platform to config', function (done) {
+        it('Test 025 : spec.20 should add platform to config', function (done) {
             mockDownloadPlatform(platformLocalPathNew, platformVersionNew);
 
             platform('add', platformName + '@' + platformVersionNew)
@@ -557,7 +557,7 @@ describe('(save flag)', function () {
     });
 
     describe('plugin save', function () {
-        it('spec.21 should not update config when there are no plugins installed', function (done) {
+        it('Test 026: spec.21 should not update config when there are no plugins installed', function (done) {
             var configContent = helpers.getConfigContent(appPath);
             cordova.raw.plugin('save')
             .finally(function () {
@@ -566,7 +566,7 @@ describe('(save flag)', function () {
             });
         }, TIMEOUT);
 
-        it('spec.22 should update config with plugins: one with version, one with local folder and another one vith git url', function (done) {
+        it('Test 027 : spec.22 should update config with plugins: one with version, one with local folder and another one vith git url', function (done) {
             cordova.raw.plugin('add', pluginName + '@' + pluginVersion)
             .then(function () {
                 return cordova.raw.plugin('add', gitPluginUrl);
@@ -586,7 +586,7 @@ describe('(save flag)', function () {
             });
         }, TIMEOUT);
 
-        it('spec.22.1 should update config with a spec that includes the scope for scoped plugins', function (done) {
+        it('Test 028 : spec.22.1 should update config with a spec that includes the scope for scoped plugins', function (done) {
             // Fetching globalization rather than console to avoid conflicts with earlier tests
             redirectRegistryCalls(pluginName2 + '@' + pluginVersion2);
             var scopedPackage = '@test-scope/' + pluginName2;
@@ -611,7 +611,7 @@ describe('(save flag)', function () {
             PlatformApi.createPlatform = createPlatformOrig;
         });
 
-        it('spec.23 should restore all platforms and plugins', function (done) {
+        it('Test 029 : spec.23 should restore all platforms and plugins', function (done) {
             helpers.setEngineSpec(appPath, platformName, platformLocalPathNewer);
             helpers.setPluginSpec(appPath, localPluginName, localPluginPath);
             prepare()
@@ -626,7 +626,7 @@ describe('(save flag)', function () {
             });
         }, TIMEOUT);
 
-        it('spec.23.1 should restore scoped plugins', function (done) {
+        it('Test 030 : spec.23.1 should restore scoped plugins', function (done) {
             redirectRegistryCalls(pluginName2 + '@~' + pluginVersion2);
             var scopedPackage = '@test-scope/' + pluginName2;
             helpers.setEngineSpec(appPath, platformName, platformLocalPathNewer);
@@ -643,7 +643,7 @@ describe('(save flag)', function () {
             });
         }, TIMEOUT);
 
-        it('spec.23.2 should restore plugins without spec attribute', function (done) {
+        it('Test 031 : spec.23.2 should restore plugins without spec attribute', function (done) {
             redirectRegistryCalls(pluginName2);
             helpers.setEngineSpec(appPath, platformName, platformLocalPathNewer);
             helpers.setPluginSpec(appPath, pluginName2/**, do not specify spec here */);
@@ -658,7 +658,7 @@ describe('(save flag)', function () {
             .fin(done);
         }, TIMEOUT);
 
-        it('spec.24 should restore only specified platform', function (done) {
+        it('Test 032 : spec.24 should restore only specified platform', function (done) {
             
             helpers.setEngineSpec(appPath, platformName, platformLocalPathNewer);
             helpers.setEngineSpec(appPath, otherPlatformName, otherPlatformSpec);
@@ -679,7 +679,7 @@ describe('(save flag)', function () {
             });
         });
 
-        it('spec.25 should install plugins already added to the project into platform when restoring it', function (done) {
+        it('Test 033 : spec.25 should install plugins already added to the project into platform when restoring it', function (done) {
             var fail = jasmine.createSpy('fail').and.callFake(function (err) {
                 console.log(err.message);
             });
@@ -704,7 +704,7 @@ describe('(save flag)', function () {
     });
 
     describe('(cleanup)', function () {
-        it('removing temp dir', function () {
+        it('Test 034 : removing temp dir', function () {
             shell.rm('-rf', tempPath);
             shell.rm('-rf', platformLocalPathNewer);
             shell.rm('-rf', platformLocalPathNew);

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-cordova/serve.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/serve.spec.js b/cordova-lib/spec-cordova/serve.spec.js
index 74b6545..8bbe2b6 100644
--- a/cordova-lib/spec-cordova/serve.spec.js
+++ b/cordova-lib/spec-cordova/serve.spec.js
@@ -32,6 +32,7 @@ var cordova = require('../src/cordova/cordova'),
 
 var cwd = process.cwd();
 
+//skipped because of CB-7078
 xdescribe('serve command', function() {
     var payloads = {},
         consoleSpy;
@@ -47,7 +48,7 @@ xdescribe('serve command', function() {
         process.env.PWD = cwd;
         shell.rm('-rf', tempDir);
     });
-    it('should not run outside of a Cordova-based project', function() {
+    it('Test 001 : should not run outside of a Cordova-based project', function() {
         process.chdir(tempDir);
 
         expect(function() {
@@ -163,7 +164,7 @@ xdescribe('serve command', function() {
             };
         }
 
-        it('should serve from top-level www if the file exists there', function() {
+        it('Test 002 : should serve from top-level www if the file exists there', function() {
             var payload = 'This is test file.';
             payloads.firefoxos = 'This is the firefoxos test file.';
             test_serve('firefoxos', '/basictest.html', payload, {
@@ -173,7 +174,7 @@ xdescribe('serve command', function() {
             })();
         });
 
-        it('should honour a custom port setting', function() {
+        it('Test 003 : should honour a custom port setting', function() {
             var payload = 'This is test file.';
             payloads.firefoxos = 'This is the firefoxos test file.';
             test_serve('firefoxos', '/basictest.html', payload, {
@@ -209,7 +210,7 @@ xdescribe('serve command', function() {
             test_serve('ios', '/test.html', payloads.ios, {timeout: 10000})();
         });
 
-        it('should fall back to www on firefoxos', function() {
+        it('Test 004 : should fall back to www on firefoxos', function() {
             payloads.firefoxos = 'This is the firefoxos test file.';
             test_serve('firefoxos', '/test.html', payloads.firefoxos)();
         });

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-cordova/util.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/util.spec.js b/cordova-lib/spec-cordova/util.spec.js
index b004256..b6577ae 100644
--- a/cordova-lib/spec-cordova/util.spec.js
+++ b/cordova-lib/spec-cordova/util.spec.js
@@ -40,17 +40,17 @@ describe('util module', function() {
         function removeDir(directory) {
             shell.rm('-rf', directory);            
         }
-        it('should return false if it hits the home directory', function() {
+        it('Test 001 : should return false if it hits the home directory', function() {
             var somedir = path.join(home, 'somedir');
             removeDir(somedir);
             shell.mkdir(somedir);
             expect(util.isCordova(somedir)).toEqual(false);
         });
-        it('should return false if it cannot find a .cordova directory up the directory tree', function() {
+        it('Test 002 : should return false if it cannot find a .cordova directory up the directory tree', function() {
             var somedir = path.join(home, '..');
             expect(util.isCordova(somedir)).toEqual(false);
         });
-        it('should return the first directory it finds with a .cordova folder in it', function() {
+        it('Test 003 : should return the first directory it finds with a .cordova folder in it', function() {
             var somedir = path.join(home,'somedir');
             var anotherdir = path.join(somedir, 'anotherdir');
             removeDir(somedir);
@@ -58,7 +58,7 @@ describe('util module', function() {
             shell.mkdir('-p', path.join(somedir, 'www', 'config.xml'));
             expect(util.isCordova(somedir)).toEqual(somedir);
         });
-        it('should ignore PWD when its undefined', function() {
+        it('Test 004 : should ignore PWD when its undefined', function() {
             delete process.env['PWD'];
             var somedir = path.join(home,'somedir');
             var anotherdir = path.join(somedir, 'anotherdir');
@@ -69,7 +69,7 @@ describe('util module', function() {
             process.chdir(anotherdir);
             expect(util.isCordova()).toEqual(somedir);
         });
-        it('should use PWD when available', function() {
+        it('Test 005 : should use PWD when available', function() {
             var somedir = path.join(home,'somedir');
             var anotherdir = path.join(somedir, 'anotherdir');
             removeDir(somedir);
@@ -79,7 +79,7 @@ describe('util module', function() {
             process.chdir(path.sep);
             expect(util.isCordova()).toEqual(somedir);
         });
-        it('should use cwd as a fallback when PWD is not a cordova dir', function() {
+        it('Test 006 : should use cwd as a fallback when PWD is not a cordova dir', function() {
             var somedir = path.join(home,'somedir');
             var anotherdir = path.join(somedir, 'anotherdir');
             removeDir(somedir);
@@ -89,7 +89,7 @@ describe('util module', function() {
             process.chdir(anotherdir);
             expect(util.isCordova()).toEqual(somedir);
         });
-        it('should ignore platform www/config.xml', function() {
+        it('Test 007 : should ignore platform www/config.xml', function() {
             var somedir = path.join(home,'somedir');
             var anotherdir = path.join(somedir, 'anotherdir');
             removeDir(somedir);
@@ -104,7 +104,7 @@ describe('util module', function() {
         afterEach(function() {
             shell.rm('-rf', temp);
         });
-        it('should delete .svn folders in any subdirectory of specified dir', function() {
+        it('Test 008 : should delete .svn folders in any subdirectory of specified dir', function() {
             var one = path.join(temp, 'one');
             var two = path.join(temp, 'two');
             var one_svn = path.join(one, '.svn');
@@ -120,7 +120,7 @@ describe('util module', function() {
         afterEach(function() {
             shell.rm('-rf', temp);
         });
-        it('should only return supported platform directories present in a cordova project dir', function() {
+        it('Test 009 : should only return supported platform directories present in a cordova project dir', function() {
             var platforms = path.join(temp, 'platforms');
             var android = path.join(platforms, 'android');
             var ios = path.join(platforms, 'ios');
@@ -139,7 +139,7 @@ describe('util module', function() {
         afterEach(function() {
             shell.rm('-rf', temp);
         });
-        it('should get the supported platforms in the cordova project dir along with their reported versions', function(done) {
+        it('Test 010 : should get the supported platforms in the cordova project dir along with their reported versions', function(done) {
             var platforms = path.join(temp, 'platforms');
             var android = path.join(platforms, 'android');
 
@@ -157,7 +157,7 @@ describe('util module', function() {
         afterEach(function() {
             shell.rm('-rf', temp);
         });
-        it('should only return plugin directories present in a cordova project dir', function() {
+        it('Test 011 : should only return plugin directories present in a cordova project dir', function() {
             var plugins = path.join(temp, 'plugins');
             var android = path.join(plugins, 'android');
             var ios = path.join(plugins, 'ios');
@@ -170,7 +170,7 @@ describe('util module', function() {
             var res = util.findPlugins(plugins);
             expect(res.length).toEqual(4);
         });
-        it('should not return ".svn" directories', function() {
+        it('Test 012 : should not return ".svn" directories', function() {
             var plugins = path.join(temp, 'plugins');
             var android = path.join(plugins, 'android');
             var ios = path.join(plugins, 'ios');
@@ -182,7 +182,7 @@ describe('util module', function() {
             expect(res.length).toEqual(2);
             expect(res.indexOf('.svn')).toEqual(-1);
         });
-        it('should not return "CVS" directories', function() {
+        it('Test 013 : should not return "CVS" directories', function() {
             var plugins = path.join(temp, 'plugins');
             var android = path.join(plugins, 'android');
             var ios = path.join(plugins, 'ios');
@@ -211,34 +211,34 @@ describe('util module', function() {
             listPlatforms = spyOn(util, 'listPlatforms').and.returnValue(['android']);
         });
 
-        it('should throw if called outside of cordova project', function() {
+        it('Test 014 : should throw if called outside of cordova project', function() {
             isCordova.and.returnValue(false);
             expect(function() { util.preProcessOptions(); }).toThrow();
         });
 
-        it('should throw when no platforms added to project', function() {
+        it('Test 015 : should throw when no platforms added to project', function() {
             listPlatforms.and.returnValue([]);
             expect(function () { util.preProcessOptions(); }).toThrow();
         });
 
-        it('should return default options when no arguments passed', function() {
+        it('Test 016 : should return default options when no arguments passed', function() {
             expect(util.preProcessOptions()).toEqual(jasmine.objectContaining(DEFAULT_OPTIONS));
         });
 
-        it('should accept single string argument as platform name', function() {
+        it('Test 017 : should accept single string argument as platform name', function() {
             expect(util.preProcessOptions('ios')).toEqual(jasmine.objectContaining({platforms: ['ios']}));
         });
 
-        it('should accept array of strings as platform names', function() {
+        it('Test 018 : should accept array of strings as platform names', function() {
             expect(util.preProcessOptions(['ios', 'windows'])).toEqual(jasmine.objectContaining({platforms: ['ios', 'windows']}));
         });
 
-        it('should fall back to installed platform if input doesn\'t contain platforms list', function() {
+        it('Test 019 : should fall back to installed platform if input doesn\'t contain platforms list', function() {
             expect(util.preProcessOptions({verbose: true}))
                 .toEqual(jasmine.objectContaining({platforms: ['android'], verbose: true}));
         });
 
-        it('should pick buildConfig if no option is provided, but buildConfig.json exists', function() {
+        it('Test 020 : should pick buildConfig if no option is provided, but buildConfig.json exists', function() {
             spyOn(util, 'existsSync').and.returnValue(true);
             // Using path.join below to normalize path separators
             expect(util.preProcessOptions())
@@ -251,28 +251,28 @@ describe('util module', function() {
             var validOptions = ['--debug', '--release', '--device', '--emulator', '--nobuild', '--list',
                     '--buildConfig=/fake/path/build.json', '--target=foo', '--archs="x86 x64"'];
 
-            it('should return \'options\' unchanged if they are not an array', function() {
+            it('Test 021 : should return \'options\' unchanged if they are not an array', function() {
                 ['foo', true, {bar: true}].forEach(function (optionValue) {
                     expect(util.preProcessOptions({options: optionValue}))
                         .toEqual(jasmine.objectContaining({options: optionValue}));
                 });
             });
 
-            it('should emit \'warn\' event if \'options\' is an Array', function() {
+            it('Test 022 : should emit \'warn\' event if \'options\' is an Array', function() {
                 var warnSpy = jasmine.createSpy('warnSpy');
                 events.on('warn', warnSpy);
                 util.preProcessOptions({options: ['foo']});
                 expect(warnSpy).toHaveBeenCalled();
-                expect(warnSpy.calls[0].args[0]).toMatch('consider updating your cordova.raw.* method calls');
+                expect(warnSpy.calls.argsFor(0)).toMatch('consider updating your cordova.raw.* method calls');
                 events.removeListener('warn', warnSpy);
             });
 
-            it('should convert options Array into object with \'argv\' field', function() {
+            it('Test 023 : should convert options Array into object with \'argv\' field', function() {
                 expect(util.preProcessOptions({options: []}))
                     .toEqual(jasmine.objectContaining({options: {argv: []}}));
             });
 
-            it('should convert known options (platform-agnostic) into resultant object\'s fields', function () {
+            it('Test 024 : should convert known options (platform-agnostic) into resultant object\'s fields', function () {
                 var expectedResult = {
                     'debug': true, 'release': true,
                     'device': true, 'emulator': true,
@@ -291,7 +291,7 @@ describe('util module', function() {
                 });
             });
 
-            it('should try to convert unknown options (platform-specific) into resultant object\'s fields', function () {
+            it('Test 025 : should try to convert unknown options (platform-specific) into resultant object\'s fields', function () {
                 var expectedResult = {
                     'foo': true, 'appx': 'uap', 'gradleArg': '--no-daemon'
                 };
@@ -300,7 +300,7 @@ describe('util module', function() {
                     .toEqual(jasmine.objectContaining(expectedResult));
             });
 
-            it('should copy unknown options (platform-specific) into resultant object\'s argv field', function () {
+            it('Test 026 : should copy unknown options (platform-specific) into resultant object\'s argv field', function () {
                 unknownOptions.forEach(function (validOption) {
                     expect(util.preProcessOptions({options: unknownOptions}).options.argv).toContain(validOption);
                 });

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-cordova/wrappers.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/wrappers.spec.js b/cordova-lib/spec-cordova/wrappers.spec.js
index 0846447..9c6af7f 100644
--- a/cordova-lib/spec-cordova/wrappers.spec.js
+++ b/cordova-lib/spec-cordova/wrappers.spec.js
@@ -33,13 +33,13 @@ describe('callback wrapper', function() {
                 raw = spyOn(cordova.raw, call);
             });
 
-            it('should work with no callback and success', function() {
+            it('Test 001 : should work with no callback and success', function() {
                 raw.and.returnValue(Q());
                 cordova[call]();
                 expect(raw).toHaveBeenCalled();
             });
 
-            it('should call the callback on success', function(done) {
+            it('Test 002 : should call the callback on success', function(done) {
                 raw.and.returnValue(Q());
                 cordova[call](function(err) {
                     expect(err).toBeUndefined();
@@ -47,7 +47,7 @@ describe('callback wrapper', function() {
                 });
             });
 
-            it('should call the callback with the error on failure', function(done) {
+            it('Test 003 : should call the callback with the error on failure', function(done) {
                 var err = new Error('junk');
                 raw.and.returnValue(Q.reject(err));
                 cordova[call](function(e) {

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-plugman/add_platform.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/add_platform.spec.js b/cordova-lib/spec-plugman/add_platform.spec.js
index 123c051..15524c7 100644
--- a/cordova-lib/spec-plugman/add_platform.spec.js
+++ b/cordova-lib/spec-plugman/add_platform.spec.js
@@ -21,7 +21,7 @@ var platform = require('../src/plugman/platform'),
     fs = require('fs');
 
 describe( 'platform add/remove', function() {
-    it( 'should call platform add', function() {
+    it( 'Test 001 : should call platform add', function() {
         var sPlatformA = spyOn( platform, 'add' ).and.returnValue(Q()),
             sPlatformR = spyOn( platform, 'remove' ).and.returnValue(Q());
         platform.add();
@@ -35,14 +35,12 @@ describe( 'platform add/remove', function() {
 describe( 'platform add', function() {
     var done = false,
         existsSync;
-    function platformPromise( f ) {
-        f.then( function() { done = true; }, function(err) { done = err; } );
-    }
+
     beforeEach( function() {
         existsSync = spyOn( fs, 'existsSync' ).and.returnValue( false );
         done = false;
     });
-    it( 'should error on non existing plugin.xml', function(done) {
+    it( 'Test 002 : should error on non existing plugin.xml', function(done) {
         platform.add().then(function(result){
             expect(false).toBe(true);
             done();
@@ -58,14 +56,12 @@ describe( 'platform add', function() {
 describe( 'platform remove', function() {
     var done = false,
         existsSync;
-    function platformPromise( f ) {
-        f.then( function() { done = true; }, function(err) { done = err; } );
-    }
+        
     beforeEach( function() {
         existsSync = spyOn( fs, 'existsSync' ).and.returnValue( false );
         done = false;
     });
-    it( 'should error on non existing plugin.xml', function(done) {
+    it( 'Test 003 : should error on non existing plugin.xml', function(done) {
         platform.remove().then(function(result) {
             expect(false).toBe(true);
             done();

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-plugman/common.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/common.js b/cordova-lib/spec-plugman/common.js
index d1d0db0..dd29539 100644
--- a/cordova-lib/spec-plugman/common.js
+++ b/cordova-lib/spec-plugman/common.js
@@ -59,21 +59,21 @@ module.exports = common = {
 
         startsWith: function(emitSpy, string)
         {
-            var match = [], i;
-            for(i in emitSpy.argsForCall) {
-                if(emitSpy.argsForCall[i][1].substr(0, string.length) === string)
-                    match.push(emitSpy.argsForCall[i][1]);
-            }
+            var match = [];
+            emitSpy.calls.all().forEach(function(val, i) {
+                if(emitSpy.calls.argsFor(i)[1].substr(0, string.length) === string)
+                    match.push(emitSpy.calls.argsFor(i)[1]);
+            });
             return match;
         },
 
         contains: function(emitSpy, string)
         {
-            var match = [], i;
-            for(i in emitSpy.argsForCall) {
-                if(emitSpy.argsForCall[i][1].indexOf(string) >= 0)
-                    match.push(emitSpy.argsForCall[i][1]);
-            }
+            var match = [];
+            emitSpy.calls.all().forEach(function(val, i) {
+                if(emitSpy.calls.argsFor(i)[1].indexOf(string) >= 0)
+                    match.push(emitSpy.calls.argsFor(i)[1]);
+            });
             return match;
         }
     }

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-plugman/config.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/config.spec.js b/cordova-lib/spec-plugman/config.spec.js
index 3d79ad9..99c9dcb 100644
--- a/cordova-lib/spec-plugman/config.spec.js
+++ b/cordova-lib/spec-plugman/config.spec.js
@@ -21,7 +21,7 @@ var config = require('../src/plugman/config'),
     registry = require('../src/plugman/registry/registry');
 
 describe('config', function() {
-    it('should run config', function() {
+    it('Test 001 : should run config', function() {
         var sConfig = spyOn(registry, 'config').and.returnValue(Q());
         var params = ['set', 'registry', 'http://registry.cordova.io'];
         config(params);

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-plugman/create.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/create.spec.js b/cordova-lib/spec-plugman/create.spec.js
index 377aeb1..524a5ce 100644
--- a/cordova-lib/spec-plugman/create.spec.js
+++ b/cordova-lib/spec-plugman/create.spec.js
@@ -23,7 +23,7 @@ var create = require('../src/plugman/create'),
     plugman = require('../src/plugman/plugman');
 
 describe( 'create', function() {
-    it( 'should call create', function() {
+    it( 'Test 001 : should call create', function() {
         var sCreate = spyOn( plugman, 'create' ).and.returnValue(Q());
         plugman.create();
         expect(sCreate).toHaveBeenCalled();
@@ -35,9 +35,7 @@ describe( 'create plugin', function() {
         existsSync,
         mkdir,
         writeFileSync;
-    function createPromise( f ) {
-        f.then( function() { done = true; }, function(err) { done = err; } );
-    }
+
     beforeEach( function() {
         existsSync = spyOn( fs, 'existsSync' ).and.returnValue( false );
         mkdir = spyOn( shell, 'mkdir' ).and.returnValue( true );
@@ -45,35 +43,32 @@ describe( 'create plugin', function() {
         done = false;
     });
 
-    it( 'should be successful', function(done) {
-        runs(function() {
-            createPromise( create( 'name', 'org.plugin.id', '0.0.0', '.', [] ) );
-        });
-        waitsFor(function() { return done; }, 'create promise never resolved', 500);
-        runs(function() {
-            expect( done ).toBe( true );
-            expect( writeFileSync.calls.length ).toEqual( 2 );
+    it( 'Test 002 : should be successful', function(done) {
+        create('name', 'org.plugin.id', '0.0.0', '.', [])
+        .then(function(result) {
+            expect( writeFileSync.calls.count() ).toEqual( 2 );
+            done();
+        }).fail(function err(errMsg) {
+            done();
         });
-    });
+    }, 6000);
 });
 
 describe( 'create plugin in existing plugin', function() {
     var done = false,
         existsSync;
-    function createPromise( f ) {
-        f.then( function() { done = true; }, function(err) { done = err; } );
-    }
+
     beforeEach( function() {
         existsSync = spyOn( fs, 'existsSync' ).and.returnValue( true );
         done = false;
     });
 
-    it( 'should fail due to an existing plugin.xml', function(done) {
-        create().then(function(result) {
+    it( 'Test 003 : should fail due to an existing plugin.xml', function(done) {
+        create()
+        .then(function(result) {
             expect(false).toBe(true);
             done();
-        },
-        function err(errMsg) {
+        }).fail(function err(errMsg) {
             expect(errMsg.toString()).toContain( 'plugin.xml already exists. Are you already in a plugin?'  );
             done();
         });

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-plugman/fetch.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/fetch.spec.js b/cordova-lib/spec-plugman/fetch.spec.js
index 19b406f..10e93c4 100644
--- a/cordova-lib/spec-plugman/fetch.spec.js
+++ b/cordova-lib/spec-plugman/fetch.spec.js
@@ -70,22 +70,22 @@ describe('fetch', function() {
             fetch.__set__('localPlugins', null);
         });
 
-        it('should copy locally-available plugin to plugins directory', function(done) {
+        it('Test 001 : should copy locally-available plugin to plugins directory', function(done) {
             wrapper(fetch(test_plugin, temp), done, function() {
                 expect(cp).toHaveBeenCalledWith('-R', path.join(test_plugin, '*'), path.join(temp, test_plugin_id));
             });
         });
-        it('should copy locally-available plugin to plugins directory when adding a plugin with searchpath argument', function(done) {
+        it('Test 002 : should copy locally-available plugin to plugins directory when adding a plugin with searchpath argument', function(done) {
             wrapper(fetch(test_plugin_id, temp, { searchpath: test_plugin_searchpath }), done, function() {
                 expect(cp).toHaveBeenCalledWith('-R', path.join(test_plugin, '*'), path.join(temp, test_plugin_id));
             });
         });
-        it('should create a symlink if used with `link` param', function(done) {
+        it('Tet 003 : should create a symlink if used with `link` param', function(done) {
             wrapper(fetch(test_plugin, temp, { link: true }), done, function() {
                 expect(sym).toHaveBeenCalledWith(test_plugin, path.join(temp, test_plugin_id), 'dir');
             });
         });
-        it('should fail when the expected ID doesn\'t match', function(done) {
+        it('Test 004 : should fail when the expected ID doesn\'t match', function(done) {
             fetch(test_plugin, temp, { expected_id: 'wrongID' })
             .then(function() {
                 expect('this call').toBe('fail');
@@ -93,12 +93,12 @@ describe('fetch', function() {
                 expect(''+err).toContain('Expected plugin to have ID "wrongID" but got');
             }).fin(done);
         });
-        it('should succeed when the expected ID is correct', function(done) {
+        it('Test 005 : should succeed when the expected ID is correct', function(done) {
             wrapper(fetch(test_plugin, temp, { expected_id: test_plugin_id }), done, function() {
                 expect(1).toBe(1);
             });
         });
-        it('should fail when the expected ID with version specified doesn\'t match', function(done) {
+        it('Test 006 : should fail when the expected ID with version specified doesn\'t match', function(done) {
             fetch(test_plugin, temp, { expected_id: test_plugin_id + '@wrongVersion' })
             .then(function() {
                 expect('this call').toBe('fail');
@@ -106,7 +106,7 @@ describe('fetch', function() {
                 expect(''+err).toContain('to satisfy version "wrongVersion" but got');
             }).fin(done);
         });
-        it('should succeed when the plugin version specified is correct', function(done) {
+        it('Test 007 : should succeed when the plugin version specified is correct', function(done) {
             var exp_id = test_plugin_id + '@' + test_plugin_version;
             wrapper(fetch(test_plugin, temp, { expected_id: exp_id}), done, function() {
                 expect(1).toBe(1);
@@ -116,29 +116,21 @@ describe('fetch', function() {
     describe('git plugins', function() {
         var clone, save_metadata, done;
 
-        function fetchPromise(f) {
-            f.then(function() { done = true; }, function(err) { done = err; });
-        }
-
         beforeEach(function() {
             clone = spyOn(plugins, 'clonePluginGitRepo').and.returnValue(Q(test_plugin));
             save_metadata = spyOn(metadata, 'save_fetch_metadata');
             done = false;
         });
-        it('should call clonePluginGitRepo for https:// and git:// based urls', function(done) {
+        it('Test 008 : should call clonePluginGitRepo for https:// and git:// based urls', function(done) {
             var url = 'https://github.com/bobeast/GAPlugin.git';
-            runs(function() {
-                fetchPromise(fetch(url, temp));
-            });
-            waitsFor(function() { return done; }, 'fetch promise never resolved', 250);
-            runs(function() {
-                expect(done).toBe(true);
-                expect(clone).toHaveBeenCalledWith(url, temp, '.', undefined, undefined);
-                expect(save_metadata).toHaveBeenCalled();
+                fetch(url, temp).then(function(){
+                    expect(save_metadata).toHaveBeenCalled();
+                    expect(clone).toHaveBeenCalledWith(url, temp, '.', undefined, undefined);
+                    done();
             });
-        });
+        }, 6000);
         
-        it('should call clonePluginGitRepo with subdir if applicable', function(done) {
+        it('Test 009 : should call clonePluginGitRepo with subdir if applicable', function(done) {
             var url = 'https://github.com/bobeast/GAPlugin.git';
             var dir = 'fakeSubDir';
             fetch(url, temp, { subdir: dir }).then(function(){
@@ -148,7 +140,7 @@ describe('fetch', function() {
             });
         }, 6000);
 
-        it('should call clonePluginGitRepo with subdir and git ref if applicable', function(done) {
+        it('Test 010 : should call clonePluginGitRepo with subdir and git ref if applicable', function(done) {
             var url = 'https://github.com/bobeast/GAPlugin.git';
             var dir = 'fakeSubDir';
             var ref = 'fakeGitRef';
@@ -159,7 +151,7 @@ describe('fetch', function() {
             });
         }, 6000);
 
-        it('should extract the git ref from the URL hash, if provided', function(done) {
+        it('Test 011 : should extract the git ref from the URL hash, if provided', function(done) {
             var url = 'https://github.com/bobeast/GAPlugin.git#fakeGitRef';
             var baseURL = 'https://github.com/bobeast/GAPlugin.git';
             fetch(url, temp, {}).then(function(){
@@ -169,7 +161,7 @@ describe('fetch', function() {
             });
         }, 6000);
 
-        it('should extract the subdir from the URL hash, if provided', function(done) {
+        it('Test 012 : should extract the subdir from the URL hash, if provided', function(done) {
             var url = 'https://github.com/bobeast/GAPlugin.git#:fakeSubDir';
             var baseURL = 'https://github.com/bobeast/GAPlugin.git';
             fetch(url, temp, {}).then(function(result){
@@ -179,7 +171,7 @@ describe('fetch', function() {
             });
         }, 6000);
 
-        it('should extract the git ref and subdir from the URL hash, if provided', function(done) {
+        it('Test 013 : should extract the git ref and subdir from the URL hash, if provided', function(done) {
             var url = 'https://github.com/bobeast/GAPlugin.git#fakeGitRef:/fake/Sub/Dir/';
             var baseURL = 'https://github.com/bobeast/GAPlugin.git';
             fetch(url, temp, {}).then(function(result){
@@ -189,7 +181,7 @@ describe('fetch', function() {
             });
         }, 6000);
 
-        it('should fail when the expected ID doesn\'t match', function(done) {
+        it('Test 014 : should fail when the expected ID doesn\'t match', function(done) {
             fetch('https://github.com/bobeast/GAPlugin.git', temp, { expected_id: 'wrongID' })
             .then(function() {
                 expect('this call').toBe('fail');
@@ -197,7 +189,7 @@ describe('fetch', function() {
                 expect(''+err).toContain('Expected plugin to have ID "wrongID" but got');
             }).fin(done);
         });
-        it('should fail when the expected ID with version specified doesn\'t match', function(done) {
+        it('Test 015 : should fail when the expected ID with version specified doesn\'t match', function(done) {
             fetch('https://github.com/bobeast/GAPlugin.git', temp, { expected_id: 'id@wrongVersion' })
             .then(function() {
                 expect('this call').toBe('fail');
@@ -205,7 +197,7 @@ describe('fetch', function() {
                 expect(''+err).toContain('Expected plugin to have ID "id" but got');
             }).fin(done);
         });
-        it('should succeed when the expected ID is correct', function(done) {
+        it('Test 016 : should succeed when the expected ID is correct', function(done) {
             wrapper(fetch('https://github.com/bobeast/GAPlugin.git', temp, { expected_id: test_plugin_id }), done, function() {
                 expect(1).toBe(1);
             });
@@ -219,19 +211,19 @@ describe('fetch', function() {
         });
 
         // this commit uses the new id
-        it('should fetch from a commit-sha', function(done) {
+        it('Test 017 : should fetch from a commit-sha', function(done) {
             wrapper(fetch('http://github.com/apache/cordova-plugin-device.git#ad5f1e7bfd05ef98c01df549a0fa98036a5625db', temp, { expected_id: 'cordova-plugin-device' }), done, function() {
                 expect(1).toBe(1);
             });
         });
         // this branch uses the old id
-        it('should fetch from a branch', function(done) {
+        it('Test 018 : should fetch from a branch', function(done) {
             wrapper(fetch('http://github.com/apache/cordova-plugin-device.git#cdvtest', temp, { expected_id: 'org.apache.cordova.device' }), done, function() {
                 expect(1).toBe(1);
             });
         });
         // this tag uses the new id
-        it('should fetch from a tag', function(done) {
+        it('Test 019 : should fetch from a tag', function(done) {
             wrapper(fetch('http://github.com/apache/cordova-plugin-device.git#r1.0.0', temp, { expected_id: 'cordova-plugin-device' }), done, function() {
                 expect(1).toBe(1);
             });
@@ -244,7 +236,7 @@ describe('fetch', function() {
         var appDir = path.join(__dirname, 'plugins/recursivePlug/demo');
 
         if(/^win/.test(process.platform)) {
-            it('should copy all but the /demo/ folder',function(done) {
+            it('Test 020 : should copy all but the /demo/ folder',function(done) {
                 var cp = spyOn(shell, 'cp');
                 wrapper(fetch(srcDir, appDir),done, function() {
                     expect(cp).toHaveBeenCalledWith('-R',path.join(srcDir,'asset.txt'),path.join(appDir,'test-recursive'));
@@ -253,7 +245,7 @@ describe('fetch', function() {
             });
         }
         else {
-            it('should skip copy to avoid recursive error', function(done) {
+            it('Test 021 : should skip copy to avoid recursive error', function(done) {
 
                 var cp = spyOn(shell, 'cp').and.callFake(function(){});
 
@@ -277,7 +269,7 @@ describe('fetch', function() {
         });
 
 
-        it('should fail when the expected ID doesn\'t match', function(done) {
+        it('Test 022 : should fail when the expected ID doesn\'t match', function(done) {
             fetch(pluginId, temp, { expected_id: 'wrongID' })
             .then(function() {
                 expect('this call').toBe('fail');
@@ -285,7 +277,7 @@ describe('fetch', function() {
                 expect(''+err).toContain('Expected plugin to have ID "wrongID" but got');
             }).fin(done);
         });
-        it('should fail when the expected ID with version specified doesn\'t match', function(done) {
+        it('Test 022 : should fail when the expected ID with version specified doesn\'t match', function(done) {
             fetch(pluginId, temp, { expected_id: test_plugin_id + '@wrongVersion' })
             .then(function() {
                 expect('this call').toBe('fail');
@@ -293,23 +285,23 @@ describe('fetch', function() {
                 expect(''+err).toContain('to satisfy version "wrongVersion" but got');
             }).fin(done);
         });
-        it('should succeed when the expected ID is correct', function(done) {
+        it('Test 023 : should succeed when the expected ID is correct', function(done) {
             wrapper(fetch(pluginId, temp, { expected_id: test_plugin_id }), done, function() {
                 expect(1).toBe(1);
             });
         });
-        it('should succeed when the plugin version specified is correct', function(done) {
+        it('Test 024 : should succeed when the plugin version specified is correct', function(done) {
             wrapper(fetch(pluginId, temp, { expected_id: test_plugin_id + '@' + test_plugin_version }), done, function() {
                 expect(1).toBe(1);
             });
         });
-        it('should fetch plugins that are scoped packages', function(done) {
+        it('Test 025 : should fetch plugins that are scoped packages', function(done) {
             var scopedPackage = '@testcope/dummy-plugin';
             wrapper(fetch(scopedPackage, temp, { expected_id: test_plugin_id }), done, function() {
                 expect(sFetch).toHaveBeenCalledWith([scopedPackage]);
             });
         });
-        it('should fetch plugins that are scoped packages and have versions specified', function(done) {
+        it('Test 026 : should fetch plugins that are scoped packages and have versions specified', function(done) {
             var scopedPackage = '@testcope/dummy-plugin@latest';
             wrapper(fetch(scopedPackage, temp, { expected_id: test_plugin_id }), done, function() {
                 expect(sFetch).toHaveBeenCalledWith([scopedPackage]);

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-plugman/info.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/info.spec.js b/cordova-lib/spec-plugman/info.spec.js
index 3939abe..beaa03f 100644
--- a/cordova-lib/spec-plugman/info.spec.js
+++ b/cordova-lib/spec-plugman/info.spec.js
@@ -21,7 +21,7 @@ var search = require('../src/plugman/info'),
     registry = require('../src/plugman/registry/registry');
 
 describe('info', function() {
-    it('should show plugin info', function() {
+    it('Test 001 : should show plugin info', function() {
         var sSearch = spyOn(registry, 'info').and.returnValue(Q({
             name: 'fakePlugin',
             version: '1.0.0',

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-plugman/install.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/install.spec.js b/cordova-lib/spec-plugman/install.spec.js
index d3af713..3f2b7da 100644
--- a/cordova-lib/spec-plugman/install.spec.js
+++ b/cordova-lib/spec-plugman/install.spec.js
@@ -59,7 +59,6 @@ var install = require('../src/plugman/install'),
         'F' : path.join(plugins_dir, 'dependencies', 'F'),
         'G' : path.join(plugins_dir, 'dependencies', 'G')
     },
-    promise,
     results = {},
     superspawn = require('cordova-common').superspawn;
 
@@ -67,10 +66,6 @@ var install = require('../src/plugman/install'),
 // Pre-crete the temp dir, without it the test fails.
 shell.mkdir('-p', temp_dir);
 
-function installPromise(f) {
-  f.then(function(res) { done = true; }, function(err) { done = err; });
-}
-
 var existsSync = fs.existsSync;
 
 // Mocked functions for tests
@@ -129,7 +124,7 @@ describe('plugman install start', function() {
         });
     });
 
-    it('plugman install start', function() {
+    it('Test 001 : plugman install start', function(done) {
         shell.rm('-rf', project);
         shell.cp('-R', path.join(srcProject, '*'), project);
 
@@ -143,60 +138,37 @@ describe('plugman install start', function() {
             .thenResolve(returnValues[returnValueIndex++]);
         });
 
-        done = false;
-        promise = Q()
-         .then(
-            function(){
-                return install('android', project, plugins['org.test.plugins.dummyplugin']);
-            }
-        ).then(
-            function(result){
-                expect(result).toBeTruthy();
-                results['actions_callCount'] = actions_push.callCount;
-                results['actions_create'] = ca.argsForCall[0];
-                results['config_add'] = config_queue_add.argsForCall[0];
-
-                return Q();
-            }
-        ).then(
-            function(){
-                return install('android', project, plugins['com.cordova.engine']);
-            }
-        ).then(
-            function(result){
-                expect(result).toBeTruthy();
-                emit = spyOn(events, 'emit');
-                return install('android', project, plugins['org.test.plugins.childbrowser']);
-            }
-        ).then(
-            function(result){
-                expect(result).toBeTruthy();
-                return install('android', project, plugins['com.adobe.vars'], plugins_install_dir, { cli_variables:{API_KEY:'batman'} });
-            }
-        ).then(
-            function(result){
-                expect(result).toBeTruthy();
-                return install('android', project, plugins['org.test.defaultvariables'], plugins_install_dir, { cli_variables:{API_KEY:'batman'} });
-            }
-        ).then(
-            function(result){
-                expect(result).toBeTruthy();
-                done = true;
-                results['emit_results'] = [];
-
-                for(var i in emit.calls) {
-                    if(emit.calls[i].args[0] === 'results')
-                        results['emit_results'].push(emit.calls[i].args[1]);
-                }
-
-                events.emit('verbose', '***** DONE START *****');
-            }
-        ).fail(
-            function(error) {
-                expect(error).toBeUndefined();
-            }
-        );
-        waitsFor(function() { return done; }, 'promise never resolved', 2000);
+        return install('android', project, plugins['org.test.plugins.dummyplugin'])
+        .then(function(result) {
+            expect(result).toBeTruthy();
+            results['actions_callCount'] = actions_push.calls.count();
+            results['actions_create'] = ca.calls.argsFor[0];
+            results['config_add'] = config_queue_add.calls.argsFor[0];
+            return result;
+        }).then(function(){
+            return install('android', project, plugins['com.cordova.engine']);
+        }).then(function(result) {
+            expect(result).toBeTruthy();
+            emit = spyOn(events, 'emit');
+            return install('android', project, plugins['org.test.plugins.childbrowser']);
+        }).then(function(result) {
+            expect(result).toBeTruthy();
+            return install('android', project, plugins['com.adobe.vars'], plugins_install_dir, { cli_variables:{API_KEY:'batman'} });
+        }).then(function(result){
+            expect(result).toBeTruthy();
+            return install('android', project, plugins['org.test.defaultvariables'], plugins_install_dir, { cli_variables:{API_KEY:'batman'} });
+        }).then(function(result){
+            expect(result).toBeTruthy();
+            results['emit_results'] = [];
+            emit.calls.all().forEach(function(val, i){
+                if(emit.calls.argsFor(i)[0] === 'results')
+                    results['emit_results'].push(emit.calls.argsFor(i)[1]);
+            });
+            events.emit('verbose', '***** DONE START *****');
+            done();
+        }).fail(function(error) {
+            expect(error).toBeUndefined();
+        });
     });
 });
 
@@ -224,43 +196,46 @@ describe('install', function() {
     });
 
     describe('success', function() {
-        it('should emit a results event with platform-agnostic <info>', function() {
+        it('Test 002 : should emit a results event with platform-agnostic <info>', function() {
             // org.test.plugins.childbrowser
             expect(results['emit_results'][0]).toBe('No matter what platform you are installing to, this notice is very important.');
         });
-        it('should emit a results event with platform-specific <info>', function() {
+        it('Test 003 : should emit a results event with platform-specific <info>', function() {
             // org.test.plugins.childbrowser
             expect(results['emit_results'][1]).toBe('Please make sure you read this because it is very important to complete the installation of your plugin.');
         });
-        it('should interpolate variables into <info> tags', function() {
+        it('Test 004 : should interpolate variables into <info> tags', function() {
             // VariableBrowser
             expect(results['emit_results'][2]).toBe('Remember that your api key is batman!');
         });
-        it('should call fetch if provided plugin cannot be resolved locally', function() {
+        it('Test 005 : should call fetch if provided plugin cannot be resolved locally', function(done) {
             fetchSpy.and.returnValue( Q( plugins['org.test.plugins.dummyplugin'] ) );
             spyOn(fs, 'existsSync').and.callFake( fake['existsSync']['noPlugins'] );
-            runs(function() {
-                installPromise(install('android', project, 'CLEANYOURSHORTS' ));
-            });
-            waitsFor(function() { return done; }, 'install promise never resolved', 200);
-            runs(function() {
-                expect(done).toBe(true);
+            install('android', project, 'CLEANYOURSHORTS')
+            .fail(function(err){
+                console.log(err);
+            })
+            .fin(function () {
                 expect(fetchSpy).toHaveBeenCalled();
+                done();
             });
         });
 
-        it('should call fetch and convert oldID to newID', function(done) {
+        it('Test 006 : should call fetch and convert oldID to newID', function(done) {
             fetchSpy.and.returnValue( Q( plugins['org.test.plugins.dummyplugin'] ) );
             spyOn(fs, 'existsSync').and.callFake( fake['existsSync']['noPlugins'] );
             var emit = spyOn(events, 'emit');
-            runs(function() {
-                installPromise(install('android', project, 'org.apache.cordova.device' ));
-            });
-            waitsFor(function() { return done; }, 'install promise never resolved', 200);
-            runs(function() {
-                expect(emit.calls[0].args[1]).toBe('Notice: org.apache.cordova.device has been automatically converted to cordova-plugin-device and fetched from npm. This is due to our old plugins registry shutting down.');
-                expect(done).toBe(true);
+            install('android', project, 'org.apache.cordova.device' )
+            .then(function(res) {
+                return true;
+            })
+            .fail(function(err){
+                console.log(err);
+            })
+            .fin(function () {
+                expect(emit.calls.argsFor(0)[1]).toBe('Notice: org.apache.cordova.device has been automatically converted to cordova-plugin-device and fetched from npm. This is due to our old plugins registry shutting down.');
                 expect(fetchSpy).toHaveBeenCalled();
+                done();
             });
         });
         describe('engine versions', function () {
@@ -271,7 +246,7 @@ describe('install', function() {
                 spyOn(PlatformJson.prototype, 'isPluginInstalled').and.returnValue(false);
             });
 
-            it('should check version if plugin has engine tag', function(done){
+            it('Test 007 : should check version if plugin has engine tag', function(done){
                 exec.and.callFake(function(cmd, cb) { cb(null, '2.5.0\n'); });
                 install('android', project, plugins['com.cordova.engine'])
                 .fail(fail)
@@ -280,7 +255,7 @@ describe('install', function() {
                     done();
                 });
             });
-            it('should check version and munge it a little if it has "rc" in it so it plays nice with semver (introduce a dash in it)', function(done) {
+            it('Test 008 : should check version and munge it a little if it has "rc" in it so it plays nice with semver (introduce a dash in it)', function(done) {
                 exec.and.callFake(function(cmd, cb) { cb(null, '3.0.0rc1\n'); });
                 install('android', project, plugins['com.cordova.engine'])
                 .fail(fail)
@@ -289,7 +264,7 @@ describe('install', function() {
                     done();
                 });
             });
-            it('should check specific platform version over cordova version if specified', function(done) {
+            it('Test 009 : should check specific platform version over cordova version if specified', function(done) {
                 exec.and.callFake(function(cmd, cb) { cb(null, '3.1.0\n'); });
                 install('android', project, plugins['com.cordova.engine-android'])
                 .fail(fail)
@@ -298,41 +273,41 @@ describe('install', function() {
                     done();
                 });
             });
-            it('should check platform sdk version if specified', function(done) {
+            it('Test 010 : should check platform sdk version if specified', function(done) {
                 var cordovaVersion = require('../package.json').version.replace(/-dev|-nightly.*$/, '');
                 exec.and.callFake(function(cmd, cb) { cb(null, '18\n'); });
                 install('android', project, plugins['com.cordova.engine-android'])
                 .fail(fail)
                 .fin(function() {
-                    expect(satisfies.calls.length).toBe(3);
+                    expect(satisfies.calls.count()).toBe(3);
                     // <engine name="cordova" VERSION=">=3.0.0"/>
-                    expect(satisfies.calls[0].args).toEqual([ cordovaVersion, '>=3.0.0', true ]);
+                    expect(satisfies.calls.argsFor(0)).toEqual([ cordovaVersion, '>=3.0.0', true ]);
                     // <engine name="cordova-android" VERSION=">=3.1.0"/>
-                    expect(satisfies.calls[1].args).toEqual([ '18.0.0', '>=3.1.0', true ]);
+                    expect(satisfies.calls.argsFor(1)).toEqual([ '18.0.0', '>=3.1.0', true ]);
                     // <engine name="android-sdk" VERSION=">=18"/>
-                    expect(satisfies.calls[2].args).toEqual([ '18.0.0','>=18', true ]);
+                    expect(satisfies.calls.argsFor(2)).toEqual([ '18.0.0','>=18', true ]);
                     done();
                 });
             });
-            it('should check engine versions', function(done) {
+            it('Test 011 : should check engine versions', function(done) {
                 install('android', project, plugins['com.cordova.engine'])
                 .fail(fail)
                 .fin(function() {
                     var plugmanVersion = require('../package.json').version.replace(/-dev|-nightly.*$/, '');
                     var cordovaVersion = require('../package.json').version.replace(/-dev|-nightly.*$/, '');
-                    expect(satisfies.calls.length).toBe(4);
+                    expect(satisfies.calls.count()).toBe(4);
                     // <engine name="cordova" version=">=2.3.0"/>
-                    expect(satisfies.calls[0].args).toEqual([ cordovaVersion, '>=2.3.0', true ]);
+                    expect(satisfies.calls.argsFor(0)).toEqual([ cordovaVersion, '>=2.3.0', true ]);
                     // <engine name="cordova-plugman" version=">=0.10.0" />
-                    expect(satisfies.calls[1].args).toEqual([ plugmanVersion, '>=0.10.0', true ]);
+                    expect(satisfies.calls.argsFor(1)).toEqual([ plugmanVersion, '>=0.10.0', true ]);
                     // <engine name="mega-fun-plugin" version=">=1.0.0" scriptSrc="megaFunVersion" platform="*" />
-                    expect(satisfies.calls[2].args).toEqual([ null, '>=1.0.0', true ]);
+                    expect(satisfies.calls.argsFor(2)).toEqual([ null, '>=1.0.0', true ]);
                     // <engine name="mega-boring-plugin" version=">=3.0.0" scriptSrc="megaBoringVersion" platform="ios|android" />
-                    expect(satisfies.calls[3].args).toEqual([ null, '>=3.0.0', true ]);
+                    expect(satisfies.calls.argsFor(3)).toEqual([ null, '>=3.0.0', true ]);
                     done();
                 });
             });
-            it('should not check custom engine version that is not supported for platform', function(done) {
+            it('Test 012 : should not check custom engine version that is not supported for platform', function(done) {
                 install('blackberry10', project, plugins['com.cordova.engine'])
                 .then(fail)
                 .fail(function () {
@@ -342,13 +317,12 @@ describe('install', function() {
             });
         });
 
-        it('should not check custom engine version that is not supported for platform', function() {
+        it('Test 014 : should not check custom engine version that is not supported for platform', function(done) {
             var spy = spyOn(semver, 'satisfies').and.returnValue(true);
-            install('blackberry10', project, plugins['com.cordova.engine']).then(function(done) {
+            install('blackberry10', project, plugins['com.cordova.engine']).then(function() {
                 expect(false).toBe(true);
                 done();
-            },
-            function err(errMsg) {
+            }).fail(function err () {
                 expect(spy).not.toHaveBeenCalledWith('','>=3.0.0');
                 done();
             }, 6000);
@@ -365,50 +339,42 @@ describe('install', function() {
                 });
             });
 
-            it('should install any dependent plugins if missing', function() {
-                runs(function() {
-                    installPromise( install('android', project, plugins['A']) );
-                });
-                waitsFor(function() { return done; }, 'install promise never resolved', 200);
-                runs(function() {
-                    // Look for 'Installing plugin ...' in events
+            it('Test 015 : should install any dependent plugins if missing', function(done) {
+                emit.calls.reset();
+                return install('android', project, plugins['A'])
+                .then(function() {
                     var install = common.spy.getInstall(emit);
-
                     expect(install).toEqual([
-                        'Install start for "C" on android.',
-                        'Install start for "D" on android.',
-                        'Install start for "A" on android.'
+                    'Install start for "C" on android.',
+                    'Install start for "D" on android.',
+                    'Install start for "A" on android.'
                     ]);
+                    done();
                 });
+                
             });
 
-            it('should install any dependent plugins from registry when url is not defined', function() {
-                // Plugin A depends on C & D
-                runs(function() {
-                    installPromise( install('android', project, plugins['A']) );
-                });
-                waitsFor(function() { return done; }, 'promise never resolved', 200);
-                runs(function() {
-                    // TODO: this is same test as above? Need test other dependency with url=?
+            it('Test 016 : should install any dependent plugins from registry when url is not defined', function(done) {
+                emit.calls.reset();
+                return install('android', project, plugins['A'])
+                .then(function() {
                     var install = common.spy.getInstall(emit);
-
                     expect(install).toEqual([
-                        'Install start for "C" on android.',
-                        'Install start for "D" on android.',
-                        'Install start for "A" on android.'
+                    'Install start for "C" on android.',
+                    'Install start for "D" on android.',
+                    'Install start for "A" on android.'
                     ]);
+                    done();
                 });
+                
             });
 
-            it('should process all dependent plugins with alternate routes to the same plugin', function() {
+            it('Test 017 : should process all dependent plugins with alternate routes to the same plugin', function(done) {
                 // Plugin F depends on A, C, D and E
-                runs(function () {
-                    installPromise(install('android', project, plugins['F']));
-                });
-                waitsFor(function () { return done; }, 'install promise never resolved', 200);
-                runs(function () {
+                emit.calls.reset();
+                return install('android', project, plugins['F'])
+                .then(function() {
                     var install = common.spy.getInstall(emit);
-
                     expect(install).toEqual([
                         'Install start for "C" on android.',
                         'Install start for "D" on android.',
@@ -416,38 +382,33 @@ describe('install', function() {
                         'Install start for "D" on android.',
                         'Install start for "F" on android.'
                     ]);
+                    done();
                 });
             });
 
-            it('should throw if there is a cyclic dependency', function() {
-                runs(function () {
-                    installPromise( install('android', project, plugins['G']) );
-                });
-                waitsFor(function () { return done; }, 'install promise never resolved', 200);
-                runs(function () {
+            it('Test 018 : should throw if there is a cyclic dependency', function(done) {
+                return install('android', project, plugins['G'])
+                .then(function() {
                     common.spy.getInstall(emit);
-
-                    expect(done.message).toEqual('Cyclic dependency from G to H');
-                });
+                }).fail(function err (errMsg) {
+                    expect(errMsg.toString()).toContain('Cyclic dependency from G to H');
+                }).fin(done);
             });
 
-            it('install subdir relative to top level plugin if no fetch meta', function() {
-                runs(function () {
-                    installPromise(install('android', project, plugins['B']));
-                });
-                waitsFor(function () { return done; }, 'install promise never resolved', 200);
-                runs(function () {
+            it('Test 019 : install subdir relative to top level plugin if no fetch meta', function(done) {
+                return install('android', project, plugins['B'])
+                .then(function() {
                     var install = common.spy.getInstall(emit);
-
                     expect(install).toEqual([
                         'Install start for "D" on android.',
                         'Install start for "E" on android.',
                         'Install start for "B" on android.'
                     ]);
+                    done();
                 });
             });
 
-            it('install uses meta data (if available) of top level plugin source', function() {
+            it('Test 020 : install uses meta data (if available) of top level plugin source', function(done) {
                 // Fake metadata so plugin 'B' appears from 'meta/B'
                 var meta = require('../src/plugman/util/metadata');
                 spyOn(meta, 'get_fetch_metadata').and.callFake(function(){
@@ -456,13 +417,9 @@ describe('install', function() {
                     };
                 });
 
-                runs(function () {
-                    installPromise(install('android', project, plugins['B']));
-                });
-                waitsFor(function () { return done; }, 'install promise never resolved', 200);
-                runs(function () {
+                return install('android', project, plugins['B'])
+                .then(function() {
                     var install = common.spy.getInstall(emit);
-
                     expect(install).toEqual([
                         'Install start for "D" on android.',
                         'Install start for "E" on android.',
@@ -473,23 +430,24 @@ describe('install', function() {
                     expect(copy.length).toBe(3);
                     expect(copy[0].indexOf(path.normalize('meta/D')) > 0).toBe(true);
                     expect(copy[1].indexOf(path.normalize('meta/subdir/E')) > 0).toBe(true);
+                    done();
                 });
             });
         });
     });
 
     describe('failure', function() {
-        it('should throw if platform is unrecognized', function(done) {
-            install('atari', project, 'SomePlugin').then(function() {
+        it('Test 021 : should throw if platform is unrecognized', function(done) {
+            install('atari', project, 'SomePlugin')
+            .then(function() {
                 expect(false).toBe(true);
                 done();
-            },
-            function err(errMsg) {
+            }).fail(function err (errMsg) {
                 expect(errMsg.toString()).toContain('atari not supported.');
                 done();
             }, 6000);
         });
-        it('should throw if variables are missing', function(done) {
+        it('Test 022 : should throw if variables are missing', function(done) {
             var success = jasmine.createSpy('success');
             spyOn(PlatformJson.prototype, 'isPluginInstalled').and.returnValue(false);
             install('android', project, plugins['com.adobe.vars'])
@@ -502,34 +460,37 @@ describe('install', function() {
                 done();
             });
         });
-        it('should throw if git is not found on the path and a remote url is requested', function(done) {
+
+        it('Test 023 : should throw if git is not found on the path and a remote url is requested', function(done) {
             spyOn(fs, 'existsSync').and.callFake( fake['existsSync']['noPlugins'] );
             fetchSpy.and.callThrough();
             spyOn(shell, 'which').and.returnValue(null);
-            install('android', project, 'https://git-wip-us.apache.org/repos/asf/cordova-plugin-camera.git').then(function(result) {
+            install('android', project, 'https://git-wip-us.apache.org/repos/asf/cordova-plugin-camera.git')
+            .then(function(result) {
                 expect(false).toBe(true);
                 done();
-            },
-            function err(errMsg) {
+            }).fail(function err(errMsg) {
                 expect(errMsg.toString()).toContain('"git" command line tool is not installed: make sure it is accessible on your PATH.');
                 done();
             });
         }, 6000);
 
-        it('should not fail when trying to install plugin less than minimum version. Skip instead  ', function(){
+        it('Test 024 :should not fail when trying to install plugin less than minimum version. Skip instead  ', function(done){
             spyOn(semver, 'satisfies').and.returnValue(false);
             exec.and.callFake(function(cmd, cb) {
                 cb(null, '0.0.1\n');
             });
-            install('android', project, plugins['com.cordova.engine']).then(function(result) {
-                expect(false).toBe(true);
-            },
-            function err(errMsg) {
-                expect(errMsg.toString()).toMatch(true);
+            install('android', project, plugins['com.cordova.engine'])
+            .then(function(result) {
+                expect(result).toBe(true);
+                done();
+            })
+            .fail(function (error) {
+                expect(error).toBeUndefined();
             });
         }, 6000);
 
-        it('should throw if the engine scriptSrc escapes out of the plugin dir.', function(done) {
+        it('Test 025 : should throw if the engine scriptSrc escapes out of the plugin dir.', function(done) {
             var success = jasmine.createSpy('success'),
                 fail = jasmine.createSpy('fail').and.callFake(function(err) {
                     // <engine name="path-escaping-plugin" version=">=1.0.0" scriptSrc="../../../malicious/script" platform="*" />
@@ -547,7 +508,7 @@ describe('install', function() {
                     done();
                 });
         });
-        it('should throw if a non-default cordova engine platform attribute is not defined.', function(done) {
+        it('Test 026 : should throw if a non-default cordova engine platform attribute is not defined.', function(done) {
             var success = jasmine.createSpy('success'),
                 fail = jasmine.createSpy('fail');
             spyOn(PlatformJson.prototype, 'isPluginInstalled').and.returnValue(false);
@@ -560,7 +521,7 @@ describe('install', function() {
                     done();
                 });
         });
-        it('should throw if a non-default cordova engine scriptSrc attribute is not defined.', function(done) {
+        it('Test 027 : should throw if a non-default cordova engine scriptSrc attribute is not defined.', function(done) {
             var success = jasmine.createSpy('success'),
                 fail = jasmine.createSpy('fail');
             spyOn(PlatformJson.prototype, 'isPluginInstalled').and.returnValue(false);
@@ -578,17 +539,7 @@ describe('install', function() {
 
 describe('end', function() {
 
-    it('end', function() {
-        done = false;
-
-        promise.fin(function(err){
-            if(err)
-                events.emit('error', err);
-
-            shell.rm('-rf', temp_dir);
-            done = true;
-        });
-
-        waitsFor(function() { return done; }, 'promise never resolved', 500);
+    it('Test 028 : end', function() {
+        shell.rm('-rf', temp_dir);
     });
 });

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-plugman/owner.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/owner.spec.js b/cordova-lib/spec-plugman/owner.spec.js
index 045510b..868c364 100644
--- a/cordova-lib/spec-plugman/owner.spec.js
+++ b/cordova-lib/spec-plugman/owner.spec.js
@@ -21,7 +21,7 @@ var owner = require('../src/plugman/owner'),
     registry = require('../src/plugman/registry/registry');
 
 describe('owner', function() {
-    it('should run owner', function() {
+    it('Test 001 : should run owner', function() {
         var sOwner = spyOn(registry, 'owner').and.returnValue(Q());
         var params = ['add', 'anis', 'org.test.plugins.dummyplugin'];
         owner(params);


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


[16/50] [abbrv] cordova-lib git commit: CB-12189 Add implementation attribute to framework

Posted by st...@apache.org.
CB-12189 Add implementation attribute to framework

The attribute is windows-specific and allows to specify implementation for WinMD components, written in C++

This closes #513


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

Branch: refs/heads/fetch-1.0.x
Commit: df2da4cbf515dfc8e8131170972165b7d9883380
Parents: 84fa8e3
Author: Vladimir Kotikov <ko...@gmail.com>
Authored: Wed Dec 21 15:00:57 2016 +0300
Committer: Vladimir Kotikov <ko...@gmail.com>
Committed: Fri Dec 23 15:02:51 2016 +0300

----------------------------------------------------------------------
 cordova-common/src/PluginInfo/PluginInfo.js | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/df2da4cb/cordova-common/src/PluginInfo/PluginInfo.js
----------------------------------------------------------------------
diff --git a/cordova-common/src/PluginInfo/PluginInfo.js b/cordova-common/src/PluginInfo/PluginInfo.js
index 0be0c41..60ce848 100644
--- a/cordova-common/src/PluginInfo/PluginInfo.js
+++ b/cordova-common/src/PluginInfo/PluginInfo.js
@@ -323,7 +323,8 @@ function PluginInfo(dirname) {
                 versions: el.attrib.versions,
                 targetDir: el.attrib['target-dir'],
                 deviceTarget: el.attrib['device-target'] || el.attrib.target,
-                arch: el.attrib.arch
+                arch: el.attrib.arch,
+                implementation: el.attrib.implementation
             };
             return ret;
         });


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


[34/50] [abbrv] cordova-lib git commit: CB-8978 Add resource-file parsing to config.xml

Posted by st...@apache.org.
CB-8978 Add resource-file parsing to config.xml

 This closes #468


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

Branch: refs/heads/fetch-1.0.x
Commit: 2bf351704f6a1145fa0372348a124137a9f2a287
Parents: e4b920f
Author: Darryl Pogue <da...@ayogo.com>
Authored: Wed Jul 27 16:28:08 2016 -0700
Committer: Steve Gill <st...@gmail.com>
Committed: Tue Jan 17 09:59:37 2017 -0800

----------------------------------------------------------------------
 .../spec/ConfigParser/ConfigParser.spec.js      | 16 +++++++++++++
 cordova-common/spec/fixtures/test-config.xml    |  3 +++
 cordova-common/src/ConfigParser/ConfigParser.js | 24 ++++++++++++++++++++
 3 files changed, 43 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/2bf35170/cordova-common/spec/ConfigParser/ConfigParser.spec.js
----------------------------------------------------------------------
diff --git a/cordova-common/spec/ConfigParser/ConfigParser.spec.js b/cordova-common/spec/ConfigParser/ConfigParser.spec.js
index 240db17..f3e334d 100644
--- a/cordova-common/spec/ConfigParser/ConfigParser.spec.js
+++ b/cordova-common/spec/ConfigParser/ConfigParser.spec.js
@@ -281,5 +281,21 @@ describe('config.xml parser', function () {
                 expect(cfg.getStaticResources('android', 'icon').getByDensity('mdpi').src).toBe('logo-android.png');
             });
         });
+
+        describe('file resources', function() {
+            var hasSrcPropertyDefined = function (e) { return !!e.src; };
+            var hasTargetPropertyDefined = function (e) { return !!e.target; };
+            var hasArchPropertyDefined = function (e) { return !!e.arch; };
+
+            it('should fetch platform-specific resources', function() {
+                expect(cfg.getFileResources('android').length).toBe(2);
+            });
+
+            it('should parse resources\' attributes', function() {
+                expect(cfg.getFileResources('android').every(hasSrcPropertyDefined)).toBeTruthy();
+                expect(cfg.getFileResources('android').every(hasTargetPropertyDefined)).toBeTruthy();
+                expect(cfg.getFileResources('windows').every(hasArchPropertyDefined)).toBeTruthy();
+            });
+        });
     });
 });

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/2bf35170/cordova-common/spec/fixtures/test-config.xml
----------------------------------------------------------------------
diff --git a/cordova-common/spec/fixtures/test-config.xml b/cordova-common/spec/fixtures/test-config.xml
index a656143..b64e785 100644
--- a/cordova-common/spec/fixtures/test-config.xml
+++ b/cordova-common/spec/fixtures/test-config.xml
@@ -86,6 +86,8 @@
         <icon density="mdpi" height="255" src="logo-android.png" width="255" />
         <icon gap:density="mdpi" height="255" src="logo-android-gap.png" width="255" />
         <icon cdv:density="mdpi" height="255" src="logo-android-cdv.png" width="255" />
+        <resource-file src="appconfig.json" target="appconfig.json" />
+        <resource-file src="androidconfig.json" target="androidconfig.json" />
         <preference name="android-minSdkVersion" value="10" />
         <preference name="orientation" value="landscape" />
     </platform>
@@ -93,6 +95,7 @@
         <icon src="res/windows/logo.scale-200.png" target="logo.png"/>
         <icon src="res/windows/logo-small.scale-400.png" width="72" target="logo.png"/>
         <icon src="res/windows/logo-small.scale-400_48.png" height="48" target="logo.png"/>
+        <resource-file src="windowsconfig.json" target="windowsconfig.json" arch="x86" device-target="all" />
     </platform>
     <plugin name="org.apache.cordova.pluginwithvars">
         <variable name="var" value="varvalue" />

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/2bf35170/cordova-common/src/ConfigParser/ConfigParser.js
----------------------------------------------------------------------
diff --git a/cordova-common/src/ConfigParser/ConfigParser.js b/cordova-common/src/ConfigParser/ConfigParser.js
index 6e74ce3..e477a89 100644
--- a/cordova-common/src/ConfigParser/ConfigParser.js
+++ b/cordova-common/src/ConfigParser/ConfigParser.js
@@ -257,6 +257,30 @@ ConfigParser.prototype = {
     },
 
     /**
+     * Returns all resource-files for a specific platform.
+     * @param  {string} platform Platform name
+     * @return {Resource[]}      Array of resource file objects.
+     */
+    getFileResources: function(platform) {
+        var fileResources = [];
+
+        if (platform) { // platform specific resources
+            fileResources = this.doc.findall('platform[@name=\'' + platform + '\']/resource-file').map(function(tag) {
+                return {
+                    platform: platform,
+                    src: tag.attrib.src,
+                    target: tag.attrib.target,
+                    versions: tag.attrib.versions,
+                    deviceTarget: tag.attrib['device-target'],
+                    arch: tag.attrib.arch
+                };
+            });
+        }
+
+        return fileResources;
+    },
+
+    /**
      * Returns all hook scripts for the hook type specified.
      * @param  {String} hook     The hook type.
      * @param {Array}  platforms Platforms to look for scripts into (root scripts will be included as well).


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


[48/50] [abbrv] cordova-lib git commit: CB-12358 Incremented package version to -dev

Posted by st...@apache.org.
CB-12358 Incremented package version to -dev


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

Branch: refs/heads/master
Commit: 97da49a882c00759b87ff4bd309366de7f8d81aa
Parents: 1f415b2
Author: Steve Gill <st...@gmail.com>
Authored: Tue Jan 17 17:55:27 2017 -0800
Committer: Steve Gill <st...@gmail.com>
Committed: Tue Jan 17 17:55:27 2017 -0800

----------------------------------------------------------------------
 cordova-fetch/package.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/97da49a8/cordova-fetch/package.json
----------------------------------------------------------------------
diff --git a/cordova-fetch/package.json b/cordova-fetch/package.json
index d6dd75e..11176bd 100644
--- a/cordova-fetch/package.json
+++ b/cordova-fetch/package.json
@@ -1,6 +1,6 @@
 {
   "name": "cordova-fetch",
-  "version": "1.0.2",
+  "version": "1.0.3-dev",
   "description": "Apache Cordova fetch module. Fetches from git and npm.",
   "main": "index.js",
   "repository": {


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


[41/50] [abbrv] cordova-lib git commit: CB-12358 Updated version and RELEASENOTES.md for release 1.0.1

Posted by st...@apache.org.
CB-12358 Updated version and RELEASENOTES.md for release 1.0.1


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

Branch: refs/heads/fetch-1.0.x
Commit: 209768e0686dbdbf7deb63b406b05ebd832f5baa
Parents: 0fa31b9
Author: Steve Gill <st...@gmail.com>
Authored: Tue Jan 17 15:33:56 2017 -0800
Committer: Steve Gill <st...@gmail.com>
Committed: Tue Jan 17 15:33:56 2017 -0800

----------------------------------------------------------------------
 cordova-serve/RELEASENOTES.md | 9 +++++++--
 cordova-serve/package.json    | 2 +-
 2 files changed, 8 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/209768e0/cordova-serve/RELEASENOTES.md
----------------------------------------------------------------------
diff --git a/cordova-serve/RELEASENOTES.md b/cordova-serve/RELEASENOTES.md
index 18ddd81..cbcd572 100644
--- a/cordova-serve/RELEASENOTES.md
+++ b/cordova-serve/RELEASENOTES.md
@@ -20,13 +20,18 @@
 -->
 # Cordova-serve Release Notes
 
+### 1.0.1 (Jan 17, 2017)
+* [CB-12284](https://issues.apache.org/jira/browse/CB-12284) Include project root as additional root for static router
+* Some corrections and enhancements for cordova-serve readme.
+* On Windows, verify browsers installed before launching.
+
 ### 1.0.0 (Oct 05, 2015)
 * Refactor cordova-serve to use Express.
 
 ### 0.1.3 (Aug 22, 2015)
 * Clean up cordova-serve console output.
-* CB-9546 cordova-serve.servePlatform() should provide project folders
-* CB-9545 Cordova-serve's 'noCache' option does not work in IE.
+* [CB-9546](https://issues.apache.org/jira/browse/CB-9546) cordova-serve.servePlatform() should provide project folders
+* [CB-9545](https://issues.apache.org/jira/browse/CB-9545) Cordova-serve's 'noCache' option does not work in IE.
 * Add support for --target=edge to launch app in Edge browser.
 
 ### 0.1.2 (June 15, 2015)

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/209768e0/cordova-serve/package.json
----------------------------------------------------------------------
diff --git a/cordova-serve/package.json b/cordova-serve/package.json
index 7c9f2ce..fe9ff0b 100644
--- a/cordova-serve/package.json
+++ b/cordova-serve/package.json
@@ -1,6 +1,6 @@
 {
   "name": "cordova-serve",
-  "version": "1.0.1-dev",
+  "version": "1.0.1",
   "description": "Apache Cordova server support for cordova-lib and cordova-browser.",
   "main": "serve.js",
   "repository": {


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


[17/50] [abbrv] cordova-lib git commit: CB-12261: fix subdirectories deprecated warning always shows and stop fetch caused by CB-11979

Posted by st...@apache.org.
CB-12261: fix subdirectories deprecated warning always shows and stop fetch caused by CB-11979

 This closes #511


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

Branch: refs/heads/fetch-1.0.x
Commit: 4191fa9b25b06140c58037ab9b504d6c9b9b064d
Parents: df2da4c
Author: Wilson Yang <wi...@paloaltonetworks.com>
Authored: Fri Dec 16 15:18:52 2016 -0800
Committer: Steve Gill <st...@gmail.com>
Committed: Thu Jan 5 15:01:47 2017 -0800

----------------------------------------------------------------------
 cordova-lib/src/plugman/fetch.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/4191fa9b/cordova-lib/src/plugman/fetch.js
----------------------------------------------------------------------
diff --git a/cordova-lib/src/plugman/fetch.js b/cordova-lib/src/plugman/fetch.js
index 036558e..6e80c68 100644
--- a/cordova-lib/src/plugman/fetch.js
+++ b/cordova-lib/src/plugman/fetch.js
@@ -69,7 +69,7 @@ function fetchPlugin(plugin_src, plugins_dir, options) {
                 options.subdir = result[2];
             //if --fetch was used, throw error for subdirectories
 
-            if(options.subdir) {
+            if (options.subdir && options.subdir !== '.') {
                 events.emit('warn', 'support for subdirectories is deprecated and will be removed in Cordova@7');
                 if (options.fetch) {
                     return Q.reject(new CordovaError('--fetch does not support subdirectories'));


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


[24/50] [abbrv] cordova-lib git commit: CB-12018: updated custom jasmine matcher toExist

Posted by st...@apache.org.
CB-12018: updated custom jasmine matcher toExist


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

Branch: refs/heads/fetch-1.0.x
Commit: 1fa012f32c73e75b6de12a2d391326433005287a
Parents: 0e0d7a5
Author: Steve Gill <st...@gmail.com>
Authored: Thu Dec 15 22:52:29 2016 -0800
Committer: audreyso <au...@adobe.com>
Committed: Tue Jan 10 11:14:05 2017 -0800

----------------------------------------------------------------------
 cordova-lib/spec-cordova/HooksRunner.spec.js |  2 +-
 cordova-lib/spec-cordova/helpers.js          | 21 ++++--
 cordova-lib/spec-plugman/install.spec.js     | 69 ++++++++++---------
 cordova-lib/spec-plugman/uninstall.spec.js   | 81 ++++++++++++-----------
 4 files changed, 94 insertions(+), 79 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/1fa012f3/cordova-lib/spec-cordova/HooksRunner.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/HooksRunner.spec.js b/cordova-lib/spec-cordova/HooksRunner.spec.js
index 367c436..697787d 100644
--- a/cordova-lib/spec-cordova/HooksRunner.spec.js
+++ b/cordova-lib/spec-cordova/HooksRunner.spec.js
@@ -444,7 +444,7 @@ describe('HooksRunner', function() {
                         // Delete unique ids to allow comparing PluginInfo
                         delete androidPluginOpts.plugin.pluginInfo._et;
 
-                        fire.calls.forEach(function(call) {
+                        fire.calls.all().forEach(function(call) {
                             if(call.args[1] && call.args[1].plugin) {
                                 // Delete unique ids to allow comparing PluginInfo
                                 delete call.args[1].plugin.pluginInfo._et;

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/1fa012f3/cordova-lib/spec-cordova/helpers.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/helpers.js b/cordova-lib/spec-cordova/helpers.js
index 257f4bd..e77078a 100644
--- a/cordova-lib/spec-cordova/helpers.js
+++ b/cordova-lib/spec-cordova/helpers.js
@@ -150,14 +150,21 @@ module.exports.writeConfigContent = function (appPath, configContent) {
 beforeEach(function () {
     jasmine.addMatchers({
         'toExist': function () {
-            var notText = this.isNot ? ' not' : '';
-            var self = this;
+            return {
+                compare: function(actual, expected) {
+                    var result = {};
 
-            this.message = function () {
-                return 'Expected file ' + self.actual + notText + ' to exist.';
-            };
+                    result.pass = fs.existsSync(actual);
 
-            return fs.existsSync(this.actual);
+                    if(result.pass) {
+                        result.message = "expected " + actual + " to not exist";
+                    } else {
+                        result.message = "expected " + actual + " to exist";
+                    }
+
+                    return result;
+                }
+            }
         }
     });
-});
\ No newline at end of file
+});

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/1fa012f3/cordova-lib/spec-plugman/install.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/install.spec.js b/cordova-lib/spec-plugman/install.spec.js
index 49c09cc..d3af713 100644
--- a/cordova-lib/spec-plugman/install.spec.js
+++ b/cordova-lib/spec-plugman/install.spec.js
@@ -239,7 +239,6 @@ describe('install', function() {
         it('should call fetch if provided plugin cannot be resolved locally', function() {
             fetchSpy.and.returnValue( Q( plugins['org.test.plugins.dummyplugin'] ) );
             spyOn(fs, 'existsSync').and.callFake( fake['existsSync']['noPlugins'] );
-
             runs(function() {
                 installPromise(install('android', project, 'CLEANYOURSHORTS' ));
             });
@@ -249,7 +248,8 @@ describe('install', function() {
                 expect(fetchSpy).toHaveBeenCalled();
             });
         });
-        it('should call fetch and convert oldID to newID', function() {
+
+        it('should call fetch and convert oldID to newID', function(done) {
             fetchSpy.and.returnValue( Q( plugins['org.test.plugins.dummyplugin'] ) );
             spyOn(fs, 'existsSync').and.callFake( fake['existsSync']['noPlugins'] );
             var emit = spyOn(events, 'emit');
@@ -263,7 +263,6 @@ describe('install', function() {
                 expect(fetchSpy).toHaveBeenCalled();
             });
         });
-
         describe('engine versions', function () {
             var fail, satisfies;
             beforeEach(function () {
@@ -345,13 +344,14 @@ describe('install', function() {
 
         it('should not check custom engine version that is not supported for platform', function() {
             var spy = spyOn(semver, 'satisfies').and.returnValue(true);
-            runs(function() {
-                installPromise( install('blackberry10', project, plugins['com.cordova.engine']) );
-            });
-            waitsFor(function() { return done; }, 'install promise never resolved', 200);
-            runs(function() {
+            install('blackberry10', project, plugins['com.cordova.engine']).then(function(done) {
+                expect(false).toBe(true);
+                done();
+            },
+            function err(errMsg) {
                 expect(spy).not.toHaveBeenCalledWith('','>=3.0.0');
-            });
+                done();
+            }, 6000);
         });
 
         describe('with dependencies', function() {
@@ -479,14 +479,15 @@ describe('install', function() {
     });
 
     describe('failure', function() {
-        it('should throw if platform is unrecognized', function() {
-            runs(function() {
-                installPromise( install('atari', project, 'SomePlugin') );
-            });
-            waitsFor(function() { return done; }, 'install promise never resolved', 200);
-            runs(function() {
-                expect(''+done).toContain('atari not supported.');
-            });
+        it('should throw if platform is unrecognized', function(done) {
+            install('atari', project, 'SomePlugin').then(function() {
+                expect(false).toBe(true);
+                done();
+            },
+            function err(errMsg) {
+                expect(errMsg.toString()).toContain('atari not supported.');
+                done();
+            }, 6000);
         });
         it('should throw if variables are missing', function(done) {
             var success = jasmine.createSpy('success');
@@ -494,38 +495,40 @@ describe('install', function() {
             install('android', project, plugins['com.adobe.vars'])
             .then(success)
             .fail(function (err) {
-                expect(err).toContain('Variable(s) missing: API_KEY');
+                expect(err.toString()).toContain('Variable(s) missing: API_KEY');
             })
             .fin(function () {
                 expect(success).not.toHaveBeenCalled();
                 done();
             });
         });
-        it('should throw if git is not found on the path and a remote url is requested', function() {
+        it('should throw if git is not found on the path and a remote url is requested', function(done) {
             spyOn(fs, 'existsSync').and.callFake( fake['existsSync']['noPlugins'] );
             fetchSpy.and.callThrough();
             spyOn(shell, 'which').and.returnValue(null);
-            runs(function() {
-                installPromise( install('android', project, 'https://git-wip-us.apache.org/repos/asf/cordova-plugin-camera.git') );
-            });
-            waitsFor(function(){ return done; }, 'install promise never resolved', 200);
-            runs(function() {
-                expect(''+done).toContain('"git" command line tool is not installed: make sure it is accessible on your PATH.');
+            install('android', project, 'https://git-wip-us.apache.org/repos/asf/cordova-plugin-camera.git').then(function(result) {
+                expect(false).toBe(true);
+                done();
+            },
+            function err(errMsg) {
+                expect(errMsg.toString()).toContain('"git" command line tool is not installed: make sure it is accessible on your PATH.');
+                done();
             });
-        });
+        }, 6000);
+
         it('should not fail when trying to install plugin less than minimum version. Skip instead  ', function(){
             spyOn(semver, 'satisfies').and.returnValue(false);
             exec.and.callFake(function(cmd, cb) {
                 cb(null, '0.0.1\n');
             });
-            runs(function() {
-                installPromise( install('android', project, plugins['com.cordova.engine']) );
+            install('android', project, plugins['com.cordova.engine']).then(function(result) {
+                expect(false).toBe(true);
+            },
+            function err(errMsg) {
+                expect(errMsg.toString()).toMatch(true);
             });
-            waitsFor(function(){ return done; }, 'install promise never resolved', 200);
-            runs(function() {
-                expect(''+done).toMatch(true);
-            });
-        });
+        }, 6000);
+
         it('should throw if the engine scriptSrc escapes out of the plugin dir.', function(done) {
             var success = jasmine.createSpy('success'),
                 fail = jasmine.createSpy('fail').and.callFake(function(err) {

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/1fa012f3/cordova-lib/spec-plugman/uninstall.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/uninstall.spec.js b/cordova-lib/spec-plugman/uninstall.spec.js
index fe1e96c..95e0b2b 100644
--- a/cordova-lib/spec-plugman/uninstall.spec.js
+++ b/cordova-lib/spec-plugman/uninstall.spec.js
@@ -177,12 +177,12 @@ describe('uninstallPlatform', function() {
             .fin(done);
         });
 
-        describe('with dependencies', function() {
+    describe('with dependencies', function() {
             var emit;
             beforeEach(function() {
                 emit = spyOn(events, 'emit');
             });
-            it('should uninstall "dangling" dependencies', function() {
+            it('should uninstall "dangling" dependencies', function(done) {
                 runs(function() {
                     uninstallPromise(uninstall.uninstallPlatform('android', project, 'A'));
                 });
@@ -195,24 +195,27 @@ describe('uninstallPlatform', function() {
     });
 
     describe('failure', function() {
-        it('should throw if platform is unrecognized', function() {
-            runs(function() {
-                uninstallPromise( uninstall.uninstallPlatform('atari', project, 'SomePlugin') );
-            });
-            waitsFor(function() { return done; }, 'promise never resolved', 200);
-            runs(function() {
-                expect(''+done).toContain('atari not supported.');
-            });
-        });
-        it('should throw if plugin is missing', function() {
-            runs(function() {
-                uninstallPromise( uninstall.uninstallPlatform('android', project, 'SomePluginThatDoesntExist') );
+        it('should throw if platform is unrecognized', function(done) {
+            uninstall.uninstallPlatform('atari', project, 'SomePlugin').then(function(result){
+                expect(false).toBe(true);
+                done();
+            },
+            function err(errMsg) {
+                expect(errMsg.toString()).toContain('atari not supported.');
+                done();
             });
-            waitsFor(function() { return done; }, 'promise never resolved', 200);
-            runs(function() {
-                expect(''+done).toContain('Plugin "SomePluginThatDoesntExist" not found. Already uninstalled?');
+        }, 6000);
+
+        it('should throw if plugin is missing', function(done) {
+            uninstall.uninstallPlatform('android', project, 'SomePluginThatDoesntExist').then(function(result){
+                expect(false).toBe(true);
+                done();
+            },
+            function err(errMsg) {
+                expect(errMsg.toString()).toContain('Plugin "SomePluginThatDoesntExist" not found. Already uninstalled?');
+                done();
             });
-        });
+        }, 6000);
     });
 });
 
@@ -244,7 +247,7 @@ describe('uninstallPlugin', function() {
             });
         });
 
-        it('should fail if plugin is a required dependency', function() {
+        it('should fail if plugin is a required dependency', function(done) {
             runs(function() {
                 uninstallPromise( uninstall.uninstallPlugin('C', plugins_install_dir) );
             });
@@ -281,7 +284,7 @@ describe('uninstallPlugin', function() {
             });
         });
 
-        it('should not remove dependent plugin if it was installed after as top-level', function() {
+        it('should not remove dependent plugin if it was installed after as top-level', function(done) {
             runs(function() {
                 uninstallPromise( uninstall.uninstallPlugin('A', plugins_install_dir3) );
             });
@@ -308,31 +311,34 @@ describe('uninstall', function() {
     });
 
     describe('failure', function() {
-        it('should throw if platform is unrecognized', function() {
-            runs(function() {
-                uninstallPromise(uninstall('atari', project, 'SomePlugin'));
+        it('should throw if platform is unrecognized', function(done) {
+            uninstall('atari', project, 'SomePlugin').then(function(result){
+                expect(false).toBe(true);
+                done();
+            },
+            function err(errMsg) {
+                expect(clone).toHaveBeenCalledWith(url, temp, dir, ref, undefined);
+                expect(save_metadata).toHaveBeenCalled();
+                done();
             });
-            waitsFor(function() { return done; }, 'promise never resolved', 200);
-            runs(function() {
-                expect(''+done).toContain('atari not supported.');
-            });
-        });
-        it('should throw if plugin is missing', function() {
-            runs(function() {
-                uninstallPromise(uninstall('android', project, 'SomePluginThatDoesntExist'));
+        }, 6000);
+
+        it('should throw if plugin is missing', function(done) {
+            uninstall('android', project, 'SomePluginThatDoesntExist').then(function(result){
+                expect(false).toBe(true);
+                done();
+            },
+            function err(errMsg) {
+                expect(errMsg.toString()).toContain('Plugin "SomePluginThatDoesntExist" not found. Already uninstalled?');
+                done();
             });
-            waitsFor(function() { return done; }, 'promise never resolved', 200);
-            runs(function() {
-                expect(''+done).toContain('Plugin "SomePluginThatDoesntExist" not found. Already uninstalled?');
-            });
-        });
+        }, 6000);
     });
 });
 
 describe('end', function() {
     it('end', function() {
         done = false;
-
         promise.then(function(){
             return uninstall('android', project, plugins['org.test.plugins.dummyplugin']);
         }).then(function(){
@@ -350,7 +356,6 @@ describe('end', function() {
             shell.rm('-rf', project, project2, project3);
             done = true;
         });
-
         waitsFor(function() { return done; }, 'promise never resolved', 500);
     });
 });


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


[13/50] [abbrv] cordova-lib git commit: CB-12197 : replaced multiple occurances of Anis and Brett with current Apache License

Posted by st...@apache.org.
CB-12197 : replaced multiple occurances of Anis and Brett with current Apache License

 This closes #507


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

Branch: refs/heads/fetch-1.0.x
Commit: 6dc192de102b4df4a2f17e0586afc7865cfb548d
Parents: 9af68fe
Author: audreyso <au...@adobe.com>
Authored: Fri Dec 2 14:58:26 2016 -0800
Committer: Steve Gill <st...@gmail.com>
Committed: Mon Dec 12 13:47:20 2016 -0800

----------------------------------------------------------------------
 .../fixtures/plugins/ChildBrowser/plugin.xml    | 32 ++++++++---------
 .../ChildBrowser/src/android/ChildBrowser.java  | 34 +++++++++---------
 .../plugins/ChildBrowser/www/childbrowser.js    | 35 +++++++++----------
 .../fixtures/plugins/com.adobe.vars/plugin.xml  | 32 ++++++++---------
 .../plugins/org.apache.plist/plugin.xml         | 32 ++++++++---------
 .../plugins/org.test.configtest/plugin.xml      | 32 ++++++++---------
 .../plugins/org.test.editconfigtest/plugin.xml  | 32 ++++++++---------
 .../org.test.editconfigtest_two/plugin.xml      | 32 ++++++++---------
 .../org.test.multiple-children/plugin.xml       | 28 +++++++--------
 .../org.test.plugins.childbrowser/plugin.xml    | 32 ++++++++---------
 .../org.test.plugins.dummyplugin/plugin.xml     | 32 ++++++++---------
 .../plugins/org.test.shareddeps/plugin.xml      | 32 ++++++++---------
 .../projects/android/AndroidManifest.xml        | 28 +++++++--------
 .../projects/android_two/AndroidManifest.xml    | 28 +++++++--------
 .../android_two_no_perms/AndroidManifest.xml    | 32 ++++++++---------
 .../src/ConfigChanges/ConfigChanges.js          | 36 ++++++++++----------
 cordova-common/src/util/plist-helpers.js        | 36 ++++++++++----------
 cordova-common/src/util/xml-helpers.js          | 36 ++++++++++----------
 .../fixtures/plugins/ChildBrowser/plugin.xml    | 32 ++++++++---------
 .../ChildBrowser/src/android/ChildBrowser.java  | 32 ++++++++---------
 .../plugins/ChildBrowser/www/childbrowser.js    | 34 +++++++++---------
 .../projects/android/AndroidManifest.xml        | 28 +++++++--------
 .../plugins/com.adobe.vars/plugin.xml           | 32 ++++++++---------
 .../plugins/dependencies/A/plugin.xml           | 32 ++++++++---------
 .../plugins/dependencies/B/plugin.xml           | 32 ++++++++---------
 .../plugins/dependencies/C/plugin.xml           | 32 ++++++++---------
 .../plugins/dependencies/D/plugin.xml           | 32 ++++++++---------
 .../plugins/dependencies/E/plugin.xml           | 32 ++++++++---------
 .../plugins/dependencies/F/plugin.xml           | 32 ++++++++---------
 .../plugins/dependencies/G/plugin.xml           | 32 ++++++++---------
 .../plugins/dependencies/H/plugin.xml           | 32 ++++++++---------
 .../plugins/dependencies/meta/D/plugin.xml      | 32 ++++++++---------
 .../dependencies/meta/subdir/E/plugin.xml       | 32 ++++++++---------
 .../plugins/dependencies/subdir/E/plugin.xml    | 32 ++++++++---------
 .../plugins/org.apache.plist/plugin.xml         | 32 ++++++++---------
 .../plugins/org.test.androidonly/plugin.xml     | 32 ++++++++---------
 .../plugins/org.test.configtest/plugin.xml      | 32 ++++++++---------
 .../org.test.multiple-children/plugin.xml       | 28 +++++++--------
 .../org.test.plugins.childbrowser/plugin.xml    | 32 ++++++++---------
 .../org.test.plugins.dummyplugin/plugin.xml     | 32 ++++++++---------
 .../org.test.plugins.faultyplugin/plugin.xml    | 32 ++++++++---------
 .../org.test.plugins.weblessplugin/plugin.xml   | 32 ++++++++---------
 .../plugin.xml                                  | 32 ++++++++---------
 .../plugins/org.test.shareddeps/plugin.xml      | 32 ++++++++---------
 .../plugins/recursivePlug/plugin.xml            | 32 ++++++++---------
 .../projects/android_one/AndroidManifest.xml    | 28 +++++++--------
 .../projects/android_one/res/xml/plugins.xml    | 28 +++++++--------
 .../projects/android_two/AndroidManifest.xml    | 28 +++++++--------
 .../android_two_no_perms/AndroidManifest.xml    | 32 ++++++++---------
 .../multiple-children/AndroidManifest.xml       | 28 +++++++--------
 .../multiple-children/res/xml/plugins.xml       | 28 +++++++--------
 .../src/plugman/platforms/amazon-fireos.js      | 32 ++++++++---------
 cordova-lib/src/plugman/platforms/android.js    | 32 ++++++++---------
 .../src/plugman/platforms/blackberry10.js       | 32 ++++++++---------
 cordova-lib/src/plugman/platforms/ios.js        | 32 ++++++++---------
 cordova-lib/src/plugman/plugman.js              | 32 ++++++++---------
 cordova-lib/src/plugman/util/plist-helpers.js   | 36 ++++++++++----------
 cordova-lib/src/plugman/util/plugins.js         | 32 ++++++++---------
 .../src/plugman/util/search-and-replace.js      | 36 ++++++++++----------
 59 files changed, 937 insertions(+), 938 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-common/spec/fixtures/plugins/ChildBrowser/plugin.xml
----------------------------------------------------------------------
diff --git a/cordova-common/spec/fixtures/plugins/ChildBrowser/plugin.xml b/cordova-common/spec/fixtures/plugins/ChildBrowser/plugin.xml
index 11ddd86..700ef7c 100644
--- a/cordova-common/spec/fixtures/plugins/ChildBrowser/plugin.xml
+++ b/cordova-common/spec/fixtures/plugins/ChildBrowser/plugin.xml
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-
- Copyright 2013 Anis Kadri
-
- 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.
-
+    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://cordova.apache.org/ns/plugins/1.0"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-common/spec/fixtures/plugins/ChildBrowser/src/android/ChildBrowser.java
----------------------------------------------------------------------
diff --git a/cordova-common/spec/fixtures/plugins/ChildBrowser/src/android/ChildBrowser.java b/cordova-common/spec/fixtures/plugins/ChildBrowser/src/android/ChildBrowser.java
index 5263b0c..36113b6 100644
--- a/cordova-common/spec/fixtures/plugins/ChildBrowser/src/android/ChildBrowser.java
+++ b/cordova-common/spec/fixtures/plugins/ChildBrowser/src/android/ChildBrowser.java
@@ -1,19 +1,17 @@
-/*
- *
- * Copyright 2013 Anis Kadri
- *
- * 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.
- *
-*/
+ /* 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.
+*/
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-common/spec/fixtures/plugins/ChildBrowser/www/childbrowser.js
----------------------------------------------------------------------
diff --git a/cordova-common/spec/fixtures/plugins/ChildBrowser/www/childbrowser.js b/cordova-common/spec/fixtures/plugins/ChildBrowser/www/childbrowser.js
index 5263b0c..207fbff 100644
--- a/cordova-common/spec/fixtures/plugins/ChildBrowser/www/childbrowser.js
+++ b/cordova-common/spec/fixtures/plugins/ChildBrowser/www/childbrowser.js
@@ -1,19 +1,18 @@
-/*
- *
- * Copyright 2013 Anis Kadri
- *
- * 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.
- *
-*/
+ /**
+    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.
+*/

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-common/spec/fixtures/plugins/com.adobe.vars/plugin.xml
----------------------------------------------------------------------
diff --git a/cordova-common/spec/fixtures/plugins/com.adobe.vars/plugin.xml b/cordova-common/spec/fixtures/plugins/com.adobe.vars/plugin.xml
index 9eff729..d1e1bff 100644
--- a/cordova-common/spec/fixtures/plugins/com.adobe.vars/plugin.xml
+++ b/cordova-common/spec/fixtures/plugins/com.adobe.vars/plugin.xml
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-
- Copyright 2013 Anis Kadri
-
- 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.
-
+    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://cordova.apache.org/ns/plugins/1.0"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-common/spec/fixtures/plugins/org.apache.plist/plugin.xml
----------------------------------------------------------------------
diff --git a/cordova-common/spec/fixtures/plugins/org.apache.plist/plugin.xml b/cordova-common/spec/fixtures/plugins/org.apache.plist/plugin.xml
index b7d5439..8b4ba71 100644
--- a/cordova-common/spec/fixtures/plugins/org.apache.plist/plugin.xml
+++ b/cordova-common/spec/fixtures/plugins/org.apache.plist/plugin.xml
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-
- Copyright 2013 Anis Kadri
-
- 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.
-
+    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://cordova.apache.org/ns/plugins/1.0"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-common/spec/fixtures/plugins/org.test.configtest/plugin.xml
----------------------------------------------------------------------
diff --git a/cordova-common/spec/fixtures/plugins/org.test.configtest/plugin.xml b/cordova-common/spec/fixtures/plugins/org.test.configtest/plugin.xml
index d140297..49b8739 100644
--- a/cordova-common/spec/fixtures/plugins/org.test.configtest/plugin.xml
+++ b/cordova-common/spec/fixtures/plugins/org.test.configtest/plugin.xml
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-
- Copyright 2013 Anis Kadri
-
- 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.
-
+    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://cordova.apache.org/ns/plugins/1.0"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-common/spec/fixtures/plugins/org.test.editconfigtest/plugin.xml
----------------------------------------------------------------------
diff --git a/cordova-common/spec/fixtures/plugins/org.test.editconfigtest/plugin.xml b/cordova-common/spec/fixtures/plugins/org.test.editconfigtest/plugin.xml
index b21e952..ab15c44 100644
--- a/cordova-common/spec/fixtures/plugins/org.test.editconfigtest/plugin.xml
+++ b/cordova-common/spec/fixtures/plugins/org.test.editconfigtest/plugin.xml
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-
- Copyright 2013 Anis Kadri
-
- 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.
-
+    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://cordova.apache.org/ns/plugins/1.0"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-common/spec/fixtures/plugins/org.test.editconfigtest_two/plugin.xml
----------------------------------------------------------------------
diff --git a/cordova-common/spec/fixtures/plugins/org.test.editconfigtest_two/plugin.xml b/cordova-common/spec/fixtures/plugins/org.test.editconfigtest_two/plugin.xml
index 9c9e24b..28f9d13 100644
--- a/cordova-common/spec/fixtures/plugins/org.test.editconfigtest_two/plugin.xml
+++ b/cordova-common/spec/fixtures/plugins/org.test.editconfigtest_two/plugin.xml
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-
- Copyright 2013 Anis Kadri
-
- 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.
-
+    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://cordova.apache.org/ns/plugins/1.0"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-common/spec/fixtures/plugins/org.test.multiple-children/plugin.xml
----------------------------------------------------------------------
diff --git a/cordova-common/spec/fixtures/plugins/org.test.multiple-children/plugin.xml b/cordova-common/spec/fixtures/plugins/org.test.multiple-children/plugin.xml
index 08576c5..1e30814 100644
--- a/cordova-common/spec/fixtures/plugins/org.test.multiple-children/plugin.xml
+++ b/cordova-common/spec/fixtures/plugins/org.test.multiple-children/plugin.xml
@@ -1,21 +1,21 @@
 <?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
 
- Copyright 2013 Anis Kadri
-
- 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://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://cordova.apache.org/ns/plugins/1.0"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-common/spec/fixtures/plugins/org.test.plugins.childbrowser/plugin.xml
----------------------------------------------------------------------
diff --git a/cordova-common/spec/fixtures/plugins/org.test.plugins.childbrowser/plugin.xml b/cordova-common/spec/fixtures/plugins/org.test.plugins.childbrowser/plugin.xml
index fd65360..abc0614 100644
--- a/cordova-common/spec/fixtures/plugins/org.test.plugins.childbrowser/plugin.xml
+++ b/cordova-common/spec/fixtures/plugins/org.test.plugins.childbrowser/plugin.xml
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-
- Copyright 2013 Anis Kadri
-
- 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.
-
+    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://cordova.apache.org/ns/plugins/1.0"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-common/spec/fixtures/plugins/org.test.plugins.dummyplugin/plugin.xml
----------------------------------------------------------------------
diff --git a/cordova-common/spec/fixtures/plugins/org.test.plugins.dummyplugin/plugin.xml b/cordova-common/spec/fixtures/plugins/org.test.plugins.dummyplugin/plugin.xml
index 02bb445..41f6612 100644
--- a/cordova-common/spec/fixtures/plugins/org.test.plugins.dummyplugin/plugin.xml
+++ b/cordova-common/spec/fixtures/plugins/org.test.plugins.dummyplugin/plugin.xml
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-
- Copyright 2013 Anis Kadri
-
- 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.
-
+    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://cordova.apache.org/ns/plugins/1.0"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-common/spec/fixtures/plugins/org.test.shareddeps/plugin.xml
----------------------------------------------------------------------
diff --git a/cordova-common/spec/fixtures/plugins/org.test.shareddeps/plugin.xml b/cordova-common/spec/fixtures/plugins/org.test.shareddeps/plugin.xml
index fb669c8..f54e5be 100644
--- a/cordova-common/spec/fixtures/plugins/org.test.shareddeps/plugin.xml
+++ b/cordova-common/spec/fixtures/plugins/org.test.shareddeps/plugin.xml
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-
- Copyright 2013 Anis Kadri
-
- 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.
-
+    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://cordova.apache.org/ns/plugins/1.0"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-common/spec/fixtures/projects/android/AndroidManifest.xml
----------------------------------------------------------------------
diff --git a/cordova-common/spec/fixtures/projects/android/AndroidManifest.xml b/cordova-common/spec/fixtures/projects/android/AndroidManifest.xml
index 0c52803..a97674e 100644
--- a/cordova-common/spec/fixtures/projects/android/AndroidManifest.xml
+++ b/cordova-common/spec/fixtures/projects/android/AndroidManifest.xml
@@ -1,21 +1,21 @@
 <?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
 
- Copyright 2013 Anis Kadri
-
- 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://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.
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:windowSoftInputMode="adjustPan"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-common/spec/fixtures/projects/android_two/AndroidManifest.xml
----------------------------------------------------------------------
diff --git a/cordova-common/spec/fixtures/projects/android_two/AndroidManifest.xml b/cordova-common/spec/fixtures/projects/android_two/AndroidManifest.xml
index 17489ca..019caae 100644
--- a/cordova-common/spec/fixtures/projects/android_two/AndroidManifest.xml
+++ b/cordova-common/spec/fixtures/projects/android_two/AndroidManifest.xml
@@ -1,21 +1,21 @@
 <?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
 
- Copyright 2013 Anis Kadri
-
- 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://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.
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:windowSoftInputMode="adjustPan"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-common/spec/fixtures/projects/android_two_no_perms/AndroidManifest.xml
----------------------------------------------------------------------
diff --git a/cordova-common/spec/fixtures/projects/android_two_no_perms/AndroidManifest.xml b/cordova-common/spec/fixtures/projects/android_two_no_perms/AndroidManifest.xml
index f4fcb54..74aeecc 100644
--- a/cordova-common/spec/fixtures/projects/android_two_no_perms/AndroidManifest.xml
+++ b/cordova-common/spec/fixtures/projects/android_two_no_perms/AndroidManifest.xml
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-
- Copyright 2013 Anis Kadri
-
- 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.
-
+    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.
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:windowSoftInputMode="adjustPan"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-common/src/ConfigChanges/ConfigChanges.js
----------------------------------------------------------------------
diff --git a/cordova-common/src/ConfigChanges/ConfigChanges.js b/cordova-common/src/ConfigChanges/ConfigChanges.js
index 6a80730..f9201eb 100644
--- a/cordova-common/src/ConfigChanges/ConfigChanges.js
+++ b/cordova-common/src/ConfigChanges/ConfigChanges.js
@@ -1,21 +1,21 @@
-/*
- *
- * Copyright 2013 Anis Kadri
- *
- * 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.
- *
-*/
+/**
+    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.
+*/ 
 
 /*
  * This module deals with shared configuration / dependency "stuff". That is:

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-common/src/util/plist-helpers.js
----------------------------------------------------------------------
diff --git a/cordova-common/src/util/plist-helpers.js b/cordova-common/src/util/plist-helpers.js
index 9dee5c6..38eb31b 100644
--- a/cordova-common/src/util/plist-helpers.js
+++ b/cordova-common/src/util/plist-helpers.js
@@ -1,21 +1,21 @@
-/*
- *
- * Copyright 2013 Brett Rudd
- *
- * 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.
- *
-*/
+/**
+    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.
+*/ 
 
 // contains PLIST utility functions
 var __     = require('underscore');

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-common/src/util/xml-helpers.js
----------------------------------------------------------------------
diff --git a/cordova-common/src/util/xml-helpers.js b/cordova-common/src/util/xml-helpers.js
index 9a1e82d..b4b0490 100644
--- a/cordova-common/src/util/xml-helpers.js
+++ b/cordova-common/src/util/xml-helpers.js
@@ -1,21 +1,21 @@
-/*
- *
- * Copyright 2013 Anis Kadri
- *
- * 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.
- *
-*/
+/**
+    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 sub:true, laxcomma:true */
 

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/spec-cordova/fixtures/plugins/ChildBrowser/plugin.xml
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/fixtures/plugins/ChildBrowser/plugin.xml b/cordova-lib/spec-cordova/fixtures/plugins/ChildBrowser/plugin.xml
index 11ddd86..700ef7c 100644
--- a/cordova-lib/spec-cordova/fixtures/plugins/ChildBrowser/plugin.xml
+++ b/cordova-lib/spec-cordova/fixtures/plugins/ChildBrowser/plugin.xml
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-
- Copyright 2013 Anis Kadri
-
- 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.
-
+    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://cordova.apache.org/ns/plugins/1.0"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/spec-cordova/fixtures/plugins/ChildBrowser/src/android/ChildBrowser.java
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/fixtures/plugins/ChildBrowser/src/android/ChildBrowser.java b/cordova-lib/spec-cordova/fixtures/plugins/ChildBrowser/src/android/ChildBrowser.java
index 5263b0c..8b5fb29 100644
--- a/cordova-lib/spec-cordova/fixtures/plugins/ChildBrowser/src/android/ChildBrowser.java
+++ b/cordova-lib/spec-cordova/fixtures/plugins/ChildBrowser/src/android/ChildBrowser.java
@@ -1,19 +1,19 @@
 /*
- *
- * Copyright 2013 Anis Kadri
- *
- * 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.
- *
+    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.
 */
 

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/spec-cordova/fixtures/plugins/ChildBrowser/www/childbrowser.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/fixtures/plugins/ChildBrowser/www/childbrowser.js b/cordova-lib/spec-cordova/fixtures/plugins/ChildBrowser/www/childbrowser.js
index 5263b0c..08e02ee 100644
--- a/cordova-lib/spec-cordova/fixtures/plugins/ChildBrowser/www/childbrowser.js
+++ b/cordova-lib/spec-cordova/fixtures/plugins/ChildBrowser/www/childbrowser.js
@@ -1,19 +1,21 @@
 /*
- *
- * Copyright 2013 Anis Kadri
- *
- * 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.
- *
+    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.
 */
 
+
+

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/spec-cordova/fixtures/projects/android/AndroidManifest.xml
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/fixtures/projects/android/AndroidManifest.xml b/cordova-lib/spec-cordova/fixtures/projects/android/AndroidManifest.xml
index 0c52803..a97674e 100644
--- a/cordova-lib/spec-cordova/fixtures/projects/android/AndroidManifest.xml
+++ b/cordova-lib/spec-cordova/fixtures/projects/android/AndroidManifest.xml
@@ -1,21 +1,21 @@
 <?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
 
- Copyright 2013 Anis Kadri
-
- 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://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.
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:windowSoftInputMode="adjustPan"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/spec-plugman/plugins/com.adobe.vars/plugin.xml
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/plugins/com.adobe.vars/plugin.xml b/cordova-lib/spec-plugman/plugins/com.adobe.vars/plugin.xml
index 9eff729..d1e1bff 100644
--- a/cordova-lib/spec-plugman/plugins/com.adobe.vars/plugin.xml
+++ b/cordova-lib/spec-plugman/plugins/com.adobe.vars/plugin.xml
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-
- Copyright 2013 Anis Kadri
-
- 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.
-
+    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://cordova.apache.org/ns/plugins/1.0"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/spec-plugman/plugins/dependencies/A/plugin.xml
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/plugins/dependencies/A/plugin.xml b/cordova-lib/spec-plugman/plugins/dependencies/A/plugin.xml
index 22073bc..daf2c3b 100644
--- a/cordova-lib/spec-plugman/plugins/dependencies/A/plugin.xml
+++ b/cordova-lib/spec-plugman/plugins/dependencies/A/plugin.xml
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-
- Copyright 2013 Anis Kadri
-
- 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.
-
+    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://cordova.apache.org/ns/plugins/1.0"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/spec-plugman/plugins/dependencies/B/plugin.xml
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/plugins/dependencies/B/plugin.xml b/cordova-lib/spec-plugman/plugins/dependencies/B/plugin.xml
index 4b7dfdb..db9fe69 100644
--- a/cordova-lib/spec-plugman/plugins/dependencies/B/plugin.xml
+++ b/cordova-lib/spec-plugman/plugins/dependencies/B/plugin.xml
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-
- Copyright 2013 Anis Kadri
-
- 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.
-
+    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://cordova.apache.org/ns/plugins/1.0"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/spec-plugman/plugins/dependencies/C/plugin.xml
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/plugins/dependencies/C/plugin.xml b/cordova-lib/spec-plugman/plugins/dependencies/C/plugin.xml
index 17fecbf..744f561 100644
--- a/cordova-lib/spec-plugman/plugins/dependencies/C/plugin.xml
+++ b/cordova-lib/spec-plugman/plugins/dependencies/C/plugin.xml
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-
- Copyright 2013 Anis Kadri
-
- 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.
-
+    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://cordova.apache.org/ns/plugins/1.0"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/spec-plugman/plugins/dependencies/D/plugin.xml
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/plugins/dependencies/D/plugin.xml b/cordova-lib/spec-plugman/plugins/dependencies/D/plugin.xml
index a806f35..88150ed 100644
--- a/cordova-lib/spec-plugman/plugins/dependencies/D/plugin.xml
+++ b/cordova-lib/spec-plugman/plugins/dependencies/D/plugin.xml
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-
- Copyright 2013 Anis Kadri
-
- 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.
-
+    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://cordova.apache.org/ns/plugins/1.0"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/spec-plugman/plugins/dependencies/E/plugin.xml
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/plugins/dependencies/E/plugin.xml b/cordova-lib/spec-plugman/plugins/dependencies/E/plugin.xml
index 9c49667..08d8150 100644
--- a/cordova-lib/spec-plugman/plugins/dependencies/E/plugin.xml
+++ b/cordova-lib/spec-plugman/plugins/dependencies/E/plugin.xml
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-
- Copyright 2013 Anis Kadri
-
- 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.
-
+    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://cordova.apache.org/ns/plugins/1.0"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/spec-plugman/plugins/dependencies/F/plugin.xml
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/plugins/dependencies/F/plugin.xml b/cordova-lib/spec-plugman/plugins/dependencies/F/plugin.xml
index e9db577..a881748 100644
--- a/cordova-lib/spec-plugman/plugins/dependencies/F/plugin.xml
+++ b/cordova-lib/spec-plugman/plugins/dependencies/F/plugin.xml
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-
- Copyright 2013 Anis Kadri
-
- 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.
-
+    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://cordova.apache.org/ns/plugins/1.0"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/spec-plugman/plugins/dependencies/G/plugin.xml
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/plugins/dependencies/G/plugin.xml b/cordova-lib/spec-plugman/plugins/dependencies/G/plugin.xml
index 7c214c2..1e4a4cf 100644
--- a/cordova-lib/spec-plugman/plugins/dependencies/G/plugin.xml
+++ b/cordova-lib/spec-plugman/plugins/dependencies/G/plugin.xml
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-
- Copyright 2013 Anis Kadri
-
- 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.
-
+    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://cordova.apache.org/ns/plugins/1.0"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/spec-plugman/plugins/dependencies/H/plugin.xml
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/plugins/dependencies/H/plugin.xml b/cordova-lib/spec-plugman/plugins/dependencies/H/plugin.xml
index 64b9175..69c31a6 100644
--- a/cordova-lib/spec-plugman/plugins/dependencies/H/plugin.xml
+++ b/cordova-lib/spec-plugman/plugins/dependencies/H/plugin.xml
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-
- Copyright 2013 Anis Kadri
-
- 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.
-
+    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://cordova.apache.org/ns/plugins/1.0"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/spec-plugman/plugins/dependencies/meta/D/plugin.xml
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/plugins/dependencies/meta/D/plugin.xml b/cordova-lib/spec-plugman/plugins/dependencies/meta/D/plugin.xml
index 2a79734..21dc9d3 100644
--- a/cordova-lib/spec-plugman/plugins/dependencies/meta/D/plugin.xml
+++ b/cordova-lib/spec-plugman/plugins/dependencies/meta/D/plugin.xml
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-
- Copyright 2013 Anis Kadri
-
- 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.
-
+    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://cordova.apache.org/ns/plugins/1.0"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/spec-plugman/plugins/dependencies/meta/subdir/E/plugin.xml
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/plugins/dependencies/meta/subdir/E/plugin.xml b/cordova-lib/spec-plugman/plugins/dependencies/meta/subdir/E/plugin.xml
index c986848..7d7eb24 100644
--- a/cordova-lib/spec-plugman/plugins/dependencies/meta/subdir/E/plugin.xml
+++ b/cordova-lib/spec-plugman/plugins/dependencies/meta/subdir/E/plugin.xml
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-
- Copyright 2013 Anis Kadri
-
- 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.
-
+    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://cordova.apache.org/ns/plugins/1.0"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/spec-plugman/plugins/dependencies/subdir/E/plugin.xml
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/plugins/dependencies/subdir/E/plugin.xml b/cordova-lib/spec-plugman/plugins/dependencies/subdir/E/plugin.xml
index c986848..7d7eb24 100644
--- a/cordova-lib/spec-plugman/plugins/dependencies/subdir/E/plugin.xml
+++ b/cordova-lib/spec-plugman/plugins/dependencies/subdir/E/plugin.xml
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-
- Copyright 2013 Anis Kadri
-
- 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.
-
+    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://cordova.apache.org/ns/plugins/1.0"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/spec-plugman/plugins/org.apache.plist/plugin.xml
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/plugins/org.apache.plist/plugin.xml b/cordova-lib/spec-plugman/plugins/org.apache.plist/plugin.xml
index d7ef35d..8be41ef 100644
--- a/cordova-lib/spec-plugman/plugins/org.apache.plist/plugin.xml
+++ b/cordova-lib/spec-plugman/plugins/org.apache.plist/plugin.xml
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-
- Copyright 2013 Anis Kadri
-
- 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.
-
+    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://cordova.apache.org/ns/plugins/1.0"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/spec-plugman/plugins/org.test.androidonly/plugin.xml
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/plugins/org.test.androidonly/plugin.xml b/cordova-lib/spec-plugman/plugins/org.test.androidonly/plugin.xml
index 5422c8f..dd36b44 100644
--- a/cordova-lib/spec-plugman/plugins/org.test.androidonly/plugin.xml
+++ b/cordova-lib/spec-plugman/plugins/org.test.androidonly/plugin.xml
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-
- Copyright 2013 Anis Kadri
-
- 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.
-
+    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://cordova.apache.org/ns/plugins/1.0"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/spec-plugman/plugins/org.test.configtest/plugin.xml
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/plugins/org.test.configtest/plugin.xml b/cordova-lib/spec-plugman/plugins/org.test.configtest/plugin.xml
index fa1ff51..7d32516 100644
--- a/cordova-lib/spec-plugman/plugins/org.test.configtest/plugin.xml
+++ b/cordova-lib/spec-plugman/plugins/org.test.configtest/plugin.xml
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-
- Copyright 2013 Anis Kadri
-
- 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.
-
+    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://cordova.apache.org/ns/plugins/1.0"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/spec-plugman/plugins/org.test.multiple-children/plugin.xml
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/plugins/org.test.multiple-children/plugin.xml b/cordova-lib/spec-plugman/plugins/org.test.multiple-children/plugin.xml
index 08576c5..1e30814 100644
--- a/cordova-lib/spec-plugman/plugins/org.test.multiple-children/plugin.xml
+++ b/cordova-lib/spec-plugman/plugins/org.test.multiple-children/plugin.xml
@@ -1,21 +1,21 @@
 <?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
 
- Copyright 2013 Anis Kadri
-
- 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://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://cordova.apache.org/ns/plugins/1.0"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/spec-plugman/plugins/org.test.plugins.childbrowser/plugin.xml
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/plugins/org.test.plugins.childbrowser/plugin.xml b/cordova-lib/spec-plugman/plugins/org.test.plugins.childbrowser/plugin.xml
index fd65360..abc0614 100644
--- a/cordova-lib/spec-plugman/plugins/org.test.plugins.childbrowser/plugin.xml
+++ b/cordova-lib/spec-plugman/plugins/org.test.plugins.childbrowser/plugin.xml
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-
- Copyright 2013 Anis Kadri
-
- 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.
-
+    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://cordova.apache.org/ns/plugins/1.0"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/spec-plugman/plugins/org.test.plugins.dummyplugin/plugin.xml
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/plugins/org.test.plugins.dummyplugin/plugin.xml b/cordova-lib/spec-plugman/plugins/org.test.plugins.dummyplugin/plugin.xml
index f656661..5339b97 100644
--- a/cordova-lib/spec-plugman/plugins/org.test.plugins.dummyplugin/plugin.xml
+++ b/cordova-lib/spec-plugman/plugins/org.test.plugins.dummyplugin/plugin.xml
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-
- Copyright 2013 Anis Kadri
-
- 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.
-
+    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://cordova.apache.org/ns/plugins/1.0"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6dc192de/cordova-lib/spec-plugman/plugins/org.test.plugins.faultyplugin/plugin.xml
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/plugins/org.test.plugins.faultyplugin/plugin.xml b/cordova-lib/spec-plugman/plugins/org.test.plugins.faultyplugin/plugin.xml
index 78f037f..b8eb476 100644
--- a/cordova-lib/spec-plugman/plugins/org.test.plugins.faultyplugin/plugin.xml
+++ b/cordova-lib/spec-plugman/plugins/org.test.plugins.faultyplugin/plugin.xml
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-
- Copyright 2013 Anis Kadri
-
- 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.
-
+    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://cordova.apache.org/ns/plugins/1.0"


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


[21/50] [abbrv] cordova-lib git commit: Major version bump for cordova-common due to windows specific removals

Posted by st...@apache.org.
Major version bump for cordova-common due to windows specific removals


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

Branch: refs/heads/fetch-1.0.x
Commit: 2ea46e468747926a02a8feeb394df47df4cded88
Parents: b66ec16
Author: Steve Gill <st...@gmail.com>
Authored: Fri Jan 6 16:52:00 2017 -0800
Committer: Steve Gill <st...@gmail.com>
Committed: Fri Jan 6 16:52:00 2017 -0800

----------------------------------------------------------------------
 cordova-common/package.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/2ea46e46/cordova-common/package.json
----------------------------------------------------------------------
diff --git a/cordova-common/package.json b/cordova-common/package.json
index dd482cb..c96eac4 100644
--- a/cordova-common/package.json
+++ b/cordova-common/package.json
@@ -3,7 +3,7 @@
   "name": "cordova-common",
   "description": "Apache Cordova tools and platforms shared routines",
   "license": "Apache-2.0",
-  "version": "1.5.2-dev",
+  "version": "2.0.0-dev",
   "repository": {
     "type": "git",
     "url": "git://git-wip-us.apache.org/repos/asf/cordova-common.git"


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


[26/50] [abbrv] cordova-lib git commit: fixjasmine : CB-12018 : fixed jasmine tests to work with uninstallPlugin and removed waitsFor/runs, updated promise syntax, calls.reset, and labled tests

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-plugman/platforms/android.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/platforms/android.spec.js b/cordova-lib/spec-plugman/platforms/android.spec.js
index b8699a4..59710e6 100644
--- a/cordova-lib/spec-plugman/platforms/android.spec.js
+++ b/cordova-lib/spec-plugman/platforms/android.spec.js
@@ -49,12 +49,12 @@ function copyArray(arr) {
 
 describe('android project handler', function() {
     describe('www_dir method', function() {
-        it('should return cordova-android project www location using www_dir', function() {
+        it('Test 001 : should return cordova-android project www location using www_dir', function() {
             expect(android.www_dir(path.sep)).toEqual(path.sep + path.join('assets', 'www'));
         });
     });
     describe('package_name method', function() {
-        it('should return an android project\'s proper package name', function() {
+        it('Test 002 : should return an android project\'s proper package name', function() {
             expect(android.package_name(path.join(android_one_project, '..'))).toEqual('com.alunny.childapp');
         });
     });
@@ -67,7 +67,7 @@ describe('android project handler', function() {
             shell.rm('-rf', temp);
         });
         describe('of <lib-file> elements', function() {
-            it('should copy jar files to project/libs', function () {
+            it('Test 003 : should copy jar files to project/libs', function () {
                 var s = spyOn(common, 'copyFile');
 
                 android['lib-file'].install(valid_libs[0], dummyplugin, temp);
@@ -75,7 +75,7 @@ describe('android project handler', function() {
             });
         });
         describe('of <resource-file> elements', function() {
-            it('should copy files', function () {
+            it('Test 004 : should copy files', function () {
                 var s = spyOn(common, 'copyFile');
 
                 android['resource-file'].install(valid_resources[0], dummyplugin, temp);
@@ -87,19 +87,20 @@ describe('android project handler', function() {
                 shell.cp('-rf', android_one_project, temp);
             });
 
-            it('should copy stuff from one location to another by calling common.copyFile', function() {
+            it('Test 005 : should copy stuff from one location to another by calling common.copyFile', function() {
                 var source = copyArray(valid_source);
                 var s = spyOn(common, 'copyFile');
                 android['source-file'].install(source[0], dummyplugin, temp);
                 expect(s).toHaveBeenCalledWith(dummyplugin, 'src/android/DummyPlugin.java', temp, path.join('src', 'com', 'phonegap', 'plugins', 'dummyplugin', 'DummyPlugin.java'), false);
             });
-            it('should throw if source file cannot be found', function() {
+            it('Test 006 : should throw if source file cannot be found', function() {
                 var source = copyArray(invalid_source);
                 expect(function() {
                     android['source-file'].install(source[0], faultyplugin, temp);
-                }).toThrow('"' + path.resolve(faultyplugin, 'src/android/NotHere.java') + '" not found!');
+                    //expect(parser.parse(raw)).toThrow(new Error("Parsing is not possible"));
+                }).toThrow(new Error('"' + path.resolve(faultyplugin, 'src/android/NotHere.java') + '" not found!'));
             });
-            it('should throw if target file already exists', function() {
+            it('Test 007 : should throw if target file already exists', function() {
                 // write out a file
                 var target = path.resolve(temp, 'src/com/phonegap/plugins/dummyplugin');
                 shell.mkdir('-p', target);
@@ -109,7 +110,7 @@ describe('android project handler', function() {
                 var source = copyArray(valid_source);
                 expect(function() {
                     android['source-file'].install(source[0], dummyplugin, temp);
-                }).toThrow('"' + target + '" already exists!');
+                }).toThrow(new Error('"' + target + '" already exists!'));
             });
         });
     });
@@ -122,7 +123,7 @@ describe('android project handler', function() {
             shell.rm('-rf', temp);
             android.purgeProjectFileCache(temp);
         });
-        it('with custom=true', function() {
+        it('Test 008 : with custom=true', function() {
             var packageIdSuffix = 'childapp';
             var frameworkElement = { src: 'plugin-lib', custom: true };
             var mainProjectPropsFile = path.resolve(temp, 'project.properties');
@@ -149,7 +150,7 @@ describe('android project handler', function() {
             expect(finalProjectProperties).not.toMatch('\nandroid.library.reference.3='+dummy_id+'/'+packageIdSuffix+'-plugin-lib', 'Reference to library not added');
             expect(fs.existsSync(subDir)).toBe(false, 'Should delete subdir');
         });
-        it('with custom=true type=gradleReference', function() {
+        it('Test 009 : with custom=true type=gradleReference', function() {
             var packageIdSuffix = 'childapp';
             var frameworkElement = { src: 'extra.gradle', custom: true, type: 'gradleReference'};
             var mainProjectPropsFile = path.resolve(temp, 'project.properties');
@@ -170,7 +171,7 @@ describe('android project handler', function() {
             expect(finalProjectProperties).not.toMatch('\ncordova.gradle.include.1='+dummy_id+'/'+packageIdSuffix+'-extra.gradle', 'Reference to gradle not added');
             expect(fs.existsSync(subDir)).toBe(false, 'Should delete subdir');
         });
-        it('with custom=false pre 4.0', function() {
+        it('Test 010 : with custom=false pre 4.0', function() {
             var packageIdSuffix = 'childapp';
             var frameworkElement = { src: 'extras/android/support/v4', custom: false};
             var mainProjectPropsFile = path.resolve(temp, 'project.properties');
@@ -193,7 +194,7 @@ describe('android project handler', function() {
             finalProjectProperties = fs.readFileSync(mainProjectPropsFile, 'utf8');
             expect(finalProjectProperties).not.toMatch('\ncordova.gradle.include.1='+dummy_id+'/'+packageIdSuffix+'-extra.gradle', 'Reference to gradle not added');
         });
-        it('with custom=false post 4.0', function() {
+        it('Test 011 : with custom=false post 4.0', function() {
             var frameworkElement = { src: 'extras/android/support/v4', custom: false};
             var mainProjectPropsFile = path.resolve(temp, 'project.properties');
             fs.writeFileSync(path.join(temp, 'local.properties'), 'sdk.dir=' + path.join(temp, '..', 'SDK'));
@@ -213,7 +214,7 @@ describe('android project handler', function() {
             finalProjectProperties = fs.readFileSync(mainProjectPropsFile, 'utf8');
             expect(finalProjectProperties).not.toMatch('\ncordova.system.library.1=' + 'extras/android/support/v4', 'Sublibrary not added');
         });
-        it('with custom=true and parent', function () {
+        it('Test 012 : with custom=true and parent', function () {
             var packageIdSuffix = 'childapp';
             var frameworkElement = { src: 'plugin-lib', custom: true };
             var frameworkElementChild = { src: 'plugin-lib2', custom: true, parent: 'plugin-lib' };
@@ -247,7 +248,7 @@ describe('android project handler', function() {
 
             expect(fs.existsSync(subDir)).toBe(false, 'Should delete subdir');
         });
-        it('with custom=false and parent', function () {
+        it('Test 013 : with custom=false and parent', function () {
             var packageIdSuffix = 'childapp';
             var frameworkElement = { src: 'plugin-lib', custom: true };
             var frameworkElementChild = { src: 'extras/android/support/v4', custom: false, parent: 'plugin-lib' };
@@ -263,7 +264,7 @@ describe('android project handler', function() {
             android.parseProjectFile(temp).write();
             android.parseProjectFile(parentDir).write();
 
-            exec.reset();
+            exec.calls.reset();
 
             var finalProjectProperties = fs.readFileSync(parentProjectPropsFile, 'utf8');
             var libReference = '\nandroid.library.reference.1=' + path.join('..', '..', sdkLibRelativeDir).replace(/\\/g, '/');
@@ -294,16 +295,16 @@ describe('android project handler', function() {
         afterEach(function() {
             shell.rm('-rf', temp);
         });
-        describe('of <lib-file> elements', function(done) {
-            it('should remove jar files', function () {
+        describe('of <lib-file> elements', function() {
+            it('Test 014 : should remove jar files', function () {
                 var s = spyOn(common, 'removeFile');
                 android['lib-file'].install(valid_libs[0], dummyplugin, temp);
                 android['lib-file'].uninstall(valid_libs[0], temp, dummy_id);
                 expect(s).toHaveBeenCalledWith(temp, path.join('libs', 'TestLib.jar'));
             });
         });
-        describe('of <resource-file> elements', function(done) {
-            it('should remove files', function () {
+        describe('of <resource-file> elements', function() {
+            it('Test 015 : should remove files', function () {
                 var s = spyOn(common, 'removeFile');
                 android['resource-file'].install(valid_resources[0], dummyplugin, temp);
                 android['resource-file'].uninstall(valid_resources[0], temp, dummy_id);
@@ -311,7 +312,7 @@ describe('android project handler', function() {
             });
         });
         describe('of <source-file> elements', function() {
-            it('should remove stuff by calling common.deleteJava', function() {
+            it('Test 016 : should remove stuff by calling common.deleteJava', function() {
                 var s = spyOn(common, 'deleteJava');
                 android['source-file'].install(valid_source[0], dummyplugin, temp, dummy_id);
                 var source = copyArray(valid_source);

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-plugman/platforms/blackberry10.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/platforms/blackberry10.spec.js b/cordova-lib/spec-plugman/platforms/blackberry10.spec.js
index 60712aa..e1afa7c 100644
--- a/cordova-lib/spec-plugman/platforms/blackberry10.spec.js
+++ b/cordova-lib/spec-plugman/platforms/blackberry10.spec.js
@@ -40,13 +40,13 @@ function copyArray(arr) {
 
 describe('blackberry10 project handler', function() {
     describe('www_dir method', function() {
-        it('should return cordova-blackberry10 project www location using www_dir', function() {
+        it('Test 001 : should return cordova-blackberry10 project www location using www_dir', function() {
             expect(blackberry10.www_dir(path.sep)).toEqual(path.sep + 'www');
         });
     });
 
     describe('package_name method', function() {
-        it('should return a blackberry10 project\'s proper package name', function() {
+        it('Test 002 : should return a blackberry10 project\'s proper package name', function() {
             expect(blackberry10.package_name(path.join(blackberry10_project, '..'))).toEqual('cordovaExample');
         });
     });
@@ -60,7 +60,7 @@ describe('blackberry10 project handler', function() {
             shell.rm('-rf', temp);
         });
         describe('of <lib-file> elements', function() {
-            it('should copy so files to native/target/plugins', function () {
+            it('Test 003 : should copy so files to native/target/plugins', function () {
                 var plugin = plugins.echo,
                     libs = copyArray(plugin.getLibFiles('blackberry10')),
                     s = spyOn(common, 'copyFile');
@@ -70,7 +70,7 @@ describe('blackberry10 project handler', function() {
             });
         });
         describe('of <source-file> elements', function() {
-            it('should copy stuff from one location to another by calling common.copyFile', function() {
+            it('Test 004 : should copy stuff from one location to another by calling common.copyFile', function() {
                 var plugin = plugins.echo,
                     source = copyArray(plugin.getSourceFiles('blackberry10')),
                     s = spyOn(common, 'copyFile');
@@ -79,20 +79,20 @@ describe('blackberry10 project handler', function() {
                 expect(s).toHaveBeenCalledWith(plugin.dir, 'src/blackberry10/index.js', temp, path.join('native', 'device', 'chrome', 'plugin', 'com.cordova.echo', 'index.js'), false);
                 expect(s).toHaveBeenCalledWith(plugin.dir, 'src/blackberry10/index.js', temp, path.join('native', 'simulator', 'chrome', 'plugin', 'com.cordova.echo', 'index.js'), false);
             });
-            it('defaults to plugin id when dest is not present', function() {
+            it('Test 005 : defaults to plugin id when dest is not present', function() {
                 var source = copyArray(plugins.dummy.getSourceFiles('blackberry10'));
                 var s = spyOn(common, 'copyFile');
                 blackberry10['source-file'].install(source[0], plugins.dummy.dir, temp, plugins.dummy.id);
                 expect(s).toHaveBeenCalledWith(plugins.dummy.dir, 'src/blackberry10/index.js', temp, path.join('native', 'device', 'chrome', 'plugin', plugins.dummy.id, 'index.js'), false);
                 expect(s).toHaveBeenCalledWith(plugins.dummy.dir, 'src/blackberry10/index.js', temp, path.join('native', 'simulator', 'chrome', 'plugin', plugins.dummy.id, 'index.js'), false);
             });
-            it('should throw if source file cannot be found', function() {
+            it('Test 006 : should throw if source file cannot be found', function() {
                 var source = copyArray(plugins.faulty.getSourceFiles('blackberry10'));
                 expect(function() {
                     blackberry10['source-file'].install(source[0], plugins.faulty.dir, temp, plugins.faulty.id);
-                }).toThrow('"' + path.resolve(plugins.faulty.dir, 'src/blackberry10/index.js') + '" not found!');
+                }).toThrow(new Error ('"' + path.resolve(plugins.faulty.dir, 'src/blackberry10/index.js') + '" not found!'));
             });
-            it('should throw if target file already exists', function() {
+            it('Test 007 : should throw if target file already exists', function() {
                 // write out a file
                 var target = path.resolve(temp, 'native/device/chrome/plugin/org.test.plugins.dummyplugin');
                 shell.mkdir('-p', target);
@@ -102,7 +102,7 @@ describe('blackberry10 project handler', function() {
                 var source = copyArray(plugins.dummy.getSourceFiles('blackberry10'));
                 expect(function() {
                     blackberry10['source-file'].install(source[0], plugins.dummy.dir, temp, plugins.dummy.id);
-                }).toThrow('"' + target + '" already exists!');
+                }).toThrow(new Error ('"' + target + '" already exists!'));
             });
         });
     });
@@ -116,7 +116,7 @@ describe('blackberry10 project handler', function() {
             shell.rm('-rf', temp);
         });
         describe('of <source-file> elements', function() {
-            it('should remove stuff by calling common.removeFile', function() {
+            it('Test 008 : should remove stuff by calling common.removeFile', function() {
                 var s = spyOn(common, 'removeFile'),
                     plugin = plugins.echo;
                 var source = copyArray(plugin.getSourceFiles('blackberry10'));
@@ -125,7 +125,7 @@ describe('blackberry10 project handler', function() {
                 expect(s).toHaveBeenCalledWith(temp, path.join('native', 'device', 'chrome', 'plugin', 'com.cordova.echo', 'index.js'));
                 expect(s).toHaveBeenCalledWith(temp, path.join('native', 'simulator', 'chrome', 'plugin', 'com.cordova.echo', 'index.js'));
             });
-            it('should remove stuff by calling common.removeFile', function() {
+            it('Test 009 : should remove stuff by calling common.removeFile', function() {
                 var s = spyOn(common, 'removeFile'),
                     plugin = plugins.dummy;
                 var source = copyArray(plugin.getSourceFiles('blackberry10'));
@@ -135,8 +135,8 @@ describe('blackberry10 project handler', function() {
                 expect(s).toHaveBeenCalledWith(temp, path.join('native', 'simulator', 'chrome', 'plugin', plugin.id, 'index.js'));
             });
         });
-        describe('of <lib-file> elements', function(done) {
-            it('should remove so files from www/plugins', function () {
+        describe('of <lib-file> elements', function() {
+            it('Test 010 : should remove so files from www/plugins', function () {
                 var s = spyOn(common, 'removeFile'),
                     plugin = plugins.echo;
                 var source = copyArray(plugin.getLibFiles('blackberry10'));

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-plugman/platforms/common.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/platforms/common.spec.js b/cordova-lib/spec-plugman/platforms/common.spec.js
index 216c597..a83198b 100644
--- a/cordova-lib/spec-plugman/platforms/common.spec.js
+++ b/cordova-lib/spec-plugman/platforms/common.spec.js
@@ -36,7 +36,7 @@ var common = require('../../src/plugman/platforms/common')
 
 describe('common platform handler', function() {
     describe('resolveSrcPath', function() {
-        it('should not throw if path exists', function(){
+        it('Test 001 : should not throw if path exists', function(){
             shell.mkdir('-p', test_dir);
             var target = path.join(test_dir, 'somefile');
             fs.writeFileSync(target, '80085', 'utf-8');
@@ -46,24 +46,24 @@ describe('common platform handler', function() {
     });
 
     describe('resolveTargetPath', function() {
-        it('should throw if path exists', function(){
+        it('Test 002 : should throw if path exists', function(){
             shell.mkdir('-p', test_dir);
             expect(function(){common.resolveTargetPath(test_dir);}).toThrow();
             shell.rm('-rf', test_dir);
         });
 
-        it('should not throw if path cannot be resolved', function(){
+        it('Test 003 : should not throw if path cannot be resolved', function(){
             expect(function(){common.resolveTargetPath(test_dir, 'somefile');}).not.toThrow();
         });
     });
 
     describe('copyFile', function() {
-        it('should throw if source path not found', function(){
+        it('Test 004 : should throw if source path not found', function(){
             expect(function(){common.copyFile(test_dir, src, project_dir, dest);}).
                 toThrow(new Error('"' + src + '" not found!'));
         });
 
-        it('should throw if src not in plugin directory', function(){
+        it('Test 005 : should throw if src not in plugin directory', function(){
             shell.mkdir('-p', project_dir);
             fs.writeFileSync(non_plugin_file, 'contents', 'utf-8');
             expect(function(){common.copyFile(test_dir, '../non_plugin_file', project_dir, dest);}).
@@ -71,7 +71,7 @@ describe('common platform handler', function() {
             shell.rm('-rf', test_dir);
         });
 
-        it('should allow symlink src, if inside plugin', function(){
+        it('Test 006 : should allow symlink src, if inside plugin', function(){
             shell.mkdir('-p', java_dir);
             fs.writeFileSync(java_file, 'contents', 'utf-8');
 
@@ -84,7 +84,7 @@ describe('common platform handler', function() {
             shell.rm('-rf', project_dir);
         });
 
-        it('should deeply symlink directory tree when src is a directory', function(){
+        it('Test 007 : should deeply symlink directory tree when src is a directory', function(){
             var symlink_dir_relative_subdir = path.dirname(symlink_dir_relative_file);
 
             shell.mkdir('-p', path.join(symlink_dir, symlink_dir_relative_subdir));
@@ -102,7 +102,7 @@ describe('common platform handler', function() {
             shell.rm('-rf', project_dir);
         });
 
-        it('should throw if symlink is linked to a file outside the plugin', function(){
+        it('Test 008 : should throw if symlink is linked to a file outside the plugin', function(){
             shell.mkdir('-p', java_dir);
             fs.writeFileSync(non_plugin_file, 'contents', 'utf-8');
 
@@ -116,7 +116,7 @@ describe('common platform handler', function() {
             shell.rm('-rf', project_dir);
         });
 
-        it('should throw if dest is outside the project directory', function(){
+        it('Test 009 : should throw if dest is outside the project directory', function(){
             shell.mkdir('-p', java_dir);
             fs.writeFileSync(java_file, 'contents', 'utf-8');
             expect(function(){common.copyFile(test_dir, java_file, project_dir, non_plugin_file);}).
@@ -124,11 +124,11 @@ describe('common platform handler', function() {
             shell.rm('-rf', project_dir);
         });
 
-        it('should call mkdir -p on target path', function(){
+        it('Test 010 : should call mkdir -p on target path', function(){
             shell.mkdir('-p', java_dir);
             fs.writeFileSync(java_file, 'contents', 'utf-8');
 
-            var s = spyOn(shell, 'mkdir').andCallThrough();
+            var s = spyOn(shell, 'mkdir').and.callThrough();
             var resolvedDest = common.resolveTargetPath(project_dir, dest);
 
             common.copyFile(test_dir, java_file, project_dir, dest);
@@ -138,11 +138,11 @@ describe('common platform handler', function() {
             shell.rm('-rf', project_dir);
         });
 
-        it('should call cp source/dest paths', function(){
+        it('Test 011 : should call cp source/dest paths', function(){
             shell.mkdir('-p', java_dir);
             fs.writeFileSync(java_file, 'contents', 'utf-8');
 
-            var s = spyOn(shell, 'cp').andCallThrough();
+            var s = spyOn(shell, 'cp').and.callThrough();
             var resolvedDest = common.resolveTargetPath(project_dir, dest);
 
             common.copyFile(test_dir, java_file, project_dir, dest);
@@ -156,7 +156,7 @@ describe('common platform handler', function() {
     });
 
     describe('copyNewFile', function () {
-        it('should throw if target path exists', function(){
+        it('Test 012 : should throw if target path exists', function(){
             shell.mkdir('-p', dest);
             expect(function(){common.copyNewFile(test_dir, src, project_dir, dest);}).
                 toThrow(new Error('"' + dest + '" already exists!'));
@@ -166,11 +166,11 @@ describe('common platform handler', function() {
     });
 
     describe('deleteJava', function() {
-        it('should call fs.unlinkSync on the provided paths', function(){
+        it('Test 013 : should call fs.unlinkSync on the provided paths', function(){
             shell.mkdir('-p', java_dir);
             fs.writeFileSync(java_file, 'contents', 'utf-8');
 
-            var s = spyOn(fs, 'unlinkSync').andCallThrough();
+            var s = spyOn(fs, 'unlinkSync').and.callThrough();
             common.deleteJava(project_dir, java_file);
             expect(s).toHaveBeenCalled();
             expect(s).toHaveBeenCalledWith(path.resolve(project_dir, java_file));
@@ -178,7 +178,7 @@ describe('common platform handler', function() {
             shell.rm('-rf', java_dir);
         });
 
-        it('should delete empty directories after removing source code in a java src path hierarchy', function(){
+        it('Test 014 : should delete empty directories after removing source code in a java src path hierarchy', function(){
             shell.mkdir('-p', java_dir);
             fs.writeFileSync(java_file, 'contents', 'utf-8');
 
@@ -190,7 +190,7 @@ describe('common platform handler', function() {
             shell.rm('-rf', java_dir);
         });
 
-        it('should never delete the top-level src directory, even if all plugins added were removed', function(){
+        it('Test 015 : should never delete the top-level src directory, even if all plugins added were removed', function(){
             shell.mkdir('-p', java_dir);
             fs.writeFileSync(java_file, 'contents', 'utf-8');
 

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-plugman/platforms/ios.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/platforms/ios.spec.js b/cordova-lib/spec-plugman/platforms/ios.spec.js
index b1ead60..6407069 100644
--- a/cordova-lib/spec-plugman/platforms/ios.spec.js
+++ b/cordova-lib/spec-plugman/platforms/ios.spec.js
@@ -82,40 +82,40 @@ describe('ios project handler', function() {
     });
 
     describe('www_dir method', function() {
-        it('should return cordova-ios project www location using www_dir', function() {
+        it('Test 001 : should return cordova-ios project www location using www_dir', function() {
             expect(ios.www_dir(path.sep)).toEqual(path.sep + 'www');
         });
     });
 
     describe('package_name method', function() {
-        it('should return the CFBundleIdentifier from the project\'s Info.plist file', function() {
+        it('Test 002 : should return the CFBundleIdentifier from the project\'s Info.plist file', function() {
             expect(ios.package_name(ios_project)).toEqual('com.example.friendstring');
         });
     });
 
     describe('parseProjectFile method', function () {
-        it('should throw if project is not an xcode project', function() {
+        it('Test 003 : should throw if project is not an xcode project', function() {
             expect(function() {
                 ios.parseProjectFile(temp);
-            }).toThrow('does not appear to be an xcode project (no xcode project file)');
+            }).toThrow(new Error ('does not appear to be an xcode project (no xcode project file)'));
         });
-        it('should throw if project does not contain an appropriate config.xml file', function() {
+        it('Test 004 : should throw if project does not contain an appropriate config.xml file', function() {
             shell.cp('-rf', ios_config_xml_project, temp);
             shell.rm(path.join(temp, 'SampleApp', 'config.xml'));
 
             expect(function() {
                 ios.parseProjectFile(temp);
-            }).toThrow('could not find -Info.plist file, or config.xml file.');
+            }).toThrow(new Error ('could not find -Info.plist file, or config.xml file.'));
         });
-        it('should throw if project does not contain an appropriate -Info.plist file', function() {
+        it('Test 005 : should throw if project does not contain an appropriate -Info.plist file', function() {
             shell.cp('-rf', ios_config_xml_project, temp);
             shell.rm(path.join(temp, 'SampleApp', 'SampleApp-Info.plist'));
 
             expect(function () {
                 ios.parseProjectFile(temp);
-            }).toThrow('could not find -Info.plist file, or config.xml file.');
+            }).toThrow(new Error ('could not find -Info.plist file, or config.xml file.'));
         });
-        it('should return right directory when multiple .plist files are present', function() {
+        it('Test 006 : should return right directory when multiple .plist files are present', function() {
             shell.cp('-rf', ios_config_xml_project, temp);
             //Create a folder named A with config.xml and .plist files in it
             var pathToFolderA = path.join(temp, 'A');
@@ -144,13 +144,13 @@ describe('ios project handler', function() {
         });
 
         describe('of <source-file> elements', function() {
-            it('should throw if source-file src cannot be found', function() {
+            it('Test 006 : should throw if source-file src cannot be found', function() {
                 var source = copyArray(invalid_source);
                 expect(function() {
                     ios['source-file'].install(source[1], faultyplugin, temp, faulty_id, null, proj_files);
                 }).toThrow();
             });
-            it('should throw if source-file target already exists', function() {
+            it('Test 007 : should throw if source-file target already exists', function() {
                 var source = copyArray(valid_source);
                 var target = path.join(temp, 'SampleApp', 'Plugins', dummy_id, 'DummyPluginCommand.m');
                 shell.mkdir('-p', path.dirname(target));
@@ -159,13 +159,13 @@ describe('ios project handler', function() {
                     ios['source-file'].install(source[0], dummyplugin, temp, dummy_id, null, proj_files);
                 }).toThrow();
             });
-            it('should call into xcodeproj\'s addSourceFile appropriately when element has no target-dir', function() {
+            it('Test 008 : should call into xcodeproj\'s addSourceFile appropriately when element has no target-dir', function() {
                 var source = copyArray(valid_source).filter(function(s) { return s.targetDir === undefined; });
                 var spy = spyOn(proj_files.xcode, 'addSourceFile');
                 ios['source-file'].install(source[0], dummyplugin, temp, dummy_id, null, proj_files);
                 expect(spy).toHaveBeenCalledWith(slashJoin('Plugins', dummy_id, 'DummyPluginCommand.m'), {});
             });
-            it('should call into xcodeproj\'s addSourceFile appropriately when element has a target-dir', function() {
+            it('Test 009 : should call into xcodeproj\'s addSourceFile appropriately when element has a target-dir', function() {
                 var source = copyArray(valid_source).filter(function(s) { return s.targetDir !== undefined; });
                 var spy = spyOn(proj_files.xcode, 'addSourceFile');
                 ios['source-file'].install(source[0], dummyplugin, temp, dummy_id, null, proj_files);
@@ -177,13 +177,13 @@ describe('ios project handler', function() {
                 ios['source-file'].install(source[0], dummyplugin, temp, dummy_id, null, proj_files);
                 expect(spy).toHaveBeenCalledWith('-f', path.join(dummyplugin, 'src', 'ios', 'DummyPluginCommand.m'), path.join(temp, 'SampleApp', 'Plugins', dummy_id, 'DummyPluginCommand.m'));
             });
-            it('should cp the file to the right target location when element has a target-dir', function() {
+            it('Test 010 : should cp the file to the right target location when element has a target-dir', function() {
                 var source = copyArray(valid_source).filter(function(s) { return s.targetDir !== undefined; });
                 var spy = spyOn(shell, 'cp');
                 ios['source-file'].install(source[0], dummyplugin, temp, dummy_id, null, proj_files);
                 expect(spy).toHaveBeenCalledWith('-f', path.join(dummyplugin, 'src', 'ios', 'TargetDirTest.m'), path.join(temp, 'SampleApp', 'Plugins', dummy_id, 'targetDir', 'TargetDirTest.m'));
             });
-            it('should call into xcodeproj\'s addFramework appropriately when element has framework=true set', function() {
+            it('Test 011 : should call into xcodeproj\'s addFramework appropriately when element has framework=true set', function() {
                 var source = copyArray(valid_source).filter(function(s) { return s.framework; });
                 spyOn(proj_files.xcode, 'addSourceFile');
                 var spy = spyOn(proj_files.xcode, 'addFramework');
@@ -193,13 +193,13 @@ describe('ios project handler', function() {
         });
 
         describe('of <header-file> elements', function() {
-            it('should throw if header-file src cannot be found', function() {
+            it('Test 012 : should throw if header-file src cannot be found', function() {
                 var headers = copyArray(invalid_headers);
                 expect(function() {
                     ios['header-file'].install(headers[1], faultyplugin, temp, faulty_id, null, proj_files);
                 }).toThrow();
             });
-            it('should throw if header-file target already exists', function() {
+            it('Test 013 : should throw if header-file target already exists', function() {
                 var headers = copyArray(valid_headers);
                 var target = path.join(temp, 'SampleApp', 'Plugins', dummy_id, 'DummyPluginCommand.h');
                 shell.mkdir('-p', path.dirname(target));
@@ -208,25 +208,25 @@ describe('ios project handler', function() {
                     ios['header-file'].install(headers[0], dummyplugin, temp, dummy_id, null, proj_files);
                 }).toThrow();
             });
-            it('should call into xcodeproj\'s addHeaderFile appropriately when element has no target-dir', function() {
+            it('Test 014 : should call into xcodeproj\'s addHeaderFile appropriately when element has no target-dir', function() {
                 var headers = copyArray(valid_headers).filter(function(s) { return s.targetDir === undefined; });
                 var spy = spyOn(proj_files.xcode, 'addHeaderFile');
                 ios['header-file'].install(headers[0], dummyplugin, temp, dummy_id,  null, proj_files);
                 expect(spy).toHaveBeenCalledWith(slashJoin('Plugins', dummy_id, 'DummyPluginCommand.h'));
             });
-            it('should call into xcodeproj\'s addHeaderFile appropriately when element a target-dir', function() {
+            it('Test 015 : should call into xcodeproj\'s addHeaderFile appropriately when element a target-dir', function() {
                 var headers = copyArray(valid_headers).filter(function(s) { return s.targetDir !== undefined; });
                 var spy = spyOn(proj_files.xcode, 'addHeaderFile');
                 ios['header-file'].install(headers[0], dummyplugin, temp, dummy_id, null, proj_files);
                 expect(spy).toHaveBeenCalledWith(slashJoin('Plugins', dummy_id, 'targetDir', 'TargetDirTest.h'));
             });
-            it('should cp the file to the right target location when element has no target-dir', function() {
+            it('Test 016 : should cp the file to the right target location when element has no target-dir', function() {
                 var headers = copyArray(valid_headers).filter(function(s) { return s.targetDir === undefined; });
                 var spy = spyOn(shell, 'cp');
                 ios['header-file'].install(headers[0], dummyplugin, temp, dummy_id, null, proj_files);
                 expect(spy).toHaveBeenCalledWith('-f', path.join(dummyplugin, 'src', 'ios', 'DummyPluginCommand.h'), path.join(temp, 'SampleApp', 'Plugins', dummy_id, 'DummyPluginCommand.h'));
             });
-            it('should cp the file to the right target location when element has a target-dir', function() {
+            it('Test 017 : should cp the file to the right target location when element has a target-dir', function() {
                 var headers = copyArray(valid_headers).filter(function(s) { return s.targetDir !== undefined; });
                 var spy = spyOn(shell, 'cp');
                 ios['header-file'].install(headers[0], dummyplugin, temp, dummy_id, null, proj_files);
@@ -235,28 +235,28 @@ describe('ios project handler', function() {
         });
 
         describe('of <resource-file> elements', function() {
-            it('should throw if resource-file src cannot be found', function() {
+            it('Test 018 : should throw if resource-file src cannot be found', function() {
                 var resources = copyArray(invalid_resources);
                 expect(function() {
                     ios['resource-file'].install(resources[0], faultyplugin, temp, 'pluginid', null, proj_files);
-                }).toThrow('cannot find "' + path.resolve(faultyplugin, 'src/ios/IDontExist.bundle') + '" ios <resource-file>');
+                }).toThrow(new Error ('cannot find "' + path.resolve(faultyplugin, 'src/ios/IDontExist.bundle') + '" ios <resource-file>'));
             });
-            it('should throw if resource-file target already exists', function() {
+            it('Test 019 : should throw if resource-file target already exists', function() {
                 var resources = copyArray(valid_resources);
                 var target = path.join(temp, 'SampleApp', 'Resources', 'DummyPlugin.bundle');
                 shell.mkdir('-p', path.dirname(target));
                 fs.writeFileSync(target, 'some bs', 'utf-8');
                 expect(function() {
                     ios['resource-file'].install(resources[0], dummyplugin, temp, 'pluginid',null, proj_files);
-                }).toThrow('target destination "' + target + '" already exists');
+                }).toThrow(new Error ('target destination "' + target + '" already exists'));
             });
-            it('should call into xcodeproj\'s addResourceFile', function() {
+            it('Test 020 : should call into xcodeproj\'s addResourceFile', function() {
                 var resources = copyArray(valid_resources);
                 var spy = spyOn(proj_files.xcode, 'addResourceFile');
                 ios['resource-file'].install(resources[0], dummyplugin, temp, 'pluginid', null, proj_files);
                 expect(spy).toHaveBeenCalledWith(path.join('Resources', 'DummyPlugin.bundle'));
             });
-            it('should cp the file to the right target location', function() {
+            it('Test 021 : should cp the file to the right target location', function() {
                 var resources = copyArray(valid_resources);
                 var spy = spyOn(shell, 'cp');
                 ios['resource-file'].install(resources[0], dummyplugin, temp, 'pluginid', null, proj_files);
@@ -265,7 +265,7 @@ describe('ios project handler', function() {
         });
         describe('of <framework> elements', function() {
 
-            it('should call into xcodeproj\'s addFramework', function() {
+            it('Test 022 : should call into xcodeproj\'s addFramework', function() {
                 var frameworks = copyArray(valid_custom_frameworks);
                 var spy = spyOn(proj_files.xcode, 'addFramework');
                 ios['framework'].install(frameworks[0], dummyplugin, temp, dummy_id, null, proj_files);
@@ -277,21 +277,21 @@ describe('ios project handler', function() {
             // * framework that shouldn't be added/removed
 
             describe('with custom="true" attribute', function () {
-                it('should throw if framework src cannot be found', function() {
+                it('Test 023 : should throw if framework src cannot be found', function() {
                     var frameworks = copyArray(invalid_custom_frameworks);
                     expect(function() {
                         ios['framework'].install(frameworks[0], faultyplugin, temp, dummy_id, null, proj_files);
-                    }).toThrow('cannot find "' + path.resolve(faultyplugin, 'src/ios/NonExistantCustomFramework.framework') + '" ios <framework>');
+                    }).toThrow(new Error ('cannot find "' + path.resolve(faultyplugin, 'src/ios/NonExistantCustomFramework.framework') + '" ios <framework>'));
                 });
-                it('should throw if framework target already exists', function() {
+                it('Test 024 : should throw if framework target already exists', function() {
                     var frameworks = copyArray(valid_custom_frameworks);
                     var target = path.join(temp, 'SampleApp/Plugins/org.test.plugins.dummyplugin/Custom.framework');
                     shell.mkdir('-p', target);
                     expect(function() {
                         ios['framework'].install(frameworks[0], dummyplugin, temp, dummy_id, null, proj_files);
-                    }).toThrow('target destination "' + target + '" already exists');
+                    }).toThrow(new Error ('target destination "' + target + '" already exists'));
                 });
-                it('should cp the file to the right target location', function() {
+                it('Test 025 : should cp the file to the right target location', function() {
                     var frameworks = copyArray(valid_custom_frameworks);
                     var spy = spyOn(shell, 'cp');
                     ios['framework'].install(frameworks[0], dummyplugin, temp, dummy_id, null, proj_files);
@@ -300,15 +300,19 @@ describe('ios project handler', function() {
                 });
             });
         });
-        it('of two plugins should apply xcode file changes from both', function(){
-            runs(function() {
-                installPromise(
-                    install('ios', temp, dummyplugin)
-                    .then(function () { install('ios', temp, weblessplugin); })
-                );
-            });
-            waitsFor(function() { return done; }, 'install promise never resolved', 200);
-            runs(function() {
+        it('Test 026 : of two plugins should apply xcode file changes from both', function(done){
+            return install('ios', temp, weblessplugin)
+            .then(function (result) { 
+                var xcode = ios.parseProjectFile(temp).xcode;
+                // from org.test.plugins.weblessplugin
+                expect(xcode.hasFile(slashJoin('Resources', 'WeblessPluginViewController.xib'))).toBeTruthy();
+                expect(xcode.hasFile(slashJoin('Plugins','org.test.plugins.weblessplugin','WeblessPluginCommand.h'))).toBeTruthy();
+                expect(xcode.hasFile(slashJoin('Plugins','org.test.plugins.weblessplugin','WeblessPluginCommand.m'))).toBeTruthy();
+                expect(xcode.hasFile('usr/lib/libsqlite3.dylib')).toBeTruthy();
+                done();
+            }).then(function () {
+                return install('ios', temp, dummyplugin)
+            }).then(function () {
                 var xcode = ios.parseProjectFile(temp).xcode;
                 // from org.test.plugins.dummyplugin
                 expect(xcode.hasFile(slashJoin('Resources', 'DummyPlugin.bundle'))).toBeTruthy();
@@ -317,32 +321,28 @@ describe('ios project handler', function() {
                 expect(xcode.hasFile(slashJoin('Plugins','org.test.plugins.dummyplugin','targetDir','TargetDirTest.h'))).toBeTruthy();
                 expect(xcode.hasFile(slashJoin('Plugins','org.test.plugins.dummyplugin','targetDir','TargetDirTest.m'))).toBeTruthy();
                 expect(xcode.hasFile(slashJoin('SampleApp','Plugins','org.test.plugins.dummyplugin','Custom.framework'))).toBeTruthy();
-                // from org.test.plugins.weblessplugin
-                expect(xcode.hasFile(slashJoin('Resources', 'WeblessPluginViewController.xib'))).toBeTruthy();
-                expect(xcode.hasFile(slashJoin('Plugins','org.test.plugins.weblessplugin','WeblessPluginCommand.h'))).toBeTruthy();
-                expect(xcode.hasFile(slashJoin('Plugins','org.test.plugins.weblessplugin','WeblessPluginCommand.m'))).toBeTruthy();
-                expect(xcode.hasFile('usr/lib/libsqlite3.dylib')).toBeTruthy();
+                done();
             });
-        });
+        }, 60000);
     });
 
     describe('uninstallation', function() {
         describe('of <source-file> elements', function() {
-            it('should call into xcodeproj\'s removeSourceFile appropriately when element has no target-dir', function(){
+            it('Test 027 : should call into xcodeproj\'s removeSourceFile appropriately when element has no target-dir', function(){
                 var source = copyArray(valid_source).filter(function(s) { return s.targetDir === undefined; });
                 shell.cp('-rf', ios_config_xml_project, temp);
                 var spy = spyOn(proj_files.xcode, 'removeSourceFile');
                 ios['source-file'].uninstall(source[0], temp, dummy_id, null, proj_files);
                 expect(spy).toHaveBeenCalledWith(slashJoin('Plugins', dummy_id, 'DummyPluginCommand.m'));
             });
-            it('should call into xcodeproj\'s removeSourceFile appropriately when element a target-dir', function(){
+            it('Test 028 : should call into xcodeproj\'s removeSourceFile appropriately when element a target-dir', function(){
                 var source = copyArray(valid_source).filter(function(s) { return s.targetDir !== undefined; });
                 shell.cp('-rf', ios_config_xml_project, temp);
                 var spy = spyOn(proj_files.xcode, 'removeSourceFile');
                 ios['source-file'].uninstall(source[0], temp, dummy_id, null, proj_files);
                 expect(spy).toHaveBeenCalledWith(slashJoin('Plugins', dummy_id, 'targetDir', 'TargetDirTest.m'));
             });
-            it('should rm the file from the right target location when element has no target-dir', function(){
+            it('Test 029 : should rm the file from the right target location when element has no target-dir', function(){
                 var source = copyArray(valid_source).filter(function(s) { return s.targetDir === undefined; });
                 shell.cp('-rf', ios_config_xml_project, temp);
 
@@ -350,7 +350,7 @@ describe('ios project handler', function() {
                 ios['source-file'].uninstall(source[0], temp, dummy_id, null, proj_files);
                 expect(spy).toHaveBeenCalledWith('-rf', path.join(temp, 'SampleApp', 'Plugins', dummy_id));
             });
-            it('should rm the file from the right target location when element has a target-dir', function(){
+            it('Test 030 : should rm the file from the right target location when element has a target-dir', function(){
                 var source = copyArray(valid_source).filter(function(s) { return s.targetDir !== undefined; });
                 shell.cp('-rf', ios_config_xml_project, temp);
                 var spy = spyOn(shell, 'rm');
@@ -358,7 +358,7 @@ describe('ios project handler', function() {
                 ios['source-file'].uninstall(source[0], temp, dummy_id, null, proj_files);
                 expect(spy).toHaveBeenCalledWith('-rf', path.join(temp, 'SampleApp', 'Plugins', dummy_id, 'targetDir'));
             });
-            it('should call into xcodeproj\'s removeFramework appropriately when element framework=true set', function(){
+            it('Test 031 : should call into xcodeproj\'s removeFramework appropriately when element framework=true set', function(){
                 var source = copyArray(valid_source).filter(function(s) { return s.framework; });
                 shell.cp('-rf', ios_config_xml_project, temp);
                 var spy = spyOn(proj_files.xcode, 'removeFramework');
@@ -372,14 +372,14 @@ describe('ios project handler', function() {
             beforeEach(function() {
                 shell.cp('-rf', ios_config_xml_project, temp);
             });
-            it('should call into xcodeproj\'s removeHeaderFile appropriately when element has no target-dir', function(){
+            it('Test 032 : should call into xcodeproj\'s removeHeaderFile appropriately when element has no target-dir', function(){
                 var headers = copyArray(valid_headers).filter(function(s) { return s.targetDir === undefined; });
                 var spy = spyOn(proj_files.xcode, 'removeHeaderFile');
 
                 ios['header-file'].uninstall(headers[0], temp, dummy_id, null, proj_files);
                 expect(spy).toHaveBeenCalledWith(slashJoin('Plugins', dummy_id, 'DummyPluginCommand.h'));
             });
-            it('should call into xcodeproj\'s removeHeaderFile appropriately when element a target-dir', function(){
+            it('Test 033 : should call into xcodeproj\'s removeHeaderFile appropriately when element a target-dir', function(){
                 var headers = copyArray(valid_headers).filter(function(s) { return s.targetDir !== undefined; });
 
                 var spy = spyOn(proj_files.xcode, 'removeHeaderFile');
@@ -387,7 +387,7 @@ describe('ios project handler', function() {
                 ios['header-file'].uninstall(headers[0], temp, dummy_id, null, proj_files);
                 expect(spy).toHaveBeenCalledWith(slashJoin('Plugins', dummy_id, 'targetDir', 'TargetDirTest.h'));
             });
-            it('should rm the file from the right target location', function(){
+            it('Test 034 : should rm the file from the right target location', function(){
                 var headers = copyArray(valid_headers).filter(function(s) { return s.targetDir !== undefined; });
                 var spy = spyOn(shell, 'rm');
 
@@ -400,14 +400,14 @@ describe('ios project handler', function() {
             beforeEach(function() {
                 shell.cp('-rf', ios_config_xml_project, temp);
             });
-            it('should call into xcodeproj\'s removeResourceFile', function(){
+            it('Test 035 : should call into xcodeproj\'s removeResourceFile', function(){
                 var resources = copyArray(valid_resources);
                 var spy = spyOn(proj_files.xcode, 'removeResourceFile');
 
                 ios['resource-file'].uninstall(resources[0], temp, 'pluginid', null, proj_files);
                 expect(spy).toHaveBeenCalledWith(path.join('Resources', 'DummyPlugin.bundle'));
             });
-            it('should rm the file from the right target location', function(){
+            it('Test 036 : should rm the file from the right target location', function(){
                 var resources = copyArray(valid_resources);
                 var spy = spyOn(shell, 'rm');
 
@@ -420,7 +420,7 @@ describe('ios project handler', function() {
                 shell.cp('-rf', ios_config_xml_project, temp);
             });
 
-            it('should call into xcodeproj\'s removeFramework', function(){
+            it('Test 037 : should call into xcodeproj\'s removeFramework', function(){
                 var frameworks = copyArray(valid_custom_frameworks);
                 var spy = spyOn(proj_files.xcode, 'removeFramework');
 
@@ -433,7 +433,7 @@ describe('ios project handler', function() {
             // * framework that shouldn't be added/removed
 
             describe('with custom="true" attribute', function () {
-                it('should rm the file from the right target location', function(){
+                it('Test 038 : should rm the file from the right target location', function(){
                     var frameworks = copyArray(valid_custom_frameworks);
                     var spy = spyOn(shell, 'rm');
 

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-plugman/platforms/tizen.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/platforms/tizen.spec.js b/cordova-lib/spec-plugman/platforms/tizen.spec.js
index 04d2f0f..f4a5bba 100644
--- a/cordova-lib/spec-plugman/platforms/tizen.spec.js
+++ b/cordova-lib/spec-plugman/platforms/tizen.spec.js
@@ -37,13 +37,13 @@ var tizen = require('../../src/plugman/platforms/tizen'),
 
 describe('Tizen project handler', function() {
 	describe('www_dir method', function() {
-		it('should append www to the directory passed in', function() {
+		it('Test 001 : should append www to the directory passed in', function() {
 			expect(tizen.www_dir(path.sep)).toEqual(path.join(path.sep, 'www'));
 		});
 	});
 	describe('Manipulating project files', function() {
 		describe('package_name method', function() {
-			it('should return the id of the config.xml root element', function() {
+			it('Test 002 : should return the id of the config.xml root element', function() {
 				expect(tizen.package_name(tizen_project)).toEqual('TizenTestPackage');
 			});
 		});


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


[06/50] [abbrv] cordova-lib git commit: CB-11685 Updated version and RELEASENOTES.md for 6.3.1 release

Posted by st...@apache.org.
CB-11685 Updated version and RELEASENOTES.md for 6.3.1 release


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

Branch: refs/heads/fetch-1.0.x
Commit: 860e7460e38402e67d55cd61b8313fed724bf6af
Parents: 8426d4d
Author: Vladimir Kotikov <v-...@microsoft.com>
Authored: Mon Aug 8 10:55:36 2016 +0300
Committer: Steve Gill <st...@gmail.com>
Committed: Fri Oct 21 22:15:40 2016 -0700

----------------------------------------------------------------------
 cordova-lib/RELEASENOTES.md | 7 +++++++
 1 file changed, 7 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/860e7460/cordova-lib/RELEASENOTES.md
----------------------------------------------------------------------
diff --git a/cordova-lib/RELEASENOTES.md b/cordova-lib/RELEASENOTES.md
index dc3f77d..95179ba 100644
--- a/cordova-lib/RELEASENOTES.md
+++ b/cordova-lib/RELEASENOTES.md
@@ -20,6 +20,13 @@
 -->
 # Cordova-lib Release Notes
 
+### 6.3.1 (Aug 08, 2016)
+* [CB-11652](https://issues.apache.org/jira/browse/CB-11652) Update run and emulate to skip build
+* [CB-11194](https://issues.apache.org/jira/browse/CB-11194) Defer creating of libDir folder until something actually requests it
+* [CB-11493](https://issues.apache.org/jira/browse/CB-11493) Add cordova emulate option to skip prepare
+* [CB-11205](https://issues.apache.org/jira/browse/CB-11205) Respect saved variables when installing plugin
+* [CB-11589](https://issues.apache.org/jira/browse/CB-11589) Fix missing plugin files after restore
+
 ### 6.3.0 (Jul 12, 2016)
 * [CB-11491](https://issues.apache.org/jira/browse/CB-11491) Introduce before_deploy hook
 * [CB-11412](https://issues.apache.org/jira/browse/CB-11412) template support for www folders


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


[05/50] [abbrv] cordova-lib git commit: CB-11569 Updated version and RELEASENOTES.md for cordova-lib release 6.3.0

Posted by st...@apache.org.
CB-11569 Updated version and RELEASENOTES.md for cordova-lib release 6.3.0


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

Branch: refs/heads/fetch-1.0.x
Commit: 8426d4d6d43fce5239a7a61a653aa62807defcf9
Parents: 4c1a8e1
Author: Vladimir Kotikov <v-...@microsoft.com>
Authored: Tue Jul 12 18:48:46 2016 +0300
Committer: Steve Gill <st...@gmail.com>
Committed: Fri Oct 21 22:14:07 2016 -0700

----------------------------------------------------------------------
 cordova-lib/RELEASENOTES.md | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/8426d4d6/cordova-lib/RELEASENOTES.md
----------------------------------------------------------------------
diff --git a/cordova-lib/RELEASENOTES.md b/cordova-lib/RELEASENOTES.md
index 194eb18..dc3f77d 100644
--- a/cordova-lib/RELEASENOTES.md
+++ b/cordova-lib/RELEASENOTES.md
@@ -20,6 +20,21 @@
 -->
 # Cordova-lib Release Notes
 
+### 6.3.0 (Jul 12, 2016)
+* [CB-11491](https://issues.apache.org/jira/browse/CB-11491) Introduce before_deploy hook
+* [CB-11412](https://issues.apache.org/jira/browse/CB-11412) template support for www folders
+* Fix config.xml path in PlatformApi.prepare
+* [CB-11412](https://issues.apache.org/jira/browse/CB-11412) improve template implementation
+* [CB-11164](https://issues.apache.org/jira/browse/CB-11164) Allow forced dependent plugin removal
+* [CB-11339](https://issues.apache.org/jira/browse/CB-11339) Add a warning about prerelease platform usage
+* [CB-11349](https://issues.apache.org/jira/browse/CB-11349) added --fetch and cordova fetch to create --template
+* [CB-11337](https://issues.apache.org/jira/browse/CB-11337) Use latest released platform version in e2e tests
+* [CB-11274](https://issues.apache.org/jira/browse/CB-11274) Platform browser: wrong path for config.xml
+* [CB-11274](https://issues.apache.org/jira/browse/CB-11274) Make serve dashboard take config.xml -> content.src entry point into account
+* [CB-11261](https://issues.apache.org/jira/browse/CB-11261) Cut out '-nightly' prerelease tag when checking plugin engines
+* [CB-9858](https://issues.apache.org/jira/browse/CB-9858) added fetch tests to travis
+* [CB-9858](https://issues.apache.org/jira/browse/CB-9858) fixed failing travis and appveyor tests
+
 ### 6.2.0 (May 12, 2016)
 * [CB-11259](https://issues.apache.org/jira/browse/CB-11259) Improving prepare and build logging
 * Resolve npm run jshint failure due to npm/npm#10343


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


[50/50] [abbrv] cordova-lib git commit: CB-12358 Incremented package version to -dev

Posted by st...@apache.org.
CB-12358 Incremented package version to -dev


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

Branch: refs/heads/master
Commit: 3af82219f11f537cdaa38a95af91eada230ec831
Parents: 6548e59
Author: Steve Gill <st...@gmail.com>
Authored: Tue Jan 17 17:55:42 2017 -0800
Committer: Steve Gill <st...@gmail.com>
Committed: Tue Jan 17 17:55:42 2017 -0800

----------------------------------------------------------------------
 cordova-common/package.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/3af82219/cordova-common/package.json
----------------------------------------------------------------------
diff --git a/cordova-common/package.json b/cordova-common/package.json
index 58fac61..dd20762 100644
--- a/cordova-common/package.json
+++ b/cordova-common/package.json
@@ -3,7 +3,7 @@
   "name": "cordova-common",
   "description": "Apache Cordova tools and platforms shared routines",
   "license": "Apache-2.0",
-  "version": "2.0.0",
+  "version": "2.0.1-dev",
   "repository": {
     "type": "git",
     "url": "git://git-wip-us.apache.org/repos/asf/cordova-common.git"


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


[32/50] [abbrv] cordova-lib git commit: fixjasmine : CB-12018 : updated jasmine tests after final review

Posted by st...@apache.org.
fixjasmine : CB-12018 : updated jasmine tests after final review

 This closes #510


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

Branch: refs/heads/fetch-1.0.x
Commit: 1818532a09ca89a418ee097b2b2778131966ff73
Parents: 159b534
Author: audreyso <au...@adobe.com>
Authored: Wed Jan 11 09:21:38 2017 -0800
Committer: Steve Gill <st...@gmail.com>
Committed: Wed Jan 11 17:26:59 2017 -0800

----------------------------------------------------------------------
 cordova-common/spec/ActionStack.spec.js            |  2 +-
 cordova-common/spec/CordovaCheck.spec.js           |  6 +++---
 cordova-lib/spec-cordova/plugin.spec.js            | 13 -------------
 cordova-lib/spec-plugman/create.spec.js            |  1 +
 cordova-lib/spec-plugman/install.spec.js           |  4 ++--
 cordova-lib/spec-plugman/platforms/windows.spec.js |  6 ------
 6 files changed, 7 insertions(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/1818532a/cordova-common/spec/ActionStack.spec.js
----------------------------------------------------------------------
diff --git a/cordova-common/spec/ActionStack.spec.js b/cordova-common/spec/ActionStack.spec.js
index e0b7d7d..80d6c4d 100644
--- a/cordova-common/spec/ActionStack.spec.js
+++ b/cordova-common/spec/ActionStack.spec.js
@@ -60,7 +60,7 @@ describe('action-stack', function() {
             // process should throw
             var error;
             stack.process('android', android_one_project)
-            .then(function(something){
+            .then(function(){
                 expect(false).toBe(true);
             }).fail(function(err){
                 error = err;

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/1818532a/cordova-common/spec/CordovaCheck.spec.js
----------------------------------------------------------------------
diff --git a/cordova-common/spec/CordovaCheck.spec.js b/cordova-common/spec/CordovaCheck.spec.js
index abaaa14..8745a40 100644
--- a/cordova-common/spec/CordovaCheck.spec.js
+++ b/cordova-common/spec/CordovaCheck.spec.js
@@ -30,9 +30,9 @@ describe('findProjectRoot method', function() {
         process.env.PWD = origPWD;
         process.chdir(cwd);
     });
-function removeDir(someDirectory) {
-    shell.rm('-rf', someDirectory);
-}
+    function removeDir(someDirectory) {
+        shell.rm('-rf', someDirectory);
+    }
     it('Test 001 : should return false if it hits the home directory', function() {
         var somedir = path.join(home, 'somedir');
         removeDir(somedir);

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/1818532a/cordova-lib/spec-cordova/plugin.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/plugin.spec.js b/cordova-lib/spec-cordova/plugin.spec.js
index 3441ce1..f81f863 100644
--- a/cordova-lib/spec-cordova/plugin.spec.js
+++ b/cordova-lib/spec-cordova/plugin.spec.js
@@ -83,7 +83,6 @@ function removePlugin(id) {
 var errorHandler = {
     errorCallback: function(error) {
         // We want the error to be printed by jasmine
-        console.log(error);
         expect(error).toBeUndefined();
     }
 };
@@ -152,7 +151,6 @@ describe('plugin end-to-end', function() {
             return removePlugin(pluginId);
         })
         .fail(function(err) {
-            console.error(err);
             expect(err).toBeUndefined();
         })
         .fin(done);
@@ -169,7 +167,6 @@ describe('plugin end-to-end', function() {
             expect(prepare.preparePlatforms).toHaveBeenCalled();
         })
         .fail(function(err) {
-            console.error(err);
             expect(err).toBeUndefined();
         })
         .fin(done);
@@ -186,7 +183,6 @@ describe('plugin end-to-end', function() {
             expect(prepare.preparePlatforms).not.toHaveBeenCalled();
         })
         .fail(function(err) {
-            console.error(err);
             expect(err).toBeUndefined();
         })
         .fin(done);
@@ -210,7 +206,6 @@ describe('plugin end-to-end', function() {
             return removePlugin(pluginId);
         })
         .fail(function(err) {
-            console.error(err);
             expect(err).toBeUndefined();
         })
         .fin(done);
@@ -230,7 +225,6 @@ describe('plugin end-to-end', function() {
             return removePlugin(org_test_defaultvariables);
        })
         .fail(function(err) {
-            console.error(err);
             expect(err).toBeUndefined();
         })
         .fin(done);
@@ -239,7 +233,6 @@ describe('plugin end-to-end', function() {
     it('Test 006 : should successfully add a plugin when specifying CLI variables', function(done) {
         addPlugin(path.join(pluginsDir, org_test_defaultvariables), org_test_defaultvariables, {cli_variables: { REQUIRED:'yes', REQUIRED_ANDROID:'yes'}}, done)
         .fail(function(err) {
-            console.error(err);
             expect(err).toBeUndefined();
         })
         .fin(done);
@@ -255,7 +248,6 @@ describe('plugin end-to-end', function() {
             expect(fetchOptions.searchpath[0]).toExist();
         })
         .fail(function(err) {
-            console.error(err);
             expect(err).toBeUndefined();
         })
         .fin(done);
@@ -273,7 +265,6 @@ describe('plugin end-to-end', function() {
             expect(fetchOptions.noregistry).toBeTruthy();
         })
         .fail(function(err) {
-            console.error(err);
             expect(err).toBeUndefined();
         })
         .fin(done);
@@ -286,7 +277,6 @@ describe('plugin end-to-end', function() {
             expect(registry.info).not.toHaveBeenCalled();
         })
         .fail(function(err) {
-            console.error(err);
             expect(err).toBeUndefined();
         })
         .fin(done);
@@ -304,7 +294,6 @@ describe('plugin end-to-end', function() {
             expect(fetchTarget).toEqual(npmInfoTestPlugin + '@' + npmInfoTestPluginVersion);
         })
         .fail(function(err) {
-            console.error(err);
             expect(err).toBeUndefined();
         })
         .fin(done);
@@ -326,7 +315,6 @@ describe('plugin end-to-end', function() {
             expect(fetchTarget).toEqual(scopedPackage);
         })
         .fail(function(err) {
-            console.error(err);
             expect(err).toBeUndefined();
         })
         .fin(done);
@@ -345,7 +333,6 @@ describe('plugin end-to-end', function() {
             expect(fetchTarget).toEqual(scopedPackage);
         })
         .fail(function(err) {
-            console.error(err);
             expect(err).toBeUndefined();
         })
         .fin(done);

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/1818532a/cordova-lib/spec-plugman/create.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/create.spec.js b/cordova-lib/spec-plugman/create.spec.js
index 524a5ce..64b0cdc 100644
--- a/cordova-lib/spec-plugman/create.spec.js
+++ b/cordova-lib/spec-plugman/create.spec.js
@@ -49,6 +49,7 @@ describe( 'create plugin', function() {
             expect( writeFileSync.calls.count() ).toEqual( 2 );
             done();
         }).fail(function err(errMsg) {
+            expect(errMsg).toBeUndefined();
             done();
         });
     }, 6000);

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/1818532a/cordova-lib/spec-plugman/install.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/install.spec.js b/cordova-lib/spec-plugman/install.spec.js
index 3f2b7da..4e486f0 100644
--- a/cordova-lib/spec-plugman/install.spec.js
+++ b/cordova-lib/spec-plugman/install.spec.js
@@ -213,7 +213,7 @@ describe('install', function() {
             spyOn(fs, 'existsSync').and.callFake( fake['existsSync']['noPlugins'] );
             install('android', project, 'CLEANYOURSHORTS')
             .fail(function(err){
-                console.log(err);
+                expect(err).toBeUndefined();
             })
             .fin(function () {
                 expect(fetchSpy).toHaveBeenCalled();
@@ -230,7 +230,7 @@ describe('install', function() {
                 return true;
             })
             .fail(function(err){
-                console.log(err);
+                expect(err).toBeUndefined();
             })
             .fin(function () {
                 expect(emit.calls.argsFor(0)[1]).toBe('Notice: org.apache.cordova.device has been automatically converted to cordova-plugin-device and fetched from npm. This is due to our old plugins registry shutting down.');

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/1818532a/cordova-lib/spec-plugman/platforms/windows.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/platforms/windows.spec.js b/cordova-lib/spec-plugman/platforms/windows.spec.js
index 5b68c3d..3528a2e 100644
--- a/cordova-lib/spec-plugman/platforms/windows.spec.js
+++ b/cordova-lib/spec-plugman/platforms/windows.spec.js
@@ -131,8 +131,6 @@ beforeEach(function () {
             });
 
             function validateInstalledProjects(tag, elementToInstall, xpath, supportedPlatforms) {
-                //jasmine.getEnv().currentSpec.removeAllSpies();
-                
 
                 var projects = copyArray(proj_files.projects);
                 if (platform === 'windows') {
@@ -203,12 +201,10 @@ beforeEach(function () {
 
                 projectsAddedToSpies.forEach(function (spy) {
                     expect(spy).toHaveBeenCalled();
-                    spy.calls.reset();
                 });
 
                 projectsNotAddedToSpies.forEach(function (spy) {
                     expect(spy).not.toHaveBeenCalled();
-                    spy.calls.reset();
                 });
             }
 
@@ -452,12 +448,10 @@ beforeEach(function () {
 
                 projectsAddedToSpies.forEach(function (spy) {
                     expect(spy).toHaveBeenCalledWith(xmlPath, incText, targetConditions);
-                    spy.calls.reset();
                 });
 
                 projectsNotAddedToSpies.forEach(function (spy) {
                     expect(spy).not.toHaveBeenCalled();
-                    spy.calls.reset();
                 });
             }
 


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


[28/50] [abbrv] cordova-lib git commit: fixjasmine : CB-12018 : fixed jasmine tests to work with uninstallPlugin and removed waitsFor/runs, updated promise syntax, calls.reset, and labled tests

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-cordova/metadata/firefoxos_parser.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/metadata/firefoxos_parser.spec.js b/cordova-lib/spec-cordova/metadata/firefoxos_parser.spec.js
index 295e54e..ea09574 100644
--- a/cordova-lib/spec-cordova/metadata/firefoxos_parser.spec.js
+++ b/cordova-lib/spec-cordova/metadata/firefoxos_parser.spec.js
@@ -43,11 +43,11 @@ describe('firefoxos project parser', function() {
     var proj = path.join('some', 'path');
     var exists, exec, custom;
     beforeEach(function() {
-        exists = spyOn(fs, 'existsSync').andReturn(true);
-        exec = spyOn(shell, 'exec').andCallFake(function(cmd, opts, cb) {
+        exists = spyOn(fs, 'existsSync').and.returnValue(true);
+        exec = spyOn(shell, 'exec').and.callFake(function(cmd, opts, cb) {
             cb(0, '');
         });
-        custom = spyOn(config, 'has_custom_path').andReturn(false);
+        custom = spyOn(config, 'has_custom_path').and.returnValue(false);
     });
 
     describe('constructions', function() {
@@ -77,11 +77,11 @@ describe('firefoxos project parser', function() {
             p = new firefoxosParser(ff_proj);
             cp = spyOn(shell, 'cp');
             rm = spyOn(shell, 'rm');
-            is_cordova = spyOn(util, 'isCordova').andReturn(proj);
+            is_cordova = spyOn(util, 'isCordova').and.returnValue(proj);
             write = spyOn(fs, 'writeFileSync');
             read = spyOn(fs, 'readFileSync');
 
-            spyOn(JSON, 'parse').andCallFake(function (path) {
+            spyOn(JSON, 'parse').and.callFake(function (path) {
                 if (/manifest.webapp$/.exec(path)) {
                     return manifestJson = _.extend({}, MANIFEST_JSON);
                 } else {
@@ -96,39 +96,39 @@ describe('firefoxos project parser', function() {
                 cfg.name = function() { return 'testname'; };
                 cfg.packageName = function() { return 'testpkg'; };
                 cfg.version = function() { return '1.0'; };
-                read.andReturn(p.manifest_path);
+                read.and.returnValue(p.manifest_path);
             });
             it('should write manifest.webapp', function() {
                 p.update_from_config(cfg);
-                expect(write.mostRecentCall.args[0]).toEqual(p.manifest_path);
+                expect(write.calls.mostRecent().args[0]).toEqual(p.manifest_path);
             });
             it('should write out the orientation preference value', function() {
-                getOrientation.andCallThrough();
+                getOrientation.and.callThrough();
                 p.update_from_config(cfg);
                 expect(manifestJson.orientation).toEqual([ 'portrait' ]);
             });
             it('should handle no orientation', function () {
-                getOrientation.andReturn('');
+                getOrientation.and.returnValue('');
                 p.update_from_config(cfg);
                 expect(manifestJson.orientation).toBeUndefined();
             });
             it('should handle default orientation', function () {
-                getOrientation.andReturn(p.helper.ORIENTATION_DEFAULT);
+                getOrientation.and.returnValue(p.helper.ORIENTATION_DEFAULT);
                 p.update_from_config(cfg);
                 expect(manifestJson.orientation).toBeUndefined();
             });
             it('should handle portrait orientation', function () {
-                getOrientation.andReturn(p.helper.ORIENTATION_PORTRAIT);
+                getOrientation.and.returnValue(p.helper.ORIENTATION_PORTRAIT);
                 p.update_from_config(cfg);
                 expect(manifestJson.orientation).toEqual([ 'portrait' ]);
             });
             it('should handle landscape orientation', function () {
-                getOrientation.andReturn(p.helper.ORIENTATION_LANDSCAPE);
+                getOrientation.and.returnValue(p.helper.ORIENTATION_LANDSCAPE);
                 p.update_from_config(cfg);
                 expect(manifestJson.orientation).toEqual([ 'landscape' ]);
             });
             it('should handle custom orientation', function () {
-                getOrientation.andReturn('some-custom-orientation');
+                getOrientation.and.returnValue('some-custom-orientation');
                 p.update_from_config(cfg);
                 expect(manifestJson.orientation).toEqual([ 'some-custom-orientation' ]);
             });

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-cordova/metadata/ios_parser.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/metadata/ios_parser.spec.js b/cordova-lib/spec-cordova/metadata/ios_parser.spec.js
index 736d48a..3284c8c 100644
--- a/cordova-lib/spec-cordova/metadata/ios_parser.spec.js
+++ b/cordova-lib/spec-cordova/metadata/ios_parser.spec.js
@@ -41,7 +41,7 @@ var cfg2 = new ConfigParser(path.join(__dirname, '..', 'test-config-2.xml'));
 describe('ios project parser', function () {
     var custom;
     beforeEach(function() {
-        custom = spyOn(config, 'has_custom_path').andReturn(false);
+        custom = spyOn(config, 'has_custom_path').and.returnValue(false);
         shell.mkdir('-p', ios_proj);
         shell.cp('-rf', iosProjectFixture + '/*', ios_proj);
     });
@@ -90,7 +90,7 @@ describe('ios project parser', function () {
         var p, is_cordova, getOrientation;
         beforeEach(function() {
             p = new iosParser(ios_proj);
-            is_cordova = spyOn(util, 'isCordova').andReturn(proj);
+            is_cordova = spyOn(util, 'isCordova').and.returnValue(proj);
             getOrientation = spyOn(p.helper, 'getOrientation');
         });
 
@@ -101,13 +101,13 @@ describe('ios project parser', function () {
             var xcOrig = xcode.project;
             beforeEach(function() {
                 mv = spyOn(shell, 'mv');
-                plist_parse = spyOn(plist, 'parse').andReturn({
+                plist_parse = spyOn(plist, 'parse').and.returnValue({
                 });
-                plist_build = spyOn(plist, 'build').andReturn('');
+                plist_build = spyOn(plist, 'build').and.returnValue('');
                 xc = spyOn(xcode, 'project')
-                .andCallFake(function (pbxproj) {
+                .and.callFake(function (pbxproj) {
                     var xc = new xcOrig(pbxproj);
-                    update_name = spyOn(xc, 'updateProductName').andCallThrough();
+                    update_name = spyOn(xc, 'updateProductName').and.callThrough();
                     return xc;
                 });
                 cfg.name = function() { return 'testname'; };
@@ -144,7 +144,7 @@ describe('ios project parser', function () {
                 });
             });
             it('should write out the orientation preference value', function(done) {
-                getOrientation.andCallThrough();
+                getOrientation.and.callThrough();
                 wrapper(p.update_from_config(cfg), done, function() {
                     expect(plist_build.mostRecentCall.args[0].UISupportedInterfaceOrientations).toEqual([ 'UIInterfaceOrientationPortrait', 'UIInterfaceOrientationPortraitUpsideDown' ]);
                     expect(plist_build.mostRecentCall.args[0]['UISupportedInterfaceOrientations~ipad']).toEqual([ 'UIInterfaceOrientationPortrait', 'UIInterfaceOrientationPortraitUpsideDown' ]);
@@ -152,7 +152,7 @@ describe('ios project parser', function () {
                 });
             });
             it('should handle no orientation', function(done) {
-                getOrientation.andReturn('');
+                getOrientation.and.returnValue('');
                 wrapper(p.update_from_config(cfg), done, function() {
                     expect(plist_build.mostRecentCall.args[0].UISupportedInterfaceOrientations).toBeUndefined();
                     expect(plist_build.mostRecentCall.args[0]['UISupportedInterfaceOrientations~ipad']).toBeUndefined();
@@ -160,7 +160,7 @@ describe('ios project parser', function () {
                 });
             });
             it('should handle default orientation', function(done) {
-                getOrientation.andReturn(p.helper.ORIENTATION_DEFAULT);
+                getOrientation.and.returnValue(p.helper.ORIENTATION_DEFAULT);
                 wrapper(p.update_from_config(cfg), done, function() {
                     expect(plist_build.mostRecentCall.args[0].UISupportedInterfaceOrientations).toBeUndefined();
                     expect(plist_build.mostRecentCall.args[0]['UISupportedInterfaceOrientations~ipad']).toBeUndefined();
@@ -168,28 +168,28 @@ describe('ios project parser', function () {
                 });
             });
             it('should handle portrait orientation', function(done) {
-                getOrientation.andReturn(p.helper.ORIENTATION_PORTRAIT);
+                getOrientation.and.returnValue(p.helper.ORIENTATION_PORTRAIT);
                 wrapper(p.update_from_config(cfg), done, function() {
                     expect(plist_build.mostRecentCall.args[0].UISupportedInterfaceOrientations).toEqual([ 'UIInterfaceOrientationPortrait', 'UIInterfaceOrientationPortraitUpsideDown' ]);
                     expect(plist_build.mostRecentCall.args[0].UIInterfaceOrientation).toEqual([ 'UIInterfaceOrientationPortrait' ]);
                 });
             });
             it('should handle landscape orientation', function(done) {
-                getOrientation.andReturn(p.helper.ORIENTATION_LANDSCAPE);
+                getOrientation.and.returnValue(p.helper.ORIENTATION_LANDSCAPE);
                 wrapper(p.update_from_config(cfg), done, function() {
                     expect(plist_build.mostRecentCall.args[0].UISupportedInterfaceOrientations).toEqual([ 'UIInterfaceOrientationLandscapeLeft', 'UIInterfaceOrientationLandscapeRight' ]);
                     expect(plist_build.mostRecentCall.args[0].UIInterfaceOrientation).toEqual([ 'UIInterfaceOrientationLandscapeLeft' ]);
                 });
             });
             it('should handle all orientation on ios', function(done) {
-                getOrientation.andReturn(p.helper.ORIENTATION_ALL);
+                getOrientation.and.returnValue(p.helper.ORIENTATION_ALL);
                 wrapper(p.update_from_config(cfg2), done, function() {
                     expect(plist_build.mostRecentCall.args[0].UISupportedInterfaceOrientations).toEqual([ 'UIInterfaceOrientationPortrait', 'UIInterfaceOrientationPortraitUpsideDown', 'UIInterfaceOrientationLandscapeLeft', 'UIInterfaceOrientationLandscapeRight' ]);
                     expect(plist_build.mostRecentCall.args[0].UIInterfaceOrientation).toEqual([ 'UIInterfaceOrientationPortrait' ]);
                 });
             });
             it('should handle custom orientation', function(done) {
-                getOrientation.andReturn('some-custom-orientation');
+                getOrientation.and.returnValue('some-custom-orientation');
                 wrapper(p.update_from_config(cfg), done, function() {
                     expect(plist_build.mostRecentCall.args[0].UISupportedInterfaceOrientations).toBeUndefined();
                     expect(plist_build.mostRecentCall.args[0].UIInterfaceOrientation).toEqual([ 'some-custom-orientation' ]);
@@ -429,8 +429,8 @@ describe('ios project parser', function () {
             var cp, rm;
 
             beforeEach(function () {
-                rm = spyOn(shell, 'rm').andCallThrough();
-                cp = spyOn(shell, 'cp').andCallThrough();
+                rm = spyOn(shell, 'rm').and.callThrough();
+                cp = spyOn(shell, 'cp').and.callThrough();
             });
 
             it('should rm project-level www and cp in platform agnostic www', function() {
@@ -442,20 +442,20 @@ describe('ios project parser', function () {
         describe('update_overrides method', function() {
             var exists, rm, cp;
             beforeEach(function() {
-                exists = spyOn(fs, 'existsSync').andCallThrough();
-                rm = spyOn(shell, 'rm').andCallThrough();
-                cp = spyOn(shell, 'cp').andCallThrough();
+                exists = spyOn(fs, 'existsSync').and.callThrough();
+                rm = spyOn(shell, 'rm').and.callThrough();
+                cp = spyOn(shell, 'cp').and.callThrough();
             });
             it('should do nothing if merges directory does not exist', function() {
-                cp.reset();
-                exists.andReturn(false);
+                cp.calls.reset();
+                exists.and.returnValue(false);
                 p.update_overrides();
                 expect(cp).not.toHaveBeenCalled();
             });
             it('should copy merges path into www', function() {
-                cp.andCallFake(function(){});
-                cp.reset();
-                exists.andReturn(true);
+                cp.and.callFake(function(){});
+                cp.calls.reset();
+                exists.and.returnValue(true);
                 p.update_overrides();
                 expect(cp).toHaveBeenCalled();
             });
@@ -463,7 +463,7 @@ describe('ios project parser', function () {
         describe('update_project method', function() {
             var config, www, overrides, svn;
             beforeEach(function() {
-                config = spyOn(p, 'update_from_config').andReturn(Q());
+                config = spyOn(p, 'update_from_config').and.returnValue(Q());
                 www = spyOn(p, 'update_www');
                 overrides = spyOn(p, 'update_overrides');
                 svn = spyOn(util, 'deleteSvnFolders');
@@ -475,7 +475,7 @@ describe('ios project parser', function () {
             });
             it('should throw if update_from_config errors', function(done) {
                 var e = new Error('uh oh!');
-                config.andReturn(Q.reject(e));
+                config.and.returnValue(Q.reject(e));
                 errorWrapper(p.update_project({}), done, function(err) {
                     expect(err).toEqual(e);
                 });

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-cordova/metadata/parserhelper/preferences.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/metadata/parserhelper/preferences.spec.js b/cordova-lib/spec-cordova/metadata/parserhelper/preferences.spec.js
index 3344bff..0b4ecff 100644
--- a/cordova-lib/spec-cordova/metadata/parserhelper/preferences.spec.js
+++ b/cordova-lib/spec-cordova/metadata/parserhelper/preferences.spec.js
@@ -105,13 +105,13 @@ describe('preferences', function() {
                 var configXml, configParser;
                 
                 configXml = '<?xml version="1.0" encoding="UTF-8"?><widget><preference name="orientation" value="all" /></widget>';
-                readFile.andReturn(configXml);
+                readFile.and.returnValue(configXml);
                 configParser = new ConfigParser(xml);
 
                 expect(preferences.getOrientation(configParser, 'ios')).toEqual('all');
                 
                 configXml = '<?xml version="1.0" encoding="UTF-8"?><widget><preference name="orientation" value="sensorLandscape" /></widget>';
-                readFile.andReturn(configXml);
+                readFile.and.returnValue(configXml);
                 configParser = new ConfigParser(xml);
                 
                 expect(preferences.getOrientation(configParser, 'android')).toEqual('sensorLandscape');
@@ -119,14 +119,14 @@ describe('preferences', function() {
             
             it('should handle no orientation', function() {
                 var configXml = '<?xml version="1.0" encoding="UTF-8"?><widget></widget>';
-                readFile.andReturn(configXml);
+                readFile.and.returnValue(configXml);
                 var configParser = new ConfigParser(xml);
                 expect(preferences.getOrientation(configParser)).toEqual('');
                 expect(emit).not.toHaveBeenCalled();
             });
             it('should handle invalid global orientation', function() {
                 var configXml = '<?xml version="1.0" encoding="UTF-8"?><widget><preference name="orientation" value="foobar" /></widget>';
-                readFile.andReturn(configXml);
+                readFile.and.returnValue(configXml);
                 var configParser = new ConfigParser(xml);
                 expect(preferences.getOrientation(configParser)).toEqual('default');
                 expect(emit).toHaveBeenCalledWith('warn', 'Unsupported global orientation: foobar');
@@ -135,7 +135,7 @@ describe('preferences', function() {
             
             it('should handle custom platform-specific orientation', function() {
                 var configXml = '<?xml version="1.0" encoding="UTF-8"?><widget><platform name="some-platform"><preference name="orientation" value="foobar" /></platform></widget>';
-                readFile.andReturn(configXml);
+                readFile.and.returnValue(configXml);
                 var configParser = new ConfigParser(xml);
                 expect(preferences.getOrientation(configParser, 'some-platform')).toEqual('foobar');
             });

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-cordova/metadata/webos_parser.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/metadata/webos_parser.spec.js b/cordova-lib/spec-cordova/metadata/webos_parser.spec.js
index 5dad2e9..4641339 100755
--- a/cordova-lib/spec-cordova/metadata/webos_parser.spec.js
+++ b/cordova-lib/spec-cordova/metadata/webos_parser.spec.js
@@ -29,11 +29,11 @@ describe('webos project parser', function() {
     var proj = path.join('some', 'path');
     var exists, exec, custom;
     beforeEach(function() {
-        exists = spyOn(fs, 'existsSync').andReturn(true);
-        exec = spyOn(shell, 'exec').andCallFake(function(cmd, opts, cb) {
+        exists = spyOn(fs, 'existsSync').and.returnValue(true);
+        exec = spyOn(shell, 'exec').and.callFake(function(cmd, opts, cb) {
             cb(0, '');
         });
-        custom = spyOn(config, 'has_custom_path').andReturn(false);
+        custom = spyOn(config, 'has_custom_path').and.returnValue(false);
     });
 
     describe('constructions', function() {
@@ -52,9 +52,9 @@ describe('webos project parser', function() {
             p = new webosParser(wos_proj);
             cp = spyOn(shell, 'cp');
             rm = spyOn(shell, 'rm');
-            is_cordova = spyOn(util, 'isCordova').andReturn(proj);
+            is_cordova = spyOn(util, 'isCordova').and.returnValue(proj);
             write = spyOn(fs, 'writeFileSync');
-            read = spyOn(fs, 'readFileSync').andReturn('');
+            read = spyOn(fs, 'readFileSync').and.returnValue('');
         });
 
         describe('update_from_config method', function() {

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-cordova/metadata/windows_parser.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/metadata/windows_parser.spec.js b/cordova-lib/spec-cordova/metadata/windows_parser.spec.js
index 3f3bf11..2a2b4f6 100644
--- a/cordova-lib/spec-cordova/metadata/windows_parser.spec.js
+++ b/cordova-lib/spec-cordova/metadata/windows_parser.spec.js
@@ -41,13 +41,13 @@ describe('windows project parser', function() {
     var exists, exec, custom, readdir, config_read;
     var winXml;
     beforeEach(function() {
-        exists = spyOn(fs, 'existsSync').andReturn(true);
-        exec = spyOn(child_process, 'exec').andCallFake(function(cmd, opts, cb) {
+        exists = spyOn(fs, 'existsSync').and.returnValue(true);
+        exec = spyOn(child_process, 'exec').and.callFake(function(cmd, opts, cb) {
             if (!cb) cb = opts;
             cb(null, '', '');
         });
-        custom = spyOn(config, 'has_custom_path').andReturn(false);
-        config_read = spyOn(config, 'read').andCallFake(function() {
+        custom = spyOn(config, 'has_custom_path').and.returnValue(false);
+        config_read = spyOn(config, 'read').and.callFake(function() {
             return custom() ? {
                 lib: {
                     windows: {
@@ -57,9 +57,9 @@ describe('windows project parser', function() {
             }
             : ({});
         });
-        readdir = spyOn(fs, 'readdirSync').andReturn(['TestApp.projitems']);
+        readdir = spyOn(fs, 'readdirSync').and.returnValue(['TestApp.projitems']);
         winXml = null;
-        spyOn(xmlHelpers, 'parseElementtreeSync').andCallFake(function(path) {
+        spyOn(xmlHelpers, 'parseElementtreeSync').and.callFake(function(path) {
             return winXml = new et.ElementTree(et.XML('<foo><Application/><Identity/><VisualElements><a/></VisualElements><Capabilities><a/></Capabilities></foo>'));
         });
     });
@@ -78,7 +78,7 @@ describe('windows project parser', function() {
 
     describe('constructions', function() {
         it('should throw if provided directory does not contain a projitems file', function() {
-            readdir.andReturn([]);
+            readdir.and.returnValue([]);
             expect(function() {
                 new windowsParser(proj);
             }).toThrow();
@@ -108,9 +108,9 @@ describe('windows project parser', function() {
             rm = spyOn(shell, 'rm');
             mv = spyOn(shell, 'mv');
             mkdir = spyOn(shell, 'mkdir');
-            is_cordova = spyOn(util, 'isCordova').andReturn(proj);
+            is_cordova = spyOn(util, 'isCordova').and.returnValue(proj);
             write = spyOn(fs, 'writeFileSync');
-            read = spyOn(fs, 'readFileSync').andReturn('');
+            read = spyOn(fs, 'readFileSync').and.returnValue('');
         });
 
         describe('update_from_config method', function() {
@@ -142,10 +142,10 @@ describe('windows project parser', function() {
             beforeEach(function() {
                 config = spyOn(parser, 'update_from_config');
                 www = spyOn(parser, 'update_www');
-                shellls = spyOn(shell, 'ls').andReturn([]);
+                shellls = spyOn(shell, 'ls').and.returnValue([]);
                 svn = spyOn(util, 'deleteSvnFolders');
-                exists.andReturn(false);
-                fire = spyOn(HooksRunner.prototype, 'fire').andReturn(Q());
+                exists.and.returnValue(false);
+                fire = spyOn(HooksRunner.prototype, 'fire').and.returnValue(Q());
             });
             it('should call update_from_config', function() {
                 parser.update_project();
@@ -153,7 +153,7 @@ describe('windows project parser', function() {
             });
             it('should throw if update_from_config throws', function(done) {
                 var err = new Error('uh oh!');
-                config.andCallFake(function() { throw err; });
+                config.and.callFake(function() { throw err; });
                 errorWrapper(parser.update_project({}), done, function(err) {
                     expect(err).toEqual(err);
                 });

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-cordova/metadata/wp8_parser.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/metadata/wp8_parser.spec.js b/cordova-lib/spec-cordova/metadata/wp8_parser.spec.js
index a8059ec..9471874 100644
--- a/cordova-lib/spec-cordova/metadata/wp8_parser.spec.js
+++ b/cordova-lib/spec-cordova/metadata/wp8_parser.spec.js
@@ -57,12 +57,12 @@ describe('wp8 project parser', function() {
     var exists, exec, custom, readdir, config_read;
     var manifestXml, projXml, mainPageXamlXml;
     beforeEach(function() {
-        exists = spyOn(fs, 'existsSync').andReturn(true);
-        exec = spyOn(child_process, 'exec').andCallFake(function(cmd, opts, cb) {
+        exists = spyOn(fs, 'existsSync').and.returnValue(true);
+        exec = spyOn(child_process, 'exec').and.callFake(function(cmd, opts, cb) {
             (cb || opts)(0, '', '');
         });
-        custom = spyOn(config, 'has_custom_path').andReturn(false);
-        config_read = spyOn(config, 'read').andCallFake(function() {
+        custom = spyOn(config, 'has_custom_path').and.returnValue(false);
+        config_read = spyOn(config, 'read').and.callFake(function() {
             return custom() ? {
                 lib: {
                     wp8: {
@@ -72,9 +72,9 @@ describe('wp8 project parser', function() {
             }
             : ({});
         });
-        readdir = spyOn(fs, 'readdirSync').andReturn(['test.csproj']);
+        readdir = spyOn(fs, 'readdirSync').and.returnValue(['test.csproj']);
         projXml = manifestXml = mainPageXamlXml = null;
-        spyOn(xmlHelpers, 'parseElementtreeSync').andCallFake(function(path) {
+        spyOn(xmlHelpers, 'parseElementtreeSync').and.callFake(function(path) {
             if (/WMAppManifest.xml$/.exec(path)) {
                 return manifestXml = new et.ElementTree(et.XML(MANIFEST_XML));
             } else if (/csproj$/.exec(path)) {
@@ -103,7 +103,7 @@ describe('wp8 project parser', function() {
 
     describe('constructions', function() {
         it('should throw if provided directory does not contain a csproj file', function() {
-            readdir.andReturn([]);
+            readdir.and.returnValue([]);
             expect(function() {
                 new wp8Parser(proj);
             }).toThrow();
@@ -134,9 +134,9 @@ describe('wp8 project parser', function() {
             rm = spyOn(shell, 'rm');
             mv = spyOn(shell, 'mv');
             mkdir = spyOn(shell, 'mkdir');
-            is_cordova = spyOn(util, 'isCordova').andReturn(proj);
+            is_cordova = spyOn(util, 'isCordova').and.returnValue(proj);
             write = spyOn(fs, 'writeFileSync');
-            read = spyOn(fs, 'readFileSync').andReturn('');
+            read = spyOn(fs, 'readFileSync').and.returnValue('');
             getOrientation = spyOn(p.helper, 'getOrientation');
         });
 
@@ -146,7 +146,7 @@ describe('wp8 project parser', function() {
                 cfg.content = function() { return 'index.html'; };
                 cfg.packageName = function() { return 'testpkg'; };
                 cfg.version = function() { return 'one point oh'; };
-                readdir.andReturn(['test.sln']);
+                readdir.and.returnValue(['test.sln']);
             });
 
             it('should write out the app name to wmappmanifest.xml', function() {
@@ -165,37 +165,37 @@ describe('wp8 project parser', function() {
                 expect(appEl.attrib.Version).toEqual('one point oh');
             });
             it('should write out the orientation preference value', function() {
-                getOrientation.andCallThrough();
+                getOrientation.and.callThrough();
                 p.update_from_config(cfg);
                 expect(mainPageXamlXml.getroot().attrib['SupportedOrientations']).toEqual('portrait');
                 expect(mainPageXamlXml.getroot().attrib['Orientation']).toEqual('portrait');
             });
             it('should handle no orientation', function() {
-                getOrientation.andReturn('');
+                getOrientation.and.returnValue('');
                 p.update_from_config(cfg);
                 expect(mainPageXamlXml.getroot().attrib['SupportedOrientations']).toBeUndefined();
                 expect(mainPageXamlXml.getroot().attrib['Orientation']).toBeUndefined();
             });
             it('should handle default orientation', function() {
-                getOrientation.andReturn(p.helper.ORIENTATION_DEFAULT);
+                getOrientation.and.returnValue(p.helper.ORIENTATION_DEFAULT);
                 p.update_from_config(cfg);
                 expect(mainPageXamlXml.getroot().attrib['SupportedOrientations']).toBeUndefined();
                 expect(mainPageXamlXml.getroot().attrib['Orientation']).toBeUndefined();
             });
             it('should handle portrait orientation', function() {
-                getOrientation.andReturn(p.helper.ORIENTATION_PORTRAIT);
+                getOrientation.and.returnValue(p.helper.ORIENTATION_PORTRAIT);
                 p.update_from_config(cfg);
                 expect(mainPageXamlXml.getroot().attrib['SupportedOrientations']).toEqual('portrait');
                 expect(mainPageXamlXml.getroot().attrib['Orientation']).toEqual('portrait');
             });
             it('should handle landscape orientation', function() {
-                getOrientation.andReturn(p.helper.ORIENTATION_LANDSCAPE);
+                getOrientation.and.returnValue(p.helper.ORIENTATION_LANDSCAPE);
                 p.update_from_config(cfg);
                 expect(mainPageXamlXml.getroot().attrib['SupportedOrientations']).toEqual('landscape');
                 expect(mainPageXamlXml.getroot().attrib['Orientation']).toEqual('landscape');
             });
             it('should handle custom orientation', function() {
-                getOrientation.andReturn('some-custom-orientation');
+                getOrientation.and.returnValue('some-custom-orientation');
                 p.update_from_config(cfg);
                 expect(mainPageXamlXml.getroot().attrib['SupportedOrientations']).toBeUndefined();
                 expect(mainPageXamlXml.getroot().attrib['Orientation']).toEqual('some-custom-orientation');
@@ -228,8 +228,8 @@ describe('wp8 project parser', function() {
                 config = spyOn(p, 'update_from_config');
                 www = spyOn(p, 'update_www');
                 svn = spyOn(util, 'deleteSvnFolders');
-                exists.andReturn(false);
-                fire = spyOn(HooksRunner.prototype, 'fire').andReturn(Q());
+                exists.and.returnValue(false);
+                fire = spyOn(HooksRunner.prototype, 'fire').and.returnValue(Q());
             });
             it('should call update_from_config', function(done) {
                 wrapper(p.update_project(), done, function() {
@@ -238,7 +238,7 @@ describe('wp8 project parser', function() {
             });
             it('should throw if update_from_config throws', function(done) {
                 var err = new Error('uh oh!');
-                config.andCallFake(function() { throw err; });
+                config.and.callFake(function() { throw err; });
                 errorWrapper(p.update_project({}), done, function(e) {
                     expect(e).toEqual(err);
                 });

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-cordova/platform.spec.ios.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/platform.spec.ios.js b/cordova-lib/spec-cordova/platform.spec.ios.js
index 6f0bd03..d46fc6a 100644
--- a/cordova-lib/spec-cordova/platform.spec.ios.js
+++ b/cordova-lib/spec-cordova/platform.spec.ios.js
@@ -44,7 +44,7 @@ describe('cocoapod plugin add and rm end-to-end', function () {
         shell.rm('-rf', tmpDir);
     });
 
-    it('installs and uninstalls plugin depending on new pod and existing pod', function(done) {
+    it('Test 001 : installs and uninstalls plugin depending on new pod and existing pod', function(done) {
 
         cordova.raw.create('hello4')
         .then(function() {

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-cordova/platform.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/platform.spec.js b/cordova-lib/spec-cordova/platform.spec.js
index 63ad2bb..1a40130 100644
--- a/cordova-lib/spec-cordova/platform.spec.js
+++ b/cordova-lib/spec-cordova/platform.spec.js
@@ -97,7 +97,7 @@ describe('platform end-to-end', function () {
     // They should run the appropriate hooks.
     // They should fail when not inside a Cordova project.
     // These tests deliberately have no beforeEach and afterEach that are cleaning things up.
-    it('should successfully run', function(done) {
+    it('Test 001 : should successfully run', function(done) {
 
         // Check there are no platforms yet.
         emptyPlatformList().then(function() {
@@ -127,7 +127,7 @@ describe('platform end-to-end', function () {
         }).fin(done);
     });
 
-    it('should install plugins correctly while adding platform', function(done) {
+    it('Test 002 : should install plugins correctly while adding platform', function(done) {
 
         cordova.raw.plugin('add', path.join(pluginsDir, 'test'))
         .then(function() {
@@ -145,7 +145,7 @@ describe('platform end-to-end', function () {
         .fin(done);
     });
 
-    it('should call prepare after plugins were installed into platform', function(done) {
+    it('Test 003 : should call prepare after plugins were installed into platform', function(done) {
         var order = '';
         var fail = jasmine.createSpy(fail);
         spyOn(plugman.raw, 'install').and.callFake(function() { order += 'I'; });
@@ -177,7 +177,7 @@ describe('add function', function () {
         };
     });
 
-    it('throws if the target list is empty', function (done) {
+    it('Test 004 : throws if the target list is empty', function (done) {
         var targets = [];
         platform.add(hooksRunnerMock, projectRoot, targets, opts).fail(function (error) {
             expect(error.message).toBe('No platform specified. Please specify a platform to add. See `cordova platform list`.');
@@ -185,7 +185,7 @@ describe('add function', function () {
         });
     });
 
-    it('throws if the target list is undefined or null', function (done) {
+    it('Test 005 : throws if the target list is undefined or null', function (done) {
 
         // case 1 : target list undefined
         var targets; // = undefined;
@@ -217,7 +217,7 @@ describe('platform add plugin rm end-to-end', function () {
         shell.rm('-rf', tmpDir);
     });
 
-    it('should remove dependency when removing parent plugin', function(done) {
+    it('Test 006 : should remove dependency when removing parent plugin', function(done) {
 
         cordova.raw.create('hello')
         .then(function() {
@@ -230,7 +230,7 @@ describe('platform add plugin rm end-to-end', function () {
         .then(function() {
             expect(path.join(pluginsDir, 'cordova-plugin-media')).toExist();
             expect(path.join(pluginsDir, 'cordova-plugin-file')).toExist();
-            return cordova.raw.platform('add', 'android@latest');
+            return cordova.raw.platform('add', 'android');
         })
         .then(function() {
             expect(path.join(pluginsDir, 'cordova-plugin-media')).toExist();
@@ -246,7 +246,7 @@ describe('platform add plugin rm end-to-end', function () {
             expect(err).toBeUndefined();
         })
         .fin(done);
-    }, 20000);
+    }, 100000);
 });
 
 describe('platform add and remove --fetch', function () {
@@ -265,7 +265,7 @@ describe('platform add and remove --fetch', function () {
         shell.rm('-rf', tmpDir);
     });
 
-    it('should add and remove platform from node_modules directory', function(done) {
+    it('Test 007 : should add and remove platform from node_modules directory', function(done) {
 
         cordova.raw.create('helloFetch')
         .then(function() {
@@ -298,7 +298,7 @@ describe('platform add and remove --fetch', function () {
             expect(err).toBeUndefined();
         })
         .fin(done);
-    }, 40000);
+    }, 100000);
 });
 
 describe('plugin add and rm end-to-end --fetch', function () {
@@ -316,7 +316,7 @@ describe('plugin add and rm end-to-end --fetch', function () {
         shell.rm('-rf', tmpDir);
     });
 
-    it('should remove dependency when removing parent plugin', function(done) {
+    it('Test 008 : should remove dependency when removing parent plugin', function(done) {
 
         cordova.raw.create('hello3')
         .then(function() {
@@ -354,5 +354,5 @@ describe('plugin add and rm end-to-end --fetch', function () {
             expect(err).toBeUndefined();
         })
         .fin(done);
-    }, 60000);
+    }, 100000);
 });

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-cordova/platforms/PlatformApiPoly.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/platforms/PlatformApiPoly.spec.js b/cordova-lib/spec-cordova/platforms/PlatformApiPoly.spec.js
index 4e29064..e88932c 100644
--- a/cordova-lib/spec-cordova/platforms/PlatformApiPoly.spec.js
+++ b/cordova-lib/spec-cordova/platforms/PlatformApiPoly.spec.js
@@ -71,7 +71,7 @@ describe('PlatformApi polyfill', function () {
 
     beforeEach(function () {
         var originalParseElementtreeSync = xmlHelpers.parseElementtreeSync;
-        spyOn(xmlHelpers, 'parseElementtreeSync').andCallFake(function (configPath) {
+        spyOn(xmlHelpers, 'parseElementtreeSync').and.callFake(function (configPath) {
             return /config\.xml$/.test(configPath) ? new et.ElementTree(et.XML(TEST_XML)) :
                 originalParseElementtreeSync(configPath);
         });
@@ -117,7 +117,7 @@ describe('PlatformApi polyfill', function () {
         var FAKE_PROJECT, FAKE_CONFIG, OPTIONS, getPlatformApi, fail, success;
 
         beforeEach(function () {
-            getPlatformApi = spyOn(knownPlatforms, 'getPlatformApi').andReturn(platformApi);
+            getPlatformApi = spyOn(knownPlatforms, 'getPlatformApi').and.returnValue(platformApi);
 
             spyOn(shell, 'cp');
             spyOn(shell, 'rm');
@@ -136,7 +136,7 @@ describe('PlatformApi polyfill', function () {
             var spawn;
 
             beforeEach(function () {
-                spawn = spyOn(superspawn, 'spawn').andReturn(Q());
+                spawn = spyOn(superspawn, 'spawn').and.returnValue(Q());
             });
 
             it('should create/update platform through running platforms\' scripts', function (done) {
@@ -144,7 +144,7 @@ describe('PlatformApi polyfill', function () {
                        PlatformApiPoly.updatePlatform(PLATFORM_ROOT, OPTIONS)])
                 .then(function () {
                     expect(spawn).toHaveBeenCalled();
-                    expect(spawn.calls.length).toBe(2);
+                    expect(spawn.calls.count()).toBe(2);
                 }).fail(function (err) {
                     expect(err).not.toBeDefined();
                 }).fin(done);
@@ -155,11 +155,11 @@ describe('PlatformApi polyfill', function () {
                        PlatformApiPoly.updatePlatform(PLATFORM_ROOT, OPTIONS)])
                 .then(function () {
                     expect(spawn).toHaveBeenCalled();
-                    expect(spawn.calls.length).toBe(2);
-                    expect(spawn.calls[0].args[0]).toBe(path.join(PLATFORM_LIB, 'bin/create'));
-                    expect(spawn.calls[0].args[1]).toContain(PLATFORM_ROOT);
-                    expect(spawn.calls[1].args[0]).toBe(path.join(PLATFORM_LIB, 'bin/update'));
-                    expect(spawn.calls[1].args[1]).toContain(PLATFORM_ROOT);
+                    expect(spawn.calls.count()).toBe(2);
+                    expect(spawn.calls.argsFor(0)[0]).toBe(path.join(PLATFORM_LIB, 'bin/create'));
+                    expect(spawn.calls.argsFor(0)[1]).toContain(PLATFORM_ROOT);
+                    expect(spawn.calls.argsFor(1)[0]).toBe(path.join(PLATFORM_LIB, 'bin/update'));
+                    expect(spawn.calls.argsFor(1)[1]).toContain(PLATFORM_ROOT);
                 }).fail(function (err) {
                     expect(err).not.toBeDefined();
                 }).fin(done);
@@ -170,7 +170,7 @@ describe('PlatformApi polyfill', function () {
                        PlatformApiPoly.updatePlatform(PLATFORM_ROOT, OPTIONS)])
                 .then(function () {
                     expect(shell.cp).toHaveBeenCalled();
-                    expect(shell.cp.calls.length).toBe(2);
+                    expect(shell.cp.calls.count()).toBe(2);
                 }).fail(fail)
                 .fin(function () {
                     expect(fail).not.toHaveBeenCalled();
@@ -195,7 +195,7 @@ describe('PlatformApi polyfill', function () {
         describe('prepare method', function () {
             beforeEach(function () {
                 spyOn(platformApi._parser, 'update_www');
-                spyOn(platformApi._parser, 'update_project').andReturn(Q());
+                spyOn(platformApi._parser, 'update_project').and.returnValue(Q());
             });
 
             it('should return promise', function (done) {
@@ -225,7 +225,7 @@ describe('PlatformApi polyfill', function () {
 
             beforeEach(function () {
                 plugin = new PluginInfo(DUMMY_PLUGIN);
-                actionsProcess = spyOn(ActionStack.prototype, 'process').andCallThrough();
+                actionsProcess = spyOn(ActionStack.prototype, 'process').and.callThrough();
             });
 
             it('should return promise', function (done) {
@@ -289,7 +289,7 @@ describe('PlatformApi polyfill', function () {
                 Q.all(ops)
                 .then(function () {
                     expect(spawnSpy).toHaveBeenCalled();
-                    expect(spawnSpy.calls.length).toEqual(3);
+                    expect(spawnSpy.calls.count()).toEqual(3);
                 }).fin(done);
             });
 
@@ -302,7 +302,7 @@ describe('PlatformApi polyfill', function () {
                     archs: ['arm', 'x86'],
                     buildConfig: '/some/path'
                 };
-                spawnSpy.andReturn(Q());
+                spawnSpy.and.returnValue(Q());
                 platformApi.build(options)
                 .then(function () {
                     ['--release', '--nobuild', '--device', '--target=' + options.target, '--archs=arm,x86', '--buildConfig='  +options.buildConfig]

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-cordova/platforms/platforms.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/platforms/platforms.spec.js b/cordova-lib/spec-cordova/platforms/platforms.spec.js
index a1efcf0..9a0e5e8 100644
--- a/cordova-lib/spec-cordova/platforms/platforms.spec.js
+++ b/cordova-lib/spec-cordova/platforms/platforms.spec.js
@@ -42,7 +42,7 @@ describe('getPlatformApi method', function () {
     beforeEach(function () {
         // reset api cache after each spec
         platforms.__set__('cachedApis', {});
-        isCordova = spyOn(util, 'isCordova').andReturn(CORDOVA_ROOT);
+        isCordova = spyOn(util, 'isCordova').and.returnValue(CORDOVA_ROOT);
     });
 
     it('should return PlatformApi class defined by platform', function () {
@@ -78,7 +78,7 @@ describe('getPlatformApi method', function () {
     });
 
     it('should throw if called outside of cordova project w/out platformRoot param', function () {
-        isCordova.andReturn(false);
+        isCordova.and.returnValue(false);
         expect(function () { platforms.getPlatformApi('windows'); }).toThrow();
     });
 

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-cordova/plugin.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/plugin.spec.js b/cordova-lib/spec-cordova/plugin.spec.js
index a4f4cd3..3441ce1 100644
--- a/cordova-lib/spec-cordova/plugin.spec.js
+++ b/cordova-lib/spec-cordova/plugin.spec.js
@@ -146,7 +146,7 @@ describe('plugin end-to-end', function() {
         expect(errorHandler.errorCallback).not.toHaveBeenCalled();
     });
 
-    it('should successfully add and remove a plugin with no options', function(done) {
+    it('Test 001 : should successfully add and remove a plugin with no options', function(done) {
         addPlugin(path.join(pluginsDir, 'fake1'), pluginId, {}, done)
         .then(function() {
             return removePlugin(pluginId);
@@ -158,11 +158,11 @@ describe('plugin end-to-end', function() {
         .fin(done);
     }, 30000);
 
-    it('should run prepare after plugin installation/removal by default', function(done) {
+    it('Test 002 : should run prepare after plugin installation/removal by default', function(done) {
         addPlugin(path.join(pluginsDir, 'fake1'), pluginId, {})
         .then(function() {
             expect(prepare.preparePlatforms).toHaveBeenCalled();
-            prepare.preparePlatforms.reset();
+            prepare.preparePlatforms.calls.reset();
             return removePlugin(pluginId);
         })
         .then(function () {
@@ -175,7 +175,7 @@ describe('plugin end-to-end', function() {
         .fin(done);
     }, 30000);
 
-    it('should not run prepare after plugin installation/removal if platform return non-falsy value', function(done) {
+    it('Test 003 : should not run prepare after plugin installation/removal if platform return non-falsy value', function(done) {
         setupPlatformApiSpies();
         addPlugin(path.join(pluginsDir, 'fake1'), pluginId, {})
         .then(function() {
@@ -192,7 +192,7 @@ describe('plugin end-to-end', function() {
         .fin(done);
     }, 30000);
 
-    it('should successfully add a plugin using relative path when running from subdir inside of project', function(done) {
+    it('Test 004 : should successfully add a plugin using relative path when running from subdir inside of project', function(done) {
         // Copy plugin to subdir inside of the project. This is required since path.relative
         // returns an absolute path when source and dest are on different drives
         var plugindir = path.join(project, 'custom-plugins/some-plugin-inside-subfolder');
@@ -216,7 +216,7 @@ describe('plugin end-to-end', function() {
         .fin(done);
     }, 30000);
 
-    it('should respect preference default values', function (done) {    
+    it('Test 005 : should respect preference default values', function (done) {    
        addPlugin(path.join(pluginsDir, org_test_defaultvariables), org_test_defaultvariables, {cli_variables: { REQUIRED:'NO', REQUIRED_ANDROID:'NO'}}, done)
        .then(function() {
             var platformJsonPath = path.join(project, 'plugins', helpers.testPlatform + '.json');
@@ -236,7 +236,7 @@ describe('plugin end-to-end', function() {
         .fin(done);
     }, 30000);
 
-    it('should successfully add a plugin when specifying CLI variables', function(done) {
+    it('Test 006 : should successfully add a plugin when specifying CLI variables', function(done) {
         addPlugin(path.join(pluginsDir, org_test_defaultvariables), org_test_defaultvariables, {cli_variables: { REQUIRED:'yes', REQUIRED_ANDROID:'yes'}}, done)
         .fail(function(err) {
             console.error(err);
@@ -245,15 +245,14 @@ describe('plugin end-to-end', function() {
         .fin(done);
     }, 30000);
 
-    it('should not check npm info when using the searchpath flag', function(done) {
+    it('Test 007 : should not check npm info when using the searchpath flag', function(done) {
         mockPluginFetch(npmInfoTestPlugin, path.join(pluginsDir, npmInfoTestPlugin));
         spyOn(registry, 'info');
-        addPlugin(npmInfoTestPlugin, npmInfoTestPlugin, {searchpath: pluginsDir}, done)
+        return addPlugin(npmInfoTestPlugin, npmInfoTestPlugin, {searchpath: pluginsDir}, done)
         .then(function() {
             expect(registry.info).not.toHaveBeenCalled();
-
-            var fetchOptions = plugman.raw.fetch.mostRecentCall.args[2];
-            expect(fetchOptions.searchpath).toExist();
+            var fetchOptions = plugman.raw.fetch.calls.mostRecent().args[2];
+            expect(fetchOptions.searchpath[0]).toExist();
         })
         .fail(function(err) {
             console.error(err);
@@ -262,7 +261,7 @@ describe('plugin end-to-end', function() {
         .fin(done);
     }, 30000);
 
-    it('should not check npm info when using the noregistry flag', function(done) {
+    it('Test 008 : should not check npm info when using the noregistry flag', function(done) {
         mockPluginFetch(npmInfoTestPlugin, path.join(pluginsDir, npmInfoTestPlugin));
 
         spyOn(registry, 'info');
@@ -270,7 +269,7 @@ describe('plugin end-to-end', function() {
         .then(function() {
             expect(registry.info).not.toHaveBeenCalled();
 
-            var fetchOptions = plugman.raw.fetch.mostRecentCall.args[2];
+            var fetchOptions = plugman.raw.fetch.calls.mostRecent().args[2];
             expect(fetchOptions.noregistry).toBeTruthy();
         })
         .fail(function(err) {
@@ -280,7 +279,7 @@ describe('plugin end-to-end', function() {
         .fin(done);
     }, 30000);
 
-    it('should not check npm info when fetching from a Git repository', function(done) {
+    it('Test 009 : should not check npm info when fetching from a Git repository', function(done) {
         spyOn(registry, 'info');
         addPlugin(testGitPluginRepository, testGitPluginId, {}, done)
         .then(function() {
@@ -293,7 +292,7 @@ describe('plugin end-to-end', function() {
         .fin(done);
     }, 30000);
 
-    it('should select the plugin version based on npm info when fetching from npm', function(done) {
+    it('Test 010 : should select the plugin version based on npm info when fetching from npm', function(done) {
         mockPluginFetch(npmInfoTestPlugin, path.join(pluginsDir, npmInfoTestPlugin));
 
         spyOn(registry, 'info').and.callThrough();
@@ -301,7 +300,7 @@ describe('plugin end-to-end', function() {
         .then(function() {
             expect(registry.info).toHaveBeenCalled();
 
-            var fetchTarget = plugman.raw.fetch.mostRecentCall.args[0];
+            var fetchTarget = plugman.raw.fetch.calls.mostRecent().args[0];
             expect(fetchTarget).toEqual(npmInfoTestPlugin + '@' + npmInfoTestPluginVersion);
         })
         .fail(function(err) {
@@ -311,7 +310,7 @@ describe('plugin end-to-end', function() {
         .fin(done);
     }, 30000);
 
-    it('should handle scoped npm packages', function(done) {
+    it('Test 011 : should handle scoped npm packages', function(done) {
         var scopedPackage = '@testscope/' + npmInfoTestPlugin;
         mockPluginFetch(npmInfoTestPlugin, path.join(pluginsDir, npmInfoTestPlugin));
 
@@ -323,7 +322,7 @@ describe('plugin end-to-end', function() {
 
             expect(registry.info).toHaveBeenCalledWith([scopedPackage]);
 
-            var fetchTarget = plugman.raw.fetch.mostRecentCall.args[0];
+            var fetchTarget = plugman.raw.fetch.calls.mostRecent().args[0];
             expect(fetchTarget).toEqual(scopedPackage);
         })
         .fail(function(err) {
@@ -333,7 +332,7 @@ describe('plugin end-to-end', function() {
         .fin(done);
     }, 30000);
 
-    it('should handle scoped npm packages with given version tags', function(done) {
+    it('Test 012 : should handle scoped npm packages with given version tags', function(done) {
         var scopedPackage = '@testscope/' + npmInfoTestPlugin + '@latest';
         mockPluginFetch(npmInfoTestPlugin, path.join(pluginsDir, npmInfoTestPlugin));
 
@@ -342,7 +341,7 @@ describe('plugin end-to-end', function() {
         .then(function() {
             expect(registry.info).not.toHaveBeenCalled();
 
-            var fetchTarget = plugman.raw.fetch.mostRecentCall.args[0];
+            var fetchTarget = plugman.raw.fetch.calls.mostRecent().args[0];
             expect(fetchTarget).toEqual(scopedPackage);
         })
         .fail(function(err) {

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-cordova/plugin_fetch.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/plugin_fetch.spec.js b/cordova-lib/spec-cordova/plugin_fetch.spec.js
index b1507ef..e1d58cc 100644
--- a/cordova-lib/spec-cordova/plugin_fetch.spec.js
+++ b/cordova-lib/spec-cordova/plugin_fetch.spec.js
@@ -176,7 +176,7 @@ describe('plugin fetching version selection', function() {
         getVersionErrorCallback = jasmine.createSpy('unexpectedPluginFetchErrorCallback');
     });
 
-    it('should handle a mix of upper bounds and single versions', function(done) {
+    it('Test 001 : should handle a mix of upper bounds and single versions', function(done) {
         var testEngine = {
             '0.0.0' : { 'cordova-android': '1.0.0' },
             '0.0.2' : { 'cordova-android': '>1.0.0' },
@@ -194,7 +194,7 @@ describe('plugin fetching version selection', function() {
         done();
     });
 
-    it('should apply upper bound engine constraints when there are no unspecified constraints above the upper bound', function(done) {
+    it('Test 002 : should apply upper bound engine constraints when there are no unspecified constraints above the upper bound', function(done) {
         var testEngine = {
             '1.0.0' : { 'cordova-android': '>2.0.0' },
             '1.7.0' : { 'cordova-android': '>4.0.0' },
@@ -212,7 +212,7 @@ describe('plugin fetching version selection', function() {
         done();
     });
 
-    it('should apply upper bound engine constraints when there are unspecified constraints above the upper bound', function(done) {
+    it('Test 003 : should apply upper bound engine constraints when there are unspecified constraints above the upper bound', function(done) {
         var testEngine = {
             '0.0.0' : {},
             '2.0.0' : { 'cordova-android': '~5.0.0' },
@@ -226,7 +226,7 @@ describe('plugin fetching version selection', function() {
         done();
     });
 
-    it('should handle the case where there are no constraints for earliest releases', function(done) {
+    it('Test 004 : should handle the case where there are no constraints for earliest releases', function(done) {
         var testEngine = {
             '1.0.0' : { 'cordova-android': '~5.0.0' }
         };
@@ -238,7 +238,7 @@ describe('plugin fetching version selection', function() {
         done();
     });
 
-    it('should handle the case where the lowest version is unsatisfied', function(done) {
+    it('Test 005 : should handle the case where the lowest version is unsatisfied', function(done) {
         var testEngine = {
             '0.0.2' : { 'cordova-android': '~5.0.0' }
         };
@@ -250,7 +250,7 @@ describe('plugin fetching version selection', function() {
         done();
     });
 
-    it('should handle upperbounds if no single version constraints are given', function(done) {
+    it('Test 006 : should handle upperbounds if no single version constraints are given', function(done) {
         var testEngine = {
             '<1.0.0': { 'cordova-android': '<2.0.0' }
         };
@@ -261,7 +261,7 @@ describe('plugin fetching version selection', function() {
         done();
     });
 
-    it('should apply upper bounds greater than highest version', function(done) {
+    it('Test 007 : should apply upper bounds greater than highest version', function(done) {
         var testEngine = {
             '0.0.0' : {},
             '<5.0.0': { 'cordova-android': '<2.0.0' }
@@ -275,7 +275,7 @@ describe('plugin fetching version selection', function() {
         done();
     });
 
-    it('should treat empty constraints as satisfied', function(done) {
+    it('Test 008 : should treat empty constraints as satisfied', function(done) {
         var testEngine = {
             '1.0.0' : {},
             '1.1.0' : { 'cordova-android': '>5.0.0' }
@@ -289,7 +289,7 @@ describe('plugin fetching version selection', function() {
         done();
     });
 
-    it('should ignore an empty cordovaDependencies entry', function(done) {
+    it('Test 009 : should ignore an empty cordovaDependencies entry', function(done) {
         var testEngine = {};
 
         var after = getWarningCheckCallback(done, []);
@@ -298,7 +298,7 @@ describe('plugin fetching version selection', function() {
         done();
     });
 
-    it('should ignore a badly formatted semver range', function(done) {
+    it('Test 010 : should ignore a badly formatted semver range', function(done) {
         var testEngine = {
             '1.1.3' : { 'cordova-android': 'badSemverRange' }
         };
@@ -309,7 +309,7 @@ describe('plugin fetching version selection', function() {
         done();
     });
 
-    it('should respect unreleased versions in constraints', function(done) {
+    it('Test 011 : should respect unreleased versions in constraints', function(done) {
         var testEngine = {
             '1.0.0' : { 'cordova-android': '3.1.0' },
             '1.1.2' : { 'cordova-android': '6.0.0' },
@@ -324,7 +324,7 @@ describe('plugin fetching version selection', function() {
         done();
     });
 
-    it('should respect plugin constraints', function(done) {
+    it('Test 012 : should respect plugin constraints', function(done) {
         var testEngine = {
             '0.0.0' : { 'ca.filmaj.AndroidPlugin': '1.2.0' },
             '1.1.3' : { 'ca.filmaj.AndroidPlugin': '<5.0.0 || >2.3.0' },
@@ -339,7 +339,7 @@ describe('plugin fetching version selection', function() {
         done();
     });
 
-    it('should respect cordova constraints', function(done) {
+    it('Test 013 : should respect cordova constraints', function(done) {
         var testEngine = {
             '0.0.0' : { 'cordova': '>1.0.0' },
             '1.1.3' : { 'cordova': '<3.0.0 || >4.0.0' },
@@ -354,7 +354,7 @@ describe('plugin fetching version selection', function() {
         done();
     });
 
-    it('should not include pre-release versions', function(done) {
+    it('Test 014 : should not include pre-release versions', function(done) {
         var testEngine = {
             '0.0.0' : {},
             '2.0.0' : { 'cordova-android': '>5.0.0' }
@@ -369,7 +369,7 @@ describe('plugin fetching version selection', function() {
         done();
     });
 
-    it('should not fail if there is no engine in the npm info', function(done) {
+    it('Test 015 : should not fail if there is no engine in the npm info', function(done) {
         plugin.getFetchVersion(project, {
                 version: '2.3.0',
                 name: 'test-plugin',
@@ -381,7 +381,7 @@ describe('plugin fetching version selection', function() {
         .fail(getVersionErrorCallback).fin(done);
     });
 
-    it('should not fail if there is no cordovaDependencies in the engines', function(done) {
+    it('Test 016 : should not fail if there is no cordovaDependencies in the engines', function(done) {
         var after = getWarningCheckCallback(done, []);
 
         plugin.getFetchVersion(project, {
@@ -400,7 +400,7 @@ describe('plugin fetching version selection', function() {
         done();
     });
 
-    it('should handle extra whitespace', function(done) {
+    it('Test 017 : should handle extra whitespace', function(done) {
         var testEngine = {
             '  1.0.0    '   : {},
             '2.0.0   '      : { ' cordova-android': '~5.0.0   ' },
@@ -415,7 +415,7 @@ describe('plugin fetching version selection', function() {
         done();
     });
 
-    it('should ignore badly typed version requirement entries', function(done) {
+    it('Test 018 : should ignore badly typed version requirement entries', function(done) {
         var testEngine = {
             '1.1.0' : ['cordova', '5.0.0'],
             '1.3.0' : undefined,
@@ -428,7 +428,7 @@ describe('plugin fetching version selection', function() {
         done();
     });
 
-    it('should ignore badly typed constraint entries', function(done) {
+    it('Test 019 : should ignore badly typed constraint entries', function(done) {
         var testEngine = {
             '0.0.2' : { 'cordova': 1 },
             '0.7.0' : { 'cordova': {}},
@@ -444,7 +444,7 @@ describe('plugin fetching version selection', function() {
         done();
     });
 
-    it('should ignore bad semver versions', function(done) {
+    it('Test 020 : should ignore bad semver versions', function(done) {
         var testEngine = {
             '0.0.0'         : { 'cordova-android': '5.0.0' },
             'notAVersion'   : { 'cordova-android': '3.1.0' },
@@ -462,7 +462,7 @@ describe('plugin fetching version selection', function() {
         done();
     });
 
-    it('should not fail if there are bad semver versions', function(done) {
+    it('Test 021 : should not fail if there are bad semver versions', function(done) {
         var testEngine = {
             'notAVersion'   : { 'cordova-android': '3.1.0' },
             '^1.1.2'        : { 'cordova-android': '3.1.0' },
@@ -481,7 +481,7 @@ describe('plugin fetching version selection', function() {
         done();
     });
 
-    it('should properly warn about multiple unmet requirements', function(done) {
+    it('Test 022 : should properly warn about multiple unmet requirements', function(done) {
         var testEngine = {
             '1.7.0' : {
                 'cordova-android'           : '>5.1.0',
@@ -498,7 +498,7 @@ describe('plugin fetching version selection', function() {
         done();
     });
 
-    it('should properly warn about both unmet latest and upper bound requirements', function(done) {
+    it('Test 023 : should properly warn about both unmet latest and upper bound requirements', function(done) {
         var testEngine = {
             '1.7.0' : { 'cordova-android': '>5.1.0' },
             '<5.0.0': {
@@ -515,7 +515,7 @@ describe('plugin fetching version selection', function() {
         done();
     });
 
-    it('should not warn about versions past latest', function(done) {
+    it('Test 024 : should not warn about versions past latest', function(done) {
         var testEngine = {
             '1.7.0' : { 'cordova-android': '>5.1.0' },
             '7.0.0': {
@@ -531,7 +531,7 @@ describe('plugin fetching version selection', function() {
         done();
     });
 
-    it('clean up after plugin fetch spec', function() {
+    it('Test 025 : clean up after plugin fetch spec', function() {
         removeTestProject();
     });
 });

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-cordova/plugin_package_parse.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/plugin_package_parse.spec.js b/cordova-lib/spec-cordova/plugin_package_parse.spec.js
index 7d99e2e..3ae1ca5 100644
--- a/cordova-lib/spec-cordova/plugin_package_parse.spec.js
+++ b/cordova-lib/spec-cordova/plugin_package_parse.spec.js
@@ -29,21 +29,21 @@ describe('methods for parsing npm plugin packages', function() {
         expect(parsedSpec.package).toEqual(scope ? scope + id : id);
     }
 
-    it('should handle package names with no scope or version', function() {
+    it('Test 001 : should handle package names with no scope or version', function() {
         checkPluginSpecParsing('test-plugin', null, 'test-plugin', null);
     });
-    it('should handle package names with a version', function() {
+    it('Test 002 : should handle package names with a version', function() {
         checkPluginSpecParsing('test-plugin@1.0.0', null, 'test-plugin', '1.0.0');
         checkPluginSpecParsing('test-plugin@latest', null, 'test-plugin', 'latest');
     });
-    it('should handle package names with a scope', function() {
+    it('Test 003 : should handle package names with a scope', function() {
         checkPluginSpecParsing('@test/test-plugin', '@test/', 'test-plugin', null);
     });
-    it('should handle package names with a scope and a version', function() {
+    it('Test 004 : should handle package names with a scope and a version', function() {
         checkPluginSpecParsing('@test/test-plugin@1.0.0', '@test/', 'test-plugin', '1.0.0');
         checkPluginSpecParsing('@test/test-plugin@latest', '@test/', 'test-plugin', 'latest');
     });
-    it('should handle invalid package specs', function() {
+    it('Test 005 : should handle invalid package specs', function() {
         checkPluginSpecParsing('@nonsense', null, null, null);
         checkPluginSpecParsing('@/nonsense', null, null, null);
         checkPluginSpecParsing('@', null, null, null);

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-cordova/plugin_parser.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/plugin_parser.spec.js b/cordova-lib/spec-cordova/plugin_parser.spec.js
index f20d311..d5c9007 100644
--- a/cordova-lib/spec-cordova/plugin_parser.spec.js
+++ b/cordova-lib/spec-cordova/plugin_parser.spec.js
@@ -29,7 +29,7 @@ describe('plugin.xml parser', function () {
         readfile = spyOn(fs, 'readFileSync').and.returnValue(xml_contents);
     });
 
-    it('should read a proper plugin.xml file', function() {
+    it('Test 001 : should read a proper plugin.xml file', function() {
         var cfg;
         expect(function () {
             cfg = new plugin_parser(xml);
@@ -37,7 +37,7 @@ describe('plugin.xml parser', function () {
         expect(cfg).toBeDefined();
         expect(cfg.doc).toBeDefined();
     });
-    it('should be able to figure out which platforms the plugin supports', function() {
+    it('Test 002 : should be able to figure out which platforms the plugin supports', function() {
         var cfg = new plugin_parser(xml);
         expect(cfg.platforms.length).toBe(1);
         expect(cfg.platforms.indexOf('ios') > -1).toBe(true);

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-cordova/prepare.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/prepare.spec.js b/cordova-lib/spec-cordova/prepare.spec.js
index a43dfb0..2ac7850 100644
--- a/cordova-lib/spec-cordova/prepare.spec.js
+++ b/cordova-lib/spec-cordova/prepare.spec.js
@@ -32,7 +32,6 @@ var shell = require('shelljs'),
 
 var project_dir = '/some/path';
 var supported_platforms = Object.keys(platforms).filter(function(p) { return p != 'www'; });
-var supported_platforms_paths = supported_platforms.map(function(p) { return path.join(project_dir, 'platforms', p, 'www'); });
 
 var TEST_XML = '<?xml version="1.0" encoding="UTF-8"?>\n' +
     '<widget xmlns     = "http://www.w3.org/ns/widgets"\n' +
@@ -92,7 +91,7 @@ describe('prepare command', function() {
     });
 
     describe('failure', function() {
-        it('should not run outside of a cordova-based project by calling util.isCordova', function(done) {
+        it('Test 001 : should not run outside of a cordova-based project by calling util.isCordova', function(done) {
             is_cordova.and.returnValue(false);
             cd_project_root.and.callThrough();  // undo spy here because prepare depends on cdprojectRoot for isCordova check
             prepare().then(function() {
@@ -101,7 +100,7 @@ describe('prepare command', function() {
                 expect('' + err).toContain('Current working directory is not a Cordova-based project.');
             }).fin(done);
         });
-        it('should not run inside a cordova-based project with no platforms', function(done) {
+        it('Test 002 : should not run inside a cordova-based project with no platforms', function(done) {
             list_platforms.and.returnValue([]);
             prepare().then(function() {
                 expect('this call').toBe('fail');
@@ -112,14 +111,14 @@ describe('prepare command', function() {
     });
 
     describe('success', function() {
-        it('should run inside a Cordova-based project by calling util.isCordova', function(done) {
+        it('Test 003 : should run inside a Cordova-based project by calling util.isCordova', function(done) {
             prepare().then(function() {
                 expect(is_cordova).toHaveBeenCalled();
             }, function(err) {
                 expect(err).toBeUndefined();
             }).fin(done);
         });
-        it('should get PlatformApi instance for each platform and invoke its\' run method', function(done) {
+        it('Test 004 : should get PlatformApi instance for each platform and invoke its\' run method', function(done) {
             prepare().then(function() {
                 supported_platforms.forEach(function(p) {
                     expect(parsers[p]).toHaveBeenCalled();
@@ -134,16 +133,46 @@ describe('prepare command', function() {
 
     describe('hooks', function() {
         describe('when platforms are added', function() {
-            it('should fire before hooks through the hooker module, and pass in platforms and paths as data object', function(done) {
+            it('Test 005 : should fire before hooks through the hooker module, and pass in platforms and paths as data object', function(done) {
                 prepare().then(function() {
-                    expect(fire).toHaveBeenCalledWith('before_prepare', {verbose: false, platforms:supported_platforms, options: [], save: false, fetch: false, paths:supported_platforms_paths});
+                    expect(fire.calls.argsFor(0)).toEqual(
+                    [ 'before_prepare',
+                    { verbose: false,
+                        platforms:
+                         [ 'ios',
+                           'osx',
+                           'android',
+                           'ubuntu',
+                           'amazon-fireos',
+                           'wp8',
+                           'blackberry10',
+                           'firefoxos',
+                           'windows',
+                           'webos',
+                           'browser' ],
+                        options: {},
+                        save: false,
+                        fetch: false,
+                        paths:
+                         [ '/some/path/platforms/ios/www',
+                           '/some/path/platforms/osx/www',
+                           '/some/path/platforms/android/www',
+                           '/some/path/platforms/ubuntu/www',
+                           '/some/path/platforms/amazon-fireos/www',
+                           '/some/path/platforms/wp8/www',
+                           '/some/path/platforms/blackberry10/www',
+                           '/some/path/platforms/firefoxos/www',
+                           '/some/path/platforms/windows/www',
+                           '/some/path/platforms/webos/www',
+                           '/some/path/platforms/browser/www' ],
+                        searchpath: undefined } ]);
                 }, function(err) {
                     expect(err).toBeUndefined();
                 }).fin(done);
             });
-            it('should fire after hooks through the hooker module, and pass in platforms and paths as data object', function(done) {
+            it('Test 006 : should fire after hooks through the hooker module, and pass in platforms and paths as data object', function(done) {
                 prepare('android').then(function() {
-                    expect(fire).toHaveBeenCalledWith('after_prepare', {verbose: false, platforms:['android'], options: [], paths:[path.join(project_dir, 'platforms', 'android', 'www')]});
+                    expect(fire.calls.argsFor(1)).toEqual([ 'after_prepare',{ platforms: [ 'android' ],verbose: false,options: {},paths: [ '/some/path/platforms/android/www' ],searchpath: undefined } ]);
                 }, function(err) {
                     expect(err).toBeUndefined('Exception while running `prepare android`:\n' + err.stack);
                 }).fin(done);
@@ -154,7 +183,7 @@ describe('prepare command', function() {
             beforeEach(function() {
                 list_platforms.and.returnValue([]);
             });
-            it('should not fire the hooker', function(done) {
+            it('Test 007 : should not fire the hooker', function(done) {
                 Q().then(prepare).then(function() {
                     expect('this call').toBe('fail');
                 }, function(err) {

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-cordova/project-metadata-apis.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/project-metadata-apis.spec.js b/cordova-lib/spec-cordova/project-metadata-apis.spec.js
index ae33c50..ef2bfca 100644
--- a/cordova-lib/spec-cordova/project-metadata-apis.spec.js
+++ b/cordova-lib/spec-cordova/project-metadata-apis.spec.js
@@ -23,7 +23,7 @@ var cordova = require('../src/cordova/cordova'),
 describe('retrieval of project metadata', function () {
     var projectRoot = path.resolve(__dirname, 'Projects/ProjectMetadata');
 
-    it('retrieve platforms saved in config.xml', function (done) {
+    it('Test 001 : retrieve platforms saved in config.xml', function (done) {
         var androidVersion = '3.7.1';
         var browserSrc = 'https://github.com/apache/cordova-browser.git';
 
@@ -45,7 +45,7 @@ describe('retrieval of project metadata', function () {
             }).finally(done);
     });
 
-    it('retrieve plugins saved in config.xml', function (done) {
+    it('Test 002 : retrieve plugins saved in config.xml', function (done) {
         var deviceId = 'org.apache.cordova.device';
         var deviceVersion = '0.3.0';
 

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-cordova/run.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/run.spec.js b/cordova-lib/spec-cordova/run.spec.js
index 43b6b79..18e3fdd 100644
--- a/cordova-lib/spec-cordova/run.spec.js
+++ b/cordova-lib/spec-cordova/run.spec.js
@@ -42,7 +42,7 @@ describe('run command', function() {
         getPlatformApi = spyOn(platforms, 'getPlatformApi').and.returnValue(platformApi);
     });
     describe('failure', function() {
-        it('should not run inside a Cordova-based project with no added platforms by calling util.listPlatforms', function(done) {
+        it('Test 001 : should not run inside a Cordova-based project with no added platforms by calling util.listPlatforms', function(done) {
             list_platforms.and.returnValue([]);
             Q().then(cordova.raw.run).then(function() {
                 expect('this call').toBe('fail');
@@ -50,7 +50,7 @@ describe('run command', function() {
                 expect(err.message).toEqual('No platforms added to this project. Please use `cordova platform add <platform>`.');
             }).fin(done);
         });
-        it('should not run outside of a Cordova-based project', function(done) {
+        it('Test 002 : should not run outside of a Cordova-based project', function(done) {
             var msg = 'Dummy message about not being in a cordova dir.';
             cd_project_root.and.throwError(new Error(msg));
             is_cordova.and.returnValue(false);
@@ -63,14 +63,14 @@ describe('run command', function() {
     });
 
     describe('success', function() {
-        it('should call prepare before actually run platform ', function(done) {
+        it('Test 003 : should call prepare before actually run platform ', function(done) {
             cordova.raw.run(['android','ios']).then(function() {
-                expect(prepare_spy).toHaveBeenCalledWith({ platforms: [ 'android', 'ios' ], verbose: false, options: [] });
+                expect(prepare_spy.calls.argsFor(0)).toEqual([ { platforms: [ 'android', 'ios' ], verbose: false, options: {} } ]);
             }, function(err) {
                 expect(err).toBeUndefined();
             }).fin(done);
         });
-        it('should get PlatformApi instance for each platform and call its\' run method', function(done) {
+        it('Test 004 : should get PlatformApi instance for each platform and call its\' run method', function(done) {
             cordova.raw.run(['android','ios']).then(function() {
                 expect(getPlatformApi).toHaveBeenCalledWith('android');
                 expect(getPlatformApi).toHaveBeenCalledWith('ios');
@@ -80,7 +80,7 @@ describe('run command', function() {
                 expect(err).toBeUndefined();
             }).fin(done);
         });
-        it('should pass down parameters', function(done) {
+        it('Test 005 : should pass down parameters', function(done) {
             cordova.raw.run({platforms: ['blackberry10'], options:{password: '1q1q'}}).then(function() {
                 expect(prepare_spy).toHaveBeenCalledWith({ platforms: [ 'blackberry10' ], options: { password: '1q1q' }, verbose: false });
                 expect(platformApi.build).toHaveBeenCalledWith({password: '1q1q'});
@@ -89,7 +89,7 @@ describe('run command', function() {
                 expect(err).toBeUndefined();
             }).fin(done);
         });
-        it('should convert parameters from old format and warn user about this', function (done) {
+        it('Test 006 : should convert parameters from old format and warn user about this', function (done) {
             function warnSpy(message) {
                 expect(message).toMatch('The format of cordova.raw.* methods "options" argument was changed');
             }
@@ -108,7 +108,7 @@ describe('run command', function() {
             });
         });
 
-        it('should call platform\'s build method', function (done) {
+        it('Test 007 : should call platform\'s build method', function (done) {
             cordova.raw.run({platforms: ['blackberry10']})
             .then(function() {
                 expect(prepare_spy).toHaveBeenCalled();
@@ -120,7 +120,7 @@ describe('run command', function() {
             .fin(done);
         });
 
-        it('should not call build if --nobuild option is passed', function (done) {
+        it('Test 008 : should not call build if --nobuild option is passed', function (done) {
             cordova.raw.run({platforms: ['blackberry10'], options: { nobuild: true }})
             .then(function() {
                 expect(prepare_spy).toHaveBeenCalled();
@@ -144,7 +144,7 @@ describe('run command', function() {
             afterEach(function() {
                 platformApi.build = originalBuildSpy;
             });
-            it('should leave parameters unchanged', function(done) {
+            it('Test 009 : should leave parameters unchanged', function(done) {
                 cordova.raw.run({platforms: ['blackberry10'], options:{password: '1q1q'}}).then(function() {
                     expect(prepare_spy).toHaveBeenCalledWith({ platforms: [ 'blackberry10' ], options: { password: '1q1q', 'couldBeModified': 'insideBuild' }, verbose: false });
                     expect(platformApi.build).toHaveBeenCalledWith({password: '1q1q', 'couldBeModified': 'insideBuild'});
@@ -158,16 +158,16 @@ describe('run command', function() {
 
     describe('hooks', function() {
         describe('when platforms are added', function() {
-            it('should fire before hooks through the hooker module', function(done) {
+            it('Test 010 : should fire before hooks through the hooker module', function(done) {
                 cordova.raw.run(['android', 'ios']).then(function() {
-                    expect(fire).toHaveBeenCalledWith('before_run', {verbose: false, platforms:['android', 'ios'], options: []});
+                    expect(fire.calls.argsFor(0)).toEqual([ 'before_run', { platforms: [ 'android', 'ios' ], verbose: false, options: {} } ]);
                 }, function(err) {
                     expect(err).toBeUndefined();
                 }).fin(done);
             });
-            it('should fire after hooks through the hooker module', function(done) {
+            it('Test 011 : should fire after hooks through the hooker module', function(done) {
                 cordova.raw.run('android').then(function() {
-                     expect(fire).toHaveBeenCalledWith('after_run', {verbose: false, platforms:['android'], options: []});
+                    expect(fire.calls.argsFor(2)).toEqual([ 'after_run', { platforms: [ 'android' ], verbose: false, options: {} } ]);
                 }, function(err) {
                     expect(err).toBeUndefined();
                 }).fin(done);
@@ -175,7 +175,7 @@ describe('run command', function() {
         });
 
         describe('with no platforms added', function() {
-            it('should not fire the hooker', function(done) {
+            it('Test 012 : should not fire the hooker', function(done) {
                 list_platforms.and.returnValue([]);
                 Q().then(cordova.raw.run).then(function() {
                     expect('this call').toBe('fail');


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


[49/50] [abbrv] cordova-lib git commit: CB-12358 Incremented package version to -dev

Posted by st...@apache.org.
CB-12358 Incremented package version to -dev


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

Branch: refs/heads/master
Commit: 6548e59e673ce1790a409632c8d753765585f0a8
Parents: 97da49a
Author: Steve Gill <st...@gmail.com>
Authored: Tue Jan 17 17:55:36 2017 -0800
Committer: Steve Gill <st...@gmail.com>
Committed: Tue Jan 17 17:55:36 2017 -0800

----------------------------------------------------------------------
 cordova-serve/package.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/6548e59e/cordova-serve/package.json
----------------------------------------------------------------------
diff --git a/cordova-serve/package.json b/cordova-serve/package.json
index fe9ff0b..fc3727d 100644
--- a/cordova-serve/package.json
+++ b/cordova-serve/package.json
@@ -1,6 +1,6 @@
 {
   "name": "cordova-serve",
-  "version": "1.0.1",
+  "version": "1.0.2-dev",
   "description": "Apache Cordova server support for cordova-lib and cordova-browser.",
   "main": "serve.js",
   "repository": {


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


[23/50] [abbrv] cordova-lib git commit: fixjasmine : CB-12018 : labeled and updated tests to work with jasmine (spyOn and return, callThrough, waitsFor, toExist, callFake, describe)

Posted by st...@apache.org.
 fixjasmine : CB-12018 : labeled and updated tests to work with jasmine (spyOn and return, callThrough, waitsFor, toExist, callFake, describe)


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

Branch: refs/heads/fetch-1.0.x
Commit: 0e0d7a55658fb7d1b91f1c006d69b92aa2bbbb62
Parents: 2ea46e4
Author: audreyso <au...@adobe.com>
Authored: Wed Dec 14 09:33:47 2016 -0800
Committer: audreyso <au...@adobe.com>
Committed: Tue Jan 10 11:14:05 2017 -0800

----------------------------------------------------------------------
 cordova-common/package.json                    |   2 +-
 cordova-common/spec/ActionStack.spec.js        |   2 +-
 cordova-common/spec/CordovaCheck.spec.js       |  27 ++---
 cordova-common/spec/CordovaLogger.spec.js      |   6 +-
 cordova-common/spec/PlatformJson.spec.js       |   2 +-
 cordova-lib/package.json                       |   4 +-
 cordova-lib/spec-cordova/HooksRunner.spec.js   |   6 +-
 cordova-lib/spec-cordova/build.spec.js         |  20 ++--
 cordova-lib/spec-cordova/compile.spec.js       |  18 ++--
 cordova-lib/spec-cordova/create.spec.js        |   4 +-
 cordova-lib/spec-cordova/emulate.spec.js       |  27 ++---
 cordova-lib/spec-cordova/helpers.js            |   5 +-
 cordova-lib/spec-cordova/lazy_load.spec.js     |  40 ++++----
 cordova-lib/spec-cordova/platform.spec.js      |   6 +-
 cordova-lib/spec-cordova/plugin.spec.js        | 104 +++++++++++++-------
 cordova-lib/spec-cordova/plugin_fetch.spec.js  |  35 +++++--
 cordova-lib/spec-cordova/plugin_parser.spec.js |   3 +-
 cordova-lib/spec-cordova/prepare.spec.js       |  34 +++----
 cordova-lib/spec-cordova/run.spec.js           |  26 ++---
 cordova-lib/spec-cordova/save.spec.js          |  22 ++---
 cordova-lib/spec-cordova/util.spec.js          |  39 +++-----
 cordova-lib/spec-cordova/wrappers.spec.js      |   9 +-
 cordova-lib/spec-plugman/add_platform.spec.js  |  44 +++++----
 cordova-lib/spec-plugman/config.spec.js        |   2 +-
 cordova-lib/spec-plugman/create.spec.js        |  27 ++---
 cordova-lib/spec-plugman/fetch.spec.js         |  71 ++++++-------
 cordova-lib/spec-plugman/info.spec.js          |   2 +-
 cordova-lib/spec-plugman/install.spec.js       |  78 +++++++--------
 cordova-lib/spec-plugman/owner.spec.js         |   2 +-
 cordova-lib/spec-plugman/search.spec.js        |   2 +-
 cordova-lib/spec-plugman/uninstall.spec.js     |  30 +++---
 cordova-lib/spec-plugman/wrappers.spec.js      |   6 +-
 32 files changed, 365 insertions(+), 340 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/0e0d7a55/cordova-common/package.json
----------------------------------------------------------------------
diff --git a/cordova-common/package.json b/cordova-common/package.json
index c96eac4..98ffb2d 100644
--- a/cordova-common/package.json
+++ b/cordova-common/package.json
@@ -39,7 +39,7 @@
   },
   "devDependencies": {
     "istanbul": "^0.4.5",
-    "jasmine-node": "^1.14.5",
+    "jasmine": "^2.5.2",
     "jshint": "^2.8.0",
     "promise-matchers": "^0.9.6",
     "rewire": "^2.5.1"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/0e0d7a55/cordova-common/spec/ActionStack.spec.js
----------------------------------------------------------------------
diff --git a/cordova-common/spec/ActionStack.spec.js b/cordova-common/spec/ActionStack.spec.js
index 5fb6819..b432e21 100644
--- a/cordova-common/spec/ActionStack.spec.js
+++ b/cordova-common/spec/ActionStack.spec.js
@@ -48,7 +48,7 @@ describe('action-stack', function() {
             var first_reverter = jasmine.createSpy();
             var first_reverter_args = [true];
             var process_err = new Error('process_err');
-            var second_spy = jasmine.createSpy().andCallFake(function() {
+            var second_spy = jasmine.createSpy().and.callFake(function() {
                 throw process_err;
             });
             var second_args = [2];

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/0e0d7a55/cordova-common/spec/CordovaCheck.spec.js
----------------------------------------------------------------------
diff --git a/cordova-common/spec/CordovaCheck.spec.js b/cordova-common/spec/CordovaCheck.spec.js
index a1f37fa..c075f7a 100644
--- a/cordova-common/spec/CordovaCheck.spec.js
+++ b/cordova-common/spec/CordovaCheck.spec.js
@@ -30,11 +30,12 @@ describe('findProjectRoot method', function() {
         process.env.PWD = origPWD;
         process.chdir(cwd);
     });
+function removeDir(someDirectory) {
+    shell.rm('-rf', someDirectory);
+}
     it('should return false if it hits the home directory', function() {
         var somedir = path.join(home, 'somedir');
-        this.after(function() {
-            shell.rm('-rf', somedir);
-        });
+        removeDir(somedir);
         shell.mkdir(somedir);
         expect(CordovaCheck.findProjectRoot(somedir)).toEqual(false);
     });
@@ -45,9 +46,7 @@ describe('findProjectRoot method', function() {
     it('should return the first directory it finds with a .cordova folder in it', function() {
         var somedir = path.join(home,'somedir');
         var anotherdir = path.join(somedir, 'anotherdir');
-        this.after(function() {
-            shell.rm('-rf', somedir);
-        });
+        removeDir(somedir);
         shell.mkdir('-p', anotherdir);
         shell.mkdir('-p', path.join(somedir, 'www', 'config.xml'));
         expect(CordovaCheck.findProjectRoot(somedir)).toEqual(somedir);
@@ -56,9 +55,7 @@ describe('findProjectRoot method', function() {
         delete process.env.PWD;
         var somedir = path.join(home,'somedir');
         var anotherdir = path.join(somedir, 'anotherdir');
-        this.after(function() {
-            shell.rm('-rf', somedir);
-        });
+        removeDir(somedir);
         shell.mkdir('-p', anotherdir);
         shell.mkdir('-p', path.join(somedir, 'www'));
         shell.mkdir('-p', path.join(somedir, 'config.xml'));
@@ -68,9 +65,7 @@ describe('findProjectRoot method', function() {
     it('should use PWD when available', function() {
         var somedir = path.join(home,'somedir');
         var anotherdir = path.join(somedir, 'anotherdir');
-        this.after(function() {
-            shell.rm('-rf', somedir);
-        });
+        removeDir(somedir);
         shell.mkdir('-p', anotherdir);
         shell.mkdir('-p', path.join(somedir, 'www', 'config.xml'));
         process.env.PWD = anotherdir;
@@ -80,9 +75,7 @@ describe('findProjectRoot method', function() {
     it('should use cwd as a fallback when PWD is not a cordova dir', function() {
         var somedir = path.join(home,'somedir');
         var anotherdir = path.join(somedir, 'anotherdir');
-        this.after(function() {
-            shell.rm('-rf', somedir);
-        });
+        removeDir(somedir);
         shell.mkdir('-p', anotherdir);
         shell.mkdir('-p', path.join(somedir, 'www', 'config.xml'));
         process.env.PWD = path.sep;
@@ -92,9 +85,7 @@ describe('findProjectRoot method', function() {
     it('should ignore platform www/config.xml', function() {
         var somedir = path.join(home,'somedir');
         var anotherdir = path.join(somedir, 'anotherdir');
-        this.after(function() {
-            shell.rm('-rf', somedir);
-        });
+        removeDir(somedir);
         shell.mkdir('-p', anotherdir);
         shell.mkdir('-p', path.join(anotherdir, 'www', 'config.xml'));
         shell.mkdir('-p', path.join(somedir, 'www'));

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/0e0d7a55/cordova-common/spec/CordovaLogger.spec.js
----------------------------------------------------------------------
diff --git a/cordova-common/spec/CordovaLogger.spec.js b/cordova-common/spec/CordovaLogger.spec.js
index 5c27db1..035d717 100644
--- a/cordova-common/spec/CordovaLogger.spec.js
+++ b/cordova-common/spec/CordovaLogger.spec.js
@@ -99,7 +99,7 @@ describe('CordovaLogger class', function() {
                 };
 
                 var listenerSpy = jasmine.createSpy('listenerSpy')
-                .andCallFake(function (eventName) {
+                .and.callFake(function (eventName) {
                     eventName = eventNamesExclusions[eventName] || eventName;
                     expect(logger.levels[eventName]).toBeDefined();
                 });
@@ -116,7 +116,7 @@ describe('CordovaLogger class', function() {
                 var spy = jasmine.createSpyObj(name, cursorMethods);
 
                 // Make spy methods chainable, as original Cursor acts
-                cursorMethods.forEach(function (method) { spy[method].andReturn(spy); });
+                cursorMethods.forEach(function (method) { spy[method].and.returnValue(spy); });
 
                 return spy;
             }
@@ -153,7 +153,7 @@ describe('CordovaLogger class', function() {
 
             it('should handle CordovaError instances separately from Error ones', function () {
                 var errorMock = new CordovaError();
-                spyOn(errorMock, 'toString').andReturn('error_message');
+                spyOn(errorMock, 'toString').and.returnValue('error_message');
 
                 logger.setLevel('verbose').log('verbose', errorMock);
                 expect(errorMock.toString).toHaveBeenCalled();

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/0e0d7a55/cordova-common/spec/PlatformJson.spec.js
----------------------------------------------------------------------
diff --git a/cordova-common/spec/PlatformJson.spec.js b/cordova-common/spec/PlatformJson.spec.js
index c9310a2..293b51d 100644
--- a/cordova-common/spec/PlatformJson.spec.js
+++ b/cordova-common/spec/PlatformJson.spec.js
@@ -43,7 +43,7 @@ describe('PlatformJson class', function() {
             fakePlugin = jasmine.createSpyObj('fakePlugin', ['getJsModules']);
             fakePlugin.id = 'fakeId';
             fakePlugin.version = '1.0.0';
-            fakePlugin.getJsModules.andReturn([FAKE_MODULE]);
+            fakePlugin.getJsModules.and.returnValue([FAKE_MODULE]);
         });
         
         describe('addPluginMetadata method', function () {

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/0e0d7a55/cordova-lib/package.json
----------------------------------------------------------------------
diff --git a/cordova-lib/package.json b/cordova-lib/package.json
index c8286e9..8b575f0 100644
--- a/cordova-lib/package.json
+++ b/cordova-lib/package.json
@@ -20,8 +20,8 @@
   "dependencies": {
     "aliasify": "^1.7.2",
     "cordova-common": "1.5.x",
-    "cordova-fetch": "^1.0.1",
     "cordova-create": "^1.0.1",
+    "cordova-fetch": "^1.0.1",
     "cordova-js": "4.2.0",
     "cordova-registry-mapper": "1.x",
     "cordova-serve": "^1.0.0",
@@ -47,7 +47,7 @@
   "devDependencies": {
     "codecov": "^1.0.1",
     "istanbul": "^0.3.4",
-    "jasmine-node": "1.14.5",
+    "jasmine": "^2.5.2",
     "jshint": "2.5.8",
     "rewire": "2.1.3"
   },

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/0e0d7a55/cordova-lib/spec-cordova/HooksRunner.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/HooksRunner.spec.js b/cordova-lib/spec-cordova/HooksRunner.spec.js
index fdad858..367c436 100644
--- a/cordova-lib/spec-cordova/HooksRunner.spec.js
+++ b/cordova-lib/spec-cordova/HooksRunner.spec.js
@@ -104,7 +104,7 @@ describe('HooksRunner', function() {
 
         // The config.json in the fixture project points at fake "local" paths.
         // Since it's not a URL, the lazy-loader will just return the junk path.
-        spyOn(superspawn, 'spawn').andCallFake(function(cmd, args) {
+        spyOn(superspawn, 'spawn').and.callFake(function(cmd, args) {
             if (cmd.match(/create\b/)) {
                 // This is a call to the bin/create script, so do the copy ourselves.
                 shell.cp('-R', path.join(__dirname, 'fixtures', 'platforms', 'android'), path.join(project, 'platforms'));
@@ -160,7 +160,7 @@ describe('HooksRunner', function() {
             var hooksOrderFile = path.join(projectRoot, 'hooks_order.txt');
             removeFileIfExists(hooksOrderFile);
 
-            fire = spyOn(HooksRunner.prototype, 'fire').andCallThrough();
+            fire = spyOn(HooksRunner.prototype, 'fire').and.callThrough();
         });
 
         // helper methods
@@ -522,7 +522,7 @@ describe('HooksRunner', function() {
         });
 
         describe('module-level hooks (event handlers)', function() {
-            var handler = jasmine.createSpy().andReturn(Q());
+            var handler = jasmine.createSpy().and.returnValue(Q());
             var test_event = 'before_build';
 
             afterEach(function () {

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/0e0d7a55/cordova-lib/spec-cordova/build.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/build.spec.js b/cordova-lib/spec-cordova/build.spec.js
index 66f0869..3f7f90e 100644
--- a/cordova-lib/spec-cordova/build.spec.js
+++ b/cordova-lib/spec-cordova/build.spec.js
@@ -30,16 +30,16 @@ describe('build command', function() {
     var prepare_spy, compile_spy;
 
     beforeEach(function() {
-        is_cordova = spyOn(util, 'isCordova').andReturn(project_dir);
-        cd_project_root = spyOn(util, 'cdProjectRoot').andReturn(project_dir);
-        list_platforms = spyOn(util, 'listPlatforms').andReturn(supported_platforms);
-        fire = spyOn(HooksRunner.prototype, 'fire').andReturn(Q());
-        prepare_spy = spyOn(cordova.raw, 'prepare').andReturn(Q());
-        compile_spy = spyOn(cordova.raw, 'compile').andReturn(Q());
+        is_cordova = spyOn(util, 'isCordova').and.returnValue(project_dir);
+        cd_project_root = spyOn(util, 'cdProjectRoot').and.returnValue(project_dir);
+        list_platforms = spyOn(util, 'listPlatforms').and.returnValue(supported_platforms);
+        fire = spyOn(HooksRunner.prototype, 'fire').and.returnValue(Q());
+        prepare_spy = spyOn(cordova.raw, 'prepare').and.returnValue(Q());
+        compile_spy = spyOn(cordova.raw, 'compile').and.returnValue(Q());
     });
     describe('failure', function() {
         it('should not run inside a project with no platforms', function(done) {
-            list_platforms.andReturn([]);
+            list_platforms.and.returnValue([]);
             cordova.raw.build()
             .then(function() {
                 expect('this call').toBe('fail');
@@ -51,7 +51,7 @@ describe('build command', function() {
         });
 
         it('should not run outside of a Cordova-based project', function(done) {
-            is_cordova.andReturn(false);
+            is_cordova.and.returnValue(false);
 
             cordova.raw.build()
             .then(function() {
@@ -67,7 +67,7 @@ describe('build command', function() {
     describe('success', function() {
         it('should run inside a Cordova-based project with at least one added platform and call both prepare and compile', function(done) {
             cordova.raw.build(['android','ios']).then(function() {
-                var opts = {verbose: false, platforms: ['android', 'ios'], options: []};
+                var opts = Object({ platforms: [ 'android', 'ios' ], verbose: false, options: Object({  }) })
                 expect(prepare_spy).toHaveBeenCalledWith(opts);
                 expect(compile_spy).toHaveBeenCalledWith(opts);
                 done();
@@ -116,7 +116,7 @@ describe('build command', function() {
 
         describe('with no platforms added', function() {
             it('should not fire the hooker', function(done) {
-                list_platforms.andReturn([]);
+                list_platforms.and.returnValue([]);
                 Q().then(cordova.raw.build).then(function() {
                     expect('this call').toBe('fail');
                 }, function(err) {

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/0e0d7a55/cordova-lib/spec-cordova/compile.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/compile.spec.js b/cordova-lib/spec-cordova/compile.spec.js
index 9f4040f..4371425 100644
--- a/cordova-lib/spec-cordova/compile.spec.js
+++ b/cordova-lib/spec-cordova/compile.spec.js
@@ -30,17 +30,17 @@ describe('compile command', function() {
     var project_dir = '/some/path';
 
     beforeEach(function() {
-        is_cordova = spyOn(util, 'isCordova').andReturn(project_dir);
-        cd_project_root = spyOn(util, 'cdProjectRoot').andReturn(project_dir);
-        list_platforms = spyOn(util, 'listPlatforms').andReturn(supported_platforms);
-        fire = spyOn(HooksRunner.prototype, 'fire').andReturn(Q());
-        platformApi = { build: jasmine.createSpy('build').andReturn(Q()) };
-        getPlatformApi = spyOn(platforms, 'getPlatformApi').andReturn(platformApi);
+        is_cordova = spyOn(util, 'isCordova').and.returnValue(project_dir);
+        cd_project_root = spyOn(util, 'cdProjectRoot').and.returnValue(project_dir);
+        list_platforms= spyOn(util, 'listPlatforms').and.returnValue(supported_platforms);
+        fire = spyOn(HooksRunner.prototype, 'fire').and.returnValue(Q());
+        platformApi = { build: jasmine.createSpy('build').and.returnValue(Q())};
+        getPlatformApi = spyOn(platforms, 'getPlatformApi').and.returnValue(platformApi);
         fail = function (err) { expect(err.stack).not.toBeDefined(); };
     });
     describe('failure', function() {
         it('should not run inside a Cordova-based project with no added platforms by calling util.listPlatforms', function(done) {
-            list_platforms.andReturn([]);
+            list_platforms.and.returnValue([]);
             var success = jasmine.createSpy('success');
             cordova.raw.compile()
             .then(success, function(result) {
@@ -53,7 +53,7 @@ describe('compile command', function() {
             });
         });
         it('should not run outside of a Cordova-based project', function(done) {
-            is_cordova.andReturn(false);
+            is_cordova.and.returnValue(false);
             var success = jasmine.createSpy('success');
             cordova.raw.compile()
             .then(success, function(result) {
@@ -126,7 +126,7 @@ describe('compile command', function() {
 
         describe('with no platforms added', function() {
             it('should not fire the hooker', function(done) {
-                list_platforms.andReturn([]);
+                list_platforms.and.returnValue([]);
                 Q().then(cordova.raw.compile).then(function() {
                     expect('this call').toBe('fail');
                 }, function(err) {

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/0e0d7a55/cordova-lib/spec-cordova/create.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/create.spec.js b/cordova-lib/spec-cordova/create.spec.js
index 09f14f0..2876fe6 100644
--- a/cordova-lib/spec-cordova/create.spec.js
+++ b/cordova-lib/spec-cordova/create.spec.js
@@ -38,7 +38,7 @@ var configBasic = {
     }
 };
 
-describe('cordova create checks for valid-identifier', function(done) {
+describe('cordova create checks for valid-identifier', function() {
     it('should reject reserved words from start of id', function(done) {
         cordova.raw.create('projectPath', 'int.bob', 'appName', {}, events)
         .fail(function(err) {
@@ -109,4 +109,4 @@ describe('create basic test (see more in cordova-create)', function() {
             .fin(done);
     }, 60000);
 
-});
+});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/0e0d7a55/cordova-lib/spec-cordova/emulate.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/emulate.spec.js b/cordova-lib/spec-cordova/emulate.spec.js
index 94b2ab9..7372df2 100644
--- a/cordova-lib/spec-cordova/emulate.spec.js
+++ b/cordova-lib/spec-cordova/emulate.spec.js
@@ -30,21 +30,22 @@ describe('emulate command', function() {
     var prepare_spy, platformApi, getPlatformApi;
 
     beforeEach(function() {
-        is_cordova = spyOn(util, 'isCordova').andReturn(project_dir);
-        cd_project_root = spyOn(util, 'cdProjectRoot').andReturn(project_dir);
-        list_platforms = spyOn(util, 'listPlatforms').andReturn(supported_platforms);
-        fire = spyOn(HooksRunner.prototype, 'fire').andReturn(Q());
-        prepare_spy = spyOn(cordova.raw, 'prepare').andReturn(Q());
+        is_cordova = spyOn(util, 'isCordova').and.returnValue(project_dir);
+        cd_project_root = spyOn(util, 'cdProjectRoot').and.returnValue(project_dir);
+        list_platforms = spyOn(util, 'listPlatforms').and.returnValue(supported_platforms);
+        fire = spyOn(HooksRunner.prototype, 'fire').and.returnValue(Q());
+        prepare_spy = spyOn(cordova.raw, 'prepare').and.returnValue(Q());
         fail = function (err) { expect(err.stack).not.toBeDefined(); };
         platformApi = {
-            run: jasmine.createSpy('run').andReturn(Q()),
-            build: jasmine.createSpy('build').andReturn(Q())
+            run: jasmine.createSpy('run').and.returnValue(Q()),
+            build: jasmine.createSpy('build').and.returnValue(Q())
         };
-        getPlatformApi = spyOn(platforms, 'getPlatformApi').andReturn(platformApi);
+        
+        getPlatformApi = spyOn(platforms, 'getPlatformApi').and.returnValue(platformApi);
     });
     describe('failure', function() {
         it('should not run inside a Cordova-based project with no added platforms by calling util.listPlatforms', function(done) {
-            list_platforms.andReturn([]);
+            list_platforms.and.returnValue([]);
             var success = jasmine.createSpy('success');
             cordova.raw.compile()
             .then(success, function(result) {
@@ -57,7 +58,7 @@ describe('emulate command', function() {
             });
         });
         it('should not run outside of a Cordova-based project', function(done) {
-            is_cordova.andReturn(false);
+            is_cordova.and.returnValue(false);
             var success = jasmine.createSpy('success');
             cordova.raw.compile()
             .then(success, function(result) {
@@ -113,7 +114,7 @@ describe('emulate command', function() {
             var originalBuildSpy;
             beforeEach(function() {
                 originalBuildSpy = platformApi.build;
-                platformApi.build = jasmine.createSpy('build').andCallFake(function(opts) {
+                platformApi.build = jasmine.createSpy('build').and.callFake(function(opts) {
                     opts.couldBeModified = 'insideBuild';
                     return Q();
                 });
@@ -179,7 +180,7 @@ describe('emulate command', function() {
 
         describe('with no platforms added', function() {
             it('should not fire the hooker', function(done) {
-                list_platforms.andReturn([]);
+                list_platforms.and.returnValue([]);
                 Q().then(cordova.raw.emulate).then(function() {
                     expect('this call').toBe('fail');
                 }, function(err) {
@@ -189,4 +190,4 @@ describe('emulate command', function() {
             });
         });
     });
-});
+});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/0e0d7a55/cordova-lib/spec-cordova/helpers.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/helpers.js b/cordova-lib/spec-cordova/helpers.js
index 4cc1e2c..257f4bd 100644
--- a/cordova-lib/spec-cordova/helpers.js
+++ b/cordova-lib/spec-cordova/helpers.js
@@ -148,7 +148,7 @@ module.exports.writeConfigContent = function (appPath, configContent) {
 
 // Add the toExist matcher.
 beforeEach(function () {
-    this.addMatchers({
+    jasmine.addMatchers({
         'toExist': function () {
             var notText = this.isNot ? ' not' : '';
             var self = this;
@@ -160,5 +160,4 @@ beforeEach(function () {
             return fs.existsSync(this.actual);
         }
     });
-});
-
+});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/0e0d7a55/cordova-lib/spec-cordova/lazy_load.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/lazy_load.spec.js b/cordova-lib/spec-cordova/lazy_load.spec.js
index 0560649..e421cc8 100644
--- a/cordova-lib/spec-cordova/lazy_load.spec.js
+++ b/cordova-lib/spec-cordova/lazy_load.spec.js
@@ -34,8 +34,8 @@ var lazy_load = require('../src/cordova/lazy_load'),
 describe('lazy_load module', function() {
     var custom_path, cachePackage, fakeLazyLoad;
     beforeEach(function() {
-        custom_path = spyOn(config, 'has_custom_path').andReturn(false);
-        cachePackage = spyOn(npmHelper, 'cachePackage').andReturn(Q(path.join('lib', 'dir')));
+        custom_path = spyOn(config, 'has_custom_path').and.returnValue(false);
+        cachePackage = spyOn(npmHelper, 'cachePackage').and.returnValue(Q(path.join('lib', 'dir')));
         fakeLazyLoad = function (id, platform, version) {
             if (platform == 'wp7' || platform == 'wp8') {
                 return Q(path.join('lib', 'wp', id, version, platform));
@@ -48,7 +48,7 @@ describe('lazy_load module', function() {
         var custom,
             version;
         beforeEach(function() {
-            custom = spyOn(lazy_load, 'custom').andReturn(Q(path.join('lib','dir')));
+            custom = spyOn(lazy_load, 'custom').and.returnValue(Q(path.join('lib','dir')));
             version = platforms.android.version;
             platforms.android.version = '3.14.15.9265';
         });
@@ -77,13 +77,13 @@ describe('lazy_load module', function() {
             spyOn(shell, 'mkdir');
             rm = spyOn(shell, 'rm');
             mv = spyOn(shell, 'mv');
-            exists = spyOn(fs, 'existsSync').andReturn(false);
-            readdir = spyOn(fs, 'readdirSync').andReturn(['somefile.txt']);
-            fire = spyOn(HooksRunner, 'fire').andReturn(Q());
+            exists = spyOn(fs, 'existsSync').and.returnValue(false);
+            readdir = spyOn(fs, 'readdirSync').and.returnValue(['somefile.txt']);
+            fire = spyOn(HooksRunner, 'fire').and.returnValue(Q());
         });
 
         it('should callback with no errors and not fire event hooks if library already exists', function(done) {
-            exists.andReturn(true);
+            exists.and.returnValue(true);
             var mock_platforms = {
                 'platform X': {
                     id: 'some id',
@@ -98,7 +98,7 @@ describe('lazy_load module', function() {
             }).fin(done);
         });
         it('should callback with no errors and fire event hooks even if library already exists if the lib url is a local dir', function(done) {
-            exists.andReturn(true);
+            exists.and.returnValue(true);
             var mock_platforms = {
                 'platform X': {
                     id: 'some id',
@@ -117,25 +117,25 @@ describe('lazy_load module', function() {
             var req,
                 events = {},
                 fakeRequest = {
-                    on: jasmine.createSpy().andCallFake(function(event, cb) {
+                    on: jasmine.createSpy().and.callFake(function(event, cb) {
                         events[event] = cb;
                         return fakeRequest;
                     }),
-                    pipe: jasmine.createSpy().andCallFake(function() { return fakeRequest; })
+                    pipe: jasmine.createSpy().and.callFake(function() { return fakeRequest; })
                 };
             beforeEach(function() {
                 events = {};
                 fakeRequest.on.reset();
                 fakeRequest.pipe.reset();
-                req = spyOn(request, 'get').andCallFake(function() {
+                req = spyOn(request, 'get').and.callFake(function() {
                     // Fire the 'end' event shortly.
                     setTimeout(function() {
                         events['end']();
                     }, 10);
                     return fakeRequest;
                 });
-                spyOn(npm, 'load').andCallFake(function(cb) { cb(); });
-                spyOn(npm.config, 'get').andReturn(null);
+                spyOn(npm, 'load').and.callFake(function(cb) { cb(); });
+                spyOn(npm.config, 'get').and.returnValue(null);
             });
 
             it('should call request with appropriate url params', function(done) {
@@ -157,7 +157,7 @@ describe('lazy_load module', function() {
             });
             it('should take into account https-proxy npm configuration var if exists for https:// calls', function(done) {
                 var proxy = 'https://somelocalproxy.com';
-                npm.config.get.andReturn(proxy);
+                npm.config.get.and.returnValue(proxy);
                 var url = 'https://github.com/apache/someplugin';
                 var with_android_platform = {
                     'android': {
@@ -177,7 +177,7 @@ describe('lazy_load module', function() {
             });
             it('should take into account proxy npm config var if exists for http:// calls', function(done) {
                 var proxy = 'http://somelocalproxy.com';
-                npm.config.get.andReturn(proxy);
+                npm.config.get.and.returnValue(proxy);
                 var url = 'http://github.com/apache/someplugin';
                 var with_android_platform = {
                     'android': {
@@ -232,11 +232,11 @@ describe('lazy_load module', function() {
     describe('based_on_config method', function() {
         var cordova, custom, read;
         beforeEach(function() {
-            cordova = spyOn(lazy_load, 'cordova').andReturn(Q());
-            custom = spyOn(lazy_load, 'custom').andReturn(Q());
+            cordova = spyOn(lazy_load, 'cordova').and.returnValue(Q());
+            custom = spyOn(lazy_load, 'custom').and.returnValue(Q());
         });
         it('should invoke custom if a custom lib is specified', function(done) {
-            read = spyOn(config, 'read').andReturn({
+            read = spyOn(config, 'read').and.returnValue({
                 lib:{
                     maybe:{
                         url:'you or eye?',
@@ -246,8 +246,8 @@ describe('lazy_load module', function() {
                 }
             });
             var p = '/some/random/custom/path';
-            custom_path.andReturn(p);
-            custom.andCallFake(function (platforms, platform) {
+            custom_path.and.returnValue(p);
+            custom.and.callFake(function (platforms, platform) {
                 expect(platform).toEqual('maybe');
                 expect(platforms[platform].url).toEqual('you or eye?');
                 expect(platforms[platform].id).toEqual('eye dee');

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/0e0d7a55/cordova-lib/spec-cordova/platform.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/platform.spec.js b/cordova-lib/spec-cordova/platform.spec.js
index a944a24..63ad2bb 100644
--- a/cordova-lib/spec-cordova/platform.spec.js
+++ b/cordova-lib/spec-cordova/platform.spec.js
@@ -57,7 +57,7 @@ describe('platform end-to-end', function () {
 
         // The config.json in the fixture project points at fake "local" paths.
         // Since it's not a URL, the lazy-loader will just return the junk path.
-        spyOn(superspawn, 'spawn').andCallFake(function(cmd, args) {
+        spyOn(superspawn, 'spawn').and.callFake(function(cmd, args) {
             if (cmd.match(/create\b/)) {
                 // This is a call to the bin/create script, so do the copy ourselves.
                 shell.cp('-R', path.join(__dirname, 'fixtures', 'platforms', 'android'), path.join(project, 'platforms'));
@@ -148,8 +148,8 @@ describe('platform end-to-end', function () {
     it('should call prepare after plugins were installed into platform', function(done) {
         var order = '';
         var fail = jasmine.createSpy(fail);
-        spyOn(plugman.raw, 'install').andCallFake(function() { order += 'I'; });
-        spyOn(cordova.raw, 'prepare').andCallFake(function() { order += 'P'; });
+        spyOn(plugman.raw, 'install').and.callFake(function() { order += 'I'; });
+        spyOn(cordova.raw, 'prepare').and.callFake(function() { order += 'P'; });
 
         cordova.raw.plugin('add', path.join(pluginsDir, 'test'))
         .then(function() {

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/0e0d7a55/cordova-lib/spec-cordova/plugin.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/plugin.spec.js b/cordova-lib/spec-cordova/plugin.spec.js
index ae99c46..a4f4cd3 100644
--- a/cordova-lib/spec-cordova/plugin.spec.js
+++ b/cordova-lib/spec-cordova/plugin.spec.js
@@ -83,6 +83,7 @@ function removePlugin(id) {
 var errorHandler = {
     errorCallback: function(error) {
         // We want the error to be printed by jasmine
+        console.log(error);
         expect(error).toBeUndefined();
     }
 };
@@ -91,7 +92,7 @@ var errorHandler = {
 // that use a searchpath. See loadLocalPlugins() in plugman/fetch.js for details.
 // The searchpath behavior gets tested in the plugman spec
 function mockPluginFetch(id, dir) {
-    spyOn(plugman.raw, 'fetch').andCallFake(function(target, pluginPath, fetchOptions) {
+    spyOn(plugman.raw, 'fetch').and.callFake(function(target, pluginPath, fetchOptions) {
         var dest = path.join(project, 'plugins', id);
         var src = path.join(dir, 'plugin.xml');
 
@@ -106,12 +107,12 @@ function setupPlatformApiSpies() {
     var addPluginOrig = api.addPlugin;
     var removePluginOrig = api.removePlugin;
 
-    spyOn(api, 'addPlugin').andCallFake(function () {
+    spyOn(api, 'addPlugin').and.callFake(function () {
         return addPluginOrig.apply(api, arguments)
         .thenResolve(true);
     });
 
-    spyOn(api, 'removePlugin').andCallFake(function () {
+    spyOn(api, 'removePlugin').and.callFake(function () {
         return removePluginOrig.apply(api, arguments)
         .thenResolve(true);
     });
@@ -135,8 +136,8 @@ describe('plugin end-to-end', function() {
         util._resetOrigCwd();
         delete process.env.PWD;
 
-        spyOn(prepare, 'preparePlatforms').andCallThrough();
-        spyOn(errorHandler, 'errorCallback').andCallThrough();
+        spyOn(prepare, 'preparePlatforms').and.callThrough();
+        spyOn(errorHandler, 'errorCallback').and.callThrough();
     });
 
     afterEach(function() {
@@ -150,9 +151,12 @@ describe('plugin end-to-end', function() {
         .then(function() {
             return removePlugin(pluginId);
         })
-        .fail(errorHandler.errorCallback)
+        .fail(function(err) {
+            console.error(err);
+            expect(err).toBeUndefined();
+        })
         .fin(done);
-    });
+    }, 30000);
 
     it('should run prepare after plugin installation/removal by default', function(done) {
         addPlugin(path.join(pluginsDir, 'fake1'), pluginId, {})
@@ -164,9 +168,12 @@ describe('plugin end-to-end', function() {
         .then(function () {
             expect(prepare.preparePlatforms).toHaveBeenCalled();
         })
-        .fail(errorHandler.errorCallback)
+        .fail(function(err) {
+            console.error(err);
+            expect(err).toBeUndefined();
+        })
         .fin(done);
-    });
+    }, 30000);
 
     it('should not run prepare after plugin installation/removal if platform return non-falsy value', function(done) {
         setupPlatformApiSpies();
@@ -178,9 +185,12 @@ describe('plugin end-to-end', function() {
         .then(function () {
             expect(prepare.preparePlatforms).not.toHaveBeenCalled();
         })
-        .fail(errorHandler.errorCallback)
+        .fail(function(err) {
+            console.error(err);
+            expect(err).toBeUndefined();
+        })
         .fin(done);
-    });
+    }, 30000);
 
     it('should successfully add a plugin using relative path when running from subdir inside of project', function(done) {
         // Copy plugin to subdir inside of the project. This is required since path.relative
@@ -199,9 +209,12 @@ describe('plugin end-to-end', function() {
         .then(function() {
             return removePlugin(pluginId);
         })
-        .fail(errorHandler.errorCallback)
+        .fail(function(err) {
+            console.error(err);
+            expect(err).toBeUndefined();
+        })
         .fin(done);
-    });
+    }, 30000);
 
     it('should respect preference default values', function (done) {    
        addPlugin(path.join(pluginsDir, org_test_defaultvariables), org_test_defaultvariables, {cli_variables: { REQUIRED:'NO', REQUIRED_ANDROID:'NO'}}, done)
@@ -216,30 +229,38 @@ describe('plugin end-to-end', function() {
             expect(defaultPluginPreferences.REQUIRED).toBe('NO');
             return removePlugin(org_test_defaultvariables);
        })
-       .fail(errorHandler.errorCallback)
-       .fin(done);
-    });
+        .fail(function(err) {
+            console.error(err);
+            expect(err).toBeUndefined();
+        })
+        .fin(done);
+    }, 30000);
 
     it('should successfully add a plugin when specifying CLI variables', function(done) {
         addPlugin(path.join(pluginsDir, org_test_defaultvariables), org_test_defaultvariables, {cli_variables: { REQUIRED:'yes', REQUIRED_ANDROID:'yes'}}, done)
-        .fail(errorHandler.errorCallback)
+        .fail(function(err) {
+            console.error(err);
+            expect(err).toBeUndefined();
+        })
         .fin(done);
-    });
+    }, 30000);
 
     it('should not check npm info when using the searchpath flag', function(done) {
         mockPluginFetch(npmInfoTestPlugin, path.join(pluginsDir, npmInfoTestPlugin));
-
         spyOn(registry, 'info');
         addPlugin(npmInfoTestPlugin, npmInfoTestPlugin, {searchpath: pluginsDir}, done)
         .then(function() {
             expect(registry.info).not.toHaveBeenCalled();
 
             var fetchOptions = plugman.raw.fetch.mostRecentCall.args[2];
-            expect(fetchOptions.searchpath).toBeDefined();
+            expect(fetchOptions.searchpath).toExist();
+        })
+        .fail(function(err) {
+            console.error(err);
+            expect(err).toBeUndefined();
         })
-        .fail(errorHandler.errorCallback)
         .fin(done);
-    });
+    }, 30000);
 
     it('should not check npm info when using the noregistry flag', function(done) {
         mockPluginFetch(npmInfoTestPlugin, path.join(pluginsDir, npmInfoTestPlugin));
@@ -252,9 +273,12 @@ describe('plugin end-to-end', function() {
             var fetchOptions = plugman.raw.fetch.mostRecentCall.args[2];
             expect(fetchOptions.noregistry).toBeTruthy();
         })
-        .fail(errorHandler.errorCallback)
+        .fail(function(err) {
+            console.error(err);
+            expect(err).toBeUndefined();
+        })
         .fin(done);
-    });
+    }, 30000);
 
     it('should not check npm info when fetching from a Git repository', function(done) {
         spyOn(registry, 'info');
@@ -262,14 +286,17 @@ describe('plugin end-to-end', function() {
         .then(function() {
             expect(registry.info).not.toHaveBeenCalled();
         })
-        .fail(errorHandler.errorCallback)
+        .fail(function(err) {
+            console.error(err);
+            expect(err).toBeUndefined();
+        })
         .fin(done);
-    });
+    }, 30000);
 
     it('should select the plugin version based on npm info when fetching from npm', function(done) {
         mockPluginFetch(npmInfoTestPlugin, path.join(pluginsDir, npmInfoTestPlugin));
 
-        spyOn(registry, 'info').andCallThrough();
+        spyOn(registry, 'info').and.callThrough();
         addPlugin(npmInfoTestPlugin, npmInfoTestPlugin, {}, done)
         .then(function() {
             expect(registry.info).toHaveBeenCalled();
@@ -277,15 +304,18 @@ describe('plugin end-to-end', function() {
             var fetchTarget = plugman.raw.fetch.mostRecentCall.args[0];
             expect(fetchTarget).toEqual(npmInfoTestPlugin + '@' + npmInfoTestPluginVersion);
         })
-        .fail(errorHandler.errorCallback)
+        .fail(function(err) {
+            console.error(err);
+            expect(err).toBeUndefined();
+        })
         .fin(done);
-    });
+    }, 30000);
 
     it('should handle scoped npm packages', function(done) {
         var scopedPackage = '@testscope/' + npmInfoTestPlugin;
         mockPluginFetch(npmInfoTestPlugin, path.join(pluginsDir, npmInfoTestPlugin));
 
-        spyOn(registry, 'info').andReturn(Q({}));
+        spyOn(registry, 'info').and.returnValue(Q({}));
         addPlugin(scopedPackage, npmInfoTestPlugin, {}, done)
         .then(function() {
             // Check to make sure that we are at least trying to get the correct package.
@@ -296,9 +326,12 @@ describe('plugin end-to-end', function() {
             var fetchTarget = plugman.raw.fetch.mostRecentCall.args[0];
             expect(fetchTarget).toEqual(scopedPackage);
         })
-        .fail(errorHandler.errorCallback)
+        .fail(function(err) {
+            console.error(err);
+            expect(err).toBeUndefined();
+        })
         .fin(done);
-    });
+    }, 30000);
 
     it('should handle scoped npm packages with given version tags', function(done) {
         var scopedPackage = '@testscope/' + npmInfoTestPlugin + '@latest';
@@ -312,7 +345,10 @@ describe('plugin end-to-end', function() {
             var fetchTarget = plugman.raw.fetch.mostRecentCall.args[0];
             expect(fetchTarget).toEqual(scopedPackage);
         })
-        .fail(errorHandler.errorCallback)
+        .fail(function(err) {
+            console.error(err);
+            expect(err).toBeUndefined();
+        })
         .fin(done);
-    });
+    }, 30000);
 });

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/0e0d7a55/cordova-lib/spec-cordova/plugin_fetch.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/plugin_fetch.spec.js b/cordova-lib/spec-cordova/plugin_fetch.spec.js
index e4c4d45..b1507ef 100644
--- a/cordova-lib/spec-cordova/plugin_fetch.spec.js
+++ b/cordova-lib/spec-cordova/plugin_fetch.spec.js
@@ -154,14 +154,14 @@ function removeTestProject() {
     shell.rm('-rf', tempDir);
 }
 
-describe('plugin fetching version selection', function(done) {
+describe('plugin fetching version selection', function() {
     createTestProject();
 
     beforeEach(function() {
         // Adding a matcher for checking the array of warning messages so that
         // we can have meanigful error messages. Expected is passed because
         // Jasmine will print it out if the matcher fails
-        this.addMatchers({
+        jasmine.addMatchers({
             toContain: function(check, expected) {
                 for(var i = 0; i < this.actual.length; i++) {
                     if (check(this.actual[i])) {
@@ -190,8 +190,8 @@ describe('plugin fetching version selection', function(done) {
         var after = getWarningCheckCallback(done, [
             getPlatformRequirement('6.0.0')
         ]);
-
         testEngineWithProject(after, testEngine, '1.3.0');
+        done();
     });
 
     it('should apply upper bound engine constraints when there are no unspecified constraints above the upper bound', function(done) {
@@ -208,8 +208,8 @@ describe('plugin fetching version selection', function(done) {
         var after = getWarningCheckCallback(done, [
             getPlatformRequirement('6.0.0')
         ]);
-
         testEngineWithProject(after, testEngine, null);
+        done();
     });
 
     it('should apply upper bound engine constraints when there are unspecified constraints above the upper bound', function(done) {
@@ -222,8 +222,8 @@ describe('plugin fetching version selection', function(done) {
         var after = getWarningCheckCallback(done, [
             getPlatformRequirement('~5.0.0')
         ]);
-
         testEngineWithProject(after, testEngine, '1.7.1');
+        done();
     });
 
     it('should handle the case where there are no constraints for earliest releases', function(done) {
@@ -234,8 +234,8 @@ describe('plugin fetching version selection', function(done) {
         var after = getWarningCheckCallback(done, [
             getPlatformRequirement('~5.0.0')
         ]);
-
         testEngineWithProject(after, testEngine, '0.7.0');
+        done();
     });
 
     it('should handle the case where the lowest version is unsatisfied', function(done) {
@@ -246,8 +246,8 @@ describe('plugin fetching version selection', function(done) {
         var after = getWarningCheckCallback(done, [
             getPlatformRequirement('~5.0.0')
         ]);
-
         testEngineWithProject(after, testEngine, null);
+        done();
     });
 
     it('should handle upperbounds if no single version constraints are given', function(done) {
@@ -258,6 +258,7 @@ describe('plugin fetching version selection', function(done) {
         var after = getWarningCheckCallback(done, []);
 
         testEngineWithProject(after, testEngine, '2.3.0');
+        done();
     });
 
     it('should apply upper bounds greater than highest version', function(done) {
@@ -271,6 +272,7 @@ describe('plugin fetching version selection', function(done) {
         ]);
 
         testEngineWithProject(after, testEngine, null);
+        done();
     });
 
     it('should treat empty constraints as satisfied', function(done) {
@@ -284,6 +286,7 @@ describe('plugin fetching version selection', function(done) {
         ]);
 
         testEngineWithProject(after, testEngine, '1.0.0');
+        done();
     });
 
     it('should ignore an empty cordovaDependencies entry', function(done) {
@@ -292,6 +295,7 @@ describe('plugin fetching version selection', function(done) {
         var after = getWarningCheckCallback(done, []);
 
         testEngineWithProject(after, testEngine, null);
+        done();
     });
 
     it('should ignore a badly formatted semver range', function(done) {
@@ -302,6 +306,7 @@ describe('plugin fetching version selection', function(done) {
         var after = getWarningCheckCallback(done, []);
 
         testEngineWithProject(after, testEngine, '2.3.0');
+        done();
     });
 
     it('should respect unreleased versions in constraints', function(done) {
@@ -316,6 +321,7 @@ describe('plugin fetching version selection', function(done) {
         ]);
 
         testEngineWithProject(after, testEngine, '1.1.0');
+        done();
     });
 
     it('should respect plugin constraints', function(done) {
@@ -330,6 +336,7 @@ describe('plugin fetching version selection', function(done) {
         ]);
 
         testEngineWithProject(after, testEngine, '2.0.0');
+        done();
     });
 
     it('should respect cordova constraints', function(done) {
@@ -344,6 +351,7 @@ describe('plugin fetching version selection', function(done) {
         ]);
 
         testEngineWithProject(after, testEngine, '1.1.0');
+        done();
     });
 
     it('should not include pre-release versions', function(done) {
@@ -358,6 +366,7 @@ describe('plugin fetching version selection', function(done) {
 
         // Should not return 2.0.0-rc.2
         testEngineWithProject(after, testEngine, '1.7.1');
+        done();
     });
 
     it('should not fail if there is no engine in the npm info', function(done) {
@@ -388,6 +397,7 @@ describe('plugin fetching version selection', function(done) {
             expect(toFetch).toBe(null);
         })
         .fail(getVersionErrorCallback).fin(after);
+        done();
     });
 
     it('should handle extra whitespace', function(done) {
@@ -402,6 +412,7 @@ describe('plugin fetching version selection', function(done) {
         ]);
 
         testEngineWithProject(after, testEngine, '1.7.1');
+        done();
     });
 
     it('should ignore badly typed version requirement entries', function(done) {
@@ -414,6 +425,7 @@ describe('plugin fetching version selection', function(done) {
         var after = getWarningCheckCallback(done, []);
 
         testEngineWithProject(after, testEngine, '2.3.0');
+        done();
     });
 
     it('should ignore badly typed constraint entries', function(done) {
@@ -429,6 +441,7 @@ describe('plugin fetching version selection', function(done) {
         var after = getWarningCheckCallback(done, []);
 
         testEngineWithProject(after, testEngine, '2.3.0');
+        done();
     });
 
     it('should ignore bad semver versions', function(done) {
@@ -446,6 +459,7 @@ describe('plugin fetching version selection', function(done) {
         ]);
 
         testEngineWithProject(after, testEngine, null);
+        done();
     });
 
     it('should not fail if there are bad semver versions', function(done) {
@@ -464,6 +478,7 @@ describe('plugin fetching version selection', function(done) {
         ]);
 
         testEngineWithProject(after, testEngine, '1.7.1');
+        done();
     });
 
     it('should properly warn about multiple unmet requirements', function(done) {
@@ -479,8 +494,8 @@ describe('plugin fetching version selection', function(done) {
             getPlatformRequirement('>5.1.0'),
             getPluginRequirement('3.1.0')
         ]);
-
         testEngineWithProject(after, testEngine, '1.3.0');
+        done();
     });
 
     it('should properly warn about both unmet latest and upper bound requirements', function(done) {
@@ -496,8 +511,8 @@ describe('plugin fetching version selection', function(done) {
             getPlatformRequirement('>5.1.0 AND >7.1.0'),
             getPluginRequirement('3.1.0')
         ]);
-
         testEngineWithProject(after, testEngine, null);
+        done();
     });
 
     it('should not warn about versions past latest', function(done) {
@@ -512,8 +527,8 @@ describe('plugin fetching version selection', function(done) {
         var after = getWarningCheckCallback(done, [
             getPlatformRequirement('>5.1.0')
         ]);
-
         testEngineWithProject(after, testEngine, '1.3.0');
+        done();
     });
 
     it('clean up after plugin fetch spec', function() {

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/0e0d7a55/cordova-lib/spec-cordova/plugin_parser.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/plugin_parser.spec.js b/cordova-lib/spec-cordova/plugin_parser.spec.js
index 33de1ff..f20d311 100644
--- a/cordova-lib/spec-cordova/plugin_parser.spec.js
+++ b/cordova-lib/spec-cordova/plugin_parser.spec.js
@@ -26,7 +26,7 @@ var xml_contents = fs.readFileSync(xml, 'utf-8');
 describe('plugin.xml parser', function () {
     var readfile;
     beforeEach(function() {
-        readfile = spyOn(fs, 'readFileSync').andReturn(xml_contents);
+        readfile = spyOn(fs, 'readFileSync').and.returnValue(xml_contents);
     });
 
     it('should read a proper plugin.xml file', function() {
@@ -43,4 +43,3 @@ describe('plugin.xml parser', function () {
         expect(cfg.platforms.indexOf('ios') > -1).toBe(true);
     });
 });
-

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/0e0d7a55/cordova-lib/spec-cordova/prepare.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/prepare.spec.js b/cordova-lib/spec-cordova/prepare.spec.js
index 6c20f7d..a43dfb0 100644
--- a/cordova-lib/spec-cordova/prepare.spec.js
+++ b/cordova-lib/spec-cordova/prepare.spec.js
@@ -64,37 +64,37 @@ describe('prepare command', function() {
         load, platformApi, getPlatformApi;
 
     beforeEach(function () {
-        getPlatformApi = spyOn(platforms, 'getPlatformApi').andCallFake(function (platform, rootDir) {
+        getPlatformApi = spyOn(platforms, 'getPlatformApi').and.callFake(function (platform, rootDir) {
             return {
-                prepare: jasmine.createSpy('prepare').andReturn(Q()),
-                getPlatformInfo: jasmine.createSpy('getPlatformInfo').andReturn({
+                prepare: jasmine.createSpy('prepare').and.returnValue(Q()),
+                getPlatformInfo: jasmine.createSpy('getPlatformInfo').and.returnValue({
                     locations: {
                         www: path.join(project_dir, 'platforms', platform, 'www')
                     }
                 }),
             };
         });
-        is_cordova = spyOn(util, 'isCordova').andReturn(project_dir);
-        cd_project_root = spyOn(util, 'cdProjectRoot').andReturn(project_dir);
-        list_platforms = spyOn(util, 'listPlatforms').andReturn(supported_platforms);
-        fire = spyOn(HooksRunner.prototype, 'fire').andReturn(Q());
+        is_cordova = spyOn(util, 'isCordova').and.returnValue(project_dir);
+        cd_project_root = spyOn(util, 'cdProjectRoot').and.returnValue(project_dir);
+        list_platforms = spyOn(util, 'listPlatforms').and.returnValue(supported_platforms);
+        fire = spyOn(HooksRunner.prototype, 'fire').and.returnValue(Q());
 
-        find_plugins = spyOn(util, 'findPlugins').andReturn([]);
-        spyOn(PlatformJson, 'load').andReturn(new PlatformJson(null, null, {}));
+        find_plugins = spyOn(util, 'findPlugins').and.returnValue([]);
+        spyOn(PlatformJson, 'load').and.returnValue(new PlatformJson(null, null, {}));
         spyOn(PlatformJson.prototype, 'save');
-        load = spyOn(lazy_load, 'based_on_config').andReturn(Q());
-        cp = spyOn(shell, 'cp').andReturn(true);
+        load = spyOn(lazy_load, 'based_on_config').and.returnValue(Q());
+        cp = spyOn(shell, 'cp').and.returnValue(true);
         mkdir = spyOn(shell, 'mkdir');
         spyOn(ConfigParser.prototype, 'write');
-        spyOn(xmlHelpers, 'parseElementtreeSync').andCallFake(function() {
+        spyOn(xmlHelpers, 'parseElementtreeSync').and.callFake(function() {
             return new et.ElementTree(et.XML(TEST_XML));
         });
     });
 
     describe('failure', function() {
         it('should not run outside of a cordova-based project by calling util.isCordova', function(done) {
-            is_cordova.andReturn(false);
-            cd_project_root.andCallThrough();  // undo spy here because prepare depends on cdprojectRoot for isCordova check
+            is_cordova.and.returnValue(false);
+            cd_project_root.and.callThrough();  // undo spy here because prepare depends on cdprojectRoot for isCordova check
             prepare().then(function() {
                 expect('this call').toBe('fail');
             }, function(err) {
@@ -102,7 +102,7 @@ describe('prepare command', function() {
             }).fin(done);
         });
         it('should not run inside a cordova-based project with no platforms', function(done) {
-            list_platforms.andReturn([]);
+            list_platforms.and.returnValue([]);
             prepare().then(function() {
                 expect('this call').toBe('fail');
             }, function(err) {
@@ -152,7 +152,7 @@ describe('prepare command', function() {
 
         describe('with no platforms added', function() {
             beforeEach(function() {
-                list_platforms.andReturn([]);
+                list_platforms.and.returnValue([]);
             });
             it('should not fire the hooker', function(done) {
                 Q().then(prepare).then(function() {
@@ -165,4 +165,4 @@ describe('prepare command', function() {
             });
         });
     });
-});
+});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/0e0d7a55/cordova-lib/spec-cordova/run.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/run.spec.js b/cordova-lib/spec-cordova/run.spec.js
index 2b09e04..43b6b79 100644
--- a/cordova-lib/spec-cordova/run.spec.js
+++ b/cordova-lib/spec-cordova/run.spec.js
@@ -30,20 +30,20 @@ describe('run command', function() {
     var prepare_spy;
 
     beforeEach(function() {
-        is_cordova = spyOn(util, 'isCordova').andReturn(project_dir);
-        cd_project_root = spyOn(util, 'cdProjectRoot').andReturn(project_dir);
-        list_platforms = spyOn(util, 'listPlatforms').andReturn(supported_platforms);
-        fire = spyOn(HooksRunner.prototype, 'fire').andReturn(Q());
-        prepare_spy = spyOn(cordova.raw, 'prepare').andReturn(Q());
+        is_cordova = spyOn(util, 'isCordova').and.returnValue(project_dir);
+        cd_project_root = spyOn(util, 'cdProjectRoot').and.returnValue(project_dir);
+        list_platforms = spyOn(util, 'listPlatforms').and.returnValue(supported_platforms);
+        fire = spyOn(HooksRunner.prototype, 'fire').and.returnValue(Q());
+        prepare_spy = spyOn(cordova.raw, 'prepare').and.returnValue(Q());
         platformApi = {
-            run: jasmine.createSpy('run').andReturn(Q()),
-            build: jasmine.createSpy('build').andReturn(Q())
+            run: jasmine.createSpy('run').and.returnValue(Q()),
+            build: jasmine.createSpy('build').and.returnValue(Q())
         };
-        getPlatformApi = spyOn(platforms, 'getPlatformApi').andReturn(platformApi);
+        getPlatformApi = spyOn(platforms, 'getPlatformApi').and.returnValue(platformApi);
     });
     describe('failure', function() {
         it('should not run inside a Cordova-based project with no added platforms by calling util.listPlatforms', function(done) {
-            list_platforms.andReturn([]);
+            list_platforms.and.returnValue([]);
             Q().then(cordova.raw.run).then(function() {
                 expect('this call').toBe('fail');
             }, function(err) {
@@ -52,8 +52,8 @@ describe('run command', function() {
         });
         it('should not run outside of a Cordova-based project', function(done) {
             var msg = 'Dummy message about not being in a cordova dir.';
-            cd_project_root.andThrow(new Error(msg));
-            is_cordova.andReturn(false);
+            cd_project_root.and.throwError(new Error(msg));
+            is_cordova.and.returnValue(false);
             Q().then(cordova.raw.run).then(function() {
                 expect('this call').toBe('fail');
             }, function(err) {
@@ -136,7 +136,7 @@ describe('run command', function() {
             var originalBuildSpy;
             beforeEach(function() {
                 originalBuildSpy = platformApi.build;
-                platformApi.build = jasmine.createSpy('build').andCallFake(function(opts) {
+                platformApi.build = jasmine.createSpy('build').and.callFake(function(opts) {
                     opts.couldBeModified = 'insideBuild';
                     return Q();
                 });
@@ -176,7 +176,7 @@ describe('run command', function() {
 
         describe('with no platforms added', function() {
             it('should not fire the hooker', function(done) {
-                list_platforms.andReturn([]);
+                list_platforms.and.returnValue([]);
                 Q().then(cordova.raw.run).then(function() {
                     expect('this call').toBe('fail');
                 }, function(err) {

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/0e0d7a55/cordova-lib/spec-cordova/save.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/save.spec.js b/cordova-lib/spec-cordova/save.spec.js
index 0c7ef31..3dce296 100644
--- a/cordova-lib/spec-cordova/save.spec.js
+++ b/cordova-lib/spec-cordova/save.spec.js
@@ -85,12 +85,12 @@ describe('(save flag)', function () {
      */
     function redirectRegistryCalls(id) {
         var originalFetch = registry.fetch;
-        spyOn(registry, 'fetch').andCallFake(function(package) {
+        spyOn(registry, 'fetch').and.callFake(function(package) {
             return originalFetch([id]);
         });
 
         var originalInfo = registry.info;
-        spyOn(registry, 'info').andCallFake(function(package) {
+        spyOn(registry, 'info').and.callFake(function(package) {
             return originalInfo([id]);
         });
     }
@@ -101,13 +101,13 @@ describe('(save flag)', function () {
         shell.mkdir(tempPath);
 
         //jasmine mocks
-        spyOn(util, 'isCordova').andReturn(appPath);
-        spyOn(util, 'cdProjectRoot').andReturn(appPath);
-        spyOn(cordova.raw, 'prepare').andReturn(Q());
-        spyOn(prepare, 'preparePlatforms').andReturn(Q());
+        spyOn(util, 'isCordova').and.returnValue(appPath);
+        spyOn(util, 'cdProjectRoot').and.returnValue(appPath);
+        spyOn(cordova.raw, 'prepare').and.returnValue(Q());
+        spyOn(prepare, 'preparePlatforms').and.returnValue(Q());
 
-        spyOn(PlatformApi, 'createPlatform').andReturn(Q());
-        spyOn(PlatformApi, 'updatePlatform').andReturn(Q());
+        spyOn(PlatformApi, 'createPlatform').and.returnValue(Q());
+        spyOn(PlatformApi, 'updatePlatform').and.returnValue(Q());
 
         //rewire mocks
         revertInstallPluginsForNewPlatform = platform.__set__('installPluginsForNewPlatform', function () { return Q(); });
@@ -314,7 +314,7 @@ describe('(save flag)', function () {
             platform('add', platformName + '@' + platformVersionNew)
             .then(function () {
                 var fsExistsSync = fs.existsSync.bind(fs);
-                spyOn(fs, 'existsSync').andCallFake(function (somePath) {
+                spyOn(fs, 'existsSync').and.callFake(function (somePath) {
                     return (somePath === path.join(appPath, 'platforms', platformName)) || fsExistsSync(somePath);
                 });
 
@@ -342,7 +342,7 @@ describe('(save flag)', function () {
             .then(function () {
                 revertDownloadPlatform();
                 var fsExistsSync = fs.existsSync.bind(fs);
-                spyOn(fs, 'existsSync').andCallFake(function (somePath) {
+                spyOn(fs, 'existsSync').and.callFake(function (somePath) {
                     return (somePath === path.join(appPath, 'platforms', platformName)) || fsExistsSync(somePath);
                 });
                 mockDownloadPlatform(platformLocalPathNew, platformVersionNew);
@@ -680,7 +680,7 @@ describe('(save flag)', function () {
         });
 
         it('spec.25 should install plugins already added to the project into platform when restoring it', function (done) {
-            var fail = jasmine.createSpy('fail').andCallFake(function (err) {
+            var fail = jasmine.createSpy('fail').and.callFake(function (err) {
                 console.log(err.message);
             });
 

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/0e0d7a55/cordova-lib/spec-cordova/util.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/util.spec.js b/cordova-lib/spec-cordova/util.spec.js
index 2bcdae4..b004256 100644
--- a/cordova-lib/spec-cordova/util.spec.js
+++ b/cordova-lib/spec-cordova/util.spec.js
@@ -37,11 +37,12 @@ describe('util module', function() {
             process.env['PWD'] = origPWD;
             process.chdir(cwd);
         });
+        function removeDir(directory) {
+            shell.rm('-rf', directory);            
+        }
         it('should return false if it hits the home directory', function() {
             var somedir = path.join(home, 'somedir');
-            this.after(function() {
-                shell.rm('-rf', somedir);
-            });
+            removeDir(somedir);
             shell.mkdir(somedir);
             expect(util.isCordova(somedir)).toEqual(false);
         });
@@ -52,9 +53,7 @@ describe('util module', function() {
         it('should return the first directory it finds with a .cordova folder in it', function() {
             var somedir = path.join(home,'somedir');
             var anotherdir = path.join(somedir, 'anotherdir');
-            this.after(function() {
-                shell.rm('-rf', somedir);
-            });
+            removeDir(somedir);
             shell.mkdir('-p', anotherdir);
             shell.mkdir('-p', path.join(somedir, 'www', 'config.xml'));
             expect(util.isCordova(somedir)).toEqual(somedir);
@@ -63,9 +62,7 @@ describe('util module', function() {
             delete process.env['PWD'];
             var somedir = path.join(home,'somedir');
             var anotherdir = path.join(somedir, 'anotherdir');
-            this.after(function() {
-                shell.rm('-rf', somedir);
-            });
+            removeDir(somedir);
             shell.mkdir('-p', anotherdir);
             shell.mkdir('-p', path.join(somedir, 'www'));
             shell.mkdir('-p', path.join(somedir, 'config.xml'));
@@ -75,9 +72,7 @@ describe('util module', function() {
         it('should use PWD when available', function() {
             var somedir = path.join(home,'somedir');
             var anotherdir = path.join(somedir, 'anotherdir');
-            this.after(function() {
-                shell.rm('-rf', somedir);
-            });
+            removeDir(somedir);
             shell.mkdir('-p', anotherdir);
             shell.mkdir('-p', path.join(somedir, 'www', 'config.xml'));
             process.env['PWD'] = anotherdir;
@@ -87,9 +82,7 @@ describe('util module', function() {
         it('should use cwd as a fallback when PWD is not a cordova dir', function() {
             var somedir = path.join(home,'somedir');
             var anotherdir = path.join(somedir, 'anotherdir');
-            this.after(function() {
-                shell.rm('-rf', somedir);
-            });
+            removeDir(somedir);
             shell.mkdir('-p', anotherdir);
             shell.mkdir('-p', path.join(somedir, 'www', 'config.xml'));
             process.env['PWD'] = path.sep;
@@ -99,9 +92,7 @@ describe('util module', function() {
         it('should ignore platform www/config.xml', function() {
             var somedir = path.join(home,'somedir');
             var anotherdir = path.join(somedir, 'anotherdir');
-            this.after(function() {
-                shell.rm('-rf', somedir);
-            });
+            removeDir(somedir);
             shell.mkdir('-p', anotherdir);
             shell.mkdir('-p', path.join(anotherdir, 'www', 'config.xml'));
             shell.mkdir('-p', path.join(somedir, 'www'));
@@ -216,17 +207,17 @@ describe('util module', function() {
         };
 
         beforeEach(function() {
-            isCordova = spyOn(util, 'isCordova').andReturn('/fake/path');
-            listPlatforms = spyOn(util, 'listPlatforms').andReturn(['android']);
+            isCordova = spyOn(util, 'isCordova').and.returnValue('/fake/path');
+            listPlatforms = spyOn(util, 'listPlatforms').and.returnValue(['android']);
         });
 
         it('should throw if called outside of cordova project', function() {
-            isCordova.andReturn(false);
+            isCordova.and.returnValue(false);
             expect(function() { util.preProcessOptions(); }).toThrow();
         });
 
         it('should throw when no platforms added to project', function() {
-            listPlatforms.andReturn([]);
+            listPlatforms.and.returnValue([]);
             expect(function () { util.preProcessOptions(); }).toThrow();
         });
 
@@ -248,7 +239,7 @@ describe('util module', function() {
         });
 
         it('should pick buildConfig if no option is provided, but buildConfig.json exists', function() {
-            spyOn(util, 'existsSync').andReturn(true);
+            spyOn(util, 'existsSync').and.returnValue(true);
             // Using path.join below to normalize path separators
             expect(util.preProcessOptions())
                 .toEqual(jasmine.objectContaining({options: {buildConfig: path.join('/fake/path/build.json')}}));
@@ -316,4 +307,4 @@ describe('util module', function() {
             });
         });
     });
-});
+});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/0e0d7a55/cordova-lib/spec-cordova/wrappers.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/wrappers.spec.js b/cordova-lib/spec-cordova/wrappers.spec.js
index 4d9a49e..0846447 100644
--- a/cordova-lib/spec-cordova/wrappers.spec.js
+++ b/cordova-lib/spec-cordova/wrappers.spec.js
@@ -34,13 +34,13 @@ describe('callback wrapper', function() {
             });
 
             it('should work with no callback and success', function() {
-                raw.andReturn(Q());
+                raw.and.returnValue(Q());
                 cordova[call]();
                 expect(raw).toHaveBeenCalled();
             });
 
             it('should call the callback on success', function(done) {
-                raw.andReturn(Q());
+                raw.and.returnValue(Q());
                 cordova[call](function(err) {
                     expect(err).toBeUndefined();
                     done();
@@ -49,7 +49,7 @@ describe('callback wrapper', function() {
 
             it('should call the callback with the error on failure', function(done) {
                 var err = new Error('junk');
-                raw.andReturn(Q.reject(err));
+                raw.and.returnValue(Q.reject(err));
                 cordova[call](function(e) {
                     expect(e).toEqual(err);
                     done();
@@ -57,5 +57,4 @@ describe('callback wrapper', function() {
             });
         });
     }
-});
-
+});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/0e0d7a55/cordova-lib/spec-plugman/add_platform.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/add_platform.spec.js b/cordova-lib/spec-plugman/add_platform.spec.js
index 208216b..123c051 100644
--- a/cordova-lib/spec-plugman/add_platform.spec.js
+++ b/cordova-lib/spec-plugman/add_platform.spec.js
@@ -22,8 +22,8 @@ var platform = require('../src/plugman/platform'),
 
 describe( 'platform add/remove', function() {
     it( 'should call platform add', function() {
-        var sPlatformA = spyOn( platform, 'add' ).andReturn(Q()),
-            sPlatformR = spyOn( platform, 'remove' ).andReturn(Q());
+        var sPlatformA = spyOn( platform, 'add' ).and.returnValue(Q()),
+            sPlatformR = spyOn( platform, 'remove' ).and.returnValue(Q());
         platform.add();
         expect(sPlatformA).toHaveBeenCalled();
         platform.remove();
@@ -39,18 +39,19 @@ describe( 'platform add', function() {
         f.then( function() { done = true; }, function(err) { done = err; } );
     }
     beforeEach( function() {
-        existsSync = spyOn( fs, 'existsSync' ).andReturn( false );
+        existsSync = spyOn( fs, 'existsSync' ).and.returnValue( false );
         done = false;
     });
-    it( 'should error on non existing plugin.xml', function() {
-        runs(function() {
-            platformPromise( platform.add() );
+    it( 'should error on non existing plugin.xml', function(done) {
+        platform.add().then(function(result){
+            expect(false).toBe(true);
+            done();
+        },
+        function err(errMsg) {
+            expect(errMsg.toString()).toContain('can\'t find a plugin.xml.  Are you in the plugin?');
+            done();
         });
-        waitsFor(function() { return done; }, 'platform promise never resolved', 500);
-        runs(function() {
-            expect(''+ done ).toContain( 'can\'t find a plugin.xml.  Are you in the plugin?'  );
-        });
-    });
+    }, 6000);
 });
 
 
@@ -61,16 +62,17 @@ describe( 'platform remove', function() {
         f.then( function() { done = true; }, function(err) { done = err; } );
     }
     beforeEach( function() {
-        existsSync = spyOn( fs, 'existsSync' ).andReturn( false );
+        existsSync = spyOn( fs, 'existsSync' ).and.returnValue( false );
         done = false;
     });
-    it( 'should error on non existing plugin.xml', function() {
-        runs(function() {
-            platformPromise( platform.remove() );
-        });
-        waitsFor(function() { return done; }, 'platform promise never resolved', 500);
-        runs(function() {
-            expect(''+ done ).toContain( 'can\'t find a plugin.xml.  Are you in the plugin?'  );
+    it( 'should error on non existing plugin.xml', function(done) {
+        platform.remove().then(function(result) {
+            expect(false).toBe(true);
+            done();
+        },
+        function err(errMsg) {
+            expect(errMsg.toString()).toContain( 'can\'t find a plugin.xml.  Are you in the plugin?'  );
+            done();
         });
-    });
-});
+    }, 6000);
+});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/0e0d7a55/cordova-lib/spec-plugman/config.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/config.spec.js b/cordova-lib/spec-plugman/config.spec.js
index a70624f..3d79ad9 100644
--- a/cordova-lib/spec-plugman/config.spec.js
+++ b/cordova-lib/spec-plugman/config.spec.js
@@ -22,7 +22,7 @@ var config = require('../src/plugman/config'),
 
 describe('config', function() {
     it('should run config', function() {
-        var sConfig = spyOn(registry, 'config').andReturn(Q());
+        var sConfig = spyOn(registry, 'config').and.returnValue(Q());
         var params = ['set', 'registry', 'http://registry.cordova.io'];
         config(params);
         expect(sConfig).toHaveBeenCalledWith(params);

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/0e0d7a55/cordova-lib/spec-plugman/create.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/create.spec.js b/cordova-lib/spec-plugman/create.spec.js
index 0ec1a2e..377aeb1 100644
--- a/cordova-lib/spec-plugman/create.spec.js
+++ b/cordova-lib/spec-plugman/create.spec.js
@@ -24,7 +24,7 @@ var create = require('../src/plugman/create'),
 
 describe( 'create', function() {
     it( 'should call create', function() {
-        var sCreate = spyOn( plugman, 'create' ).andReturn(Q());
+        var sCreate = spyOn( plugman, 'create' ).and.returnValue(Q());
         plugman.create();
         expect(sCreate).toHaveBeenCalled();
     });
@@ -39,13 +39,13 @@ describe( 'create plugin', function() {
         f.then( function() { done = true; }, function(err) { done = err; } );
     }
     beforeEach( function() {
-        existsSync = spyOn( fs, 'existsSync' ).andReturn( false );
-        mkdir = spyOn( shell, 'mkdir' ).andReturn( true );
+        existsSync = spyOn( fs, 'existsSync' ).and.returnValue( false );
+        mkdir = spyOn( shell, 'mkdir' ).and.returnValue( true );
         writeFileSync = spyOn( fs, 'writeFileSync' );
         done = false;
     });
 
-    it( 'should be successful', function() {
+    it( 'should be successful', function(done) {
         runs(function() {
             createPromise( create( 'name', 'org.plugin.id', '0.0.0', '.', [] ) );
         });
@@ -64,17 +64,18 @@ describe( 'create plugin in existing plugin', function() {
         f.then( function() { done = true; }, function(err) { done = err; } );
     }
     beforeEach( function() {
-        existsSync = spyOn( fs, 'existsSync' ).andReturn( true );
+        existsSync = spyOn( fs, 'existsSync' ).and.returnValue( true );
         done = false;
     });
 
-    it( 'should fail due to an existing plugin.xml', function() {
-        runs(function() {
-            createPromise( create() );
+    it( 'should fail due to an existing plugin.xml', function(done) {
+        create().then(function(result) {
+            expect(false).toBe(true);
+            done();
+        },
+        function err(errMsg) {
+            expect(errMsg.toString()).toContain( 'plugin.xml already exists. Are you already in a plugin?'  );
+            done();
         });
-        waitsFor(function() { return done; }, 'create promise never resolved', 500);
-        runs(function() {
-            expect(''+ done ).toContain( 'plugin.xml already exists. Are you already in a plugin?'  );
-        });
-    });
+    }, 6000);
 });

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/0e0d7a55/cordova-lib/spec-plugman/fetch.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/fetch.spec.js b/cordova-lib/spec-plugman/fetch.spec.js
index 9aa04ef..19b406f 100644
--- a/cordova-lib/spec-plugman/fetch.spec.js
+++ b/cordova-lib/spec-plugman/fetch.spec.js
@@ -64,7 +64,7 @@ describe('fetch', function() {
         beforeEach(function() {
             rm = spyOn(shell, 'rm');
             sym = spyOn(fs, 'symlinkSync');
-            cp = spyOn(shell, 'cp').andCallThrough();
+            cp = spyOn(shell, 'cp').and.callThrough();
             save_metadata = spyOn(metadata, 'save_fetch_metadata');
             realrm('-rf', temp);
             fetch.__set__('localPlugins', null);
@@ -121,11 +121,11 @@ describe('fetch', function() {
         }
 
         beforeEach(function() {
-            clone = spyOn(plugins, 'clonePluginGitRepo').andReturn(Q(test_plugin));
+            clone = spyOn(plugins, 'clonePluginGitRepo').and.returnValue(Q(test_plugin));
             save_metadata = spyOn(metadata, 'save_fetch_metadata');
             done = false;
         });
-        it('should call clonePluginGitRepo for https:// and git:// based urls', function() {
+        it('should call clonePluginGitRepo for https:// and git:// based urls', function(done) {
             var url = 'https://github.com/bobeast/GAPlugin.git';
             runs(function() {
                 fetchPromise(fetch(url, temp));
@@ -137,67 +137,58 @@ describe('fetch', function() {
                 expect(save_metadata).toHaveBeenCalled();
             });
         });
-        it('should call clonePluginGitRepo with subdir if applicable', function() {
+        
+        it('should call clonePluginGitRepo with subdir if applicable', function(done) {
             var url = 'https://github.com/bobeast/GAPlugin.git';
             var dir = 'fakeSubDir';
-            runs(function() {
-                fetchPromise(fetch(url, temp, { subdir: dir }));
-            });
-            waitsFor(function() { return done; }, 'fetch promise never resolved', 250);
-            runs(function() {
+            fetch(url, temp, { subdir: dir }).then(function(){
                 expect(clone).toHaveBeenCalledWith(url, temp, dir, undefined, undefined);
                 expect(save_metadata).toHaveBeenCalled();
+                done();
             });
-        });
-        it('should call clonePluginGitRepo with subdir and git ref if applicable', function() {
+        }, 6000);
+
+        it('should call clonePluginGitRepo with subdir and git ref if applicable', function(done) {
             var url = 'https://github.com/bobeast/GAPlugin.git';
             var dir = 'fakeSubDir';
             var ref = 'fakeGitRef';
-            runs(function() {
-                fetchPromise(fetch(url, temp, { subdir: dir, git_ref: ref }));
-            });
-            waitsFor(function() { return done; }, 'fetch promise never resolved', 250);
-            runs(function() {
+            fetch(url, temp, { subdir: dir, git_ref: ref }).then(function(){
                 expect(clone).toHaveBeenCalledWith(url, temp, dir, ref, undefined);
                 expect(save_metadata).toHaveBeenCalled();
+                done();
             });
-        });
-        it('should extract the git ref from the URL hash, if provided', function() {
+        }, 6000);
+
+        it('should extract the git ref from the URL hash, if provided', function(done) {
             var url = 'https://github.com/bobeast/GAPlugin.git#fakeGitRef';
             var baseURL = 'https://github.com/bobeast/GAPlugin.git';
-            runs(function() {
-                fetchPromise(fetch(url, temp, {}));
-            });
-            waitsFor(function() { return done; }, 'fetch promise never resolved', 250);
-            runs(function() {
+            fetch(url, temp, {}).then(function(){
                 expect(clone).toHaveBeenCalledWith(baseURL, temp, '.', 'fakeGitRef', undefined);
                 expect(save_metadata).toHaveBeenCalled();
+                done();
             });
-        });
-        it('should extract the subdir from the URL hash, if provided', function() {
+        }, 6000);
+
+        it('should extract the subdir from the URL hash, if provided', function(done) {
             var url = 'https://github.com/bobeast/GAPlugin.git#:fakeSubDir';
             var baseURL = 'https://github.com/bobeast/GAPlugin.git';
-            runs(function() {
-                fetchPromise(fetch(url, temp, {}));
-            });
-            waitsFor(function() { return done; }, 'fetch promise never resolved', 250);
-            runs(function() {
+            fetch(url, temp, {}).then(function(result){
                 expect(clone).toHaveBeenCalledWith(baseURL, temp, 'fakeSubDir', undefined, undefined);
                 expect(save_metadata).toHaveBeenCalled();
+                done();
             });
-        });
-        it('should extract the git ref and subdir from the URL hash, if provided', function() {
+        }, 6000);
+
+        it('should extract the git ref and subdir from the URL hash, if provided', function(done) {
             var url = 'https://github.com/bobeast/GAPlugin.git#fakeGitRef:/fake/Sub/Dir/';
             var baseURL = 'https://github.com/bobeast/GAPlugin.git';
-            runs(function() {
-                fetchPromise(fetch(url, temp, {}));
-            });
-            waitsFor(function() { return done; }, 'fetch promise never resolved', 250);
-            runs(function() {
+            fetch(url, temp, {}).then(function(result){
                 expect(clone).toHaveBeenCalledWith(baseURL, temp, 'fake/Sub/Dir', 'fakeGitRef', undefined);
                 expect(save_metadata).toHaveBeenCalled();
+                done();
             });
-        });
+        }, 6000);
+
         it('should fail when the expected ID doesn\'t match', function(done) {
             fetch('https://github.com/bobeast/GAPlugin.git', temp, { expected_id: 'wrongID' })
             .then(function() {
@@ -264,7 +255,7 @@ describe('fetch', function() {
         else {
             it('should skip copy to avoid recursive error', function(done) {
 
-                var cp = spyOn(shell, 'cp').andCallFake(function(){});
+                var cp = spyOn(shell, 'cp').and.callFake(function(){});
 
                 wrapper(fetch(srcDir, appDir),done, function() {
                     expect(cp).not.toHaveBeenCalled();
@@ -281,7 +272,7 @@ describe('fetch', function() {
             rm = spyOn(shell, 'rm');
             sym = spyOn(fs, 'symlinkSync');
             save_metadata = spyOn(metadata, 'save_fetch_metadata');
-            sFetch = spyOn(registry, 'fetch').andReturn(Q(test_plugin));
+            sFetch = spyOn(registry, 'fetch').and.returnValue(Q(test_plugin));
             realrm('-rf', temp);
         });
 

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/0e0d7a55/cordova-lib/spec-plugman/info.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/info.spec.js b/cordova-lib/spec-plugman/info.spec.js
index 7b4e460..3939abe 100644
--- a/cordova-lib/spec-plugman/info.spec.js
+++ b/cordova-lib/spec-plugman/info.spec.js
@@ -22,7 +22,7 @@ var search = require('../src/plugman/info'),
 
 describe('info', function() {
     it('should show plugin info', function() {
-        var sSearch = spyOn(registry, 'info').andReturn(Q({
+        var sSearch = spyOn(registry, 'info').and.returnValue(Q({
             name: 'fakePlugin',
             version: '1.0.0',
             engines: [{ name: 'plugman', version: '>=0.11' }]


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


[44/50] [abbrv] cordova-lib git commit: CB-12358: updated .ratignore

Posted by st...@apache.org.
CB-12358: updated .ratignore


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

Branch: refs/heads/master
Commit: a54f2e51c29866ae95d50691aa809e83bd02920d
Parents: 209768e
Author: Steve Gill <st...@gmail.com>
Authored: Tue Jan 17 15:42:22 2017 -0800
Committer: Steve Gill <st...@gmail.com>
Committed: Tue Jan 17 15:42:22 2017 -0800

----------------------------------------------------------------------
 cordova-lib/.ratignore | 2 ++
 1 file changed, 2 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/a54f2e51/cordova-lib/.ratignore
----------------------------------------------------------------------
diff --git a/cordova-lib/.ratignore b/cordova-lib/.ratignore
index d9800ba..326f85b 100644
--- a/cordova-lib/.ratignore
+++ b/cordova-lib/.ratignore
@@ -4,3 +4,5 @@ fixtures
 platformsConfig.json
 defaults.json
 help.txt
+jasmine.json
+coverage


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


[08/50] [abbrv] cordova-lib git commit: CB-12039 Incremented package version to -dev

Posted by st...@apache.org.
CB-12039 Incremented package version to -dev


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

Branch: refs/heads/fetch-1.0.x
Commit: 824561bc5461f845a11f0bf71dfd56bcc12d1706
Parents: cad6496
Author: Steve Gill <st...@gmail.com>
Authored: Sat Oct 22 19:27:34 2016 -0700
Committer: Steve Gill <st...@gmail.com>
Committed: Sat Oct 22 19:27:34 2016 -0700

----------------------------------------------------------------------
 cordova-lib/package.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/824561bc/cordova-lib/package.json
----------------------------------------------------------------------
diff --git a/cordova-lib/package.json b/cordova-lib/package.json
index ed0dab8..c8286e9 100644
--- a/cordova-lib/package.json
+++ b/cordova-lib/package.json
@@ -3,7 +3,7 @@
   "name": "cordova-lib",
   "license": "Apache-2.0",
   "description": "Apache Cordova tools core lib and API",
-  "version": "6.4.0",
+  "version": "6.4.1-dev",
   "repository": {
     "type": "git",
     "url": "git://git-wip-us.apache.org/repos/asf/cordova-lib.git"


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


[40/50] [abbrv] cordova-lib git commit: CB-12358 Updated version and RELEASENOTES.md for release 1.0.2

Posted by st...@apache.org.
CB-12358 Updated version and RELEASENOTES.md for release 1.0.2


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

Branch: refs/heads/fetch-1.0.x
Commit: 0fa31b9ed329554beea1efeab046857421aa77a6
Parents: bfa0589
Author: Steve Gill <st...@gmail.com>
Authored: Tue Jan 17 15:33:48 2017 -0800
Committer: Steve Gill <st...@gmail.com>
Committed: Tue Jan 17 15:33:48 2017 -0800

----------------------------------------------------------------------
 cordova-fetch/RELEASENOTES.md | 3 +++
 cordova-fetch/package.json    | 4 ++--
 2 files changed, 5 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/0fa31b9e/cordova-fetch/RELEASENOTES.md
----------------------------------------------------------------------
diff --git a/cordova-fetch/RELEASENOTES.md b/cordova-fetch/RELEASENOTES.md
index e86e277..b3f264f 100644
--- a/cordova-fetch/RELEASENOTES.md
+++ b/cordova-fetch/RELEASENOTES.md
@@ -20,6 +20,9 @@
 -->
 # Cordova-fetch Release Notes
 
+### 1.0.2 (Jan 17, 2017)
+* [CB-12358](https://issues.apache.org/jira/browse/CB-12358) updated cordova-common dep for cordova-fetch to 2.0.0
+
 ### 1.0.0 (May 12, 2016)
 * [CB-9858](https://issues.apache.org/jira/browse/CB-9858) Added jasmine tests
 * [CB-9858](https://issues.apache.org/jira/browse/CB-9858) Added `npm uninstall` method to cordova-fetch

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/0fa31b9e/cordova-fetch/package.json
----------------------------------------------------------------------
diff --git a/cordova-fetch/package.json b/cordova-fetch/package.json
index 397bb9c..d6dd75e 100644
--- a/cordova-fetch/package.json
+++ b/cordova-fetch/package.json
@@ -1,6 +1,6 @@
 {
   "name": "cordova-fetch",
-  "version": "1.0.2-dev",
+  "version": "1.0.2",
   "description": "Apache Cordova fetch module. Fetches from git and npm.",
   "main": "index.js",
   "repository": {
@@ -21,7 +21,7 @@
     "email": "dev@cordova.apache.org"
   },
   "dependencies": {
-    "cordova-common": "^1.4.0",
+    "cordova-common": "2.0.0",
     "dependency-ls": "^1.0.0",
     "is-url": "^1.2.1",
     "q": "^1.4.1",


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


[47/50] [abbrv] cordova-lib git commit: CB-12358 Incremented package version to -dev

Posted by st...@apache.org.
CB-12358 Incremented package version to -dev


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

Branch: refs/heads/master
Commit: 1f415b2c35c5c8e4f53896f0a245ca368de03cc4
Parents: 3c08c72
Author: Steve Gill <st...@gmail.com>
Authored: Tue Jan 17 17:55:21 2017 -0800
Committer: Steve Gill <st...@gmail.com>
Committed: Tue Jan 17 17:55:21 2017 -0800

----------------------------------------------------------------------
 cordova-lib/package.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/1f415b2c/cordova-lib/package.json
----------------------------------------------------------------------
diff --git a/cordova-lib/package.json b/cordova-lib/package.json
index 643f516..a05d0a4 100644
--- a/cordova-lib/package.json
+++ b/cordova-lib/package.json
@@ -3,7 +3,7 @@
   "name": "cordova-lib",
   "license": "Apache-2.0",
   "description": "Apache Cordova tools core lib and API",
-  "version": "6.5.0",
+  "version": "6.5.1-dev",
   "repository": {
     "type": "git",
     "url": "git://git-wip-us.apache.org/repos/asf/cordova-lib.git"


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


[43/50] [abbrv] cordova-lib git commit: CB-12358: updated .ratignore

Posted by st...@apache.org.
CB-12358: updated .ratignore


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

Branch: refs/heads/fetch-1.0.x
Commit: a54f2e51c29866ae95d50691aa809e83bd02920d
Parents: 209768e
Author: Steve Gill <st...@gmail.com>
Authored: Tue Jan 17 15:42:22 2017 -0800
Committer: Steve Gill <st...@gmail.com>
Committed: Tue Jan 17 15:42:22 2017 -0800

----------------------------------------------------------------------
 cordova-lib/.ratignore | 2 ++
 1 file changed, 2 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/a54f2e51/cordova-lib/.ratignore
----------------------------------------------------------------------
diff --git a/cordova-lib/.ratignore b/cordova-lib/.ratignore
index d9800ba..326f85b 100644
--- a/cordova-lib/.ratignore
+++ b/cordova-lib/.ratignore
@@ -4,3 +4,5 @@ fixtures
 platformsConfig.json
 defaults.json
 help.txt
+jasmine.json
+coverage


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


[42/50] [abbrv] cordova-lib git commit: CB-12358 Updated version and RELEASENOTES.md for release 1.0.1

Posted by st...@apache.org.
CB-12358 Updated version and RELEASENOTES.md for release 1.0.1


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

Branch: refs/heads/master
Commit: 209768e0686dbdbf7deb63b406b05ebd832f5baa
Parents: 0fa31b9
Author: Steve Gill <st...@gmail.com>
Authored: Tue Jan 17 15:33:56 2017 -0800
Committer: Steve Gill <st...@gmail.com>
Committed: Tue Jan 17 15:33:56 2017 -0800

----------------------------------------------------------------------
 cordova-serve/RELEASENOTES.md | 9 +++++++--
 cordova-serve/package.json    | 2 +-
 2 files changed, 8 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/209768e0/cordova-serve/RELEASENOTES.md
----------------------------------------------------------------------
diff --git a/cordova-serve/RELEASENOTES.md b/cordova-serve/RELEASENOTES.md
index 18ddd81..cbcd572 100644
--- a/cordova-serve/RELEASENOTES.md
+++ b/cordova-serve/RELEASENOTES.md
@@ -20,13 +20,18 @@
 -->
 # Cordova-serve Release Notes
 
+### 1.0.1 (Jan 17, 2017)
+* [CB-12284](https://issues.apache.org/jira/browse/CB-12284) Include project root as additional root for static router
+* Some corrections and enhancements for cordova-serve readme.
+* On Windows, verify browsers installed before launching.
+
 ### 1.0.0 (Oct 05, 2015)
 * Refactor cordova-serve to use Express.
 
 ### 0.1.3 (Aug 22, 2015)
 * Clean up cordova-serve console output.
-* CB-9546 cordova-serve.servePlatform() should provide project folders
-* CB-9545 Cordova-serve's 'noCache' option does not work in IE.
+* [CB-9546](https://issues.apache.org/jira/browse/CB-9546) cordova-serve.servePlatform() should provide project folders
+* [CB-9545](https://issues.apache.org/jira/browse/CB-9545) Cordova-serve's 'noCache' option does not work in IE.
 * Add support for --target=edge to launch app in Edge browser.
 
 ### 0.1.2 (June 15, 2015)

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/209768e0/cordova-serve/package.json
----------------------------------------------------------------------
diff --git a/cordova-serve/package.json b/cordova-serve/package.json
index 7c9f2ce..fe9ff0b 100644
--- a/cordova-serve/package.json
+++ b/cordova-serve/package.json
@@ -1,6 +1,6 @@
 {
   "name": "cordova-serve",
-  "version": "1.0.1-dev",
+  "version": "1.0.1",
   "description": "Apache Cordova server support for cordova-lib and cordova-browser.",
   "main": "serve.js",
   "repository": {


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


[36/50] [abbrv] cordova-lib git commit: CB-12358 Updated version and RELEASENOTES.md for release 6.5.0

Posted by st...@apache.org.
CB-12358 Updated version and RELEASENOTES.md for release 6.5.0


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

Branch: refs/heads/master
Commit: 1200331397d54281df803c73315ab26c6cfb4ed8
Parents: 2bf3517
Author: Steve Gill <st...@gmail.com>
Authored: Tue Jan 17 15:33:33 2017 -0800
Committer: Steve Gill <st...@gmail.com>
Committed: Tue Jan 17 15:33:33 2017 -0800

----------------------------------------------------------------------
 cordova-lib/RELEASENOTES.md |  7 +++++++
 cordova-lib/package.json    | 12 ++++++------
 2 files changed, 13 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/12003313/cordova-lib/RELEASENOTES.md
----------------------------------------------------------------------
diff --git a/cordova-lib/RELEASENOTES.md b/cordova-lib/RELEASENOTES.md
index d6bdbca..234c89e 100644
--- a/cordova-lib/RELEASENOTES.md
+++ b/cordova-lib/RELEASENOTES.md
@@ -20,6 +20,13 @@
 -->
 # Cordova-lib Release Notes
 
+### 6.5.0 (Jan 17, 2017)
+* [CB-12018](https://issues.apache.org/jira/browse/CB-12018): updated `jshint` and updated `jasmine` tests to work with `jasmine` instead of `jasmine-node`
+* [CB-12314](https://issues.apache.org/jira/browse/CB-12314) updated pinned android to 6.1.1
+* [CB-12261](https://issues.apache.org/jira/browse/CB-12261) fix subdirectories deprecated warning always shows and stop fetch caused by [CB-11979](https://issues.apache.org/jira/browse/CB-11979)
+* [CB-12284](https://issues.apache.org/jira/browse/CB-12284) Include project root as additional root for static router
+* [CB-12088](https://issues.apache.org/jira/browse/CB-12088) Fix misleading warning when adding platform without `Api.js`
+
 ### 6.4.0 (Oct 21, 2016)
 * [CB-12039](https://issues.apache.org/jira/browse/CB-12039) updated pinned `Android` to 6.0.0 and `iOS` to 4.3.0
 * [CB-11979](https://issues.apache.org/jira/browse/CB-11979) added deprecation warning for installing plugins via subdirectories

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/12003313/cordova-lib/package.json
----------------------------------------------------------------------
diff --git a/cordova-lib/package.json b/cordova-lib/package.json
index 5fb2fe0..643f516 100644
--- a/cordova-lib/package.json
+++ b/cordova-lib/package.json
@@ -3,7 +3,7 @@
   "name": "cordova-lib",
   "license": "Apache-2.0",
   "description": "Apache Cordova tools core lib and API",
-  "version": "6.4.1-dev",
+  "version": "6.5.0",
   "repository": {
     "type": "git",
     "url": "git://git-wip-us.apache.org/repos/asf/cordova-lib.git"
@@ -19,10 +19,10 @@
   "engineStrict": true,
   "dependencies": {
     "aliasify": "^1.7.2",
-    "cordova-common": "1.5.x",
+    "cordova-common": "2.0.0",
     "cordova-create": "^1.0.1",
-    "cordova-fetch": "^1.0.1",
-    "cordova-js": "4.2.0",
+    "cordova-fetch": "1.0.2",
+    "cordova-js": "4.2.1",
     "cordova-registry-mapper": "1.x",
     "cordova-serve": "^1.0.0",
     "dep-graph": "1.1.0",
@@ -42,11 +42,11 @@
     "underscore": "1.7.0",
     "unorm": "1.3.3",
     "valid-identifier": "0.0.1",
-    "xcode": "^0.8.5"
+    "xcode": "^0.9.0"
   },
   "devDependencies": {
     "codecov": "^1.0.1",
-    "istanbul": "^0.3.4",
+    "istanbul": "^0.3.0",
     "jasmine": "^2.5.2",
     "jshint": "2.5.8",
     "rewire": "2.1.3"


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


[31/50] [abbrv] cordova-lib git commit: fixjasmine : CB-12018 : updated jshint and updated jasmine tests to work with jasmine instead of jasmine-node

Posted by st...@apache.org.
fixjasmine : CB-12018 : updated jshint and updated jasmine tests to work with jasmine instead of jasmine-node


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

Branch: refs/heads/fetch-1.0.x
Commit: 159b534e9152f602d8ffdf1a0e26625b91a1a680
Parents: b33e222
Author: audreyso <au...@adobe.com>
Authored: Tue Jan 10 10:31:46 2017 -0800
Committer: audreyso <au...@adobe.com>
Committed: Tue Jan 10 17:41:25 2017 -0800

----------------------------------------------------------------------
 cordova-common/package.json                     |  6 +-
 cordova-common/spec/support/jasmine.json        |  8 +++
 cordova-lib/package.json                        |  6 +-
 cordova-lib/spec-cordova/plugin_fetch.spec.js   | 75 ++++++++++----------
 cordova-lib/spec-cordova/prepare.spec.js        | 24 +++----
 cordova-lib/spec-plugman/platforms/ios.spec.js  |  6 +-
 .../spec-plugman/platforms/windows.spec.js      | 67 +++++++----------
 cordova-lib/spec-plugman/platforms/wp8.spec.js  |  5 --
 .../spec-plugman/registry/registry.spec.js      |  4 +-
 cordova-lib/spec/support/jasmine.json           | 13 ++++
 10 files changed, 105 insertions(+), 109 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/159b534e/cordova-common/package.json
----------------------------------------------------------------------
diff --git a/cordova-common/package.json b/cordova-common/package.json
index 98ffb2d..d1eae8a 100644
--- a/cordova-common/package.json
+++ b/cordova-common/package.json
@@ -18,9 +18,9 @@
   },
   "scripts": {
     "test": "npm run jshint && npm run jasmine",
-    "jshint": "node node_modules/jshint/bin/jshint src && node node_modules/jshint/bin/jshint spec",
-    "jasmine": "node node_modules/jasmine-node/bin/jasmine-node --captureExceptions --color spec",
-    "cover": "node node_modules/istanbul/lib/cli.js cover --root src --print detail node_modules/jasmine-node/bin/jasmine-node -- spec"
+    "jshint": "jshint src && jshint spec",
+    "jasmine": "jasmine --captureExceptions --color",
+    "cover": "istanbul cover --root src --print detail jasmine"
   },
   "dependencies": {
     "ansi": "^0.3.1",

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/159b534e/cordova-common/spec/support/jasmine.json
----------------------------------------------------------------------
diff --git a/cordova-common/spec/support/jasmine.json b/cordova-common/spec/support/jasmine.json
new file mode 100644
index 0000000..a5605d2
--- /dev/null
+++ b/cordova-common/spec/support/jasmine.json
@@ -0,0 +1,8 @@
+{
+    "spec_dir": "spec",
+    "spec_files": [
+    	"**/*[sS]pec.js"
+    ],
+    "stopSpecOnExpectationFailure": false,
+    "random": false
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/159b534e/cordova-lib/package.json
----------------------------------------------------------------------
diff --git a/cordova-lib/package.json b/cordova-lib/package.json
index 8b575f0..5fb2fe0 100644
--- a/cordova-lib/package.json
+++ b/cordova-lib/package.json
@@ -56,9 +56,9 @@
     "test-ios": "npm run test && npm run jasmine-ios",
     "ci": "npm run jshint && npm run cover && codecov",
     "jshint": "jshint src spec-cordova spec-plugman",
-    "jasmine": "jasmine-node --captureExceptions --color spec-plugman spec-cordova",
-    "jasmine-ios": "jasmine-node --captureExceptions --color spec-cordova/platform.spec.ios.js --matchall",
-    "cover": "istanbul cover --root src --print detail node_modules/jasmine-node/bin/jasmine-node -- spec-cordova spec-plugman"
+    "jasmine": "jasmine --captureExceptions --color",
+    "jasmine-ios": "jasmine --captureExceptions --color spec-cordova/platform.spec.ios.js --matchall",
+    "cover": "istanbul cover --root src --print detail jasmine"
   },
   "contributors": [
     {

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/159b534e/cordova-lib/spec-cordova/plugin_fetch.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/plugin_fetch.spec.js b/cordova-lib/spec-cordova/plugin_fetch.spec.js
index e1d58cc..8673484 100644
--- a/cordova-lib/spec-cordova/plugin_fetch.spec.js
+++ b/cordova-lib/spec-cordova/plugin_fetch.spec.js
@@ -89,11 +89,11 @@ function checkUnmetRequirements(requirements) {
             });
         }
     });
-
     expect(reqWarnings.length).toEqual(requirements.length);
 
+
     requirements.forEach(function(requirement) {
-        expect(reqWarnings).toContain(function(extractedWarning) {
+        expect(reqWarnings).toContainArray(function(extractedWarning) {
             return  extractedWarning.dependency === requirement.dependency.trim() &&
                     extractedWarning.installed  === requirement.installed.trim() &&
                     extractedWarning.required   === requirement.required.trim();
@@ -156,19 +156,22 @@ function removeTestProject() {
 
 describe('plugin fetching version selection', function() {
     createTestProject();
-
     beforeEach(function() {
-        // Adding a matcher for checking the array of warning messages so that
-        // we can have meanigful error messages. Expected is passed because
-        // Jasmine will print it out if the matcher fails
         jasmine.addMatchers({
-            toContain: function(check, expected) {
-                for(var i = 0; i < this.actual.length; i++) {
-                    if (check(this.actual[i])) {
-                        return true;
+            'toContainArray': function() {
+                return {
+                    compare: function(actual, expected) {
+                        var result = {};
+                        result.pass = false;
+                        for(var i = 0; i < actual.length; i++) {
+                            if (expected(actual[i])) {
+                                result.pass = true;
+                                break;
+                            }
+                        }
+                        return result;
                     }
-                }
-                return false;
+                };
             }
         });
 
@@ -191,8 +194,7 @@ describe('plugin fetching version selection', function() {
             getPlatformRequirement('6.0.0')
         ]);
         testEngineWithProject(after, testEngine, '1.3.0');
-        done();
-    });
+    }, 6000);
 
     it('Test 002 : should apply upper bound engine constraints when there are no unspecified constraints above the upper bound', function(done) {
         var testEngine = {
@@ -209,7 +211,6 @@ describe('plugin fetching version selection', function() {
             getPlatformRequirement('6.0.0')
         ]);
         testEngineWithProject(after, testEngine, null);
-        done();
     });
 
     it('Test 003 : should apply upper bound engine constraints when there are unspecified constraints above the upper bound', function(done) {
@@ -223,7 +224,7 @@ describe('plugin fetching version selection', function() {
             getPlatformRequirement('~5.0.0')
         ]);
         testEngineWithProject(after, testEngine, '1.7.1');
-        done();
+
     });
 
     it('Test 004 : should handle the case where there are no constraints for earliest releases', function(done) {
@@ -235,7 +236,7 @@ describe('plugin fetching version selection', function() {
             getPlatformRequirement('~5.0.0')
         ]);
         testEngineWithProject(after, testEngine, '0.7.0');
-        done();
+
     });
 
     it('Test 005 : should handle the case where the lowest version is unsatisfied', function(done) {
@@ -247,7 +248,7 @@ describe('plugin fetching version selection', function() {
             getPlatformRequirement('~5.0.0')
         ]);
         testEngineWithProject(after, testEngine, null);
-        done();
+
     });
 
     it('Test 006 : should handle upperbounds if no single version constraints are given', function(done) {
@@ -258,7 +259,7 @@ describe('plugin fetching version selection', function() {
         var after = getWarningCheckCallback(done, []);
 
         testEngineWithProject(after, testEngine, '2.3.0');
-        done();
+
     });
 
     it('Test 007 : should apply upper bounds greater than highest version', function(done) {
@@ -272,7 +273,7 @@ describe('plugin fetching version selection', function() {
         ]);
 
         testEngineWithProject(after, testEngine, null);
-        done();
+
     });
 
     it('Test 008 : should treat empty constraints as satisfied', function(done) {
@@ -286,7 +287,7 @@ describe('plugin fetching version selection', function() {
         ]);
 
         testEngineWithProject(after, testEngine, '1.0.0');
-        done();
+
     });
 
     it('Test 009 : should ignore an empty cordovaDependencies entry', function(done) {
@@ -295,7 +296,7 @@ describe('plugin fetching version selection', function() {
         var after = getWarningCheckCallback(done, []);
 
         testEngineWithProject(after, testEngine, null);
-        done();
+
     });
 
     it('Test 010 : should ignore a badly formatted semver range', function(done) {
@@ -306,7 +307,7 @@ describe('plugin fetching version selection', function() {
         var after = getWarningCheckCallback(done, []);
 
         testEngineWithProject(after, testEngine, '2.3.0');
-        done();
+
     });
 
     it('Test 011 : should respect unreleased versions in constraints', function(done) {
@@ -321,7 +322,7 @@ describe('plugin fetching version selection', function() {
         ]);
 
         testEngineWithProject(after, testEngine, '1.1.0');
-        done();
+
     });
 
     it('Test 012 : should respect plugin constraints', function(done) {
@@ -336,7 +337,7 @@ describe('plugin fetching version selection', function() {
         ]);
 
         testEngineWithProject(after, testEngine, '2.0.0');
-        done();
+
     });
 
     it('Test 013 : should respect cordova constraints', function(done) {
@@ -351,7 +352,7 @@ describe('plugin fetching version selection', function() {
         ]);
 
         testEngineWithProject(after, testEngine, '1.1.0');
-        done();
+
     });
 
     it('Test 014 : should not include pre-release versions', function(done) {
@@ -366,7 +367,7 @@ describe('plugin fetching version selection', function() {
 
         // Should not return 2.0.0-rc.2
         testEngineWithProject(after, testEngine, '1.7.1');
-        done();
+
     });
 
     it('Test 015 : should not fail if there is no engine in the npm info', function(done) {
@@ -397,7 +398,7 @@ describe('plugin fetching version selection', function() {
             expect(toFetch).toBe(null);
         })
         .fail(getVersionErrorCallback).fin(after);
-        done();
+
     });
 
     it('Test 017 : should handle extra whitespace', function(done) {
@@ -412,7 +413,7 @@ describe('plugin fetching version selection', function() {
         ]);
 
         testEngineWithProject(after, testEngine, '1.7.1');
-        done();
+
     });
 
     it('Test 018 : should ignore badly typed version requirement entries', function(done) {
@@ -425,7 +426,7 @@ describe('plugin fetching version selection', function() {
         var after = getWarningCheckCallback(done, []);
 
         testEngineWithProject(after, testEngine, '2.3.0');
-        done();
+
     });
 
     it('Test 019 : should ignore badly typed constraint entries', function(done) {
@@ -441,7 +442,7 @@ describe('plugin fetching version selection', function() {
         var after = getWarningCheckCallback(done, []);
 
         testEngineWithProject(after, testEngine, '2.3.0');
-        done();
+
     });
 
     it('Test 020 : should ignore bad semver versions', function(done) {
@@ -451,7 +452,7 @@ describe('plugin fetching version selection', function() {
             '^1.1.2'        : { 'cordova-android': '3.1.0' },
             '<=1.3.0'       : { 'cordova-android': '3.1.0' },
             '1.0'           : { 'cordova-android': '3.1.0' },
-            2               : { 'cordova-android': '3.1.0' }
+            '2'               : { 'cordova-android': '3.1.0' }
         };
 
         var after = getWarningCheckCallback(done, [
@@ -459,7 +460,6 @@ describe('plugin fetching version selection', function() {
         ]);
 
         testEngineWithProject(after, testEngine, null);
-        done();
     });
 
     it('Test 021 : should not fail if there are bad semver versions', function(done) {
@@ -470,7 +470,7 @@ describe('plugin fetching version selection', function() {
             '1.0.0'         : { 'cordova-android': '~3'    },   // Good semver
             '2.0.0'         : { 'cordova-android': '5.1.0' },   // Good semver
             '1.0'           : { 'cordova-android': '3.1.0' },
-            2               : { 'cordova-android': '3.1.0' }
+            '2'               : { 'cordova-android': '3.1.0' }
         };
 
         var after = getWarningCheckCallback(done, [
@@ -478,7 +478,6 @@ describe('plugin fetching version selection', function() {
         ]);
 
         testEngineWithProject(after, testEngine, '1.7.1');
-        done();
     });
 
     it('Test 022 : should properly warn about multiple unmet requirements', function(done) {
@@ -494,8 +493,8 @@ describe('plugin fetching version selection', function() {
             getPlatformRequirement('>5.1.0'),
             getPluginRequirement('3.1.0')
         ]);
+
         testEngineWithProject(after, testEngine, '1.3.0');
-        done();
     });
 
     it('Test 023 : should properly warn about both unmet latest and upper bound requirements', function(done) {
@@ -511,8 +510,8 @@ describe('plugin fetching version selection', function() {
             getPlatformRequirement('>5.1.0 AND >7.1.0'),
             getPluginRequirement('3.1.0')
         ]);
+
         testEngineWithProject(after, testEngine, null);
-        done();
     });
 
     it('Test 024 : should not warn about versions past latest', function(done) {
@@ -527,8 +526,8 @@ describe('plugin fetching version selection', function() {
         var after = getWarningCheckCallback(done, [
             getPlatformRequirement('>5.1.0')
         ]);
+
         testEngineWithProject(after, testEngine, '1.3.0');
-        done();
     });
 
     it('Test 025 : clean up after plugin fetch spec', function() {

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/159b534e/cordova-lib/spec-cordova/prepare.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/prepare.spec.js b/cordova-lib/spec-cordova/prepare.spec.js
index 2ac7850..ed740c7 100644
--- a/cordova-lib/spec-cordova/prepare.spec.js
+++ b/cordova-lib/spec-cordova/prepare.spec.js
@@ -154,17 +154,17 @@ describe('prepare command', function() {
                         save: false,
                         fetch: false,
                         paths:
-                         [ '/some/path/platforms/ios/www',
-                           '/some/path/platforms/osx/www',
-                           '/some/path/platforms/android/www',
-                           '/some/path/platforms/ubuntu/www',
-                           '/some/path/platforms/amazon-fireos/www',
-                           '/some/path/platforms/wp8/www',
-                           '/some/path/platforms/blackberry10/www',
-                           '/some/path/platforms/firefoxos/www',
-                           '/some/path/platforms/windows/www',
-                           '/some/path/platforms/webos/www',
-                           '/some/path/platforms/browser/www' ],
+                         [ path.join('/','some','path','platforms','ios','www'),
+                           path.join('/','some','path','platforms','osx','www'),
+                           path.join('/','some','path','platforms','android','www'),
+                           path.join('/','some','path','platforms','ubuntu','www'),
+                           path.join('/','some','path','platforms','amazon-fireos','www'),
+                           path.join('/','some','path','platforms','wp8','www'),
+                           path.join('/','some','path','platforms','blackberry10','www'),
+                           path.join('/','some','path','platforms','firefoxos','www'),
+                           path.join('/','some','path','platforms','windows','www'),
+                           path.join('/','some','path','platforms','webos','www'),
+                           path.join('/','some','path','platforms','browser','www') ],
                         searchpath: undefined } ]);
                 }, function(err) {
                     expect(err).toBeUndefined();
@@ -172,7 +172,7 @@ describe('prepare command', function() {
             });
             it('Test 006 : should fire after hooks through the hooker module, and pass in platforms and paths as data object', function(done) {
                 prepare('android').then(function() {
-                    expect(fire.calls.argsFor(1)).toEqual([ 'after_prepare',{ platforms: [ 'android' ],verbose: false,options: {},paths: [ '/some/path/platforms/android/www' ],searchpath: undefined } ]);
+                    expect(fire.calls.argsFor(1)).toEqual([ 'after_prepare',{ platforms: [ 'android' ],verbose: false,options: {},paths: [ path.join( '/','some','path', 'platforms', 'android', 'www' ) ],searchpath: undefined } ]);
                 }, function(err) {
                     expect(err).toBeUndefined('Exception while running `prepare android`:\n' + err.stack);
                 }).fin(done);

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/159b534e/cordova-lib/spec-plugman/platforms/ios.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/platforms/ios.spec.js b/cordova-lib/spec-plugman/platforms/ios.spec.js
index 6407069..fff00c1 100644
--- a/cordova-lib/spec-plugman/platforms/ios.spec.js
+++ b/cordova-lib/spec-plugman/platforms/ios.spec.js
@@ -61,10 +61,6 @@ function copyArray(arr) {
     return Array.prototype.slice.call(arr, 0);
 }
 
-function installPromise(f) {
-    f.then(function(res) { done = true; }, function(err) { done = err; });
-}
-
 function slashJoin() {
     // In some places we need to use forward slash instead of path.join().
     // See CB-7311.
@@ -311,7 +307,7 @@ describe('ios project handler', function() {
                 expect(xcode.hasFile('usr/lib/libsqlite3.dylib')).toBeTruthy();
                 done();
             }).then(function () {
-                return install('ios', temp, dummyplugin)
+                return install('ios', temp, dummyplugin);
             }).then(function () {
                 var xcode = ios.parseProjectFile(temp).xcode;
                 // from org.test.plugins.dummyplugin

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/159b534e/cordova-lib/spec-plugman/platforms/windows.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/platforms/windows.spec.js b/cordova-lib/spec-plugman/platforms/windows.spec.js
index 6759bc3..5b68c3d 100644
--- a/cordova-lib/spec-plugman/platforms/windows.spec.js
+++ b/cordova-lib/spec-plugman/platforms/windows.spec.js
@@ -65,7 +65,7 @@ beforeEach(function () {
                     }
                     return result;
                 }
-            }
+            };
         }
     }); 
 });
@@ -487,7 +487,6 @@ beforeEach(function () {
                             var incText = resourcefiles[0].target;
                             var targetConditions = {versions: undefined, deviceTarget: undefined, arch: 'x86'};
                             validateUninstalledProjects('resource-file', resourcefiles[0], path, incText, targetConditions, ['all']);
-
                             done();
                         });
                 });
@@ -497,11 +496,9 @@ beforeEach(function () {
                     install('windows', cordovaProjectWindowsPlatformDir, dummyplugin, cordovaProjectPluginsDir, {})
                         .then(function () {
                             var path = 'ItemGroup/Content';
-
-                            incText = resourcefiles[1].target;
-                            targetConditions = {versions: '>=8.1', deviceTarget: undefined, arch: undefined};
+                            var incText = resourcefiles[1].target;
+                            var targetConditions = {versions: '>=8.1', deviceTarget: undefined, arch: undefined};
                             validateUninstalledProjects('resource-file', resourcefiles[1], path, incText, targetConditions, ['windows', 'phone', 'windows10']);
-
                             done();
                         });
                 });
@@ -511,11 +508,9 @@ beforeEach(function () {
                     install('windows', cordovaProjectWindowsPlatformDir, dummyplugin, cordovaProjectPluginsDir, {})
                         .then(function () {
                             var path = 'ItemGroup/Content';
-
-                            incText = resourcefiles[2].target;
-                            targetConditions = {versions: undefined, deviceTarget: 'phone', arch: undefined};
+                            var incText = resourcefiles[2].target;
+                            var targetConditions = {versions: undefined, deviceTarget: 'phone', arch: undefined};
                             validateUninstalledProjects('resource-file', resourcefiles[2], path, incText, targetConditions, ['phone']);
-
                             done();
                         });
                 });
@@ -525,10 +520,9 @@ beforeEach(function () {
                     install('windows', cordovaProjectWindowsPlatformDir, dummyplugin, cordovaProjectPluginsDir, {})
                         .then(function () {
                             var path = 'ItemGroup/Content';
-                            incText = resourcefiles[3].target;
-                            targetConditions = {versions: '8.0', deviceTarget: 'windows', arch: 'x64'};
+                            var incText = resourcefiles[3].target;
+                            var targetConditions = {versions: '8.0', deviceTarget: 'windows', arch: 'x64'};
                             validateUninstalledProjects('resource-file', resourcefiles[3], path, incText, targetConditions, ['windows8']);
-
                             done();
                         });
                 });
@@ -556,8 +550,8 @@ beforeEach(function () {
                     install('windows', cordovaProjectWindowsPlatformDir, dummyplugin, cordovaProjectPluginsDir, {})
                         .then(function () {
                             var path = 'ItemGroup/SDKReference';
-                            incText = 'TestSDK2, Version=1.0';
-                            targetConditions = {versions: '>=8.1', deviceTarget: undefined, arch: undefined};
+                            var incText = 'TestSDK2, Version=1.0';
+                            var targetConditions = {versions: '>=8.1', deviceTarget: undefined, arch: undefined};
                             validateUninstalledProjects('lib-file', libfiles[1], path, incText, targetConditions, ['windows', 'phone', 'windows10']);
                             done();
                         });
@@ -569,10 +563,9 @@ beforeEach(function () {
                     install('windows', cordovaProjectWindowsPlatformDir, dummyplugin, cordovaProjectPluginsDir, {})
                         .then(function () {
                             var path = 'ItemGroup/SDKReference';
-                            incText = 'TestSDK3, Version=1.0';
-                            targetConditions = {versions: undefined, deviceTarget: 'phone', arch: undefined};
+                            var incText = 'TestSDK3, Version=1.0';
+                            var targetConditions = {versions: undefined, deviceTarget: 'phone', arch: undefined};
                             validateUninstalledProjects('lib-file', libfiles[2], path, incText, targetConditions, ['phone']);
-
                             done();
                         });
                 });
@@ -583,10 +576,9 @@ beforeEach(function () {
                     install('windows', cordovaProjectWindowsPlatformDir, dummyplugin, cordovaProjectPluginsDir, {})
                         .then(function () {
                             var path = 'ItemGroup/SDKReference';
-                            incText = 'TestSDK4, Version=1.0';
-                            targetConditions = {versions: '8.0', deviceTarget: 'windows', arch: 'x86'};
+                            var incText = 'TestSDK4, Version=1.0';
+                            var targetConditions = {versions: '8.0', deviceTarget: 'windows', arch: 'x86'};
                             validateUninstalledProjects('lib-file', libfiles[3], path, incText, targetConditions, ['windows8']);
-
                             done();
                         });
                 });
@@ -604,7 +596,6 @@ beforeEach(function () {
                             var incText = 'dummy1';
                             var targetConditions = {versions: undefined, deviceTarget: undefined, arch: 'x64'};
                             validateUninstalledProjects('framework', frameworks[0], path, incText, targetConditions, ['all']);
-
                             done();
                         });
                 }, 6000);
@@ -615,10 +606,9 @@ beforeEach(function () {
                     install('windows', cordovaProjectWindowsPlatformDir, dummyplugin, cordovaProjectPluginsDir, {})
                         .then(function () {
                             var path = 'ItemGroup/Reference';
-                            incText = 'dummy2';
-                            targetConditions = {versions: '>=8.0', deviceTarget: undefined, arch: undefined};
+                            var incText = 'dummy2';
+                            var targetConditions = {versions: '>=8.0', deviceTarget: undefined, arch: undefined};
                             validateUninstalledProjects('framework', frameworks[1], path, incText, targetConditions, ['all']);
-
                             done();
                         });
                 }, 6000);
@@ -629,10 +619,9 @@ beforeEach(function () {
                     install('windows', cordovaProjectWindowsPlatformDir, dummyplugin, cordovaProjectPluginsDir, {})
                         .then(function () {
                             var path = 'ItemGroup/Reference';
-                            incText = 'dummy3';
-                            targetConditions = {versions: undefined, deviceTarget: 'windows', arch: undefined};
+                            var incText = 'dummy3';
+                            var targetConditions = {versions: undefined, deviceTarget: 'windows', arch: undefined};
                             validateUninstalledProjects('framework', frameworks[2], path, incText, targetConditions, ['windows', 'windows8', 'windows10']);
-
                             done();
                         });
                 }, 6000);
@@ -643,10 +632,9 @@ beforeEach(function () {
                     install('windows', cordovaProjectWindowsPlatformDir, dummyplugin, cordovaProjectPluginsDir, {})
                         .then(function () {
                             var path = 'ItemGroup/Reference';
-                            incText = 'dummy4';
-                            targetConditions = {versions: '8.1', deviceTarget: 'phone', arch: 'ARM'};
+                            var incText = 'dummy4';
+                            var targetConditions = {versions: '8.1', deviceTarget: 'phone', arch: 'ARM'};
                             validateUninstalledProjects('framework', frameworks[3], path, incText, targetConditions, ['phone']);
-
                             done();
                         });
                 }, 6000);
@@ -657,10 +645,9 @@ beforeEach(function () {
                     install('windows', cordovaProjectWindowsPlatformDir, dummyplugin, cordovaProjectPluginsDir, {})
                         .then(function () {
                             var path = 'ItemGroup/Reference';
-                            incText = 'dummy5';
-                            targetConditions = {versions: undefined, deviceTarget: 'phone', arch: undefined};
+                            var incText = 'dummy5';
+                            var targetConditions = {versions: undefined, deviceTarget: 'phone', arch: undefined};
                             validateUninstalledProjects('framework', frameworks[4], path, incText, targetConditions, ['phone']);
-
                             done();
                         });
                 }, 6000);
@@ -671,10 +658,9 @@ beforeEach(function () {
                     install('windows', cordovaProjectWindowsPlatformDir, dummyplugin, cordovaProjectPluginsDir, {})
                         .then(function () {
                             var path = 'ItemGroup/Reference';
-                            incText = 'dummy6';
-                            targetConditions = {versions: '>=8.1', deviceTarget: undefined, arch: undefined};
+                            var incText = 'dummy6';
+                            var targetConditions = {versions: '>=8.1', deviceTarget: undefined, arch: undefined};
                             validateUninstalledProjects('framework', frameworks[5], path, incText, targetConditions, ['windows', 'windows10', 'phone']);
-
                             done();
                         });
                 }, 6000);
@@ -703,7 +689,7 @@ beforeEach(function () {
                         .then(function () {
                             var xmlPath = 'ItemGroup/ProjectReference';
                             var incText = windowsJoin(cordovaProjectPluginsDir , dummy_id, 'src', 'windows', 'dummy2.vcxproj');
-                            targetConditions = {versions: '<8.1', deviceTarget: undefined, arch: undefined};
+                            var targetConditions = {versions: '<8.1', deviceTarget: undefined, arch: undefined};
                             validateUninstalledProjects('framework', frameworks[7], xmlPath, incText, targetConditions, ['windows8']);
                             done();
                         });
@@ -716,9 +702,8 @@ beforeEach(function () {
                         .then(function () {
                             var xmlPath = 'ItemGroup/ProjectReference';
                             var incText = windowsJoin(cordovaProjectPluginsDir , dummy_id, 'src', 'windows', 'dummy3.vcxproj');
-                            targetConditions = {versions: undefined, deviceTarget: 'win', arch: undefined};
+                            var targetConditions = {versions: undefined, deviceTarget: 'win', arch: undefined};
                             validateUninstalledProjects('framework', frameworks[8], xmlPath, incText, targetConditions, ['windows', 'windows8', 'windows10']);
-
                             done();
                         });
                 }, 60000);
@@ -730,7 +715,7 @@ beforeEach(function () {
                         .then(function () {
                             var xmlPath = 'ItemGroup/ProjectReference';
                             var incText = windowsJoin(cordovaProjectPluginsDir , dummy_id, 'src', 'windows', 'dummy4.vcxproj');
-                            targetConditions = {versions: '8.1', deviceTarget: 'all', arch: 'x86'};
+                            var targetConditions = {versions: '8.1', deviceTarget: 'all', arch: 'x86'};
                             validateUninstalledProjects('framework', frameworks[9], xmlPath, incText, targetConditions, ['windows', 'phone']);
                             done();
                         });

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/159b534e/cordova-lib/spec-plugman/platforms/wp8.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/platforms/wp8.spec.js b/cordova-lib/spec-plugman/platforms/wp8.spec.js
index 93d4b22..c0dad0c 100644
--- a/cordova-lib/spec-plugman/platforms/wp8.spec.js
+++ b/cordova-lib/spec-plugman/platforms/wp8.spec.js
@@ -79,11 +79,6 @@ describe('wp8 project handler', function() {
     });
 
     describe('installation', function() {
-        var done;
-        function installPromise(f) {
-            done = false;
-            f.then(function() { done = true; }, function(err) { done = err; });
-        }
         beforeEach(function() {
             shell.mkdir('-p', temp);
         });

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/159b534e/cordova-lib/spec-plugman/registry/registry.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/registry/registry.spec.js b/cordova-lib/spec-plugman/registry/registry.spec.js
index 71c9318..ab1d0fd 100644
--- a/cordova-lib/spec-plugman/registry/registry.spec.js
+++ b/cordova-lib/spec-plugman/registry/registry.spec.js
@@ -71,7 +71,7 @@ describe('registry', function() {
             return registryPromise(false, manifest.generatePackageJsonFromPluginXml(tmp_plugin))
             .then(function(){
                 done();
-            })
+            });
         });
         // Expect the package.json to NOT exist
         it('Test 003 : should generate a package.json if name uses org.apache.cordova.* for a whitelisted plugin', function(done) {
@@ -89,7 +89,7 @@ describe('registry', function() {
             return registryPromise(false, manifest.generatePackageJsonFromPluginXml(tmp_plugin))
             .then(function(){
                 done();
-            })
+            });
         }, 6000);
     });
     describe('actions', function() {

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/159b534e/cordova-lib/spec/support/jasmine.json
----------------------------------------------------------------------
diff --git a/cordova-lib/spec/support/jasmine.json b/cordova-lib/spec/support/jasmine.json
new file mode 100644
index 0000000..e9d285b
--- /dev/null
+++ b/cordova-lib/spec/support/jasmine.json
@@ -0,0 +1,13 @@
+{
+    "spec_dir": "spec",
+    "spec_files": [
+    	"../spec-cordova/**/*[sS]pec.js",
+    	"../spec-plugman/**/*[sS]pec.js"
+    ],
+    "helpers": [
+      "../spec-cordova/helpers.js",
+      "../spec-cordova/helper.js"
+    ],
+    "stopSpecOnExpectationFailure": false,
+    "random": false
+}


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


[04/50] [abbrv] cordova-lib git commit: CB-12039 reverted windows pin back to ~4.4.0

Posted by st...@apache.org.
CB-12039 reverted windows pin back to ~4.4.0


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

Branch: refs/heads/fetch-1.0.x
Commit: 4c1a8e124a4e369eb58748b7df9441839b8db2d9
Parents: 4def2b3
Author: Steve Gill <st...@gmail.com>
Authored: Fri Oct 21 20:44:41 2016 -0700
Committer: Steve Gill <st...@gmail.com>
Committed: Fri Oct 21 20:44:41 2016 -0700

----------------------------------------------------------------------
 cordova-lib/src/platforms/platformsConfig.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/4c1a8e12/cordova-lib/src/platforms/platformsConfig.json
----------------------------------------------------------------------
diff --git a/cordova-lib/src/platforms/platformsConfig.json b/cordova-lib/src/platforms/platformsConfig.json
index 807e816..cb9a1a2 100644
--- a/cordova-lib/src/platforms/platformsConfig.json
+++ b/cordova-lib/src/platforms/platformsConfig.json
@@ -75,7 +75,7 @@
         "parser_file": "../cordova/metadata/windows_parser",
         "handler_file": "../plugman/platforms/windows",
         "url": "https://git-wip-us.apache.org/repos/asf?p=cordova-windows.git",
-        "version": "~4.5.0",
+        "version": "~4.4.0",
         "apiCompatibleSince": "4.3.0",
         "deprecated": false
     },


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


[18/50] [abbrv] cordova-lib git commit: CB-12314 updated pinned android to 6.1.1

Posted by st...@apache.org.
CB-12314 updated pinned android to 6.1.1


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

Branch: refs/heads/fetch-1.0.x
Commit: e0b0c393e7b4dc053b43332559b220e169201889
Parents: 4191fa9
Author: Steve Gill <st...@gmail.com>
Authored: Thu Jan 5 16:26:08 2017 -0800
Committer: Steve Gill <st...@gmail.com>
Committed: Thu Jan 5 16:26:08 2017 -0800

----------------------------------------------------------------------
 cordova-lib/src/platforms/platformsConfig.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/e0b0c393/cordova-lib/src/platforms/platformsConfig.json
----------------------------------------------------------------------
diff --git a/cordova-lib/src/platforms/platformsConfig.json b/cordova-lib/src/platforms/platformsConfig.json
index a754008..5d0f5cc 100644
--- a/cordova-lib/src/platforms/platformsConfig.json
+++ b/cordova-lib/src/platforms/platformsConfig.json
@@ -21,7 +21,7 @@
         "parser_file": "../cordova/metadata/android_parser",
         "handler_file": "../plugman/platforms/android",
         "url": "https://git-wip-us.apache.org/repos/asf?p=cordova-android.git",
-        "version": "~6.1.0",
+        "version": "~6.1.1",
         "apiCompatibleSince": "5.0.0",
         "deprecated": false
     },


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


[25/50] [abbrv] cordova-lib git commit: fixjasmine : CB-12018 : fixed jasmine tests to work with uninstallPlugin and removed waitsFor/runs, updated promise syntax, calls.reset, and labled tests

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-plugman/platforms/windows.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/platforms/windows.spec.js b/cordova-lib/spec-plugman/platforms/windows.spec.js
index 03e5602..6759bc3 100644
--- a/cordova-lib/spec-plugman/platforms/windows.spec.js
+++ b/cordova-lib/spec-plugman/platforms/windows.spec.js
@@ -50,18 +50,25 @@ function copyArray(arr) {
 }
 
 beforeEach(function () {
-    this.addMatchers({
-        toContainXmlPath: function (xpath) {
-            var xml = this.actual;
-            var notText = this.isNot ? 'not ' : '';
-            this.message = function () {
-                return 'Expected xml \'' + et.tostring(xml) + '\' ' + notText + 'to contain elements matching \'' + xpath + '\'.';
-            };
-
-            return xml.find(xpath) !== null;
-        }    });
+    jasmine.addMatchers({
+        toContainXmlPath: function () {
+            return {
+                compare: function(actual, expected) {
+                    var xml = actual;
+                    var result = {};
+                    result.pass = xml.find(expected) !== null;
+
+                    if(result.pass) {
+                        result.message = 'Expected xml \'' + et.tostring(xml) + '\' ' +' not to contain elements matching \'' + expected + '\'.';
+                    } else {
+                        result.message = 'Expected xml \'' + et.tostring(xml) + '\' ' +' to contain elements matching \'' + expected + '\'.';
+                    }
+                    return result;
+                }
+            }
+        }
+    }); 
 });
-
 ['windows', 'windows8'].forEach(function (platform) {
     var windows_project = path.join(__dirname, '..', 'projects', platform);
 
@@ -93,21 +100,24 @@ beforeEach(function () {
         });
 
         describe('www_dir method', function () {
-            it('should return cordova-windows project www location using www_dir', function () {
+            it('Test 001 : should return cordova-windows project www location using www_dir', function (done) {
                 expect(windows.www_dir(path.sep)).toEqual(path.sep + 'www');
+                done();
             });
         });
         describe('package_name method', function () {
-            it('should return a windows project\'s proper package name', function () {
+            it('Test 002 : should return a windows project\'s proper package name', function (done) {
                 expect(windows.package_name(windows_project)).toEqual('CordovaApp');
+                done();
             });
         });
 
         describe('parseProjectFile method', function () {
-            it('should throw if project is not an windows project', function () {
+            it('Test 003 : should throw if project is not an windows project', function (done) {
                 expect(function () {
                     windows.parseProjectFile(cordovaProjectWindowsPlatformDir);
-                }).toThrow(windows.InvalidProjectPathError);
+                }).toThrow(new Error (windows.InvalidProjectPathError));
+                done();
             });
         });
 
@@ -121,7 +131,8 @@ beforeEach(function () {
             });
 
             function validateInstalledProjects(tag, elementToInstall, xpath, supportedPlatforms) {
-                jasmine.getEnv().currentSpec.removeAllSpies();
+                //jasmine.getEnv().currentSpec.removeAllSpies();
+                
 
                 var projects = copyArray(proj_files.projects);
                 if (platform === 'windows') {
@@ -182,7 +193,7 @@ beforeEach(function () {
 
                 projects.forEach(function (project) {
                     if (projectsAddedTo.indexOf(path.basename(project.location)) > -1) {
-                        projectsAddedToSpies.push(spyOn(project, 'appendToRoot').andCallFake(appendToRootFake));
+                        projectsAddedToSpies.push(spyOn(project, 'appendToRoot').and.callFake(appendToRootFake));
                     } else {
                         projectsNotAddedToSpies.push(spyOn(project, 'appendToRoot'));
                     }
@@ -192,34 +203,39 @@ beforeEach(function () {
 
                 projectsAddedToSpies.forEach(function (spy) {
                     expect(spy).toHaveBeenCalled();
+                    spy.calls.reset();
                 });
 
                 projectsNotAddedToSpies.forEach(function (spy) {
                     expect(spy).not.toHaveBeenCalled();
+                    spy.calls.reset();
                 });
             }
 
             describe('of <source-file> elements', function () {
-                it('should copy stuff from one location to another by calling common.copyFile', function () {
+                it('Test 004 : should copy stuff from one location to another by calling common.copyFile', function (done) {
                     var source = copyArray(valid_source);
                     var s = spyOn(common, 'copyFile');
                     windows['source-file'].install(source[0], dummyplugin, cordovaProjectWindowsPlatformDir, dummy_id, null, proj_files);
                     expect(s).toHaveBeenCalledWith(dummyplugin, 'src/windows/dummer.js', cordovaProjectWindowsPlatformDir, path.join('plugins', 'org.test.plugins.dummyplugin', 'dummer.js'), false);
+                    done();
                 });
-                it('should throw if source-file src cannot be found', function () {
+                it('Test 005 : should throw if source-file src cannot be found', function (done) {
                     var source = copyArray(invalid_source);
                     expect(function () {
                         windows['source-file'].install(source[1], faultyplugin, cordovaProjectWindowsPlatformDir, faulty_id, null, proj_files);
-                    }).toThrow('"' + path.resolve(faultyplugin, 'src/windows/NotHere.js') + '" not found!');
+                    }).toThrow(new Error ('"' + path.resolve(faultyplugin, 'src/windows/NotHere.js') + '" not found!'));
+                    done();
                 });
-                it('should throw if source-file target already exists', function () {
+                it('Test 006 : should throw if source-file target already exists', function (done) {
                     var source = copyArray(valid_source);
                     var target = path.join(cordovaProjectWindowsPlatformDir, 'plugins', dummy_id, 'dummer.js');
                     shell.mkdir('-p', path.dirname(target));
                     fs.writeFileSync(target, 'some bs', 'utf-8');
                     expect(function () {
                         windows['source-file'].install(source[0], dummyplugin, cordovaProjectWindowsPlatformDir, dummy_id, null, proj_files);
-                    }).toThrow('"' + target + '" already exists!');
+                    }).toThrow(new Error ('"' + target + '" already exists!'));
+                    done();
                 });
             });
 
@@ -229,32 +245,43 @@ beforeEach(function () {
 
                 // This could be separated into individual specs, but that results in a lot of copying and deleting the
                 // project files, which is not needed.
-                it('should write to correct project files when conditions are specified', function () {
+                it('Test 007 : should write to correct project files when conditions are specified', function (done) {
                     var xpath = 'Content[@Include="' + resourceFiles[0].target + '"][@Condition="\'$(Platform)\'==\'x86\'"]';
                     validateInstalledProjects('resource-file', resourceFiles[0], xpath, ['all']);
+                    done();
+                });
 
-                    xpath = 'Content[@Include="' + resourceFiles[1].target + '"]';
+                it('Test 008 : should write to correct project files when conditions are specified', function (done) {
+                    var xpath = 'Content[@Include="' + resourceFiles[1].target + '"]';
                     validateInstalledProjects('resource-file', resourceFiles[1], xpath, ['windows', 'phone', 'windows10']);
+                    done();
+                });
 
-                    xpath = 'Content[@Include="' + resourceFiles[2].target + '"]';
+                it('Test 009 : should write to correct project files when conditions are specified', function (done) {
+                    var xpath = 'Content[@Include="' + resourceFiles[2].target + '"]';
                     validateInstalledProjects('resource-file', resourceFiles[2], xpath, ['phone']);
+                    done();
+                });
 
-                    xpath = 'Content[@Include="' + resourceFiles[3].target + '"][@Condition="\'$(Platform)\'==\'x64\'"]';
+                it('Test 010 : should write to correct project files when conditions are specified', function (done) {
+                    var xpath = 'Content[@Include="' + resourceFiles[3].target + '"][@Condition="\'$(Platform)\'==\'x64\'"]';
                     validateInstalledProjects('resource-file', resourceFiles[3], xpath, ['windows8']);
+                    done();
                 });
 
-                it('should throw if conditions are invalid', function () {
+                it('Test 011 : should throw if conditions are invalid', function (done) {
                     expect(function () {
                         windows['resource-file'].install(invalidResourceFiles[0], faultyplugin, cordovaProjectWindowsPlatformDir, faulty_id, null, proj_files);
-                    }).toThrow('Invalid arch attribute (must be "x86", "x64" or "ARM"): x85');
+                    }).toThrow(new Error ('Invalid arch attribute (must be "x86", "x64" or "ARM"): x85'));
 
                     expect(function () {
                         windows['resource-file'].install(invalidResourceFiles[1], faultyplugin, cordovaProjectWindowsPlatformDir, faulty_id, null, proj_files);
-                    }).toThrow('Invalid versions attribute (must be a valid semantic version range): 8.0a');
+                    }).toThrow(new Error ('Invalid versions attribute (must be a valid semantic version range): 8.0a'));
 
                     expect(function () {
                         windows['resource-file'].install(invalidResourceFiles[2], faultyplugin, cordovaProjectWindowsPlatformDir, faulty_id, null, proj_files);
-                    }).toThrow('Invalid device-target attribute (must be "all", "phone", "windows" or "win"): daphne');
+                    }).toThrow(new Error ('Invalid device-target attribute (must be "all", "phone", "windows" or "win"): daphne'));
+                    done();
                 });
             });
 
@@ -264,32 +291,50 @@ beforeEach(function () {
 
                 // This could be separated into individual specs, but that results in a lot of copying and deleting the
                 // project files, which is not needed.
-                it('should write to correct project files when conditions are specified', function () {
+                it('Test 012 : should write to correct project files when conditions are specified', function (done) {
                     var xpath = 'SDKReference[@Include="TestSDK1, Version=1.0"][@Condition="\'$(Platform)\'==\'x86\'"]';
                     validateInstalledProjects('lib-file', libfiles[0], xpath, ['all']);
+                    done();
+                });
 
-                    xpath = 'SDKReference[@Include="TestSDK2, Version=1.0"]';
+                it('Test 013 : should write to correct project files when conditions are specified', function (done) {
+                    var xpath = 'SDKReference[@Include="TestSDK2, Version=1.0"]';
                     validateInstalledProjects('lib-file', libfiles[1], xpath, ['windows', 'phone', 'windows10']);
-
-                    xpath = 'SDKReference[@Include="TestSDK3, Version=1.0"]';
+                    done();
+                });
+                
+                it('Test 014 : should write to correct project files when conditions are specified', function (done) {
+                    var xpath = 'SDKReference[@Include="TestSDK3, Version=1.0"]';
                     validateInstalledProjects('lib-file', libfiles[2], xpath, ['phone']);
+                    done();
+                });
 
-                    xpath = 'SDKReference[@Include="TestSDK4, Version=1.0"]';
+                it('Test 015 : should write to correct project files when conditions are specified', function (done) {
+                    var xpath = 'SDKReference[@Include="TestSDK4, Version=1.0"]';
                     validateInstalledProjects('lib-file', libfiles[3], xpath, ['windows8']);
+                    done();
                 });
 
-                it('should throw if conditions are invalid', function () {
+                it('Test 016 : should throw if conditions are invalid', function (done) {
                     expect(function () {
                         windows['lib-file'].install(invalidLibFiles[0], faultyplugin, cordovaProjectWindowsPlatformDir, faulty_id, null, proj_files);
-                    }).toThrow('Invalid arch attribute (must be "x86", "x64" or "ARM"): x85');
+                    }).toThrow(new Error('Invalid arch attribute (must be "x86", "x64" or "ARM"): x85'));
 
+                    done();
+                });
+                
+                it('Test 017 : should throw if conditions are invalid', function (done) {
                     expect(function () {
                         windows['lib-file'].install(invalidLibFiles[1], faultyplugin, cordovaProjectWindowsPlatformDir, faulty_id, null, proj_files);
-                    }).toThrow('Invalid versions attribute (must be a valid semantic version range): 8.0a');
-
+                    }).toThrow(new Error ('Invalid versions attribute (must be a valid semantic version range): 8.0a'));
+                    done();
+                });
+                
+                it('Test 018 : should throw if conditions are invalid', function (done) {
                     expect(function () {
                         windows['lib-file'].install(invalidLibFiles[2], faultyplugin, cordovaProjectWindowsPlatformDir, faulty_id, null, proj_files);
-                    }).toThrow('Invalid device-target attribute (must be "all", "phone", "windows" or "win"): daphne');
+                    }).toThrow(new Error ('Invalid device-target attribute (must be "all", "phone", "windows" or "win"): daphne'));
+                    done();
                 });
             });
 
@@ -298,42 +343,67 @@ beforeEach(function () {
 
                 // This could be separated into individual specs, but that results in a lot of copying and deleting the
                 // project files, which is not needed.
-                it('should write to correct project files when conditions are specified', function () {
+                it('Test 019 : should write to correct project files when conditions are specified', function (done) {
                     var xpath = 'Reference[@Include="dummy1"][@Condition="\'$(Platform)\'==\'x64\'"]/HintPath';
                     validateInstalledProjects('framework', frameworks[0], xpath, ['all']);
-
-                    xpath = 'Reference[@Include="dummy2"]/HintPath';
+                    done();
+                });
+                it('Test 020 : should write to correct project files when conditions are specified', function (done) {
+                    var xpath = 'Reference[@Include="dummy2"]/HintPath';
                     validateInstalledProjects('framework', frameworks[1], xpath, ['all']);
-
-                    xpath = 'Reference[@Include="dummy3"]/HintPath';
+                    done();
+                });
+                
+                it('Test 021 : should write to correct project files when conditions are specified', function (done) {
+                    var xpath = 'Reference[@Include="dummy3"]/HintPath';
                     validateInstalledProjects('framework', frameworks[2], xpath, ['windows', 'windows8', 'windows10']);
-
-                    xpath = 'Reference[@Include="dummy4"][@Condition="\'$(Platform)\'==\'ARM\'"]/HintPath';
+                    done();
+                });
+                
+                it('Test 022 : should write to correct project files when conditions are specified', function (done) {
+                    var xpath = 'Reference[@Include="dummy4"][@Condition="\'$(Platform)\'==\'ARM\'"]/HintPath';
                     validateInstalledProjects('framework', frameworks[3], xpath, ['phone']);
+                    done();
+                });
 
-                    xpath = 'Reference[@Include="dummy5"]/HintPath';
+                it('Test 023 : should write to correct project files when conditions are specified', function (done) {
+                    var xpath = 'Reference[@Include="dummy5"]/HintPath';
                     validateInstalledProjects('framework', frameworks[4], xpath, ['phone']);
+                    done();
+                });
 
-                    xpath = 'Reference[@Include="dummy6"]/HintPath';
+                it('Test 024 : should write to correct project files when conditions are specified', function (done) {
+                    var xpath = 'Reference[@Include="dummy6"]/HintPath';
                     validateInstalledProjects('framework', frameworks[5], xpath, ['windows', 'windows10', 'phone']);
+                    done();
                 });
             });
 
             describe('of <framework> elements of type \'projectReference\'', function () {
                 var frameworks = copyArray(valid_frameworks);
 
-                it('should write to correct project files when conditions are specified', function () {
+                it('Test 025 : should write to correct project files when conditions are specified', function (done) {
                     var xpath = 'ProjectReference[@Include="' + windowsJoin(dummyplugin, 'src', 'windows', 'dummy1.vcxproj') + '"][@Condition="\'$(Platform)\'==\'x64\'"]';
                     validateInstalledProjects('framework', frameworks[6], xpath, ['all']);
-
-                    xpath = 'ProjectReference[@Include="' + windowsJoin(dummyplugin, 'src', 'windows', 'dummy2.vcxproj') + '"]';
+                    done();
+                });
+                
+                it('Test 026 : should write to correct project files when conditions are specified', function (done) {
+                    var xpath = 'ProjectReference[@Include="' + windowsJoin(dummyplugin, 'src', 'windows', 'dummy2.vcxproj') + '"]';
                     validateInstalledProjects('framework', frameworks[7], xpath, ['windows8']);
-
-                    xpath = 'ProjectReference[@Include="' + windowsJoin(dummyplugin, 'src', 'windows', 'dummy3.vcxproj') + '"]';
+                    done();
+                });
+                
+                it('Test 027 : should write to correct project files when conditions are specified', function (done) {
+                    var xpath = 'ProjectReference[@Include="' + windowsJoin(dummyplugin, 'src', 'windows', 'dummy3.vcxproj') + '"]';
                     validateInstalledProjects('framework', frameworks[8], xpath, ['windows', 'windows8', 'windows10']);
-
-                    xpath = 'ProjectReference[@Include="' + windowsJoin(dummyplugin, 'src', 'windows', 'dummy4.vcxproj') + '"][@Condition="\'$(Platform)\'==\'x86\'"]';
+                    done();
+                });
+                
+                it('Test 028 : should write to correct project files when conditions are specified', function (done) {
+                    var xpath = 'ProjectReference[@Include="' + windowsJoin(dummyplugin, 'src', 'windows', 'dummy4.vcxproj') + '"][@Condition="\'$(Platform)\'==\'x86\'"]';
                     validateInstalledProjects('framework', frameworks[9], xpath, ['windows', 'phone']);
+                    done();
                 });
             });
         });
@@ -349,7 +419,7 @@ beforeEach(function () {
             });
 
             function validateUninstalledProjects(tag, elementToUninstall, xmlPath, incText, targetConditions, supportedPlatforms) {
-                jasmine.getEnv().currentSpec.removeAllSpies();
+                //jasmine.getEnv().currentSpec.removeAllSpies();
 
                 var projects = copyArray(proj_files.projects);
                 if (platform === 'windows') {
@@ -369,6 +439,8 @@ beforeEach(function () {
 
                 projects.forEach(function (project) {
                     var spy = spyOn(project, 'removeItemGroupElement');
+                    
+
                     if (projectsAddedTo.indexOf(path.basename(project.location)) > -1) {
                         projectsAddedToSpies.push(spy);
                     } else {
@@ -380,15 +452,17 @@ beforeEach(function () {
 
                 projectsAddedToSpies.forEach(function (spy) {
                     expect(spy).toHaveBeenCalledWith(xmlPath, incText, targetConditions);
+                    spy.calls.reset();
                 });
 
                 projectsNotAddedToSpies.forEach(function (spy) {
                     expect(spy).not.toHaveBeenCalled();
+                    spy.calls.reset();
                 });
             }
 
             describe('of <source-file> elements', function () {
-                it('should remove stuff by calling common.removeFile', function (done) {
+                it('Test 029 : should remove stuff by calling common.removeFile', function (done) {
                     var s = spyOn(common, 'removeFile');
 
                     install('windows', cordovaProjectWindowsPlatformDir, dummyplugin, cordovaProjectPluginsDir, {})
@@ -404,7 +478,7 @@ beforeEach(function () {
             describe('of <resource-file> elements', function () {
                 // This could be separated into individual specs, but that results in a lot of copying and deleting the
                 // project files, which is not needed.
-                it('should remove from correct project files when conditions specified', function (done) {
+                it('Test 030 : should remove from correct project files when conditions specified', function (done) {
                     var resourcefiles = copyArray(valid_resourceFiles);
 
                     install('windows', cordovaProjectWindowsPlatformDir, dummyplugin, cordovaProjectPluginsDir, {})
@@ -414,14 +488,43 @@ beforeEach(function () {
                             var targetConditions = {versions: undefined, deviceTarget: undefined, arch: 'x86'};
                             validateUninstalledProjects('resource-file', resourcefiles[0], path, incText, targetConditions, ['all']);
 
+                            done();
+                        });
+                });
+                it('Test 031 : should remove from correct project files when conditions specified', function (done) {
+                    var resourcefiles = copyArray(valid_resourceFiles);
+
+                    install('windows', cordovaProjectWindowsPlatformDir, dummyplugin, cordovaProjectPluginsDir, {})
+                        .then(function () {
+                            var path = 'ItemGroup/Content';
+
                             incText = resourcefiles[1].target;
                             targetConditions = {versions: '>=8.1', deviceTarget: undefined, arch: undefined};
                             validateUninstalledProjects('resource-file', resourcefiles[1], path, incText, targetConditions, ['windows', 'phone', 'windows10']);
 
+                            done();
+                        });
+                });
+                it('Test 032 : should remove from correct project files when conditions specified', function (done) {
+                    var resourcefiles = copyArray(valid_resourceFiles);
+
+                    install('windows', cordovaProjectWindowsPlatformDir, dummyplugin, cordovaProjectPluginsDir, {})
+                        .then(function () {
+                            var path = 'ItemGroup/Content';
+
                             incText = resourcefiles[2].target;
                             targetConditions = {versions: undefined, deviceTarget: 'phone', arch: undefined};
                             validateUninstalledProjects('resource-file', resourcefiles[2], path, incText, targetConditions, ['phone']);
 
+                            done();
+                        });
+                });
+                it('Test 033 : should remove from correct project files when conditions specified', function (done) {
+                    var resourcefiles = copyArray(valid_resourceFiles);
+
+                    install('windows', cordovaProjectWindowsPlatformDir, dummyplugin, cordovaProjectPluginsDir, {})
+                        .then(function () {
+                            var path = 'ItemGroup/Content';
                             incText = resourcefiles[3].target;
                             targetConditions = {versions: '8.0', deviceTarget: 'windows', arch: 'x64'};
                             validateUninstalledProjects('resource-file', resourcefiles[3], path, incText, targetConditions, ['windows8']);
@@ -434,7 +537,7 @@ beforeEach(function () {
             describe('of <lib-file> elements', function () {
                 // This could be separated into individual specs, but that results in a lot of copying and deleting the
                 // project files, which is not needed.
-                it('should remove from correct project files when conditions specified', function (done) {
+                it('Test 034 : should remove from correct project files when conditions specified', function (done) {
                     var libfiles = copyArray(valid_libfiles);
 
                     install('windows', cordovaProjectWindowsPlatformDir, dummyplugin, cordovaProjectPluginsDir, {})
@@ -443,15 +546,43 @@ beforeEach(function () {
                             var incText = 'TestSDK1, Version=1.0';
                             var targetConditions = {versions: undefined, deviceTarget: undefined, arch: 'x86'};
                             validateUninstalledProjects('lib-file', libfiles[0], path, incText, targetConditions, ['all']);
+                            done();
+                        });
+                });
 
+                it('Test 035 : should remove from correct project files when conditions specified', function (done) {
+                    var libfiles = copyArray(valid_libfiles);
+
+                    install('windows', cordovaProjectWindowsPlatformDir, dummyplugin, cordovaProjectPluginsDir, {})
+                        .then(function () {
+                            var path = 'ItemGroup/SDKReference';
                             incText = 'TestSDK2, Version=1.0';
                             targetConditions = {versions: '>=8.1', deviceTarget: undefined, arch: undefined};
                             validateUninstalledProjects('lib-file', libfiles[1], path, incText, targetConditions, ['windows', 'phone', 'windows10']);
+                            done();
+                        });
+                });
 
+                it('Test 036 : should remove from correct project files when conditions specified', function (done) {
+                    var libfiles = copyArray(valid_libfiles);
+
+                    install('windows', cordovaProjectWindowsPlatformDir, dummyplugin, cordovaProjectPluginsDir, {})
+                        .then(function () {
+                            var path = 'ItemGroup/SDKReference';
                             incText = 'TestSDK3, Version=1.0';
                             targetConditions = {versions: undefined, deviceTarget: 'phone', arch: undefined};
                             validateUninstalledProjects('lib-file', libfiles[2], path, incText, targetConditions, ['phone']);
 
+                            done();
+                        });
+                });
+
+                it('Test 037 : should remove from correct project files when conditions specified', function (done) {
+                    var libfiles = copyArray(valid_libfiles);
+
+                    install('windows', cordovaProjectWindowsPlatformDir, dummyplugin, cordovaProjectPluginsDir, {})
+                        .then(function () {
+                            var path = 'ItemGroup/SDKReference';
                             incText = 'TestSDK4, Version=1.0';
                             targetConditions = {versions: '8.0', deviceTarget: 'windows', arch: 'x86'};
                             validateUninstalledProjects('lib-file', libfiles[3], path, incText, targetConditions, ['windows8']);
@@ -464,7 +595,7 @@ beforeEach(function () {
             describe('of <framework> elements', function () {
                 // This could be separated into individual specs, but that results in a lot of copying and deleting the
                 // project files, which is not needed.
-                it('should remove from correct project files when conditions specified', function (done) {
+                it('Test 038 : should remove from correct project files when conditions specified', function (done) {
                     var frameworks = copyArray(valid_frameworks);
 
                     install('windows', cordovaProjectWindowsPlatformDir, dummyplugin, cordovaProjectPluginsDir, {})
@@ -474,59 +605,136 @@ beforeEach(function () {
                             var targetConditions = {versions: undefined, deviceTarget: undefined, arch: 'x64'};
                             validateUninstalledProjects('framework', frameworks[0], path, incText, targetConditions, ['all']);
 
+                            done();
+                        });
+                }, 6000);
+
+                it('Test 039 : should remove from correct project files when conditions specified', function (done) {
+                    var frameworks = copyArray(valid_frameworks);
+
+                    install('windows', cordovaProjectWindowsPlatformDir, dummyplugin, cordovaProjectPluginsDir, {})
+                        .then(function () {
+                            var path = 'ItemGroup/Reference';
                             incText = 'dummy2';
                             targetConditions = {versions: '>=8.0', deviceTarget: undefined, arch: undefined};
                             validateUninstalledProjects('framework', frameworks[1], path, incText, targetConditions, ['all']);
 
+                            done();
+                        });
+                }, 6000);
+
+                it('Test 040 : should remove from correct project files when conditions specified', function (done) {
+                    var frameworks = copyArray(valid_frameworks);
+
+                    install('windows', cordovaProjectWindowsPlatformDir, dummyplugin, cordovaProjectPluginsDir, {})
+                        .then(function () {
+                            var path = 'ItemGroup/Reference';
                             incText = 'dummy3';
                             targetConditions = {versions: undefined, deviceTarget: 'windows', arch: undefined};
                             validateUninstalledProjects('framework', frameworks[2], path, incText, targetConditions, ['windows', 'windows8', 'windows10']);
 
+                            done();
+                        });
+                }, 6000);
+
+                it('Test 041 : should remove from correct project files when conditions specified', function (done) {
+                    var frameworks = copyArray(valid_frameworks);
+
+                    install('windows', cordovaProjectWindowsPlatformDir, dummyplugin, cordovaProjectPluginsDir, {})
+                        .then(function () {
+                            var path = 'ItemGroup/Reference';
                             incText = 'dummy4';
                             targetConditions = {versions: '8.1', deviceTarget: 'phone', arch: 'ARM'};
                             validateUninstalledProjects('framework', frameworks[3], path, incText, targetConditions, ['phone']);
 
+                            done();
+                        });
+                }, 6000);
+
+                it('Test 042 : should remove from correct project files when conditions specified', function (done) {
+                    var frameworks = copyArray(valid_frameworks);
+
+                    install('windows', cordovaProjectWindowsPlatformDir, dummyplugin, cordovaProjectPluginsDir, {})
+                        .then(function () {
+                            var path = 'ItemGroup/Reference';
                             incText = 'dummy5';
                             targetConditions = {versions: undefined, deviceTarget: 'phone', arch: undefined};
                             validateUninstalledProjects('framework', frameworks[4], path, incText, targetConditions, ['phone']);
 
+                            done();
+                        });
+                }, 6000);
+
+                it('Test 043 : should remove from correct project files when conditions specified', function (done) {
+                    var frameworks = copyArray(valid_frameworks);
+
+                    install('windows', cordovaProjectWindowsPlatformDir, dummyplugin, cordovaProjectPluginsDir, {})
+                        .then(function () {
+                            var path = 'ItemGroup/Reference';
                             incText = 'dummy6';
                             targetConditions = {versions: '>=8.1', deviceTarget: undefined, arch: undefined};
                             validateUninstalledProjects('framework', frameworks[5], path, incText, targetConditions, ['windows', 'windows10', 'phone']);
 
                             done();
                         });
-                });
+                }, 6000);
             });
 
             describe('of <framework> elements of type \'projectReference\'', function () {
                 // This could be separated into individual specs, but that results in a lot of copying and deleting the
                 // project files, which is not needed.
-                it('should remove from correct project files when conditions specified', function (done) {
+                it('Test 044 : should remove from correct project files when conditions specified', function (done) {
                     var frameworks = copyArray(valid_frameworks);
 
-                    install('windows', cordovaProjectWindowsPlatformDir, dummyplugin, cordovaProjectPluginsDir, {})
+                    return install('windows', cordovaProjectWindowsPlatformDir, dummyplugin, cordovaProjectPluginsDir, {})
                         .then(function () {
                             var xmlPath = 'ItemGroup/ProjectReference';
                             var incText = windowsJoin(cordovaProjectPluginsDir , dummy_id, 'src', 'windows', 'dummy1.vcxproj');
                             var targetConditions = {versions: undefined, deviceTarget: undefined, arch: 'x64'};
                             validateUninstalledProjects('framework', frameworks[6], xmlPath, incText, targetConditions, ['all']);
+                            done();
+                        });
+                }, 60000);
+
+                it('Test 045 : should remove from correct project files when conditions specified', function (done) {
+                    var frameworks = copyArray(valid_frameworks);
 
-                            incText = windowsJoin(cordovaProjectPluginsDir , dummy_id, 'src', 'windows', 'dummy2.vcxproj');
+                    return install('windows', cordovaProjectWindowsPlatformDir, dummyplugin, cordovaProjectPluginsDir, {})
+                        .then(function () {
+                            var xmlPath = 'ItemGroup/ProjectReference';
+                            var incText = windowsJoin(cordovaProjectPluginsDir , dummy_id, 'src', 'windows', 'dummy2.vcxproj');
                             targetConditions = {versions: '<8.1', deviceTarget: undefined, arch: undefined};
                             validateUninstalledProjects('framework', frameworks[7], xmlPath, incText, targetConditions, ['windows8']);
+                            done();
+                        });
+                }, 60000);
 
-                            incText = windowsJoin(cordovaProjectPluginsDir , dummy_id, 'src', 'windows', 'dummy3.vcxproj');
+                it('Test 046 : should remove from correct project files when conditions specified', function (done) {
+                    var frameworks = copyArray(valid_frameworks);
+
+                    return install('windows', cordovaProjectWindowsPlatformDir, dummyplugin, cordovaProjectPluginsDir, {})
+                        .then(function () {
+                            var xmlPath = 'ItemGroup/ProjectReference';
+                            var incText = windowsJoin(cordovaProjectPluginsDir , dummy_id, 'src', 'windows', 'dummy3.vcxproj');
                             targetConditions = {versions: undefined, deviceTarget: 'win', arch: undefined};
                             validateUninstalledProjects('framework', frameworks[8], xmlPath, incText, targetConditions, ['windows', 'windows8', 'windows10']);
 
-                            incText = windowsJoin(cordovaProjectPluginsDir , dummy_id, 'src', 'windows', 'dummy4.vcxproj');
+                            done();
+                        });
+                }, 60000);
+
+                it('Test 047 : should remove from correct project files when conditions specified', function (done) {
+                    var frameworks = copyArray(valid_frameworks);
+
+                    return install('windows', cordovaProjectWindowsPlatformDir, dummyplugin, cordovaProjectPluginsDir, {})
+                        .then(function () {
+                            var xmlPath = 'ItemGroup/ProjectReference';
+                            var incText = windowsJoin(cordovaProjectPluginsDir , dummy_id, 'src', 'windows', 'dummy4.vcxproj');
                             targetConditions = {versions: '8.1', deviceTarget: 'all', arch: 'x86'};
                             validateUninstalledProjects('framework', frameworks[9], xmlPath, incText, targetConditions, ['windows', 'phone']);
-
                             done();
                         });
-                });
+                }, 60000);
             });
         });
     });

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-plugman/platforms/wp8.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/platforms/wp8.spec.js b/cordova-lib/spec-plugman/platforms/wp8.spec.js
index 24cd1af..93d4b22 100644
--- a/cordova-lib/spec-plugman/platforms/wp8.spec.js
+++ b/cordova-lib/spec-plugman/platforms/wp8.spec.js
@@ -60,21 +60,21 @@ describe('wp8 project handler', function() {
     });
 
     describe('www_dir method', function() {
-        it('should return cordova-wp8 project www location using www_dir', function() {
+        it('Test 001 : should return cordova-wp8 project www location using www_dir', function() {
             expect(wp8.www_dir(path.sep)).toEqual(path.sep + 'www');
         });
     });
     describe('package_name method', function() {
-        it('should return a wp8 project\'s proper package name', function() {
+        it('Test 002 : should return a wp8 project\'s proper package name', function() {
             expect(wp8.package_name(wp8_project)).toEqual('{F3A8197B-6B16-456D-B5F4-DD4F04AC0BEC}');
         });
     });
 
     describe('parseProjectFile method', function() {
-        it('should throw if project is not an wp8 project', function() {
+        it('Test 003 : should throw if project is not an wp8 project', function() {
             expect(function() {
                 wp8.parseProjectFile(temp);
-            }).toThrow('does not appear to be a Windows Phone project (no .csproj file)');
+            }).toThrow(new Error ('does not appear to be a Windows Phone project (no .csproj file)'));
         });
     });
 
@@ -94,41 +94,40 @@ describe('wp8 project handler', function() {
             beforeEach(function() {
                 shell.cp('-rf', path.join(wp8_project, '*'), temp);
             });
-            it('should copy stuff from one location to another by calling common.copyFile', function() {
+            it('Test 004 : should copy stuff from one location to another by calling common.copyFile', function() {
                 var source = copyArray(valid_source);
                 var s = spyOn(common, 'copyFile');
                 wp8['source-file'].install(source[0], dummyplugin, temp, dummy_id, null, proj_files);
                 expect(s).toHaveBeenCalledWith(dummyplugin, 'src/wp8/DummyPlugin.cs', temp, path.join('Plugins', 'org.test.plugins.dummyplugin', 'DummyPlugin.cs'), false);
             });
-            it('should throw if source-file src cannot be found', function() {
+            it('Test 005 : should throw if source-file src cannot be found', function() {
                 var source = copyArray(invalid_source);
                 expect(function() {
                     wp8['source-file'].install(source[1], faultyplugin, temp, faulty_id, null, proj_files);
-                }).toThrow('"' + path.resolve(faultyplugin, 'src/wp8/NotHere.cs') + '" not found!');
+                }).toThrow(new Error('"' + path.resolve(faultyplugin, 'src/wp8/NotHere.cs') + '" not found!'));
             });
-            it('should throw if source-file target already exists', function() {
+            it('Test 006 : should throw if source-file target already exists', function() {
                 var source = copyArray(valid_source);
                 var target = path.join(temp, 'Plugins', dummy_id, 'DummyPlugin.cs');
                 shell.mkdir('-p', path.dirname(target));
                 fs.writeFileSync(target, 'some bs', 'utf-8');
                 expect(function() {
                     wp8['source-file'].install(source[0], dummyplugin, temp, dummy_id, null, proj_files);
-                }).toThrow('"' + target + '" already exists!');
+                }).toThrow(new Error ('"' + target + '" already exists!'));
             });
         });
         describe('of <config-changes> elements', function() {
             beforeEach(function() {
                 shell.cp('-rf', path.join(wp8_project, '*'), temp);
             });
-            it('should process and pass the after parameter to graftXML', function () {
-                var graftXML = spyOn(xml_helpers, 'graftXML').andCallThrough();
-
-                runs(function () { installPromise(install('wp8', temp, dummyplugin, plugins_dir, {})); });
-                waitsFor(function () { return done; }, 'install promise never resolved', 500);
-                runs(function () {
+            it('Test 007 : should process and pass the after parameter to graftXML', function (done) {
+                var graftXML = spyOn(xml_helpers, 'graftXML').and.callThrough();
+                return install('wp8', temp, dummyplugin, plugins_dir, {})
+                .then(function() {
                     expect(graftXML).toHaveBeenCalledWith(jasmine.any(Object), jasmine.any(Array), '/Deployment/App', 'Tokens');
                     expect(graftXML).toHaveBeenCalledWith(jasmine.any(Object), jasmine.any(Array), '/Deployment/App/Extensions', 'Extension');
                     expect(graftXML).toHaveBeenCalledWith(jasmine.any(Object), jasmine.any(Array), '/Deployment/App/Extensions', 'FileTypeAssociation;Extension');
+                    done();
                 });
             });
         });
@@ -144,7 +143,7 @@ describe('wp8 project handler', function() {
             shell.rm('-rf', temp);
         });
         describe('of <source-file> elements', function() {
-            it('should remove stuff by calling common.removeFile', function(done) {
+            it('Test 009 : should remove stuff by calling common.removeFile', function(done) {
                 var s = spyOn(common, 'removeFile');
                 install('wp8', temp, dummyplugin, plugins_dir, {})
                 .then(function() {

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-plugman/registry/registry.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/registry/registry.spec.js b/cordova-lib/spec-plugman/registry/registry.spec.js
index aa2d419..71c9318 100644
--- a/cordova-lib/spec-plugman/registry/registry.spec.js
+++ b/cordova-lib/spec-plugman/registry/registry.spec.js
@@ -29,12 +29,13 @@ describe('registry', function() {
     beforeEach(function() {
         done = false;
     });
+
     function registryPromise(shouldSucceed, f) {
-        waitsFor(function() { return done; }, 'promise never resolved', 500);
-        return f.then(function() {
+        return f
+        .then(function() {
           done = true;
           expect(shouldSucceed).toBe(true);
-        }, function(err) {
+        }).fail(function(err){
           done = err;
           expect(shouldSucceed).toBe(false);
         });
@@ -52,33 +53,44 @@ describe('registry', function() {
         afterEach(function() {
             shell.rm('-rf', tmp_plugin);
         });
-        it('should generate a package.json from a plugin.xml', function() {
-            registryPromise(true, manifest.generatePackageJsonFromPluginXml(tmp_plugin).then(function() {
+        it('Test 001 : should generate a package.json from a plugin.xml', function(done) {
+            return registryPromise(true, manifest.generatePackageJsonFromPluginXml(tmp_plugin))
+            .then(function() {
                 expect(fs.existsSync(tmp_package_json));
                 var packageJson = JSON.parse(fs.readFileSync(tmp_package_json));
                 expect(packageJson.name).toEqual('com.cordova.engine');
                 expect(packageJson.version).toEqual('1.0.0');
                 expect(packageJson.engines).toEqual(
                     [ { name : 'cordova', version : '>=2.3.0' }, { name : 'cordova-plugman', version : '>=0.10.0' }, { name : 'mega-fun-plugin', version : '>=1.0.0' }, { name : 'mega-boring-plugin', version : '>=3.0.0' } ]);
-            }));
-        });
-        it('should raise an error if name does not follow com.domain.* format', function() {
+                done();
+            });
+        }, 6000);
+        it('Test 002 : should raise an error if name does not follow com.domain.* format', function(done) {
             var xmlData = fs.readFileSync(tmp_plugin_xml).toString().replace('id="com.cordova.engine"', 'id="engine"');
             fs.writeFileSync(tmp_plugin_xml, xmlData);
-            registryPromise(false, manifest.generatePackageJsonFromPluginXml(tmp_plugin));
+            return registryPromise(false, manifest.generatePackageJsonFromPluginXml(tmp_plugin))
+            .then(function(){
+                done();
+            })
         });
-        it('should generate a package.json if name uses org.apache.cordova.* for a whitelisted plugin', function() {
+        // Expect the package.json to NOT exist
+        it('Test 003 : should generate a package.json if name uses org.apache.cordova.* for a whitelisted plugin', function(done) {
             var xmlData = fs.readFileSync(tmp_plugin_xml).toString().replace('id="com.cordova.engine"', 'id="org.apache.cordova.camera"');
             fs.writeFileSync(tmp_plugin_xml, xmlData);
-            registryPromise(true, manifest.generatePackageJsonFromPluginXml(tmp_plugin).then(function() {
-                expect(!fs.existsSync(tmp_package_json));
-            }));
-        });
-        it('should raise an error if name uses org.apache.cordova.* for a non-whitelisted plugin', function() {
+            return registryPromise(true, manifest.generatePackageJsonFromPluginXml(tmp_plugin))
+            .then(function(result) {
+                expect(fs.existsSync(tmp_package_json)).toBe(true);
+                done();
+            });
+        }, 6000);
+        it('Test 004 : should raise an error if name uses org.apache.cordova.* for a non-whitelisted plugin', function(done) {
             var xmlData = fs.readFileSync(tmp_plugin_xml).toString().replace('id="com.cordova.engine"', 'id="org.apache.cordova.myinvalidplugin"');
             fs.writeFileSync(tmp_plugin_xml, xmlData);
-            registryPromise(false, manifest.generatePackageJsonFromPluginXml(tmp_plugin));
-        });
+            return registryPromise(false, manifest.generatePackageJsonFromPluginXml(tmp_plugin))
+            .then(function(){
+                done();
+            })
+        }, 6000);
     });
     describe('actions', function() {
         var fakeLoad, fakeNPMCommands;
@@ -99,11 +111,11 @@ describe('registry', function() {
             };
 
             registry.settings = fakeSettings;
-            fakeLoad = spyOn(npm, 'load').andCallFake(function () { arguments[arguments.length - 1](null, true); });
+            fakeLoad = spyOn(npm, 'load').and.callFake(function () { arguments[arguments.length - 1](null, true); });
 
             fakeNPMCommands = {};
             ['config', 'adduser', 'cache', 'publish', 'unpublish', 'search'].forEach(function(cmd) {
-                fakeNPMCommands[cmd] = jasmine.createSpy(cmd).andCallFake(fakeNPM);
+                fakeNPMCommands[cmd] = jasmine.createSpy(cmd).and.callFake(fakeNPM);
             });
 
             npm.commands = fakeNPMCommands;
@@ -111,19 +123,21 @@ describe('registry', function() {
             npm.config.get = function(){};
             npm.config.del = function(){};
         });
-        it('should run config', function() {
+        it('Test 005 : should run config', function(done) {
             var params = ['set', 'registry', 'http://registry.cordova.io'];
-            registryPromise(true, registry.config(params).then(function() {
+            return registryPromise(true, registry.config(params).then(function() {
                 expect(fakeLoad).toHaveBeenCalledWith(jasmine.any(Object),jasmine.any(Function));
                 expect(fakeNPMCommands.config).toHaveBeenCalledWith(params, jasmine.any(Function));
+                done();
             }));
-        });
-        it('should run search', function() {
+        }, 6000);
+        it('Test 006 : should run search', function(done) {
             var params = ['dummyplugin', 'plugin'];
-            registryPromise(true, registry.search(params).then(function() {
+            return registryPromise(true, registry.search(params).then(function() {
                 expect(fakeLoad).toHaveBeenCalledWith(jasmine.any(Object),jasmine.any(Function));
                 expect(fakeNPMCommands.search).toHaveBeenCalledWith(params, true, jasmine.any(Function));
+                done();
             }));
-        });
+        }, 6000);
     });
 });

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-plugman/search.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/search.spec.js b/cordova-lib/spec-plugman/search.spec.js
index f2acb01..1d96e84 100644
--- a/cordova-lib/spec-plugman/search.spec.js
+++ b/cordova-lib/spec-plugman/search.spec.js
@@ -21,7 +21,7 @@ var search = require('../src/plugman/search'),
     registry = require('../src/plugman/registry/registry');
 
 describe('search', function() {
-    it('should search a plugin', function() {
+    it('Test 001 : should search a plugin', function() {
         var sSearch = spyOn(registry, 'search').and.returnValue(Q());
         search(new Array('myplugin', 'keyword'));
         expect(sSearch).toHaveBeenCalledWith(['myplugin', 'keyword']);

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-plugman/uninstall.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/uninstall.spec.js b/cordova-lib/spec-plugman/uninstall.spec.js
index 95e0b2b..2e8e862 100644
--- a/cordova-lib/spec-plugman/uninstall.spec.js
+++ b/cordova-lib/spec-plugman/uninstall.spec.js
@@ -50,7 +50,6 @@ var uninstall = require('../src/plugman/uninstall'),
         'A' : path.join(plugins_dir, 'dependencies', 'A'),
         'C' : path.join(plugins_dir, 'dependencies', 'C')
     },
-    promise,
     dummy_id = 'org.test.plugins.dummyplugin';
 
 var dummyPluginInfo = new PluginInfo(plugins['org.test.plugins.dummyplugin']);
@@ -71,10 +70,6 @@ var TEST_XML = '<?xml version="1.0" encoding="UTF-8"?>\n' +
     '    <access origin="*" />\n' +
     '</widget>\n';
 
-function uninstallPromise(f) {
-    return f.then(function() { done = true; }, function(err) { done = err; });
-}
-
 describe('plugman uninstall start', function() {
     beforeEach(function () {
         var origParseElementtreeSync = xmlHelpers.parseElementtreeSync.bind(xmlHelpers);
@@ -84,17 +79,14 @@ describe('plugman uninstall start', function() {
         });
     });
 
-    it('plugman uninstall start', function() {
+    it('Test 001 : plugman uninstall start', function(done) {
         shell.rm('-rf', project, project2, project3);
         shell.cp('-R', path.join(srcProject, '*'), project);
         shell.cp('-R', path.join(srcProject, '*'), project2);
         shell.cp('-R', path.join(srcProject, '*'), project3);
 
-        done = false;
-        promise = Q()
-        .then(function(){
-            return install('android', project, plugins['org.test.plugins.dummyplugin']);
-        }).then(function(){
+        return install('android', project, plugins['org.test.plugins.dummyplugin'])
+        .then(function(result){
             return install('android', project, plugins['A']);
         }).then( function(){
             return install('android', project2, plugins['C']);
@@ -104,15 +96,12 @@ describe('plugman uninstall start', function() {
             return install('android', project3, plugins['A']);
         }).then(function(){
             return install('android', project3, plugins['C']);
-        }).then(function(){
-            done = true;
-        }, function(err) {
-            done = err.stack;
-        });
-        waitsFor(function() { return done; }, 'promise never resolved', 2000);
-        runs(function() {
-            expect(done).toBe(true);
-        });
+        }).then(function(result){
+            expect(result).toEqual(true);
+            done();
+        }).fail(function(err){
+            expect(err).toBeUndefined();
+        }, 60000);
     });
 });
 
@@ -129,7 +118,7 @@ describe('uninstallPlatform', function() {
     });
     describe('success', function() {
 
-        it('should get PlatformApi instance for platform and invoke its\' removePlugin method', function(done) {
+        it('Test 002 : should get PlatformApi instance for platform and invoke its\' removePlugin method', function(done) {
             var platformApi = { removePlugin: jasmine.createSpy('removePlugin').and.returnValue(Q()) };
             var getPlatformApi = spyOn(platforms, 'getPlatformApi').and.returnValue(platformApi);
 
@@ -137,12 +126,14 @@ describe('uninstallPlatform', function() {
             .then(function() {
                 expect(getPlatformApi).toHaveBeenCalledWith('android', project);
                 expect(platformApi.removePlugin).toHaveBeenCalled();
-            }, function(err) {
+                done();
+            }).fail(function (err) {
                 expect(err).toBeUndefined();
-            }).fin(done);
-        });
+                done();
+            });
+        }, 6000);
 
-        it('should return propagate value returned by PlatformApi removePlugin method', function(done) {
+        it('Test 003 : should return propagate value returned by PlatformApi removePlugin method', function(done) {
             var platformApi = { removePlugin: jasmine.createSpy('removePlugin') };
             spyOn(platforms, 'getPlatformApi').and.returnValue(platformApi);
 
@@ -157,7 +148,8 @@ describe('uninstallPlatform', function() {
 
             function validateReturnedResultFor(values, expectedResult) {
                 return values.reduce(function (promise, value) {
-                    return promise.then(function () {
+                    return promise
+                    .then(function () {
                         platformApi.removePlugin.and.returnValue(Q(value));
                         return uninstall.uninstallPlatform('android', project, dummy_id, null,
                             { pluginInfoProvider: fakeProvider, platformVersion: '9.9.9' });
@@ -177,41 +169,37 @@ describe('uninstallPlatform', function() {
             .fin(done);
         });
 
-    describe('with dependencies', function() {
+        describe('with dependencies', function() {
             var emit;
             beforeEach(function() {
                 emit = spyOn(events, 'emit');
             });
-            it('should uninstall "dangling" dependencies', function(done) {
-                runs(function() {
-                    uninstallPromise(uninstall.uninstallPlatform('android', project, 'A'));
-                });
-                waitsFor(function() { return done; }, 'promise never resolved', 200);
-                runs(function() {
-                    expect(emit).toHaveBeenCalledWith('log', 'Uninstalling 2 dependent plugins.');
-                });
+            uninstall.uninstallPlatform('android', project, 'A')
+            .then(function(result) {
+                expect(emit).toHaveBeenCalledWith('log', 'Uninstalling 2 dependent plugins.');
+                done();
             });
         });
     });
 
     describe('failure', function() {
-        it('should throw if platform is unrecognized', function(done) {
-            uninstall.uninstallPlatform('atari', project, 'SomePlugin').then(function(result){
+        it('Test 004 : should throw if platform is unrecognized', function(done) {
+            uninstall.uninstallPlatform('atari', project, 'SomePlugin')
+            .then(function(result){
                 expect(false).toBe(true);
                 done();
-            },
-            function err(errMsg) {
+            }).fail(function err (errMsg) {
                 expect(errMsg.toString()).toContain('atari not supported.');
                 done();
             });
         }, 6000);
 
-        it('should throw if plugin is missing', function(done) {
-            uninstall.uninstallPlatform('android', project, 'SomePluginThatDoesntExist').then(function(result){
+        it('Test 005 : should throw if plugin is missing', function(done) {
+            uninstall.uninstallPlatform('android', project, 'SomePluginThatDoesntExist')
+            .then(function(result){
                 expect(false).toBe(true);
                 done();
-            },
-            function err(errMsg) {
+            }).fail(function err (errMsg) {
                 expect(errMsg.toString()).toContain('Plugin "SomePluginThatDoesntExist" not found. Already uninstalled?');
                 done();
             });
@@ -231,71 +219,60 @@ describe('uninstallPlugin', function() {
     });
     describe('with dependencies', function() {
 
-        it('should delete all dependent plugins', function() {
-            runs(function() {
-                uninstallPromise( uninstall.uninstallPlugin('A', plugins_install_dir) );
-            });
-            waitsFor(function() { return done; }, 'promise never resolved', 200);
-            runs(function() {
+        it('Test 006 : should delete all dependent plugins', function(done) {
+            uninstall.uninstallPlugin('A', plugins_install_dir)
+            .then(function(result) {
                 var del = common.spy.getDeleted(emit);
-
                 expect(del).toEqual([
                     'Deleted "C"',
                     'Deleted "D"',
                     'Deleted "A"'
                 ]);
+                done();
             });
         });
 
-        it('should fail if plugin is a required dependency', function(done) {
-            runs(function() {
-                uninstallPromise( uninstall.uninstallPlugin('C', plugins_install_dir) );
-            });
-            waitsFor(function() { return done; }, 'promise never resolved', 200);
-            runs(function() {
-                expect(done.message).toBe('"C" is required by (A) and cannot be removed (hint: use -f or --force)');
+        it('Test 007 : should fail if plugin is a required dependency', function(done) {
+            uninstall.uninstallPlugin('C', plugins_install_dir)
+            .then(function(result){
+                expect(false).toBe(true);
+                done();
+            }).fail(function err (errMsg) {
+                expect(errMsg.toString()).toEqual('"C" is required by (A) and cannot be removed (hint: use -f or --force)');
+                done();
             });
-        });
+        }, 6000);
 
-        it('allow forcefully removing a plugin', function() {
-            runs(function() {
-                uninstallPromise( uninstall.uninstallPlugin('C', plugins_install_dir, {force: true}) );
-            });
-            waitsFor(function() { return done; }, 'promise never resolved', 200);
-            runs(function() {
-                expect(done).toBe(true);
+        it('Test 008 : allow forcefully removing a plugin', function(done) {
+            uninstall.uninstallPlugin('C', plugins_install_dir, {force: true}) 
+            .then(function() {
                 var del = common.spy.getDeleted(emit);
                 expect(del).toEqual(['Deleted "C"']);
+                done();
             });
         });
 
-        it('never remove top level plugins if they are a dependency', function() {
-            runs(function() {
-                uninstallPromise( uninstall.uninstallPlugin('A', plugins_install_dir2) );
-            });
-            waitsFor(function() { return done; }, 'promise never resolved', 200);
-            runs(function() {
+        it('Test 009 : never remove top level plugins if they are a dependency', function(done) {
+            uninstall.uninstallPlugin('A', plugins_install_dir2)
+            .then(function() {
                 var del = common.spy.getDeleted(emit);
-
                 expect(del).toEqual([
                     'Deleted "D"',
                     'Deleted "A"'
                 ]);
+                done();
             });
         });
 
-        it('should not remove dependent plugin if it was installed after as top-level', function(done) {
-            runs(function() {
-                uninstallPromise( uninstall.uninstallPlugin('A', plugins_install_dir3) );
-            });
-            waitsFor(function() { return done; }, 'promise never resolved', 200);
-            runs(function() {
+        it('Test 010 : should not remove dependent plugin if it was installed after as top-level', function(done) {
+            uninstall.uninstallPlugin('A', plugins_install_dir3)
+            .then(function() {
                 var del = common.spy.getDeleted(emit);
-
                 expect(del).toEqual([
                     'Deleted "D"',
                     'Deleted "A"'
                 ]);
+                done();
             });
         });
     });
@@ -309,26 +286,25 @@ describe('uninstall', function() {
         rm = spyOn(shell, 'rm').and.returnValue(true);
         done = false;
     });
-
+    
     describe('failure', function() {
-        it('should throw if platform is unrecognized', function(done) {
-            uninstall('atari', project, 'SomePlugin').then(function(result){
+        it('Test 011 : should throw if platform is unrecognized', function(done) {
+            return uninstall('atari', project, 'SomePlugin')
+            .then(function(result){
                 expect(false).toBe(true);
                 done();
-            },
-            function err(errMsg) {
-                expect(clone).toHaveBeenCalledWith(url, temp, dir, ref, undefined);
-                expect(save_metadata).toHaveBeenCalled();
+            }).fail(function err (errMsg) {
+                expect(errMsg.toString()).toContain('atari not supported.');
                 done();
             });
         }, 6000);
 
-        it('should throw if plugin is missing', function(done) {
-            uninstall('android', project, 'SomePluginThatDoesntExist').then(function(result){
+        it('Test 012 : should throw if plugin is missing', function(done) {
+            uninstall('android', project, 'SomePluginThatDoesntExist')
+            .then(function(result){
                 expect(false).toBe(true);
                 done();
-            },
-            function err(errMsg) {
+            }).fail(function err (errMsg) {
                 expect(errMsg.toString()).toContain('Plugin "SomePluginThatDoesntExist" not found. Already uninstalled?');
                 done();
             });
@@ -337,11 +313,9 @@ describe('uninstall', function() {
 });
 
 describe('end', function() {
-    it('end', function() {
-        done = false;
-        promise.then(function(){
-            return uninstall('android', project, plugins['org.test.plugins.dummyplugin']);
-        }).then(function(){
+    it('Test 013 : end', function(done) {
+        return uninstall('android', project, plugins['org.test.plugins.dummyplugin'])
+        .then(function(){
             // Fails... A depends on
             return uninstall('android', project, plugins['C']);
         }).fail(function(err) {
@@ -352,10 +326,8 @@ describe('end', function() {
         }).fin(function(err){
             if(err)
                 plugman.emit('error', err);
-
             shell.rm('-rf', project, project2, project3);
-            done = true;
+            done();
         });
-        waitsFor(function() { return done; }, 'promise never resolved', 500);
     });
 });

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-plugman/util/csproj.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/util/csproj.spec.js b/cordova-lib/spec-plugman/util/csproj.spec.js
index 2b18715..5e1af7a 100644
--- a/cordova-lib/spec-plugman/util/csproj.spec.js
+++ b/cordova-lib/spec-plugman/util/csproj.spec.js
@@ -23,12 +23,12 @@ var wp8_project     = path.join(__dirname, '..', 'projects', 'wp8'),
     example_csproj  = path.join(wp8_project, 'CordovaAppProj.csproj');
 
 describe('csproj', function() {
-    it('should throw if passed in an invalid xml file path ref', function() {
+    it('Test 001 : should throw if passed in an invalid xml file path ref', function() {
         expect(function() {
             new csproj('blahblah');
         }).toThrow();
     });
-    it('should successfully parse a valid csproj file into an xml document', function() {
+    it('Test 002 : should successfully parse a valid csproj file into an xml document', function() {
         var doc;
         expect(function() {
             doc = new csproj(example_csproj);
@@ -50,22 +50,22 @@ describe('csproj', function() {
 
         describe('add method', function() {
             var test_csproj = new csproj(example_csproj);
-            it('should properly add .xaml files', function() {
+            it('Test 003 : should properly add .xaml files', function() {
                 test_csproj.addSourceFile(page_test);
                 expect(test_csproj.xml.getroot().find('.//Page[@Include="src\\UI\\PageTest.xaml"]')).toBeTruthy();
                 expect(test_csproj.xml.getroot().find('.//Page[@Include="src\\UI\\PageTest.xaml"]/Generator').text).toEqual('MSBuild:Compile');
                 expect(test_csproj.xml.getroot().find('.//Page[@Include="src\\UI\\PageTest.xaml"]/SubType').text).toEqual('Designer');
             });
-            it('should properly add .xaml.cs files', function() {
+            it('Test 004 : should properly add .xaml.cs files', function() {
                 test_csproj.addSourceFile(page_test_cs);
                 expect(test_csproj.xml.getroot().find('.//Compile[@Include="src\\UI\\PageTest.xaml.cs"]')).toBeTruthy();
                 expect(test_csproj.xml.getroot().find('.//Compile[@Include="src\\UI\\PageTest.xaml.cs"]/DependentUpon').text).toEqual('PageTest.xaml');
             });
-            it('should properly add .cs files', function() {
+            it('Test 005 : should properly add .cs files', function() {
                 test_csproj.addSourceFile(file_test);
                 expect(test_csproj.xml.getroot().find('.//Compile[@Include="src\\FileTest.cs"]')).toBeTruthy();
             });
-            it('should properly add content files', function() {
+            it('Test 006 : should properly add content files', function() {
                 test_csproj.addSourceFile(content_test);
                 expect(test_csproj.xml.getroot().find('.//Content[@Include="src\\Content.img"]')).toBeTruthy();
             });
@@ -73,23 +73,23 @@ describe('csproj', function() {
 
         describe('remove method', function() {
             var test_csproj = new csproj(example_csproj);
-            it('should properly remove .xaml pages', function() {
+            it('Test 007 : should properly remove .xaml pages', function() {
                 test_csproj.removeSourceFile(page_test);
                 expect(test_csproj.xml.getroot().find('.//Page[@Include="src\\UI\\PageTest.xaml"]')).toBeFalsy();
             });
-            it('should properly remove .xaml.cs files', function() {
+            it('Test 008 : should properly remove .xaml.cs files', function() {
                 test_csproj.removeSourceFile(page_test_cs);
                 expect(test_csproj.xml.getroot().find('.//Compile[@Include="src\\UI\\PageTest.xaml.cs"]')).toBeFalsy();
             });
-            it('should properly remove .cs files', function() {
+            it('Test 009 : should properly remove .cs files', function() {
                 test_csproj.removeSourceFile(file_test);
                 expect(test_csproj.xml.getroot().find('.//Compile[@Include="src\\FileTest.cs"]')).toBeFalsy();
             });
-            it('should properly remove content files', function() {
+            it('Test 010 : should properly remove content files', function() {
                 test_csproj.removeSourceFile(content_test);
                 expect(test_csproj.xml.getroot().find('.//Content[@Include="src\\Content.img"]')).toBeFalsy();
             });
-            it('should remove all empty ItemGroup\'s', function() {
+            it('Test 011 : should remove all empty ItemGroup\'s', function() {
                 test_csproj.removeSourceFile(page_test);
                 test_csproj.removeSourceFile(page_test_cs);
                 test_csproj.removeSourceFile(lib_test);

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-plugman/util/dependencies.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/util/dependencies.spec.js b/cordova-lib/spec-plugman/util/dependencies.spec.js
index 2dd581a..5ad9f36 100644
--- a/cordova-lib/spec-plugman/util/dependencies.spec.js
+++ b/cordova-lib/spec-plugman/util/dependencies.spec.js
@@ -24,7 +24,7 @@ var PluginInfoProvider = require('cordova-common').PluginInfoProvider;
 
 describe('dependency module', function() {
     describe('generateDependencyInfo method', function() {
-        it('should return a list of top-level plugins based on what is inside a platform.json file', function() {
+        it('Test 001 : should return a list of top-level plugins based on what is inside a platform.json file', function() {
             var tlps = {
                 'hello':'',
                 'isitme':'',
@@ -38,11 +38,11 @@ describe('dependency module', function() {
             Object.keys(tlps).forEach(function(k) {
                 pluginInfoProvider.put({id:k, dir: path.join('plugins_dir', k), getDependencies: function() {return[];}});
             });
-            spyOn(xml_helpers, 'parseElementtreeSync').andReturn({findall:function(){}});
+            spyOn(xml_helpers, 'parseElementtreeSync').and.returnValue({findall:function(){}});
             var obj = dependencies.generateDependencyInfo(platformJson, 'plugins_dir', pluginInfoProvider);
             expect(obj.top_level_plugins).toEqual(Object.keys(tlps));
         });
-        it('should return a dependency graph for the plugins', function() {
+        it('Test 002 : should return a dependency graph for the plugins', function() {
             var tlps = {
                 'A':'',
                 'B':''

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-lib/spec-plugman/wrappers.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/wrappers.spec.js b/cordova-lib/spec-plugman/wrappers.spec.js
index 30218be..b5877f8 100644
--- a/cordova-lib/spec-plugman/wrappers.spec.js
+++ b/cordova-lib/spec-plugman/wrappers.spec.js
@@ -33,13 +33,13 @@ describe('callback wrapper', function() {
                 raw = spyOn(plugman.raw, call);
             });
 
-            it('should work with no callback and success', function() {
+            it('Test 001 : should work with no callback and success', function() {
                 raw.and.returnValue(Q());
                 plugman[call]();
                 expect(raw).toHaveBeenCalled();
             });
 
-            it('should call the callback on success', function(done) {
+            it('Test 002 : should call the callback on success', function(done) {
                 raw.and.returnValue(Q(1));
                 plugman[call](function(err) {
                     expect(err).toBeUndefined();
@@ -47,7 +47,7 @@ describe('callback wrapper', function() {
                 });
             });
 
-            it('should call the callback with the error on failure', function(done) {
+            it('Test 003 : should call the callback with the error on failure', function(done) {
                 var err = new Error('junk');
                 raw.and.callFake(function() { return Q.reject(err); });
                 plugman[call](function(err) {


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


[39/50] [abbrv] cordova-lib git commit: CB-12358 Updated version and RELEASENOTES.md for release 1.0.2

Posted by st...@apache.org.
CB-12358 Updated version and RELEASENOTES.md for release 1.0.2


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

Branch: refs/heads/master
Commit: 0fa31b9ed329554beea1efeab046857421aa77a6
Parents: bfa0589
Author: Steve Gill <st...@gmail.com>
Authored: Tue Jan 17 15:33:48 2017 -0800
Committer: Steve Gill <st...@gmail.com>
Committed: Tue Jan 17 15:33:48 2017 -0800

----------------------------------------------------------------------
 cordova-fetch/RELEASENOTES.md | 3 +++
 cordova-fetch/package.json    | 4 ++--
 2 files changed, 5 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/0fa31b9e/cordova-fetch/RELEASENOTES.md
----------------------------------------------------------------------
diff --git a/cordova-fetch/RELEASENOTES.md b/cordova-fetch/RELEASENOTES.md
index e86e277..b3f264f 100644
--- a/cordova-fetch/RELEASENOTES.md
+++ b/cordova-fetch/RELEASENOTES.md
@@ -20,6 +20,9 @@
 -->
 # Cordova-fetch Release Notes
 
+### 1.0.2 (Jan 17, 2017)
+* [CB-12358](https://issues.apache.org/jira/browse/CB-12358) updated cordova-common dep for cordova-fetch to 2.0.0
+
 ### 1.0.0 (May 12, 2016)
 * [CB-9858](https://issues.apache.org/jira/browse/CB-9858) Added jasmine tests
 * [CB-9858](https://issues.apache.org/jira/browse/CB-9858) Added `npm uninstall` method to cordova-fetch

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/0fa31b9e/cordova-fetch/package.json
----------------------------------------------------------------------
diff --git a/cordova-fetch/package.json b/cordova-fetch/package.json
index 397bb9c..d6dd75e 100644
--- a/cordova-fetch/package.json
+++ b/cordova-fetch/package.json
@@ -1,6 +1,6 @@
 {
   "name": "cordova-fetch",
-  "version": "1.0.2-dev",
+  "version": "1.0.2",
   "description": "Apache Cordova fetch module. Fetches from git and npm.",
   "main": "index.js",
   "repository": {
@@ -21,7 +21,7 @@
     "email": "dev@cordova.apache.org"
   },
   "dependencies": {
-    "cordova-common": "^1.4.0",
+    "cordova-common": "2.0.0",
     "dependency-ls": "^1.0.0",
     "is-url": "^1.2.1",
     "q": "^1.4.1",


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


[03/50] [abbrv] cordova-lib git commit: CB-12039 updated pinned android, ios and windows versions

Posted by st...@apache.org.
CB-12039 updated pinned android, ios and windows versions


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

Branch: refs/heads/fetch-1.0.x
Commit: 4def2b3e7a4df5d2aae96708a2fbb9371f088cda
Parents: d6dc6b5
Author: Steve Gill <st...@gmail.com>
Authored: Thu Oct 20 18:09:11 2016 -0700
Committer: Steve Gill <st...@gmail.com>
Committed: Thu Oct 20 18:09:11 2016 -0700

----------------------------------------------------------------------
 cordova-lib/src/platforms/platformsConfig.json | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/4def2b3e/cordova-lib/src/platforms/platformsConfig.json
----------------------------------------------------------------------
diff --git a/cordova-lib/src/platforms/platformsConfig.json b/cordova-lib/src/platforms/platformsConfig.json
index b4bf23b..807e816 100644
--- a/cordova-lib/src/platforms/platformsConfig.json
+++ b/cordova-lib/src/platforms/platformsConfig.json
@@ -4,7 +4,7 @@
         "parser_file": "../cordova/metadata/ios_parser",
         "handler_file": "../plugman/platforms/ios",
         "url": "https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git",
-        "version": "~4.2.0",
+        "version": "~4.3.0",
         "apiCompatibleSince": "4.0.0",
         "deprecated": false
     },
@@ -21,7 +21,7 @@
         "parser_file": "../cordova/metadata/android_parser",
         "handler_file": "../plugman/platforms/android",
         "url": "https://git-wip-us.apache.org/repos/asf?p=cordova-android.git",
-        "version": "~5.2.0",
+        "version": "~6.0.0",
         "apiCompatibleSince": "5.0.0",
         "deprecated": false
     },
@@ -75,7 +75,7 @@
         "parser_file": "../cordova/metadata/windows_parser",
         "handler_file": "../plugman/platforms/windows",
         "url": "https://git-wip-us.apache.org/repos/asf?p=cordova-windows.git",
-        "version": "~4.4.0",
+        "version": "~4.5.0",
         "apiCompatibleSince": "4.3.0",
         "deprecated": false
     },


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


[30/50] [abbrv] cordova-lib git commit: fixjasmine : CB-12018 : fixed jasmine tests to work with uninstallPlugin and removed waitsFor/runs, updated promise syntax, calls.reset, and labled tests

Posted by st...@apache.org.
 fixjasmine : CB-12018 : fixed jasmine tests to work with uninstallPlugin and removed waitsFor/runs, updated promise syntax, calls.reset, and labled tests


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

Branch: refs/heads/fetch-1.0.x
Commit: b33e222d9af66e3a54360625be8f19fb9c14deea
Parents: 1fa012f
Author: audreyso <au...@adobe.com>
Authored: Mon Dec 19 09:45:27 2016 -0800
Committer: audreyso <au...@adobe.com>
Committed: Tue Jan 10 11:18:54 2017 -0800

----------------------------------------------------------------------
 cordova-common/spec/ActionStack.spec.js         |  16 +-
 .../spec/ConfigChanges/ConfigChanges.spec.js    | 140 ++++----
 .../spec/ConfigParser/ConfigParser.spec.js      |  84 ++---
 cordova-common/spec/CordovaCheck.spec.js        |  14 +-
 cordova-common/spec/CordovaLogger.spec.js       |  34 +-
 cordova-common/spec/FileUpdater.spec.js         |  74 ++--
 cordova-common/spec/PlatformJson.spec.js        |  30 +-
 .../spec/PluginInfo/PluginInfo.spec.js          |   4 +-
 .../spec/PluginInfo/PluginInfoProvider.spec.js  |   2 +-
 cordova-common/spec/PluginManager.spec.js       |  31 +-
 cordova-common/spec/events.spec.js              |   6 +-
 cordova-common/spec/superspawn.spec.js          |   6 +-
 cordova-common/spec/util/xml-helpers.spec.js    |  86 ++---
 cordova-lib/spec-cordova/HooksRunner.spec.js    |  52 +--
 cordova-lib/spec-cordova/build.spec.js          |  22 +-
 cordova-lib/spec-cordova/compile.spec.js        |  22 +-
 cordova-lib/spec-cordova/create.spec.js         |   6 +-
 cordova-lib/spec-cordova/emulate.spec.js        |  22 +-
 cordova-lib/spec-cordova/helpers.js             |   6 +-
 cordova-lib/spec-cordova/lazy_load.spec.js      |  26 +-
 .../metadata/android_parser.spec.js             |  32 +-
 .../metadata/blackberry_parser.spec.js          |  16 +-
 .../metadata/browser_parser.spec.js             |   6 +-
 .../metadata/firefoxos_parser.spec.js           |  26 +-
 .../spec-cordova/metadata/ios_parser.spec.js    |  50 +--
 .../metadata/parserhelper/preferences.spec.js   |  10 +-
 .../spec-cordova/metadata/webos_parser.spec.js  |  10 +-
 .../metadata/windows_parser.spec.js             |  26 +-
 .../spec-cordova/metadata/wp8_parser.spec.js    |  38 +-
 cordova-lib/spec-cordova/platform.spec.ios.js   |   2 +-
 cordova-lib/spec-cordova/platform.spec.js       |  24 +-
 .../platforms/PlatformApiPoly.spec.js           |  28 +-
 .../spec-cordova/platforms/platforms.spec.js    |   4 +-
 cordova-lib/spec-cordova/plugin.spec.js         |  41 ++-
 cordova-lib/spec-cordova/plugin_fetch.spec.js   |  50 +--
 .../spec-cordova/plugin_package_parse.spec.js   |  10 +-
 cordova-lib/spec-cordova/plugin_parser.spec.js  |   4 +-
 cordova-lib/spec-cordova/prepare.spec.js        |  49 ++-
 .../spec-cordova/project-metadata-apis.spec.js  |   4 +-
 cordova-lib/spec-cordova/run.spec.js            |  30 +-
 cordova-lib/spec-cordova/save.spec.js           |  68 ++--
 cordova-lib/spec-cordova/serve.spec.js          |   9 +-
 cordova-lib/spec-cordova/util.spec.js           |  54 +--
 cordova-lib/spec-cordova/wrappers.spec.js       |   6 +-
 cordova-lib/spec-plugman/add_platform.spec.js   |  14 +-
 cordova-lib/spec-plugman/common.js              |  20 +-
 cordova-lib/spec-plugman/config.spec.js         |   2 +-
 cordova-lib/spec-plugman/create.spec.js         |  35 +-
 cordova-lib/spec-plugman/fetch.spec.js          |  72 ++--
 cordova-lib/spec-plugman/info.spec.js           |   2 +-
 cordova-lib/spec-plugman/install.spec.js        | 311 +++++++----------
 cordova-lib/spec-plugman/owner.spec.js          |   2 +-
 .../spec-plugman/platforms/android.spec.js      |  43 +--
 .../spec-plugman/platforms/blackberry10.spec.js |  26 +-
 .../spec-plugman/platforms/common.spec.js       |  36 +-
 cordova-lib/spec-plugman/platforms/ios.spec.js  | 120 +++----
 .../spec-plugman/platforms/tizen.spec.js        |   4 +-
 .../spec-plugman/platforms/windows.spec.js      | 346 +++++++++++++++----
 cordova-lib/spec-plugman/platforms/wp8.spec.js  |  31 +-
 .../spec-plugman/registry/registry.spec.js      |  64 ++--
 cordova-lib/spec-plugman/search.spec.js         |   2 +-
 cordova-lib/spec-plugman/uninstall.spec.js      | 168 ++++-----
 cordova-lib/spec-plugman/util/csproj.spec.js    |  22 +-
 .../spec-plugman/util/dependencies.spec.js      |   6 +-
 cordova-lib/spec-plugman/wrappers.spec.js       |   6 +-
 65 files changed, 1385 insertions(+), 1227 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-common/spec/ActionStack.spec.js
----------------------------------------------------------------------
diff --git a/cordova-common/spec/ActionStack.spec.js b/cordova-common/spec/ActionStack.spec.js
index b432e21..e0b7d7d 100644
--- a/cordova-common/spec/ActionStack.spec.js
+++ b/cordova-common/spec/ActionStack.spec.js
@@ -26,7 +26,7 @@ describe('action-stack', function() {
         stack = new action_stack();
     });
     describe('processing of actions', function() {
-        it('should process actions one at a time until all are done', function() {
+        it('Test 001 : should process actions one at a time until all are done', function() {
             var first_spy = jasmine.createSpy();
             var first_args = [1];
             var second_spy = jasmine.createSpy();
@@ -41,7 +41,7 @@ describe('action-stack', function() {
             expect(second_spy).toHaveBeenCalledWith(second_args[0]);
             expect(third_spy).toHaveBeenCalledWith(third_args[0]);
         });
-        it('should revert processed actions if an exception occurs', function() {
+        it('Test 002 : should revert processed actions if an exception occurs', function(done) {
             spyOn(console, 'log');
             var first_spy = jasmine.createSpy();
             var first_args = [1];
@@ -59,11 +59,11 @@ describe('action-stack', function() {
             stack.push(stack.createAction(third_spy, third_args, function(){}, []));
             // process should throw
             var error;
-            runs(function() {
-                stack.process('android', android_one_project).fail(function(err) { error = err; });
-            });
-            waitsFor(function(){ return error; }, 'process promise never resolved', 500);
-            runs(function() {
+            stack.process('android', android_one_project)
+            .then(function(something){
+                expect(false).toBe(true);
+            }).fail(function(err){
+                error = err;
                 expect(error).toEqual(process_err);
                 // first two actions should have been called, but not the third
                 expect(first_spy).toHaveBeenCalledWith(first_args[0]);
@@ -71,7 +71,7 @@ describe('action-stack', function() {
                 expect(third_spy).not.toHaveBeenCalledWith(third_args[0]);
                 // first reverter should have been called after second action exploded
                 expect(first_reverter).toHaveBeenCalledWith(first_reverter_args[0]);
-            });
+            }).fin(done);
         });
     });
 });

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-common/spec/ConfigChanges/ConfigChanges.spec.js
----------------------------------------------------------------------
diff --git a/cordova-common/spec/ConfigChanges/ConfigChanges.spec.js b/cordova-common/spec/ConfigChanges/ConfigChanges.spec.js
index 11651a2..a615b21 100644
--- a/cordova-common/spec/ConfigChanges/ConfigChanges.spec.js
+++ b/cordova-common/spec/ConfigChanges/ConfigChanges.spec.js
@@ -68,14 +68,14 @@ describe('config-changes module', function() {
 
     describe('queue methods', function() {
         describe('addInstalledPluginToPrepareQueue', function() {
-            it('should append specified plugin to platform.json', function() {
+            it('Test 001 : should append specified plugin to platform.json', function() {
                 var platformJson = new PlatformJson(null, 'android', null);
                 platformJson.addInstalledPluginToPrepareQueue('org.test.plugins.dummyplugin', {});
                 var json = platformJson.root;
                 expect(json.prepare_queue.installed[0].plugin).toEqual('org.test.plugins.dummyplugin');
                 expect(json.prepare_queue.installed[0].vars).toEqual({});
             });
-            it('should append specified plugin with any variables to platform.json', function() {
+            it('Test 002 : should append specified plugin with any variables to platform.json', function() {
                 var platformJson = new PlatformJson(null, 'android', null);
                 platformJson.addInstalledPluginToPrepareQueue('org.test.plugins.dummyplugin', {'dude':'man'});
                 var json = platformJson.root;
@@ -85,7 +85,7 @@ describe('config-changes module', function() {
         });
 
         describe('addUninstalledPluginToPrepareQueue', function() {
-            it('should append specified plugin to platform.json', function() {
+            it('Test 003 : should append specified plugin to platform.json', function() {
                 var platformJson = new PlatformJson(null, 'android', null);
                 platformJson.addUninstalledPluginToPrepareQueue('org.test.plugins.dummyplugin');
                 var json = platformJson.root;
@@ -95,14 +95,14 @@ describe('config-changes module', function() {
     });
 
     describe('load method', function() {
-        it('should return an empty config json object if file doesn\'t exist', function() {
+        it('Test 004 : should return an empty config json object if file doesn\'t exist', function() {
             var platformJson = PlatformJson.load(plugins_dir, 'android');
             expect(platformJson.root).toBeDefined();
             expect(platformJson.root.prepare_queue).toBeDefined();
             expect(platformJson.root.config_munge).toBeDefined();
             expect(platformJson.root.installed_plugins).toBeDefined();
         });
-        it('should return the json file if it exists', function() {
+        it('Test 005 : should return the json file if it exists', function() {
             var filepath = path.join(plugins_dir, 'android.json');
             var json = {
                 prepare_queue: {installed: [], uninstalled: []},
@@ -116,7 +116,7 @@ describe('config-changes module', function() {
     });
 
     describe('save method', function() {
-        it('should write out specified json', function() {
+        it('Test 006 : should write out specified json', function() {
             var filepath = path.join(plugins_dir, 'android.json');
             var platformJson = new PlatformJson(filepath, 'android', {foo:true});
             platformJson.save();
@@ -129,7 +129,7 @@ describe('config-changes module', function() {
             beforeEach(function() {
                 shell.cp('-rf', android_two_project, temp);
             });
-            it('should return a flat config hierarchy for simple, one-off config changes', function() {
+            it('Test 007 : should return a flat config hierarchy for simple, one-off config changes', function() {
                 var xml;
                 var dummy_xml = new et.ElementTree(et.XML(fs.readFileSync(path.join(dummyplugin, 'plugin.xml'), 'utf-8')));
                 var munger = new configChanges.PlatformMunger('android', temp, 'unused', null, pluginInfoProvider);
@@ -150,7 +150,7 @@ describe('config-changes module', function() {
                 xml = innerXML(xml);
                 expect(get_munge_change(munge, 'res/xml/config.xml', '/cordova/plugins', xml).count).toEqual(1);
             });
-            it('should split out multiple children of config-file elements into individual leaves', function() {
+            it('Test 008 : should split out multiple children of config-file elements into individual leaves', function() {
                 var munger = new configChanges.PlatformMunger('android', temp, 'unused', null, pluginInfoProvider);
                 var munge = munger.generate_plugin_config_munge(pluginInfoProvider.get(childrenplugin), {PACKAGE_NAME: 'com.alunny.childapp'});
                 expect(munge.files['AndroidManifest.xml']).toBeDefined();
@@ -165,23 +165,23 @@ describe('config-changes module', function() {
                 expect(get_munge_change(munge, 'AndroidManifest.xml', '/manifest', '<uses-permission android:name="com.alunny.childapp.permission.C2D_MESSAGE" />')).toBeDefined();
                 expect(get_munge_change(munge, 'AndroidManifest.xml', '/manifest', '<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />')).toBeDefined();
             });
-            it('should not use xml comments as config munge leaves', function() {
+            it('Test 009 : should not use xml comments as config munge leaves', function() {
                 var munger = new configChanges.PlatformMunger('android', temp, 'unused', null, pluginInfoProvider);
                 var munge = munger.generate_plugin_config_munge(pluginInfoProvider.get(childrenplugin), {});
                 expect(get_munge_change(munge, 'AndroidManifest.xml', '/manifest', '<!--library-->')).not.toBeDefined();
                 expect(get_munge_change(munge, 'AndroidManifest.xml', '/manifest', '<!-- GCM connects to Google Services. -->')).not.toBeDefined();
             });
-            it('should increment config hierarchy leaves if different config-file elements target the same file + selector + xml', function() {
+            it('Test 010 : should increment config hierarchy leaves if different config-file elements target the same file + selector + xml', function() {
                 var munger = new configChanges.PlatformMunger('android', temp, 'unused', null, pluginInfoProvider);
                 var munge = munger.generate_plugin_config_munge(pluginInfoProvider.get(configplugin), {});
                 expect(get_munge_change(munge, 'res/xml/config.xml', '/widget', '<poop />').count).toEqual(2);
             });
-            it('should take into account interpolation variables', function() {
+            it('Test 011 : should take into account interpolation variables', function() {
                 var munger = new configChanges.PlatformMunger('android', temp, 'unused', null, pluginInfoProvider);
                 var munge = munger.generate_plugin_config_munge(pluginInfoProvider.get(childrenplugin), {PACKAGE_NAME:'ca.filmaj.plugins'});
                 expect(get_munge_change(munge, 'AndroidManifest.xml', '/manifest', '<uses-permission android:name="ca.filmaj.plugins.permission.C2D_MESSAGE" />')).toBeDefined();
             });
-            it('should create munges for platform-agnostic config.xml changes', function() {
+            it('Test 012 : should create munges for platform-agnostic config.xml changes', function() {
                 var munger = new configChanges.PlatformMunger('android', temp, 'unused', null, pluginInfoProvider);
                 var munge = munger.generate_plugin_config_munge(pluginInfoProvider.get(dummyplugin), {});
                 expect(get_munge_change(munge, 'config.xml', '/*', '<access origin="build.phonegap.com" />')).toBeDefined();
@@ -194,12 +194,12 @@ describe('config-changes module', function() {
         beforeEach(function() {
             shell.cp('-rf', dummyplugin, plugins_dir);
         });
-        it('should generate config munges for queued plugins', function() {
+        it('Test 014 : should generate config munges for queued plugins', function() {
             shell.cp('-rf', android_two_project, temp);
             var platformJson = PlatformJson.load(plugins_dir, 'android');
             platformJson.root.prepare_queue.installed = [{'plugin':'org.test.plugins.dummyplugin', 'vars':{}}];
             var munger = new configChanges.PlatformMunger('android', temp, platformJson, pluginInfoProvider);
-            var spy = spyOn(munger, 'generate_plugin_config_munge').andReturn({});
+            var spy = spyOn(munger, 'generate_plugin_config_munge').and.returnValue({});
             munger.process(plugins_dir);
             expect(spy).toHaveBeenCalledWith(jasmine.any(PluginInfo), {});
         });
@@ -208,96 +208,96 @@ describe('config-changes module', function() {
                 beforeEach(function() {
                     shell.cp('-rf', android_two_project, temp);
                 });
-                it('should call graftXML for every new config munge it introduces (every leaf in config munge that does not exist)', function() {
+                it('Test 015 : should call graftXML for every new config munge it introduces (every leaf in config munge that does not exist)', function() {
                     var platformJson = PlatformJson.load(plugins_dir, 'android');
                     platformJson.root.prepare_queue.installed = [{'plugin':'org.test.plugins.dummyplugin', 'vars':{}}];
 
-                    var spy = spyOn(xml_helpers, 'graftXML').andReturn(true);
+                    var spy = spyOn(xml_helpers, 'graftXML').and.returnValue(true);
 
                     var munger = new configChanges.PlatformMunger('android', temp, platformJson, pluginInfoProvider);
                     munger.process(plugins_dir);
-                    expect(spy.calls.length).toEqual(4);
-                    expect(spy.argsForCall[0][2]).toEqual('/*');
-                    expect(spy.argsForCall[1][2]).toEqual('/*');
-                    expect(spy.argsForCall[2][2]).toEqual('/manifest/application');
-                    expect(spy.argsForCall[3][2]).toEqual('/cordova/plugins');
+                    expect(spy.calls.count()).toEqual(4);
+                    expect(spy.calls.argsFor(0)[2]).toEqual('/*');
+                    expect(spy.calls.argsFor(1)[2]).toEqual('/*');
+                    expect(spy.calls.argsFor(2)[2]).toEqual('/manifest/application');
+                    expect(spy.calls.argsFor(3)[2]).toEqual('/cordova/plugins');
                 });
-                it('should not call graftXML for a config munge that already exists from another plugin', function() {
+                it('Test 016 : should not call graftXML for a config munge that already exists from another plugin', function() {
                     shell.cp('-rf', configplugin, plugins_dir);
                     var platformJson = PlatformJson.load(plugins_dir, 'android');
                     platformJson.addInstalledPluginToPrepareQueue('org.test.configtest', {});
 
-                    var spy = spyOn(xml_helpers, 'graftXML').andReturn(true);
+                    var spy = spyOn(xml_helpers, 'graftXML').and.returnValue(true);
                     var munger = new configChanges.PlatformMunger('android', temp, platformJson, pluginInfoProvider);
                     munger.process(plugins_dir);
-                    expect(spy.calls.length).toEqual(1);
+                    expect(spy.calls.count()).toEqual(1);
                 });
-                it('should not call graftXML for a config munge targeting a config file that does not exist', function() {
+                it('Test 017 : should not call graftXML for a config munge targeting a config file that does not exist', function() {
                     var platformJson = PlatformJson.load(plugins_dir, 'android');
                     platformJson.addInstalledPluginToPrepareQueue('org.test.plugins.dummyplugin', {});
 
-                    var spy = spyOn(fs, 'readFileSync').andCallThrough();
+                    var spy = spyOn(fs, 'readFileSync').and.callThrough();
 
                     var munger = new configChanges.PlatformMunger('android', temp, platformJson, pluginInfoProvider);
                     munger.process(plugins_dir);
                     expect(spy).not.toHaveBeenCalledWith(path.join(temp, 'res', 'xml', 'plugins.xml'), 'utf-8');
                 });
-                it('should call graftXMLMerge for every new config munge with mode \'merge\' it introduces', function() {
+                it('Test 018 : should call graftXMLMerge for every new config munge with mode \'merge\' it introduces', function() {
                     shell.cp('-rf', editconfigplugin, plugins_dir);
                     var platformJson = PlatformJson.load(plugins_dir, 'android');
                     platformJson.addInstalledPluginToPrepareQueue('org.test.editconfigtest', {});
 
-                    var spy = spyOn(xml_helpers, 'graftXMLMerge').andReturn(true);
+                    var spy = spyOn(xml_helpers, 'graftXMLMerge').and.returnValue(true);
 
                     var munger = new configChanges.PlatformMunger('android', temp, platformJson, pluginInfoProvider);
                     munger.process(plugins_dir);
-                    expect(spy.calls.length).toEqual(1);
-                    expect(spy.argsForCall[0][2]).toEqual('/manifest/application/activity[@android:name=\'org.test.DroidGap\']');
+                    expect(spy.calls.count()).toEqual(1);
+                    expect(spy.calls.argsFor(0)[2]).toEqual('/manifest/application/activity[@android:name=\'org.test.DroidGap\']');
                 });
-                it('should call graftXMLMerge with --force for every new config munge with mode \'merge\' it introduces', function() {
+                it('Test 019 : should call graftXMLMerge with --force for every new config munge with mode \'merge\' it introduces', function() {
                     shell.cp('-rf', editconfigplugin, plugins_dir);
                     shell.cp('-rf', editconfigplugin_two, plugins_dir);
                     var platformJson = PlatformJson.load(plugins_dir, 'android');
                     platformJson.addInstalledPluginToPrepareQueue('org.test.editconfigtest', {});
                     platformJson.addInstalledPluginToPrepareQueue('org.test.editconfigtest_two', {}, true, true);
 
-                    var spy = spyOn(xml_helpers, 'graftXMLMerge').andReturn(true);
+                    var spy = spyOn(xml_helpers, 'graftXMLMerge').and.returnValue(true);
 
                     var munger = new configChanges.PlatformMunger('android', temp, platformJson, pluginInfoProvider);
                     munger.process(plugins_dir);
-                    expect(spy.calls.length).toEqual(3);
-                    expect(spy.argsForCall[0][2]).toEqual('/manifest/application/activity[@android:name=\'org.test.DroidGap\']');
-                    expect(spy.argsForCall[1][2]).toEqual('/manifest/application/activity[@android:name=\'org.test.DroidGap\']');
-                    expect(spy.argsForCall[2][2]).toEqual('/manifest/uses-sdk');
+                    expect(spy.calls.count()).toEqual(3);
+                    expect(spy.calls.argsFor(0)[2]).toEqual('/manifest/application/activity[@android:name=\'org.test.DroidGap\']');
+                    expect(spy.calls.argsFor(1)[2]).toEqual('/manifest/application/activity[@android:name=\'org.test.DroidGap\']');
+                    expect(spy.calls.argsFor(2)[2]).toEqual('/manifest/uses-sdk');
                 });
-                it('should call graftXMLOverwrite for every new config munge with mode \'overwrite\' it introduces', function() {
+                it('Test 020 : should call graftXMLOverwrite for every new config munge with mode \'overwrite\' it introduces', function() {
                     shell.cp('-rf', editconfigplugin, plugins_dir);
                     var platformJson = PlatformJson.load(plugins_dir, 'android');
                     platformJson.addInstalledPluginToPrepareQueue('org.test.editconfigtest', {});
 
-                    var spy = spyOn(xml_helpers, 'graftXMLOverwrite').andReturn(true);
+                    var spy = spyOn(xml_helpers, 'graftXMLOverwrite').and.returnValue(true);
 
                     var munger = new configChanges.PlatformMunger('android', temp, platformJson, pluginInfoProvider);
                     munger.process(plugins_dir);
-                    expect(spy.calls.length).toEqual(1);
-                    expect(spy.argsForCall[0][2]).toEqual('/manifest/application/activity');
+                    expect(spy.calls.count()).toEqual(1);
+                    expect(spy.calls.argsFor(0)[2]).toEqual('/manifest/application/activity');
                 });
-                it('should call graftXMLOverwrite with --force for every new config munge with mode \'overwrite\' it introduces', function() {
+                it('Test 021 : should call graftXMLOverwrite with --force for every new config munge with mode \'overwrite\' it introduces', function() {
                     shell.cp('-rf', editconfigplugin, plugins_dir);
                     shell.cp('-rf', editconfigplugin_two, plugins_dir);
                     var platformJson = PlatformJson.load(plugins_dir, 'android');
                     platformJson.addInstalledPluginToPrepareQueue('org.test.editconfigtest', {});
                     platformJson.addInstalledPluginToPrepareQueue('org.test.editconfigtest_two', {}, true, true);
 
-                    var spy = spyOn(xml_helpers, 'graftXMLOverwrite').andReturn(true);
+                    var spy = spyOn(xml_helpers, 'graftXMLOverwrite').and.returnValue(true);
 
                     var munger = new configChanges.PlatformMunger('android', temp, platformJson, pluginInfoProvider);
                     munger.process(plugins_dir);
-                    expect(spy.calls.length).toEqual(2);
-                    expect(spy.argsForCall[0][2]).toEqual('/manifest/application/activity');
-                    expect(spy.argsForCall[1][2]).toEqual('/manifest/application/activity[@android:name=\'ChildApp\']');
+                    expect(spy.calls.count()).toEqual(2);
+                    expect(spy.calls.argsFor(0)[2]).toEqual('/manifest/application/activity');
+                    expect(spy.calls.argsFor(1)[2]).toEqual('/manifest/application/activity[@android:name=\'ChildApp\']');
                 });
-                it('should not install plugin when there are edit-config conflicts', function() {
+                it('Test 022 : should not install plugin when there are edit-config conflicts', function() {
                     shell.cp('-rf', editconfigplugin, plugins_dir);
                     shell.cp('-rf', editconfigplugin_two, plugins_dir);
                     var platformJson = PlatformJson.load(plugins_dir, 'android');
@@ -309,7 +309,7 @@ describe('config-changes module', function() {
                 });
             });
             describe('of plist config files', function() {
-                it('should write empty string nodes with no whitespace', function() {
+                it('Test 023 : should write empty string nodes with no whitespace', function() {
                     shell.cp('-rf', ios_config_xml, temp);
                     shell.cp('-rf', varplugin, plugins_dir);
                     var platformJson = PlatformJson.load(plugins_dir, 'ios');
@@ -317,7 +317,7 @@ describe('config-changes module', function() {
                     configChanges.process(plugins_dir, temp, 'ios', platformJson, pluginInfoProvider);
                     expect(fs.readFileSync(path.join(temp, 'SampleApp', 'SampleApp-Info.plist'), 'utf-8')).toMatch(/<key>APluginNode<\/key>\n    <string\/>/m);
                 });
-                it('should merge dictionaries and arrays, removing duplicates', function() {
+                it('Test 024 : should merge dictionaries and arrays, removing duplicates', function() {
                     shell.cp('-rf', ios_config_xml, temp);
                     shell.cp('-rf', plistplugin, plugins_dir);
                     var platformJson = PlatformJson.load(plugins_dir, 'ios');
@@ -328,18 +328,18 @@ describe('config-changes module', function() {
                     expect(fs.readFileSync(path.join(temp, 'SampleApp', 'SampleApp-Info.plist'), 'utf-8')).not.toMatch(/(<string>schema-a<\/string>[^]*){2,}/);
                 });
             });
-            it('should resolve wildcard config-file targets to the project, if applicable', function() {
+            it('Test 025 : should resolve wildcard config-file targets to the project, if applicable', function() {
                 shell.cp('-rf', ios_config_xml, temp);
                 shell.cp('-rf', cbplugin, plugins_dir);
                 var platformJson = PlatformJson.load(plugins_dir, 'ios');
                 platformJson.addInstalledPluginToPrepareQueue('org.test.plugins.childbrowser', {});
-                var spy = spyOn(fs, 'readFileSync').andCallThrough();
+                var spy = spyOn(fs, 'readFileSync').and.callThrough();
 
                 var munger = new configChanges.PlatformMunger('ios', temp, platformJson, pluginInfoProvider);
                 munger.process(plugins_dir);
                 expect(spy).toHaveBeenCalledWith(path.join(temp, 'SampleApp', 'SampleApp-Info.plist').replace(/\\/g, '/'), 'utf8');
             });
-            it('should move successfully installed plugins from queue to installed plugins section, and include/retain vars if applicable', function() {
+            it('Test 026 : should move successfully installed plugins from queue to installed plugins section, and include/retain vars if applicable', function() {
                 shell.cp('-rf', android_two_project, temp);
                 shell.cp('-rf', varplugin, plugins_dir);
                 var platformJson = PlatformJson.load(plugins_dir, 'android');
@@ -355,7 +355,7 @@ describe('config-changes module', function() {
         });
 
         describe(': uninstallation', function() {
-            it('should call pruneXML for every config munge it completely removes from the app (every leaf that is decremented to 0)', function() {
+            it('Test 027 : should call pruneXML for every config munge it completely removes from the app (every leaf that is decremented to 0)', function() {
                 shell.cp('-rf', android_two_project, temp);
 
                 // Run through an "install"
@@ -366,15 +366,15 @@ describe('config-changes module', function() {
 
                 // Now set up an uninstall and make sure prunexml is called properly
                 platformJson.addUninstalledPluginToPrepareQueue('org.test.plugins.dummyplugin');
-                var spy = spyOn(xml_helpers, 'pruneXML').andReturn(true);
+                var spy = spyOn(xml_helpers, 'pruneXML').and.returnValue(true);
                 munger.process(plugins_dir);
-                expect(spy.calls.length).toEqual(4);
-                expect(spy.argsForCall[0][2]).toEqual('/*');
-                expect(spy.argsForCall[1][2]).toEqual('/*');
-                expect(spy.argsForCall[2][2]).toEqual('/manifest/application');
-                expect(spy.argsForCall[3][2]).toEqual('/cordova/plugins');
+                expect(spy.calls.count()).toEqual(4);
+                expect(spy.calls.argsFor(0)[2]).toEqual('/*');
+                expect(spy.calls.argsFor(1)[2]).toEqual('/*');
+                expect(spy.calls.argsFor(2)[2]).toEqual('/manifest/application');
+                expect(spy.calls.argsFor(3)[2]).toEqual('/cordova/plugins');
             });
-            it('should generate a config munge that interpolates variables into config changes, if applicable', function() {
+            it('Test 028 : should generate a config munge that interpolates variables into config changes, if applicable', function() {
                 shell.cp('-rf', android_two_project, temp);
                 shell.cp('-rf', varplugin, plugins_dir);
                 // Run through an "install"
@@ -385,14 +385,14 @@ describe('config-changes module', function() {
 
                 // Now set up an uninstall and make sure prunexml is called properly
                 platformJson.addUninstalledPluginToPrepareQueue('com.adobe.vars');
-                var spy = spyOn(munger, 'generate_plugin_config_munge').andReturn({});
+                var spy = spyOn(munger, 'generate_plugin_config_munge').and.returnValue({});
                 munger.process(plugins_dir);
-                var munge_params = spy.mostRecentCall.args;
+                var munge_params = spy.calls.argsFor(0);
                 expect(munge_params[0]).toEqual(jasmine.any(PluginInfo));
                 expect(munge_params[0].dir).toEqual(path.join(plugins_dir, 'com.adobe.vars'));
                 expect(munge_params[1]['API_KEY']).toEqual('canucks');
             });
-            it('should not call pruneXML for a config munge that another plugin depends on', function() {
+            it('Test 029 : should not call pruneXML for a config munge that another plugin depends on', function() {
                 shell.cp('-rf', android_two_no_perms_project, temp);
                 shell.cp('-rf', childrenplugin, plugins_dir);
                 shell.cp('-rf', shareddepsplugin, plugins_dir);
@@ -413,7 +413,7 @@ describe('config-changes module', function() {
                 expect(permission).toBeDefined();
                 expect(permission.attrib['android:name']).toEqual('android.permission.INTERNET');
             });
-            it('should not call pruneXML for a config munge targeting a config file that does not exist', function() {
+            it('Test 030 : should not call pruneXML for a config munge targeting a config file that does not exist', function() {
                 shell.cp('-rf', android_two_project, temp);
                 // install a plugin
                 var platformJson = PlatformJson.load(plugins_dir, 'android');
@@ -424,12 +424,12 @@ describe('config-changes module', function() {
                 // set up an uninstall for the same plugin
                 platformJson.addUninstalledPluginToPrepareQueue('org.test.plugins.dummyplugin');
 
-                var spy = spyOn(fs, 'readFileSync').andCallThrough();
+                var spy = spyOn(fs, 'readFileSync').and.callThrough();
                 munger.process(plugins_dir);
 
                 expect(spy).not.toHaveBeenCalledWith(path.join(temp, 'res', 'xml', 'plugins.xml'), 'utf-8');
             });
-            it('should remove uninstalled plugins from installed plugins list', function() {
+            it('Test 031 : should remove uninstalled plugins from installed plugins list', function() {
                 shell.cp('-rf', android_two_project, temp);
                 shell.cp('-rf', varplugin, plugins_dir);
                 // install the var plugin
@@ -445,7 +445,7 @@ describe('config-changes module', function() {
                 expect(platformJson.root.prepare_queue.uninstalled.length).toEqual(0);
                 expect(platformJson.root.installed_plugins['com.adobe.vars']).not.toBeDefined();
             });
-            it('should call pruneXMLRestore for every config munge with mode \'merge\' or \'overwrite\' it removes from the app', function() {
+            it('Test 032 : should call pruneXMLRestore for every config munge with mode \'merge\' or \'overwrite\' it removes from the app', function() {
                 shell.cp('-rf', android_two_project, temp);
                 shell.cp('-rf', editconfigplugin, plugins_dir);
 
@@ -457,12 +457,12 @@ describe('config-changes module', function() {
 
                 // Now set up an uninstall and make sure pruneXMLMerge is called properly
                 platformJson.addUninstalledPluginToPrepareQueue('org.test.editconfigtest');
-                var spy = spyOn(xml_helpers, 'pruneXMLRestore').andReturn(true);
+                var spy = spyOn(xml_helpers, 'pruneXMLRestore').and.returnValue(true);
                 munger.process(plugins_dir);
 
-                expect(spy.calls.length).toEqual(2);
-                expect(spy.argsForCall[0][1]).toEqual('/manifest/application/activity[@android:name=\'org.test.DroidGap\']');
-                expect(spy.argsForCall[1][1]).toEqual('/manifest/application/activity');
+                expect(spy.calls.count()).toEqual(2);
+                expect(spy.calls.argsFor(0)[1]).toEqual('/manifest/application/activity[@android:name=\'org.test.DroidGap\']');
+                expect(spy.calls.argsFor(1)[1]).toEqual('/manifest/application/activity');
             });
         });
     });

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-common/spec/ConfigParser/ConfigParser.spec.js
----------------------------------------------------------------------
diff --git a/cordova-common/spec/ConfigParser/ConfigParser.spec.js b/cordova-common/spec/ConfigParser/ConfigParser.spec.js
index 22fbc99..240db17 100644
--- a/cordova-common/spec/ConfigParser/ConfigParser.spec.js
+++ b/cordova-common/spec/ConfigParser/ConfigParser.spec.js
@@ -25,10 +25,10 @@ var path = require('path'),
 describe('config.xml parser', function () {
     var readFile;
     beforeEach(function() {
-        readFile = spyOn(fs, 'readFileSync').andReturn(xml_contents);
+        readFile = spyOn(fs, 'readFileSync').and.returnValue(xml_contents);
     });
 
-    it('should create an instance based on an xml file', function() {
+    it('Test 001 : should create an instance based on an xml file', function() {
         var cfg;
         expect(function () {
             cfg = new ConfigParser(xml);
@@ -44,78 +44,78 @@ describe('config.xml parser', function () {
         });
 
         describe('package name / id', function() {
-            it('should get the (default) packagename', function() {
+            it('Test 002 : should get the (default) packagename', function() {
                 expect(cfg.packageName()).toEqual('io.cordova.hellocordova');
             });
-            it('should allow setting the packagename', function() {
+            it('Test 003 : should allow setting the packagename', function() {
                 cfg.setPackageName('this.is.bat.country');
                 expect(cfg.packageName()).toEqual('this.is.bat.country');
             });
         });
 
         describe('package name / android-packageName', function() {
-            it('should get the android packagename', function() {
+            it('Test 004 : should get the android packagename', function() {
                 expect(cfg.android_packageName()).toEqual('io.cordova.hellocordova.android');
             });
         });
 
         describe('package name / ios-CFBundleIdentifier', function() {
-            it('should get the ios packagename', function() {
+            it('Test 005 : should get the ios packagename', function() {
                 expect(cfg.ios_CFBundleIdentifier()).toEqual('io.cordova.hellocordova.ios');
             });
         });
 
         describe('version', function() {
-            it('should get the version', function() {
+            it('Test 006 : should get the version', function() {
                 expect(cfg.version()).toEqual('0.0.1');
             });
-            it('should allow setting the version', function() {
+            it('Test 007 : should allow setting the version', function() {
                 cfg.setVersion('2.0.1');
                 expect(cfg.version()).toEqual('2.0.1');
             });
         });
 
         describe('app name', function() {
-            it('should get the (default) app name', function() {
+            it('Test 008 : should get the (default) app name', function() {
                 expect(cfg.name()).toEqual('Hello Cordova');
             });
-            it('should allow setting the app name', function() {
+            it('Test 009 : should allow setting the app name', function() {
                 cfg.setName('this.is.bat.country');
                 expect(cfg.name()).toEqual('this.is.bat.country');
             });
         });
         describe('preference', function() {
-            it('should return the value of a global preference', function() {
+            it('Test 010 : should return the value of a global preference', function() {
                 expect(cfg.getPreference('fullscreen')).toEqual('true');
             });
-            it('should return the value of a platform-specific preference', function() {
+            it('Test 011 : should return the value of a platform-specific preference', function() {
                 expect(cfg.getPreference('android-minSdkVersion', 'android')).toEqual('10');
             });
-            it('should return an empty string for a non-existing preference', function() {
+            it('Test 012 : should return an empty string for a non-existing preference', function() {
                 expect(cfg.getPreference('zimzooo!')).toEqual('');
             });
         });
         describe('global preference', function() {
-            it('should return the value of a global preference', function() {
+            it('Test 013 : should return the value of a global preference', function() {
                 expect(cfg.getGlobalPreference('orientation')).toEqual('portrait');
             });
-            it('should return an empty string for a non-existing preference', function() {
+            it('Test 014 : should return an empty string for a non-existing preference', function() {
                 expect(cfg.getGlobalPreference('foobar')).toEqual('');
             });
         });
         describe('platform-specific preference', function() {
-            it('should return the value of a platform specific preference', function() {
+            it('Test 015 : should return the value of a platform specific preference', function() {
                 expect(cfg.getPlatformPreference('orientation', 'android')).toEqual('landscape');
             });
-            it('should return an empty string when querying for a non-existing preference', function() {
+            it('Test 016 : should return an empty string when querying for a non-existing preference', function() {
                 expect(cfg.getPlatformPreference('foobar', 'android')).toEqual('');
             });
-            it('should return an empty string when querying with unsupported platform', function() {
+            it('Test 017 : should return an empty string when querying with unsupported platform', function() {
                 expect(cfg.getPlatformPreference('orientation', 'foobar')).toEqual('');
             });
         });
         describe('plugin',function(){
-            it('should read plugin id list', function() {
+            it('Test 018 : should read plugin id list', function() {
                var expectedList = [
                    'org.apache.cordova.pluginwithvars',
                    'org.apache.cordova.pluginwithurl',
@@ -132,35 +132,35 @@ describe('config.xml parser', function () {
                    expect(list).toContain(plugin);
                });
             });
-            it('should read plugin given id', function(){
+            it('Test 019 : should read plugin given id', function(){
                 var plugin = cfg.getPlugin('org.apache.cordova.justaplugin');
                 expect(plugin).toBeDefined();
                 expect(plugin.name).toEqual('org.apache.cordova.justaplugin');
                 expect(plugin.variables).toBeDefined();
             });
-            it('should not read plugin given undefined id', function(){
+            it('Test 020 : should not read plugin given undefined id', function(){
                 var plugin = cfg.getPlugin('org.apache.cordova.undefinedplugin');
                 expect(plugin).not.toBeDefined();
             });
-            it('should read plugin with src and store it in spec field', function(){
+            it('Test 021 : should read plugin with src and store it in spec field', function(){
                 var plugin = cfg.getPlugin('org.apache.cordova.pluginwithurl');
                 expect(plugin.spec).toEqual('http://cordova.apache.org/pluginwithurl');
             });
-            it('should read plugin with version and store it in spec field', function(){
+            it('Test 022 : should read plugin with version and store it in spec field', function(){
                 var plugin = cfg.getPlugin('org.apache.cordova.pluginwithversion');
                 expect(plugin.spec).toEqual('1.1.1');
             });
-            it('should read plugin with source and version and store source in spec field', function(){
+            it('Test 023 : should read plugin with source and version and store source in spec field', function(){
                 var plugin = cfg.getPlugin('org.apache.cordova.pluginwithurlandversion');
                 expect(plugin.spec).toEqual('http://cordova.apache.org/pluginwithurlandversion');
             });
-            it('should read plugin variables', function () {
+            it('Test 024 : should read plugin variables', function () {
                 var plugin = cfg.getPlugin('org.apache.cordova.pluginwithvars');
                 expect(plugin.variables).toBeDefined();
                 expect(plugin.variables.var).toBeDefined();
                 expect(plugin.variables.var).toEqual('varvalue');
             });
-            it('should allow adding a new plugin', function(){
+            it('Test 025 : should allow adding a new plugin', function(){
                 cfg.addPlugin({name:'myplugin'});
                 var plugins = cfg.doc.findall('plugin');
                 var pluginNames = plugins.map(function(plugin){
@@ -168,7 +168,7 @@ describe('config.xml parser', function () {
                 });
                 expect(pluginNames).toContain('myplugin');
             });
-            it('should allow adding features with params', function(){
+            it('Test 026 : should allow adding features with params', function(){
                 cfg.addPlugin({name:'aplugin'}, [{name:'paraname',value:'paravalue'}]);
                 // Additional check for new parameters syntax
                 cfg.addPlugin({name:'bplugin'}, {paraname: 'paravalue'});
@@ -183,7 +183,7 @@ describe('config.xml parser', function () {
                     expect(variables[0].attrib.value).toEqual('paravalue');
                 });
             });
-            it('should be able to read legacy feature entries with a version', function(){
+            it('Test 027 : should be able to read legacy feature entries with a version', function(){
                 var plugin = cfg.getPlugin('org.apache.cordova.legacyfeatureversion');
                 expect(plugin).toBeDefined();
                 expect(plugin.name).toEqual('org.apache.cordova.legacyfeatureversion');
@@ -191,19 +191,19 @@ describe('config.xml parser', function () {
                 expect(plugin.variables).toBeDefined();
                 expect(plugin.variables.aVar).toEqual('aValue');
             });
-            it('should be able to read legacy feature entries with a url', function(){
+            it('Test 028 : should be able to read legacy feature entries with a url', function(){
                 var plugin = cfg.getPlugin('org.apache.cordova.legacyfeatureurl');
                 expect(plugin).toBeDefined();
                 expect(plugin.name).toEqual('org.apache.cordova.legacyfeatureurl');
                 expect(plugin.spec).toEqual('http://cordova.apache.org/legacyfeatureurl');
             });
-            it('should be able to read legacy feature entries with a version and a url', function(){
+            it('Test 029 : should be able to read legacy feature entries with a version and a url', function(){
                 var plugin = cfg.getPlugin('org.apache.cordova.legacyfeatureversionandurl');
                 expect(plugin).toBeDefined();
                 expect(plugin.name).toEqual('org.apache.cordova.legacyfeatureversionandurl');
                 expect(plugin.spec).toEqual('http://cordova.apache.org/legacyfeatureversionandurl');
             });
-            it('it should remove given plugin', function(){
+            it('Test 030 : it should remove given plugin', function(){
                 cfg.removePlugin('org.apache.cordova.justaplugin');
                 var plugins = cfg.doc.findall('plugin');
                 var pluginNames = plugins.map(function(plugin){
@@ -211,7 +211,7 @@ describe('config.xml parser', function () {
                 });
                 expect(pluginNames).not.toContain('org.apache.cordova.justaplugin');
             });
-            it('it should remove given legacy feature id', function(){
+            it('Test 031 : it should remove given legacy feature id', function(){
                 cfg.removePlugin('org.apache.cordova.legacyplugin');
                 var plugins = cfg.doc.findall('feature');
                 var pluginNames = plugins.map(function(plugin){
@@ -219,15 +219,15 @@ describe('config.xml parser', function () {
                 });
                 expect(pluginNames).not.toContain('org.apache.cordova.legacyplugin');
             });
-            it('it should read <access> tag entries', function(){
+            it('Test 032 : it should read <access> tag entries', function(){
                 var accesses = cfg.getAccesses();
                 expect(accesses.length).not.toEqual(0);
             });
-            it('it should read <allow-navigation> tag entries', function(){
+            it('Test 033 : it should read <allow-navigation> tag entries', function(){
                 var navigations = cfg.getAllowNavigations();
                 expect(navigations.length).not.toEqual(0);
             });
-            it('it should read <allow-intent> tag entries', function(){
+            it('Test 034 : it should read <allow-intent> tag entries', function(){
                 var intents = cfg.getAllowIntents();
                 expect(intents.length).not.toEqual(0);
             });
@@ -239,35 +239,35 @@ describe('config.xml parser', function () {
             var hasDensityPropertyDefined = function (e) { return !!e.density; };
             var hasPlatformPropertyUndefined = function (e) { return !e.platform; };
 
-            it('should fetch shared resources if platform parameter is not specified', function() {
+            it('Test 035 : should fetch shared resources if platform parameter is not specified', function() {
                 expect(cfg.getStaticResources(null, 'icon').length).toBe(2);
                 expect(cfg.getStaticResources(null, 'icon').every(hasPlatformPropertyUndefined)).toBeTruthy();
             });
 
-            it('should fetch platform-specific resources along with shared if platform parameter is specified', function() {
+            it('Test 036 : should fetch platform-specific resources along with shared if platform parameter is specified', function() {
                 expect(cfg.getStaticResources('android', 'icon').length).toBe(5);
                 expect(cfg.getStaticResources('android', 'icon').some(hasPlatformPropertyDefined)).toBeTruthy();
                 expect(cfg.getStaticResources('android', 'icon').filter(hasPlatformPropertyDefined).length).toBe(3);
                 expect(cfg.getStaticResources('android', 'icon').some(hasPlatformPropertyUndefined)).toBeTruthy();
             });
 
-            it('should parse resources\' attributes', function() {
+            it('Test 037 : should parse resources\' attributes', function() {
                 expect(cfg.getStaticResources(null, 'icon').every(hasSrcPropertyDefined)).toBeTruthy();
                 expect(cfg.getStaticResources('windows', 'icon').filter(hasPlatformPropertyDefined).every(hasTargetPropertyDefined)).toBeTruthy();
                 expect(cfg.getStaticResources('android', 'icon').filter(hasPlatformPropertyDefined).every(hasDensityPropertyDefined)).toBeTruthy();
                 expect(cfg.getStaticResources('android', 'icon').filter(hasPlatformPropertyDefined).every(hasDensityPropertyDefined)).toBeTruthy();
             });
 
-            it('should have defaultResource property', function() {
+            it('Test 038 : should have defaultResource property', function() {
                 expect(cfg.getStaticResources(null, 'icon').defaultResource).toBeDefined();
                 expect(cfg.getStaticResources(null, 'icon').defaultResource.src).toBe('icon.png');
             });
 
-            it('should have getDefault method returning defaultResource property', function() {
+            it('Test 039 : should have getDefault method returning defaultResource property', function() {
                 expect(cfg.getStaticResources(null, 'icon').defaultResource).toEqual(cfg.getStaticResources(null, 'icon').getDefault());
             });
 
-            it('should have getBySize method returning resource with size specified or null', function() {
+            it('Test 040 : should have getBySize method returning resource with size specified or null', function() {
                 expect(cfg.getStaticResources('windows', 'icon').getBySize(128)).toBe(null);
                 expect(cfg.getStaticResources('windows', 'icon').getBySize(72)).toBeDefined();
                 expect(cfg.getStaticResources('windows', 'icon').getBySize(72).width).toBe(72);
@@ -275,7 +275,7 @@ describe('config.xml parser', function () {
                 expect(cfg.getStaticResources('windows', 'icon').getBySize(null, 48).height).toBe(48);
             });
 
-            it('should have getByDensity method returning resource with density specified or null', function() {
+            it('Test 041 : should have getByDensity method returning resource with density specified or null', function() {
                 expect(cfg.getStaticResources('android', 'icon').getByDensity('hdpi')).toBe(null);
                 expect(cfg.getStaticResources('android', 'icon').getByDensity('mdpi')).toBeDefined();
                 expect(cfg.getStaticResources('android', 'icon').getByDensity('mdpi').src).toBe('logo-android.png');

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-common/spec/CordovaCheck.spec.js
----------------------------------------------------------------------
diff --git a/cordova-common/spec/CordovaCheck.spec.js b/cordova-common/spec/CordovaCheck.spec.js
index c075f7a..abaaa14 100644
--- a/cordova-common/spec/CordovaCheck.spec.js
+++ b/cordova-common/spec/CordovaCheck.spec.js
@@ -33,17 +33,17 @@ describe('findProjectRoot method', function() {
 function removeDir(someDirectory) {
     shell.rm('-rf', someDirectory);
 }
-    it('should return false if it hits the home directory', function() {
+    it('Test 001 : should return false if it hits the home directory', function() {
         var somedir = path.join(home, 'somedir');
         removeDir(somedir);
         shell.mkdir(somedir);
         expect(CordovaCheck.findProjectRoot(somedir)).toEqual(false);
     });
-    it('should return false if it cannot find a .cordova directory up the directory tree', function() {
+    it('Test 002 : should return false if it cannot find a .cordova directory up the directory tree', function() {
         var somedir = path.join(home, '..');
         expect(CordovaCheck.findProjectRoot(somedir)).toEqual(false);
     });
-    it('should return the first directory it finds with a .cordova folder in it', function() {
+    it('Test 003 : should return the first directory it finds with a .cordova folder in it', function() {
         var somedir = path.join(home,'somedir');
         var anotherdir = path.join(somedir, 'anotherdir');
         removeDir(somedir);
@@ -51,7 +51,7 @@ function removeDir(someDirectory) {
         shell.mkdir('-p', path.join(somedir, 'www', 'config.xml'));
         expect(CordovaCheck.findProjectRoot(somedir)).toEqual(somedir);
     });
-    it('should ignore PWD when its undefined', function() {
+    it('Test 004 : should ignore PWD when its undefined', function() {
         delete process.env.PWD;
         var somedir = path.join(home,'somedir');
         var anotherdir = path.join(somedir, 'anotherdir');
@@ -62,7 +62,7 @@ function removeDir(someDirectory) {
         process.chdir(anotherdir);
         expect(CordovaCheck.findProjectRoot()).toEqual(somedir);
     });
-    it('should use PWD when available', function() {
+    it('Test 005 : should use PWD when available', function() {
         var somedir = path.join(home,'somedir');
         var anotherdir = path.join(somedir, 'anotherdir');
         removeDir(somedir);
@@ -72,7 +72,7 @@ function removeDir(someDirectory) {
         process.chdir(path.sep);
         expect(CordovaCheck.findProjectRoot()).toEqual(somedir);
     });
-    it('should use cwd as a fallback when PWD is not a cordova dir', function() {
+    it('Test 006 : should use cwd as a fallback when PWD is not a cordova dir', function() {
         var somedir = path.join(home,'somedir');
         var anotherdir = path.join(somedir, 'anotherdir');
         removeDir(somedir);
@@ -82,7 +82,7 @@ function removeDir(someDirectory) {
         process.chdir(anotherdir);
         expect(CordovaCheck.findProjectRoot()).toEqual(somedir);
     });
-    it('should ignore platform www/config.xml', function() {
+    it('Test 007 : should ignore platform www/config.xml', function() {
         var somedir = path.join(home,'somedir');
         var anotherdir = path.join(somedir, 'anotherdir');
         removeDir(somedir);

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-common/spec/CordovaLogger.spec.js
----------------------------------------------------------------------
diff --git a/cordova-common/spec/CordovaLogger.spec.js b/cordova-common/spec/CordovaLogger.spec.js
index 035d717..fb46e73 100644
--- a/cordova-common/spec/CordovaLogger.spec.js
+++ b/cordova-common/spec/CordovaLogger.spec.js
@@ -24,11 +24,11 @@ var EventEmitter = require('events').EventEmitter;
 var DEFAULT_LEVELS = ['verbose', 'normal', 'warn', 'info', 'error', 'results'];
 
 describe('CordovaLogger class', function() {
-    it('should be constructable', function () {
+    it('Test 001 : should be constructable', function () {
         expect(new CordovaLogger()).toEqual(jasmine.any(CordovaLogger));
     });
 
-    it('should expose default levels as constants', function () {
+    it('Test 002 : should expose default levels as constants', function () {
         DEFAULT_LEVELS.forEach(function (level) {
             var constant = level.toUpperCase();
             expect(CordovaLogger[constant]).toBeDefined();
@@ -36,7 +36,7 @@ describe('CordovaLogger class', function() {
         });
     });
 
-    it('should return the same instance via "get" method', function () {
+    it('Test 003 : should return the same instance via "get" method', function () {
         expect(CordovaLogger.get()).toBeDefined();
         expect(CordovaLogger.get()).toBe(CordovaLogger.get());
         expect(CordovaLogger.get()).toEqual(jasmine.any(CordovaLogger));
@@ -50,7 +50,7 @@ describe('CordovaLogger class', function() {
             logger = new CordovaLogger();
         });
 
-        it('should have defaults levels', function () {
+        it('Test 004 : should have defaults levels', function () {
             DEFAULT_LEVELS.forEach(function (level) {
                 expect(logger.levels[level]).toBeDefined();
                 expect(logger.levels[level]).toEqual(jasmine.any(Number));
@@ -61,7 +61,7 @@ describe('CordovaLogger class', function() {
         });
 
         describe('addLevel method', function () {
-            it('should add a new level and a corresponding shortcut method', function () {
+            it('Test 005 : should add a new level and a corresponding shortcut method', function () {
                 spyOn(logger, 'log');
                 logger.addLevel('debug', 100000, 'grey');
                 expect(logger.levels.debug).toBe(100000);
@@ -71,7 +71,7 @@ describe('CordovaLogger class', function() {
                 expect(logger.log).toHaveBeenCalledWith('debug', 'debug message');
             });
 
-            it('should not add a shortcut method fi the property with the same name already exists', function () {
+            it('Test 006 : should not add a shortcut method fi the property with the same name already exists', function () {
                 var logMethod = logger.log;
                 logger.addLevel('log', 500);
                 expect(logger.log).toBe(logMethod); // "log" method remains unchanged
@@ -79,19 +79,19 @@ describe('CordovaLogger class', function() {
         });
 
         describe('setLevel method', function () {
-            it('should set logger\'s level to \'NORMAL\' if provided level does not exist', function () {
+            it('Test 007 : should set logger\'s level to \'NORMAL\' if provided level does not exist', function () {
                 logger.setLevel('debug');
                 expect(logger.logLevel).toBe(CordovaLogger.NORMAL); // default value
             });
         });
 
         describe('subscribe method', function () {
-            it('should throw if called without EventEmitter instance', function () {
+            it('Test 008 : should throw if called without EventEmitter instance', function () {
                 expect(function () { logger.subscribe(); }).toThrow();
                 expect(function () { logger.subscribe(123); }).toThrow();
             });
 
-            it('should attach corresponding listeners to supplied emitter', function () {
+            it('Test 009 : should attach corresponding listeners to supplied emitter', function () {
 
                 var eventNamesExclusions = {
                     log: 'normal',
@@ -128,41 +128,41 @@ describe('CordovaLogger class', function() {
                 logger.stderrCursor = new CursorSpy('stderrCursor');
             });
 
-            it('should ignore message if severity is less than logger\'s level', function () {
+            it('Test 010 : should ignore message if severity is less than logger\'s level', function () {
                 logger.setLevel('error').log('verbose', 'some_messgge');
                 expect(logger.stdoutCursor.write).not.toHaveBeenCalled();
                 expect(logger.stderrCursor.write).not.toHaveBeenCalled();
             });
 
-            it('should log everything except error messages to stdout', function () {
+            it('Test 011 : should log everything except error messages to stdout', function () {
                 logger.setLevel('verbose');
                 DEFAULT_LEVELS.forEach(function (level) {
                     logger.log(level, 'message');
                 });
 
                 // Multiply calls number to 2 because 'write' method is get called twice (with message and EOL)
-                expect(logger.stdoutCursor.write.calls.length).toBe((DEFAULT_LEVELS.length - 1) * 2);
-                expect(logger.stderrCursor.write.calls.length).toBe(1 * 2);
+                expect(logger.stdoutCursor.write.calls.count()).toBe((DEFAULT_LEVELS.length - 1) * 2);
+                expect(logger.stderrCursor.write.calls.count()).toBe(1 * 2);
             });
 
-            it('should log Error objects to stderr despite of loglevel', function () {
+            it('Test 012 : should log Error objects to stderr despite of loglevel', function () {
                 logger.setLevel('verbose').log('verbose', new Error());
                 expect(logger.stdoutCursor.write).not.toHaveBeenCalled();
                 expect(logger.stderrCursor.write).toHaveBeenCalled();
             });
 
-            it('should handle CordovaError instances separately from Error ones', function () {
+            it('Test 013 : should handle CordovaError instances separately from Error ones', function () {
                 var errorMock = new CordovaError();
                 spyOn(errorMock, 'toString').and.returnValue('error_message');
 
                 logger.setLevel('verbose').log('verbose', errorMock);
                 expect(errorMock.toString).toHaveBeenCalled();
-                expect(logger.stderrCursor.write.calls[0].args[0]).toBe('Error: error_message');
+                expect(logger.stderrCursor.write.calls.argsFor(0)).toMatch('Error: error_message');
             });
         });
 
         describe('adjustLevel method', function () {
-            it('should properly adjust log level', function () {
+            it('Test 014 : should properly adjust log level', function () {
                 var resetLogLevel = function() {
                     logger.setLevel('normal');
                 };

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/b33e222d/cordova-common/spec/FileUpdater.spec.js
----------------------------------------------------------------------
diff --git a/cordova-common/spec/FileUpdater.spec.js b/cordova-common/spec/FileUpdater.spec.js
index 5cdab8c..21659d3 100644
--- a/cordova-common/spec/FileUpdater.spec.js
+++ b/cordova-common/spec/FileUpdater.spec.js
@@ -129,7 +129,7 @@ describe('FileUpdater class', function() {
     });
 
     describe('updatePathWithStats method', function () {
-        it('should do nothing when a directory exists at source and target', function () {
+        it('Test 001 : should do nothing when a directory exists at source and target', function () {
             var updated = FileUpdater.updatePathWithStats(
                 testSourceDir, mockDirStats(), testTargetDir, mockDirStats(),
                 null, nullLogger);
@@ -137,7 +137,7 @@ describe('FileUpdater class', function() {
             expect(mockFs.mkdirPaths.length).toBe(0);
             expect(mockFs.rmPaths.length).toBe(0);
         });
-        it('should create a directory that exists at source and not at target', function () {
+        it('Test 002 : should create a directory that exists at source and not at target', function () {
             var updated = FileUpdater.updatePathWithStats(
                 testSourceDir, mockDirStats(), testTargetDir, null,
                 null, nullLogger);
@@ -146,7 +146,7 @@ describe('FileUpdater class', function() {
             expect(mockFs.rmPaths.length).toBe(0);
             expect(mockFs.mkdirPaths[0]).toBe(testTargetDir);
         });
-        it('should remove a directory that exists at target and not at source', function () {
+        it('Test 003 : should remove a directory that exists at target and not at source', function () {
             var updated = FileUpdater.updatePathWithStats(
                 testSourceDir, null, testTargetDir, mockDirStats(),
                 null, nullLogger);
@@ -156,7 +156,7 @@ describe('FileUpdater class', function() {
             expect(mockFs.rmPaths[0]).toBe(testTargetDir);
         });
 
-        it('should copy when a file exists at source and target and times are the same',
+        it('Test 004 : should copy when a file exists at source and target and times are the same',
                 function () {
             var updated = FileUpdater.updatePathWithStats(
                 testSourceFile, mockFileStats(now), testTargetFile, mockFileStats(now),
@@ -166,7 +166,7 @@ describe('FileUpdater class', function() {
             expect(mockFs.rmPaths.length).toBe(0);
             expect(mockFs.cpPaths[0]).toEqual([testSourceFile, testTargetFile]);
         });
-        it('should copy when a file exists at source and target and target is older',
+        it('Test 005 : should copy when a file exists at source and target and target is older',
                 function () {
             var updated = FileUpdater.updatePathWithStats(
                 testSourceFile, mockFileStats(now), testTargetFile, mockFileStats(oneHourAgo),
@@ -176,7 +176,7 @@ describe('FileUpdater class', function() {
             expect(mockFs.rmPaths.length).toBe(0);
             expect(mockFs.cpPaths[0]).toEqual([testSourceFile, testTargetFile]);
         });
-        it('should do nothing when a file exists at source and target and target is newer',
+        it('Test 006 : should do nothing when a file exists at source and target and target is newer',
                 function () {
             var updated = FileUpdater.updatePathWithStats(
                 testSourceFile, mockFileStats(oneHourAgo), testTargetFile, mockFileStats(now),
@@ -185,7 +185,7 @@ describe('FileUpdater class', function() {
             expect(mockFs.cpPaths.length).toBe(0);
             expect(mockFs.rmPaths.length).toBe(0);
         });
-        it('should copy when a file exists at source and target and forcing update', function () {
+        it('Test 007 : should copy when a file exists at source and target and forcing update', function () {
             var updated = FileUpdater.updatePathWithStats(
                 testSourceFile, mockFileStats(now), testTargetFile, mockFileStats(now),
                 { all: true }, nullLogger);
@@ -194,7 +194,7 @@ describe('FileUpdater class', function() {
             expect(mockFs.rmPaths.length).toBe(0);
             expect(mockFs.cpPaths[0]).toEqual([testSourceFile, testTargetFile]);
         });
-        it('should copy when a file exists at source and target and target is newer ' +
+        it('Test 008 : should copy when a file exists at source and target and target is newer ' +
                 'and forcing update', function () {
             var updated = FileUpdater.updatePathWithStats(
                 testSourceFile, mockFileStats(oneHourAgo), testTargetFile, mockFileStats(now),
@@ -204,7 +204,7 @@ describe('FileUpdater class', function() {
             expect(mockFs.rmPaths.length).toBe(0);
             expect(mockFs.cpPaths[0]).toEqual([testSourceFile, testTargetFile]);
         });
-        it('should copy when a file exists at source and target and source is newer', function () {
+        it('Test 009 : should copy when a file exists at source and target and source is newer', function () {
             var updated = FileUpdater.updatePathWithStats(
                 testSourceFile, mockFileStats(now), testTargetFile, mockFileStats(oneHourAgo),
                 null, nullLogger);
@@ -213,7 +213,7 @@ describe('FileUpdater class', function() {
             expect(mockFs.rmPaths.length).toBe(0);
             expect(mockFs.cpPaths[0]).toEqual([testSourceFile, testTargetFile]);
         });
-        it('should copy when a file exists at source and not at target', function () {
+        it('Test 010 : should copy when a file exists at source and not at target', function () {
             var updated = FileUpdater.updatePathWithStats(
                 testSourceFile, mockFileStats(now), testTargetFile, null,
                 null, nullLogger);
@@ -222,7 +222,7 @@ describe('FileUpdater class', function() {
             expect(mockFs.rmPaths.length).toBe(0);
             expect(mockFs.cpPaths[0]).toEqual([testSourceFile, testTargetFile]);
         });
-        it('should remove when a file exists at target and not at source', function () {
+        it('Test 011 : should remove when a file exists at target and not at source', function () {
             var updated = FileUpdater.updatePathWithStats(
                 testSourceFile, null, testTargetFile, mockFileStats(now),
                 null, nullLogger);
@@ -232,7 +232,7 @@ describe('FileUpdater class', function() {
             expect(mockFs.rmPaths[0]).toBe(testTargetFile);
         });
 
-        it('should remove and mkdir when source is a directory and target is a file', function () {
+        it('Test 012 : should remove and mkdir when source is a directory and target is a file', function () {
             var updated = FileUpdater.updatePathWithStats(
                 testSourceDir, mockDirStats(), testTargetDir, mockFileStats(now),
                 null, nullLogger);
@@ -243,7 +243,7 @@ describe('FileUpdater class', function() {
             expect(mockFs.rmPaths[0]).toBe(testTargetDir);
             expect(mockFs.mkdirPaths[0]).toBe(testTargetDir);
         });
-        it('should remove and copy when source is a file and target is a directory', function () {
+        it('Test 013 : should remove and copy when source is a file and target is a directory', function () {
             var updated = FileUpdater.updatePathWithStats(
                 testSourceFile, mockFileStats(now), testTargetFile, mockDirStats(),
                 null, nullLogger);
@@ -255,7 +255,7 @@ describe('FileUpdater class', function() {
             expect(mockFs.cpPaths[0]).toEqual([testSourceFile, testTargetFile]);
         });
 
-        it('should join the paths when a rootDir is specified', function () {
+        it('Test 014 : should join the paths when a rootDir is specified', function () {
             FileUpdater.updatePathWithStats(
                 testSourceFile, mockFileStats(now), testTargetFile, null,
                 { rootDir: testRootDir }, nullLogger);
@@ -265,7 +265,7 @@ describe('FileUpdater class', function() {
                 [path.join(testRootDir, testSourceFile), path.join(testRootDir, testTargetFile)]);
         });
 
-        it('should log dir creation', function () {
+        it('Test 015 : should log dir creation', function () {
             var loggedSource = 0;
             var loggedTarget = 0;
             var loggedRoot = 0;
@@ -280,7 +280,7 @@ describe('FileUpdater class', function() {
             expect(loggedTarget).toBe(1);
             expect(loggedRoot).toBe(0);
         });
-        it('should log dir removal', function () {
+        it('Test 016 : should log dir removal', function () {
             var loggedSource = 0;
             var loggedTarget = 0;
             var loggedRoot = 0;
@@ -295,7 +295,7 @@ describe('FileUpdater class', function() {
             expect(loggedTarget).toBe(1);
             expect(loggedRoot).toBe(0);
         });
-        it('should log file copy', function () {
+        it('Test 017 : should log file copy', function () {
             var loggedSource = 0;
             var loggedTarget = 0;
             var loggedRoot = 0;
@@ -310,7 +310,7 @@ describe('FileUpdater class', function() {
             expect(loggedTarget).toBe(1);
             expect(loggedRoot).toBe(0);
         });
-        it('should log file removal', function () {
+        it('Test 018: should log file removal', function () {
             var loggedSource = 0;
             var loggedTarget = 0;
             var loggedRoot = 0;
@@ -330,7 +330,7 @@ describe('FileUpdater class', function() {
     });
 
     describe('mapDirectory method', function () {
-        it('should map an empty directory', function () {
+        it('Test 019 : should map an empty directory', function () {
             mockFs.statMap[path.join(testRootDir, testSourceDir)] = testDirStats;
             mockFs.dirMap[path.join(testRootDir, testSourceDir)] = [];
             var dirMap = FileUpdater.mapDirectory(testRootDir, testSourceDir, ['**'], []);
@@ -338,7 +338,7 @@ describe('FileUpdater class', function() {
             expect(dirMap[''].subDir).toBe(testSourceDir);
             expect(dirMap[''].stats).toBe(testDirStats);
         });
-        it('should map a directory with a file', function () {
+        it('Test 020 : should map a directory with a file', function () {
             mockFs.statMap[path.join(testRootDir, testSourceDir)] = testDirStats;
             mockFs.dirMap[path.join(testRootDir, testSourceDir)] = [testSourceFile];
             mockFs.statMap[path.join(testRootDir, testSourceDir, testSourceFile)] = testFileStats;
@@ -349,7 +349,7 @@ describe('FileUpdater class', function() {
             expect(dirMap[testSourceFile].subDir).toBe(testSourceDir);
             expect(dirMap[testSourceFile].stats).toBe(testFileStats);
         });
-        it('should map a directory with a subdirectory', function () {
+        it('Test 021 : should map a directory with a subdirectory', function () {
             mockFs.statMap[testSourceDir] = testDirStats;
             mockFs.dirMap[testSourceDir] = [testSubDir];
             mockFs.statMap[path.join(testSourceDir, testSubDir)] = testDirStats;
@@ -361,7 +361,7 @@ describe('FileUpdater class', function() {
             expect(dirMap[testSubDir].subDir).toBe(testSourceDir);
             expect(dirMap[testSubDir].stats).toBe(testDirStats);
         });
-        it('should map a directory with a file in a nested subdirectory', function () {
+        it('Test 022 : should map a directory with a file in a nested subdirectory', function () {
             mockFs.statMap[testSourceDir] = testDirStats;
             mockFs.dirMap[testSourceDir] = [testSubDir];
             mockFs.statMap[path.join(testSourceDir, testSubDir)] = testDirStats;
@@ -388,7 +388,7 @@ describe('FileUpdater class', function() {
                 testFileStats);
         });
 
-        it('should include files that match include globs', function () {
+        it('Test 023 : should include files that match include globs', function () {
             mockFs.statMap[testSourceDir] = testDirStats;
             mockFs.dirMap[testSourceDir] = [testSourceFile, testSourceFile2];
             mockFs.statMap[path.join(testSourceDir, testSourceFile)] = testFileStats;
@@ -400,7 +400,7 @@ describe('FileUpdater class', function() {
             expect(dirMap[testSourceFile].subDir).toBe(testSourceDir);
             expect(dirMap[testSourceFile].stats).toBe(testFileStats);
         });
-        it('should include files in a subdirectory that match include globs', function () {
+        it('Test 024 : should include files in a subdirectory that match include globs', function () {
             mockFs.statMap[testSourceDir] = testDirStats;
             mockFs.dirMap[testSourceDir] = [testSubDir];
             mockFs.statMap[path.join(testSourceDir, testSubDir)] = testDirStats;
@@ -418,7 +418,7 @@ describe('FileUpdater class', function() {
             expect(dirMap[path.join(testSubDir, testSourceFile)].subDir).toBe(testSourceDir);
             expect(dirMap[path.join(testSubDir, testSourceFile)].stats).toBe(testFileStats);
         });
-        it('should exclude paths that match exclude globs', function () {
+        it('Test 025 : should exclude paths that match exclude globs', function () {
             mockFs.statMap[testSourceDir] = testDirStats;
             mockFs.dirMap[testSourceDir] = [testSourceFile, testSourceFile2];
             mockFs.statMap[path.join(testSourceDir, testSourceFile)] = testFileStats;
@@ -430,7 +430,7 @@ describe('FileUpdater class', function() {
             expect(dirMap[testSourceFile].subDir).toBe(testSourceDir);
             expect(dirMap[testSourceFile].stats).toBe(testFileStats);
         });
-        it('should exclude paths that match both exclude and include globs', function () {
+        it('Test 026 : should exclude paths that match both exclude and include globs', function () {
             mockFs.statMap[testSourceDir] = testDirStats;
             mockFs.dirMap[testSourceDir] = [testSubDir];
             mockFs.statMap[path.join(testSourceDir, testSubDir)] = testDirStats;
@@ -451,7 +451,7 @@ describe('FileUpdater class', function() {
         var testSourceFileStats = mockFileStats(now);
         var testSourceFileStats2 = mockFileStats(now);
         var testSourceFileStats3 = mockFileStats(now);
-        it('should prepend the target directory on target paths', function () {
+        it('Test 027 : should prepend the target directory on target paths', function () {
             var mergedPathMap = FileUpdater.mergePathMaps(
                 [{
                     '': { subDir: testSourceDir, stats: testDirStats },
@@ -474,7 +474,7 @@ describe('FileUpdater class', function() {
                 path.join(testSourceDir, testTargetFile));
             expect(mergedPathMap[testTargetFile].sourceStats).toBe(testSourceFileStats);
         });
-        it('should handle missing source files', function () {
+        it('Test 028 : should handle missing source files', function () {
             var mergedPathMap = FileUpdater.mergePathMaps(
                 [{}],
                 {
@@ -488,7 +488,7 @@ describe('FileUpdater class', function() {
             expect(mergedPathMap[testTargetFile].sourcePath).toBeNull();
             expect(mergedPathMap[testTargetFile].sourceStats).toBeNull();
         });
-        it('should handle missing target files', function () {
+        it('Tets 029 : should handle missing target files', function () {
             var mergedPathMap = FileUpdater.mergePathMaps(
                 [{
                     testTargetFile: { subDir: testSourceDir, stats: testSourceFileStats },
@@ -503,7 +503,7 @@ describe('FileUpdater class', function() {
                 path.join(testSourceDir, testTargetFile));
             expect(mergedPathMap[testTargetFile].sourceStats).toBe(testSourceFileStats);
         });
-        it('should merge three source maps', function () {
+        it('Test 030 : should merge three source maps', function () {
             var mergedPathMap = FileUpdater.mergePathMaps(
                 [
                     {
@@ -547,7 +547,7 @@ describe('FileUpdater class', function() {
     });
 
     describe('updatePath method', function () {
-        it('should update a path', function () {
+        it('Test 031 : should update a path', function () {
             mockFs.statMap[testRootDir] = testDirStats;
             mockFs.statMap[path.join(testRootDir, testTargetFile)] = testFileStats;
             mockFs.statMap[path.join(testRootDir, testSourceFile)] = testFileStats2;
@@ -562,7 +562,7 @@ describe('FileUpdater class', function() {
             expect(FileUpdater.updatePathWithStatsCalls[0][4]).toEqual(
                 {rootDir: testRootDir, all: true });
         });
-        it('should update a path without a separate root directory', function () {
+        it('Test 032 : should update a path without a separate root directory', function () {
             mockFs.statMap[testTargetFile] = testFileStats;
             mockFs.statMap[testSourceFile] = testFileStats2;
             FileUpdater.updatePathWithStatsResult = false;
@@ -575,7 +575,7 @@ describe('FileUpdater class', function() {
             expect(FileUpdater.updatePathWithStatsCalls[0][3]).toEqual(testFileStats);
             expect(FileUpdater.updatePathWithStatsCalls[0][4]).toBeUndefined();
         });
-        it('should update a path when the source doesn\'t exist', function () {
+        it('Test 033 : should update a path when the source doesn\'t exist', function () {
             mockFs.statMap[testTargetFile] = testFileStats;
             var updated = FileUpdater.updatePath(null, testTargetFile);
             expect(updated).toBe(true);
@@ -586,7 +586,7 @@ describe('FileUpdater class', function() {
             expect(FileUpdater.updatePathWithStatsCalls[0][3]).toEqual(testFileStats);
             expect(FileUpdater.updatePathWithStatsCalls[0][4]).toBeUndefined();
         });
-        it('should update a path when the target doesn\'t exist', function () {
+        it('Test 034 : should update a path when the target doesn\'t exist', function () {
             mockFs.statMap[testSourceFile] = testFileStats2;
             var updated = FileUpdater.updatePath(testSourceFile, testTargetFile);
             expect(updated).toBe(true);
@@ -597,7 +597,7 @@ describe('FileUpdater class', function() {
             expect(FileUpdater.updatePathWithStatsCalls[0][3]).toBeNull();
             expect(FileUpdater.updatePathWithStatsCalls[0][4]).toBeUndefined();
         });
-        it('should create the target\'s parent directory if it doesn\'t exist',
+        it('Test 035 : should create the target\'s parent directory if it doesn\'t exist',
                 function () {
             mockFs.statMap[path.join(testRootDir, testSourceFile)] = testFileStats2;
             var updated = FileUpdater.updatePath(
@@ -615,7 +615,7 @@ describe('FileUpdater class', function() {
     });
 
     describe('mergeAndUpdateDir method', function () {
-        it('should update files from merged source directories', function () {
+        it('Test 036 : should update files from merged source directories', function () {
             mockFs.statMap[testTargetDir] = testDirStats;
             mockFs.dirMap[testTargetDir] = [testSubDir];
             mockFs.statMap[path.join(testTargetDir, testSubDir)] = testDirStats;
@@ -686,7 +686,7 @@ describe('FileUpdater class', function() {
                 null);
         });
 
-        it('should update files from merged source directories - with a rootDir', function () {
+        it('Test 037 : should update files from merged source directories - with a rootDir', function () {
             var rootDir = path.join('Users', 'me');
             mockFs.statMap[rootDir] = testDirStats;
             mockFs.dirMap[rootDir] = [testSourceDir, testSourceDir2, testTargetDir];


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


[15/50] [abbrv] cordova-lib git commit: CB-12284 Include project root as additional root for static router

Posted by st...@apache.org.
CB-12284 Include project root as additional root for static router

This can be useful in cases where source files that have been transpiled (such as TypeScript files) are located under the project root on a path that mirrors the the transpiled file's path under the platform root, and is pointed to by a map file (otherwise when debugging in a browser, the browser won't be able to find the original source file).


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

Branch: refs/heads/fetch-1.0.x
Commit: 84fa8e39b22252381ed4baa6868ff6f22b7a48e2
Parents: acf7b48
Author: TimBarham <ti...@microsoft.com>
Authored: Wed Dec 21 12:18:44 2016 +1000
Committer: TimBarham <ti...@microsoft.com>
Committed: Wed Dec 21 12:18:44 2016 +1000

----------------------------------------------------------------------
 .gitignore                  | 2 +-
 cordova-serve/src/server.js | 7 +++++++
 2 files changed, 8 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/84fa8e39/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index cdd11fe..1cba455 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,7 +6,7 @@ temp
 .DS_Store
 spec-cordova/fixtures/projects/native
 spec-cordova/fixtures/projects/cordova
-.idea/*
+.idea
 .gitcore
 *.jar
 .vscode

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/84fa8e39/cordova-serve/src/server.js
----------------------------------------------------------------------
diff --git a/cordova-serve/src/server.js b/cordova-serve/src/server.js
index bb10a21..9040d2b 100644
--- a/cordova-serve/src/server.js
+++ b/cordova-serve/src/server.js
@@ -55,6 +55,13 @@ module.exports = function (opts) {
         app.use(express.static(opts.root));
     }
 
+    // If we have a project root, make that available as a static root also. This can be useful in cases where source
+    // files that have been transpiled (such as TypeScript) are located under the project root on a path that mirrors
+    // the the transpiled file's path under the platform root and is pointed to by a map file.
+    if (this.projectRoot) {
+        app.use(express.static(this.projectRoot));
+    }
+
     var that = this;
     server.listen(port).on('listening', function () {
         that.port = port;


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


[19/50] [abbrv] cordova-lib git commit: Move windows-specific logic to cordova-windows

Posted by st...@apache.org.
Move windows-specific logic to cordova-windows

 This closes #505


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

Branch: refs/heads/fetch-1.0.x
Commit: 110b46f7483b0db0baa59cf5b1bcf17c32dd546d
Parents: e0b0c39
Author: Nikita Matrosov <ma...@gmail.com>
Authored: Tue Nov 1 12:18:45 2016 +0300
Committer: Steve Gill <st...@gmail.com>
Committed: Fri Jan 6 15:44:26 2017 -0800

----------------------------------------------------------------------
 .../spec/ConfigChanges/ConfigChanges.spec.js    |  33 ------
 .../src/ConfigChanges/ConfigChanges.js          | 115 +------------------
 2 files changed, 1 insertion(+), 147 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/110b46f7/cordova-common/spec/ConfigChanges/ConfigChanges.spec.js
----------------------------------------------------------------------
diff --git a/cordova-common/spec/ConfigChanges/ConfigChanges.spec.js b/cordova-common/spec/ConfigChanges/ConfigChanges.spec.js
index f1c7e6d..11651a2 100644
--- a/cordova-common/spec/ConfigChanges/ConfigChanges.spec.js
+++ b/cordova-common/spec/ConfigChanges/ConfigChanges.spec.js
@@ -39,7 +39,6 @@ var configChanges = require('../../src/ConfigChanges/ConfigChanges'),
     android_two_project = path.join(__dirname, '../fixtures/projects/android_two/*'),
     android_two_no_perms_project = path.join(__dirname, '../fixtures/projects/android_two_no_perms', '*'),
     ios_config_xml = path.join(__dirname, '../fixtures/projects/ios-config-xml/*'),
-    windows_testapp_jsproj = path.join(__dirname, '../fixtures/projects/windows/TestApp.jsproj'),
     plugins_dir = path.join(temp, 'cordova', 'plugins');
 var mungeutil = require('../../src/ConfigChanges/munge-util');
 var PlatformJson = require('../../src/PlatformJson');
@@ -189,38 +188,6 @@ describe('config-changes module', function() {
                 expect(get_munge_change(munge, 'config.xml', '/*', '<access origin="s3.amazonaws.com" />')).toBeDefined();
             });
         });
-
-        describe('for windows project', function() {
-            beforeEach(function() {
-                shell.cp('-rf', windows_testapp_jsproj, temp);
-            });
-            it('should special case config-file elements for windows', function() {
-                var munger = new configChanges.PlatformMunger('windows', temp, 'unused', null, pluginInfoProvider);
-
-                var munge = munger.generate_plugin_config_munge(pluginInfoProvider.get(configplugin), {});
-                var packageAppxManifest = munge.files['package.appxmanifest'];
-                var windows81AppxManifest = munge.files['package.windows.appxmanifest'];
-                var winphone81AppxManifest = munge.files['package.phone.appxmanifest'];
-                var windows10AppxManifest = munge.files['package.windows10.appxmanifest'];
-
-                expect(packageAppxManifest.parents['/Parent/Capabilities'][0].xml).toBe('<Capability Note="should-exist-for-all-appxmanifest-target-files" />');
-
-                // 1 comes from versions="=8.1.0" + 1 from versions="=8.1.0" device-target="windows"
-                expect(windows81AppxManifest.parents['/Parent/Capabilities'][0].xml).toBe('<Capability Note="should-exist-for-win81-win-and-phone" />');
-                expect(windows81AppxManifest.parents['/Parent/Capabilities'][0].count).toBe(2);
-                expect(windows81AppxManifest.parents['/Parent/Capabilities'][1].xml).toBe('<Capability Note="should-exist-for-win81-win-only" />');
-                expect(windows81AppxManifest.parents['/Parent/Capabilities'][2].xml).toBe('<Capability Note="should-exist-for-win10-and-win81-win-and-phone" />');
-
-                // 1 comes from versions="=8.1.0" + 1 from versions="=8.1.0" device-target="phone"
-                expect(winphone81AppxManifest.parents['/Parent/Capabilities'][0].xml).toBe('<Capability Note="should-exist-for-win81-win-and-phone" />');
-                expect(winphone81AppxManifest.parents['/Parent/Capabilities'][0].count).toBe(2);
-                expect(winphone81AppxManifest.parents['/Parent/Capabilities'][1].xml).toBe('<Capability Note="should-exist-for-win81-phone-only" />');
-                expect(winphone81AppxManifest.parents['/Parent/Capabilities'][2].xml).toBe('<Capability Note="should-exist-for-win10-and-win81-win-and-phone" />');
-
-                expect(windows10AppxManifest.parents['/Parent/Capabilities'][0].xml).toBe('<Capability Note="should-exist-for-win10-and-win81-win-and-phone" />');
-                expect(windows10AppxManifest.parents['/Parent/Capabilities'][1].xml).toBe('<Capability Note="should-exist-in-win10-only" />');
-            });
-        });
     });
 
     describe('processing of plugins (via process method)', function() {

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/110b46f7/cordova-common/src/ConfigChanges/ConfigChanges.js
----------------------------------------------------------------------
diff --git a/cordova-common/src/ConfigChanges/ConfigChanges.js b/cordova-common/src/ConfigChanges/ConfigChanges.js
index f9201eb..4a58132 100644
--- a/cordova-common/src/ConfigChanges/ConfigChanges.js
+++ b/cordova-common/src/ConfigChanges/ConfigChanges.js
@@ -31,11 +31,8 @@
 
 /* jshint sub:true */
 
-var fs   = require('fs'),
-    path = require('path'),
+var path = require('path'),
     et   = require('elementtree'),
-    semver = require('semver'),
-    events = require('../events'),
     ConfigKeeper = require('./ConfigKeeper'),
     CordovaLogger = require('../CordovaLogger');
 
@@ -109,18 +106,6 @@ function remove_plugin_changes(pluginInfo, is_top_level) {
     var munge = mungeutil.decrement_munge(global_munge, config_munge);
 
     for (var file in munge.files) {
-        // CB-6976 Windows Universal Apps. Compatibility fix for existing plugins.
-        if (self.platform == 'windows' && file == 'package.appxmanifest' &&
-            !fs.existsSync(path.join(self.project_dir, 'package.appxmanifest'))) {
-            // New windows template separate manifest files for Windows10, Windows8.1 and WP8.1
-            var substs = ['package.phone.appxmanifest', 'package.windows.appxmanifest', 'package.windows10.appxmanifest'];
-            /* jshint loopfunc:true */
-            substs.forEach(function(subst) {
-                events.emit('verbose', 'Applying munge to ' + subst);
-                self.apply_file_munge(subst, munge.files[file], true);
-            });
-            /* jshint loopfunc:false */
-        }
         self.apply_file_munge(file, munge.files[file], /* remove = */ true);
     }
 
@@ -250,18 +235,6 @@ function munge_helper(should_increment, self, platform_config, config_munge) {
     }
 
     for (var file in munge.files) {
-        // CB-6976 Windows Universal Apps. Compatibility fix for existing plugins.
-        if (self.platform == 'windows' && file == 'package.appxmanifest' &&
-            !fs.existsSync(path.join(self.project_dir, 'package.appxmanifest'))) {
-            var substs = ['package.phone.appxmanifest', 'package.windows.appxmanifest', 'package.windows10.appxmanifest'];
-            /* jshint loopfunc:true */
-            substs.forEach(function(subst) {
-                events.emit('verbose', 'Applying munge to ' + subst);
-                self.apply_file_munge(subst, munge.files[file]);
-            });
-            /* jshint loopfunc:false */
-        }
-
         self.apply_file_munge(file, munge.files[file]);
     }
 
@@ -333,92 +306,6 @@ function generate_plugin_config_munge(pluginInfo, vars, edit_config_changes) {
         Array.prototype.push.apply(changes, edit_config_changes);
     }
 
-    // Demux 'package.appxmanifest' into relevant platform-specific appx manifests.
-    // Only spend the cycles if there are version-specific plugin settings
-    if (self.platform === 'windows' &&
-            changes.some(function(change) {
-                return ((typeof change.versions !== 'undefined') ||
-                    (typeof change.deviceTarget !== 'undefined'));
-            }))
-    {
-        var manifests = {
-            'windows': {
-                '8.1.0': 'package.windows.appxmanifest',
-                '10.0.0': 'package.windows10.appxmanifest'
-            },
-            'phone': {
-                '8.1.0': 'package.phone.appxmanifest',
-                '10.0.0': 'package.windows10.appxmanifest'
-            },
-            'all': {
-                '8.1.0': ['package.windows.appxmanifest', 'package.phone.appxmanifest'],
-                '10.0.0': 'package.windows10.appxmanifest'
-            }
-        };
-
-        var oldChanges = changes;
-        changes = [];
-
-        oldChanges.forEach(function(change, changeIndex) {
-            // Only support semver/device-target demux for package.appxmanifest
-            // Pass through in case something downstream wants to use it
-            if (change.target !== 'package.appxmanifest') {
-                changes.push(change);
-                return;
-            }
-
-            var hasVersion = (typeof change.versions !== 'undefined');
-            var hasTargets = (typeof change.deviceTarget !== 'undefined');
-
-            // No semver/device-target for this config-file, pass it through
-            if (!(hasVersion || hasTargets)) {
-                changes.push(change);
-                return;
-            }
-
-            var targetDeviceSet = hasTargets ? change.deviceTarget : 'all';
-            if (['windows', 'phone', 'all'].indexOf(targetDeviceSet) === -1) {
-                // target-device couldn't be resolved, fix it up here to a valid value
-                targetDeviceSet = 'all';
-            }
-            var knownWindowsVersionsForTargetDeviceSet = Object.keys(manifests[targetDeviceSet]);
-
-            // at this point, 'change' targets package.appxmanifest and has a version attribute
-            knownWindowsVersionsForTargetDeviceSet.forEach(function(winver) {
-                // This is a local function that creates the new replacement representing the
-                // mutation.  Used to save code further down.
-                var createReplacement = function(manifestFile, originalChange) {
-                    var replacement = {
-                        target:         manifestFile,
-                        parent:         originalChange.parent,
-                        after:          originalChange.after,
-                        xmls:           originalChange.xmls,
-                        versions:       originalChange.versions,
-                        deviceTarget:   originalChange.deviceTarget
-                    };
-                    return replacement;
-                };
-
-                // version doesn't satisfy, so skip
-                if (hasVersion && !semver.satisfies(winver, change.versions)) {
-                    return;
-                }
-
-                var versionSpecificManifests = manifests[targetDeviceSet][winver];
-                if (versionSpecificManifests.constructor === Array) {
-                    // e.g. all['8.1.0'] === ['pkg.windows.appxmanifest', 'pkg.phone.appxmanifest']
-                    versionSpecificManifests.forEach(function(manifestFile) {
-                        changes.push(createReplacement(manifestFile, change));
-                    });
-                }
-                else {
-                    // versionSpecificManifests is actually a single string
-                    changes.push(createReplacement(versionSpecificManifests, change));
-                }
-            });
-        });
-    }
-
     changes.forEach(function(change) {
         change.xmls.forEach(function(xml) {
             // 1. stringify each xml


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


[10/50] [abbrv] cordova-lib git commit: CB-12088 Fix misleading warning when adding platform without Api.js

Posted by st...@apache.org.
CB-12088 Fix misleading warning when adding platform without Api.js

 This closes #506


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

Branch: refs/heads/fetch-1.0.x
Commit: d3c92092c9468e26fa11a4b3eb25bd2fb90afb5a
Parents: 6e687ec
Author: Vladimir Kotikov <v-...@microsoft.com>
Authored: Tue Nov 1 13:48:51 2016 +0300
Committer: Vladimir Kotikov <v-...@microsoft.com>
Committed: Sun Nov 6 23:16:15 2016 +0300

----------------------------------------------------------------------
 cordova-lib/src/platforms/platforms.js | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d3c92092/cordova-lib/src/platforms/platforms.js
----------------------------------------------------------------------
diff --git a/cordova-lib/src/platforms/platforms.js b/cordova-lib/src/platforms/platforms.js
index 9d25bfb..db9b76d 100644
--- a/cordova-lib/src/platforms/platforms.js
+++ b/cordova-lib/src/platforms/platforms.js
@@ -56,10 +56,14 @@ function getPlatformApi(platform, platformRootDir) {
         PlatformApi = require(platformApiModule);
     } catch (err) {
         // Check if platform already compatible w/ PlatformApi and show deprecation warning
-        if (err && err.code === 'MODULE_NOT_FOUND' && platforms[platform].apiCompatibleSince) {
-            events.emit('warn', ' Using this version of Cordova with older version of cordova-' + platform +
-                ' is being deprecated. Consider upgrading to cordova-' + platform + '@' +
-                platforms[platform].apiCompatibleSince + ' or newer.');
+        if (err && err.code === 'MODULE_NOT_FOUND') {
+            if (platforms[platform].apiCompatibleSince) {
+                events.emit('warn', ' Using this version of Cordova with older version of cordova-' + platform +
+                    ' is being deprecated. Consider upgrading to cordova-' + platform + '@' +
+                    platforms[platform].apiCompatibleSince + ' or newer.');
+            }
+            // else nothing - there is no Api.js and no deprecation information hence
+            // the platform just does not expose Api and we will use polyfill as usual
         } else {
             events.emit('warn', 'Error loading cordova-'+platform);
         }


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


[38/50] [abbrv] cordova-lib git commit: CB-12358 Updated version and RELEASENOTES.md for release 2.0.0

Posted by st...@apache.org.
CB-12358 Updated version and RELEASENOTES.md for release 2.0.0


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

Branch: refs/heads/master
Commit: bfa0589debd182fb2a0557143ad35388f3eaab13
Parents: 1200331
Author: Steve Gill <st...@gmail.com>
Authored: Tue Jan 17 15:33:40 2017 -0800
Committer: Steve Gill <st...@gmail.com>
Committed: Tue Jan 17 15:33:40 2017 -0800

----------------------------------------------------------------------
 cordova-common/RELEASENOTES.md | 7 +++++++
 cordova-common/package.json    | 2 +-
 2 files changed, 8 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/bfa0589d/cordova-common/RELEASENOTES.md
----------------------------------------------------------------------
diff --git a/cordova-common/RELEASENOTES.md b/cordova-common/RELEASENOTES.md
index 02dbcee..3aca768 100644
--- a/cordova-common/RELEASENOTES.md
+++ b/cordova-common/RELEASENOTES.md
@@ -20,6 +20,13 @@
 -->
 # Cordova-common Release Notes
 
+### 2.0.0 (Jan 17, 2017)
+* [CB-8978](https://issues.apache.org/jira/browse/CB-8978) Add `resource-file` parsing to `config.xml`
+* [CB-12018](https://issues.apache.org/jira/browse/CB-12018): updated `jshint` and updated tests to work with `jasmine@2` instead of `jasmine-node`
+* [CB-12163](https://issues.apache.org/jira/browse/CB-12163) Add reference attrib to `resource-file` for **Windows**
+* Move windows-specific logic to `cordova-windows`
+* [CB-12189](https://issues.apache.org/jira/browse/CB-12189) Add implementation attribute to framework
+
 ### 1.5.1 (Oct 12, 2016)
 * [CB-12002](https://issues.apache.org/jira/browse/CB-12002) Add `getAllowIntents()` to `ConfigParser`
 * [CB-11998](https://issues.apache.org/jira/browse/CB-11998) `cordova platform add` error with `cordova-common@1.5.0`

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/bfa0589d/cordova-common/package.json
----------------------------------------------------------------------
diff --git a/cordova-common/package.json b/cordova-common/package.json
index d1eae8a..58fac61 100644
--- a/cordova-common/package.json
+++ b/cordova-common/package.json
@@ -3,7 +3,7 @@
   "name": "cordova-common",
   "description": "Apache Cordova tools and platforms shared routines",
   "license": "Apache-2.0",
-  "version": "2.0.0-dev",
+  "version": "2.0.0",
   "repository": {
     "type": "git",
     "url": "git://git-wip-us.apache.org/repos/asf/cordova-common.git"


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


[37/50] [abbrv] cordova-lib git commit: CB-12358 Updated version and RELEASENOTES.md for release 2.0.0

Posted by st...@apache.org.
CB-12358 Updated version and RELEASENOTES.md for release 2.0.0


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

Branch: refs/heads/fetch-1.0.x
Commit: bfa0589debd182fb2a0557143ad35388f3eaab13
Parents: 1200331
Author: Steve Gill <st...@gmail.com>
Authored: Tue Jan 17 15:33:40 2017 -0800
Committer: Steve Gill <st...@gmail.com>
Committed: Tue Jan 17 15:33:40 2017 -0800

----------------------------------------------------------------------
 cordova-common/RELEASENOTES.md | 7 +++++++
 cordova-common/package.json    | 2 +-
 2 files changed, 8 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/bfa0589d/cordova-common/RELEASENOTES.md
----------------------------------------------------------------------
diff --git a/cordova-common/RELEASENOTES.md b/cordova-common/RELEASENOTES.md
index 02dbcee..3aca768 100644
--- a/cordova-common/RELEASENOTES.md
+++ b/cordova-common/RELEASENOTES.md
@@ -20,6 +20,13 @@
 -->
 # Cordova-common Release Notes
 
+### 2.0.0 (Jan 17, 2017)
+* [CB-8978](https://issues.apache.org/jira/browse/CB-8978) Add `resource-file` parsing to `config.xml`
+* [CB-12018](https://issues.apache.org/jira/browse/CB-12018): updated `jshint` and updated tests to work with `jasmine@2` instead of `jasmine-node`
+* [CB-12163](https://issues.apache.org/jira/browse/CB-12163) Add reference attrib to `resource-file` for **Windows**
+* Move windows-specific logic to `cordova-windows`
+* [CB-12189](https://issues.apache.org/jira/browse/CB-12189) Add implementation attribute to framework
+
 ### 1.5.1 (Oct 12, 2016)
 * [CB-12002](https://issues.apache.org/jira/browse/CB-12002) Add `getAllowIntents()` to `ConfigParser`
 * [CB-11998](https://issues.apache.org/jira/browse/CB-11998) `cordova platform add` error with `cordova-common@1.5.0`

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/bfa0589d/cordova-common/package.json
----------------------------------------------------------------------
diff --git a/cordova-common/package.json b/cordova-common/package.json
index d1eae8a..58fac61 100644
--- a/cordova-common/package.json
+++ b/cordova-common/package.json
@@ -3,7 +3,7 @@
   "name": "cordova-common",
   "description": "Apache Cordova tools and platforms shared routines",
   "license": "Apache-2.0",
-  "version": "2.0.0-dev",
+  "version": "2.0.0",
   "repository": {
     "type": "git",
     "url": "git://git-wip-us.apache.org/repos/asf/cordova-common.git"


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


[35/50] [abbrv] cordova-lib git commit: CB-12358 Updated version and RELEASENOTES.md for release 6.5.0

Posted by st...@apache.org.
CB-12358 Updated version and RELEASENOTES.md for release 6.5.0


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

Branch: refs/heads/fetch-1.0.x
Commit: 1200331397d54281df803c73315ab26c6cfb4ed8
Parents: 2bf3517
Author: Steve Gill <st...@gmail.com>
Authored: Tue Jan 17 15:33:33 2017 -0800
Committer: Steve Gill <st...@gmail.com>
Committed: Tue Jan 17 15:33:33 2017 -0800

----------------------------------------------------------------------
 cordova-lib/RELEASENOTES.md |  7 +++++++
 cordova-lib/package.json    | 12 ++++++------
 2 files changed, 13 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/12003313/cordova-lib/RELEASENOTES.md
----------------------------------------------------------------------
diff --git a/cordova-lib/RELEASENOTES.md b/cordova-lib/RELEASENOTES.md
index d6bdbca..234c89e 100644
--- a/cordova-lib/RELEASENOTES.md
+++ b/cordova-lib/RELEASENOTES.md
@@ -20,6 +20,13 @@
 -->
 # Cordova-lib Release Notes
 
+### 6.5.0 (Jan 17, 2017)
+* [CB-12018](https://issues.apache.org/jira/browse/CB-12018): updated `jshint` and updated `jasmine` tests to work with `jasmine` instead of `jasmine-node`
+* [CB-12314](https://issues.apache.org/jira/browse/CB-12314) updated pinned android to 6.1.1
+* [CB-12261](https://issues.apache.org/jira/browse/CB-12261) fix subdirectories deprecated warning always shows and stop fetch caused by [CB-11979](https://issues.apache.org/jira/browse/CB-11979)
+* [CB-12284](https://issues.apache.org/jira/browse/CB-12284) Include project root as additional root for static router
+* [CB-12088](https://issues.apache.org/jira/browse/CB-12088) Fix misleading warning when adding platform without `Api.js`
+
 ### 6.4.0 (Oct 21, 2016)
 * [CB-12039](https://issues.apache.org/jira/browse/CB-12039) updated pinned `Android` to 6.0.0 and `iOS` to 4.3.0
 * [CB-11979](https://issues.apache.org/jira/browse/CB-11979) added deprecation warning for installing plugins via subdirectories

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/12003313/cordova-lib/package.json
----------------------------------------------------------------------
diff --git a/cordova-lib/package.json b/cordova-lib/package.json
index 5fb2fe0..643f516 100644
--- a/cordova-lib/package.json
+++ b/cordova-lib/package.json
@@ -3,7 +3,7 @@
   "name": "cordova-lib",
   "license": "Apache-2.0",
   "description": "Apache Cordova tools core lib and API",
-  "version": "6.4.1-dev",
+  "version": "6.5.0",
   "repository": {
     "type": "git",
     "url": "git://git-wip-us.apache.org/repos/asf/cordova-lib.git"
@@ -19,10 +19,10 @@
   "engineStrict": true,
   "dependencies": {
     "aliasify": "^1.7.2",
-    "cordova-common": "1.5.x",
+    "cordova-common": "2.0.0",
     "cordova-create": "^1.0.1",
-    "cordova-fetch": "^1.0.1",
-    "cordova-js": "4.2.0",
+    "cordova-fetch": "1.0.2",
+    "cordova-js": "4.2.1",
     "cordova-registry-mapper": "1.x",
     "cordova-serve": "^1.0.0",
     "dep-graph": "1.1.0",
@@ -42,11 +42,11 @@
     "underscore": "1.7.0",
     "unorm": "1.3.3",
     "valid-identifier": "0.0.1",
-    "xcode": "^0.8.5"
+    "xcode": "^0.9.0"
   },
   "devDependencies": {
     "codecov": "^1.0.1",
-    "istanbul": "^0.3.4",
+    "istanbul": "^0.3.0",
     "jasmine": "^2.5.2",
     "jshint": "2.5.8",
     "rewire": "2.1.3"


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