cordova-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From fil...@apache.org
Subject [18/51] [partial] cordova-lib git commit: Reorganized unit test directory. Changes include: - consolidate spec-cordova/ and spec-plugman/ into a single spec/ dir. - put jasmine config and helper modules in top-level spec dir. - changed package.json npm r
Date Tue, 27 Jun 2017 21:21:59 GMT
http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/spec-cordova/run.spec.js
----------------------------------------------------------------------
diff --git a/spec-cordova/run.spec.js b/spec-cordova/run.spec.js
deleted file mode 100644
index b1ab4fd..0000000
--- a/spec-cordova/run.spec.js
+++ /dev/null
@@ -1,189 +0,0 @@
-/**
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-*/
-var cordova = require('../src/cordova/cordova'),
-    platforms = require('../src/platforms/platforms'),
-    HooksRunner = require('../src/hooks/HooksRunner'),
-    Q = require('q'),
-    util = require('../src/cordova/util');
-
-var supported_platforms = Object.keys(platforms).filter(function(p) { return p != 'www'; });
-
-describe('run command', function() {
-    var is_cordova, cd_project_root, list_platforms, fire, platformApi, getPlatformApi;
-    var project_dir = '/some/path';
-    var prepare_spy;
-
-    beforeEach(function() {
-        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, 'prepare').and.returnValue(Q());
-        platformApi = {
-            run: jasmine.createSpy('run').and.returnValue(Q()),
-            build: jasmine.createSpy('build').and.returnValue(Q())
-        };
-        getPlatformApi = spyOn(platforms, 'getPlatformApi').and.returnValue(platformApi);
-    });
-    describe('failure', function() {
-        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.run).then(function() {
-                expect('this call').toBe('fail');
-            }, function(err) {
-                expect(err.message).toEqual('No platforms added to this project. Please use `cordova platform add <platform>`.');
-            }).fin(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);
-            Q().then(cordova.run).then(function() {
-                expect('this call').toBe('fail');
-            }, function(err) {
-                expect(err.message).toEqual(msg);
-            }).fin(done);
-        });
-    });
-
-    describe('success', function() {
-        it('Test 003 : should call prepare before actually run platform ', function(done) {
-            cordova.run(['android','ios']).then(function() {
-                expect(prepare_spy.calls.argsFor(0)).toEqual([ { platforms: [ 'android', 'ios' ], verbose: false, options: {} } ]);
-            }, function(err) {
-                expect(err).toBeUndefined();
-            }).fin(done);
-        });
-        it('Test 004 : should get PlatformApi instance for each platform and call its\' run method', function(done) {
-            cordova.run(['android','ios']).then(function() {
-                expect(getPlatformApi).toHaveBeenCalledWith('android');
-                expect(getPlatformApi).toHaveBeenCalledWith('ios');
-                expect(platformApi.build).toHaveBeenCalled();
-                expect(platformApi.run).toHaveBeenCalled();
-            }, function(err) {
-                expect(err).toBeUndefined();
-            }).fin(done);
-        });
-        it('Test 005 : should pass down parameters', function(done) {
-            cordova.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'});
-                expect(platformApi.run).toHaveBeenCalledWith({password: '1q1q', nobuild: true});
-            }, function(err) {
-                expect(err).toBeUndefined();
-            }).fin(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.* methods "options" argument was changed');
-            }
-
-            cordova.on('warn', warnSpy);
-            cordova.run({platforms: ['blackberry10'], options:['--password=1q1q']}).then(function() {
-                expect(prepare_spy).toHaveBeenCalledWith({ platforms: [ 'blackberry10' ],
-                    options: jasmine.objectContaining({argv:['--password=1q1q']}), verbose: false });
-                expect(platformApi.run).toHaveBeenCalledWith(jasmine.objectContaining({argv:['--password=1q1q']}));
-            }, function(err) {
-                expect(err).toBeUndefined();
-            })
-            .fin(function () {
-                cordova.off('warn', warnSpy);
-                done();
-            });
-        });
-
-        it('Test 007 : should call platform\'s build method', function (done) {
-            cordova.run({platforms: ['blackberry10']})
-            .then(function() {
-                expect(prepare_spy).toHaveBeenCalled();
-                expect(platformApi.build).toHaveBeenCalledWith({});
-                expect(platformApi.run).toHaveBeenCalledWith(jasmine.objectContaining({nobuild: true}));
-            }, function(err) {
-                expect(err).toBeUndefined();
-            })
-            .fin(done);
-        });
-
-        it('Test 008 : should not call build if --nobuild option is passed', function (done) {
-            cordova.run({platforms: ['blackberry10'], options: { nobuild: true }})
-            .then(function() {
-                expect(prepare_spy).toHaveBeenCalled();
-                expect(platformApi.build).not.toHaveBeenCalled();
-                expect(platformApi.run).toHaveBeenCalledWith(jasmine.objectContaining({nobuild: true}));
-            }, function(err) {
-                expect(err).toBeUndefined();
-            })
-            .fin(done);
-        });
-
-        describe('run parameters should not be altered by intermediate build command', function() {
-            var originalBuildSpy;
-            beforeEach(function() {
-                originalBuildSpy = platformApi.build;
-                platformApi.build = jasmine.createSpy('build').and.callFake(function(opts) {
-                    opts.couldBeModified = 'insideBuild';
-                    return Q();
-                });
-            });
-            afterEach(function() {
-                platformApi.build = originalBuildSpy;
-            });
-            it('Test 009 : should leave parameters unchanged', function(done) {
-                cordova.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'});
-                    expect(platformApi.run).toHaveBeenCalledWith({password: '1q1q', nobuild: true});
-                }, function(err) {
-                    expect(err).toBeUndefined();
-                }).fin(done);
-            });
-        });
-    });
-
-    describe('hooks', function() {
-        describe('when platforms are added', function() {
-            it('Test 010 : should fire before hooks through the hooker module', function(done) {
-                cordova.run(['android', 'ios']).then(function() {
-                    expect(fire.calls.argsFor(0)).toEqual([ 'before_run', { platforms: [ 'android', 'ios' ], verbose: false, options: {} } ]);
-                }, function(err) {
-                    expect(err).toBeUndefined();
-                }).fin(done);
-            });
-            it('Test 011 : should fire after hooks through the hooker module', function(done) {
-                cordova.run('android').then(function() {
-                    expect(fire.calls.argsFor(2)).toEqual([ 'after_run', { platforms: [ 'android' ], verbose: false, options: {} } ]);
-                }, function(err) {
-                    expect(err).toBeUndefined();
-                }).fin(done);
-            });
-        });
-
-        describe('with no platforms added', function() {
-            it('Test 012 : should not fire the hooker', function(done) {
-                list_platforms.and.returnValue([]);
-                Q().then(cordova.run).then(function() {
-                    expect('this call').toBe('fail');
-                }, function(err) {
-                    expect(fire).not.toHaveBeenCalled();
-                    expect(err.message).toEqual('No platforms added to this project. Please use `cordova platform add <platform>`.');
-                }).fin(done);
-            });
-        });
-    });
-});

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/spec-cordova/serve.spec.js
----------------------------------------------------------------------
diff --git a/spec-cordova/serve.spec.js b/spec-cordova/serve.spec.js
deleted file mode 100644
index f4a89cb..0000000
--- a/spec-cordova/serve.spec.js
+++ /dev/null
@@ -1,192 +0,0 @@
-/**
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-*/
-
-/* jshint expr: true */
-/* global xdescribe */
-
-var cordova = require('../src/cordova/cordova'),
-    console = require('console'),
-    path = require('path'),
-    shell = require('shelljs'),
-    fs = require('fs'),
-    Q = require('q'),
-    tempDir,
-    http = require('http');
-
-var cwd = process.cwd();
-
-//skipped because of CB-7078
-xdescribe('serve command', function() {
-    var payloads = {},
-        consoleSpy;
-    beforeEach(function() {
-        // Make a temp directory
-        tempDir = path.join(__dirname, '..', 'temp-' + Date.now());
-        shell.rm('-rf', tempDir);
-        shell.mkdir('-p', tempDir);
-        consoleSpy = spyOn(console, 'log');
-    });
-    afterEach(function() {
-        process.chdir(cwd);
-        process.env.PWD = cwd;
-        shell.rm('-rf', tempDir);
-    });
-    it('Test 001 : should not run outside of a Cordova-based project', function() {
-        process.chdir(tempDir);
-
-        expect(function() {
-            cordova.serve().then(function(server) {
-                expect(server).toBe(null);
-                server.close();
-            });
-        }).toThrow('Current working directory is not a Cordova-based project.');
-    });
-
-    describe('`serve`', function() {
-        var done = false, failed = false;
-        beforeEach(function() {
-            done = false;
-            failed = false;
-        });
-
-        afterEach(function() {
-            payloads = {};
-        });
-
-        function cit(cond) {
-            if (cond) {
-                return it;
-            }
-            return xit;
-        }
-        function itifapps(apps) {
-            return cit(apps.every(function (bin) {return shell.which(bin);}));
-        }
-
-        function test_serve(platform, ref, expectedContents, opts) {
-            var timeout = opts && 'timeout' in opts && opts.timeout || 1000;
-            return function() {
-                var server;
-                runs(function() {
-                    cordova.create(tempDir).then(function () {
-                        process.chdir(tempDir);
-                        process.env.PWD = tempDir;
-                        var plats = [];
-                        Object.getOwnPropertyNames(payloads).forEach(function(plat) {
-                            var d = Q.defer();
-                            plats.push(d.promise);
-                            cordova.platform('add', plat, {spawnoutput:'ignore'}).then(function () {
-                                var dir = path.join(tempDir, 'merges', plat);
-                                shell.mkdir('-p', dir);
-                                // Write testing HTML files into the directory.
-                                fs.writeFileSync(path.join(dir, 'test.html'), payloads[plat]);
-                                d.resolve();
-                            }).catch(function (e) {
-                                expect(e).toBeUndefined();
-                                failed = true;
-                            });
-                        });
-                        Q.allSettled(plats).then(function () {
-                            opts && 'setup' in opts && opts.setup();
-                            cordova.serve(opts && 'port' in opts && opts.port).then(function (srv) {
-                                server = srv;
-                            });
-                        }).catch(function (e) {
-                            expect(e).toBeUndefined();
-                            failed = true;
-                        });
-                    }).catch(function (e) {
-                        expect(e).toBeUndefined();
-                        failed = true;
-                    });
-                });
-
-                waitsFor(function() {
-                    return server || failed;
-                }, 'the server should start', timeout);
-
-                var done, errorCB;
-                runs(function() {
-                    if (failed) {
-                        return;
-                    }
-                    expect(server).toBeDefined();
-                    errorCB = jasmine.createSpy();
-                    http.get({
-                        host: 'localhost',
-                        port: opts && 'port' in opts ? opts.port : 8000,
-                        path: '/' + platform + '/www' + ref,
-                        connection: 'Close'
-                    }).on('response', function(res) {
-                        var response = '';
-                        res.on('data', function(data) {
-                            response += data;
-                        });
-                        res.on('end', function() {
-                            expect(response).toEqual(expectedContents);
-                            if (response === expectedContents) {
-                                expect(res.statusCode).toEqual(200);
-                            }
-                            done = true;
-                        });
-                    }).on('error', errorCB);
-                });
-
-                waitsFor(function() {
-                    return done || failed;
-                }, 'the HTTP request should complete', timeout);
-
-                runs(function() {
-                    if (!failed) {
-                        expect(done).toBeTruthy();
-                        expect(errorCB).not.toHaveBeenCalled();
-                    }
-                    opts && 'cleanup' in opts && opts.cleanup();
-                    server && server.close();
-                });
-            };
-        }
-
-        itifapps([
-            'android',
-            'ant',
-        ])('should fall back to assets/www on Android', function() {
-            payloads.android = 'This is the Android test file.';
-            test_serve('android', '/test.html', payloads.android, {timeout: 20000})();
-        });
-
-        itifapps([
-            'blackberry-nativepackager',
-            'blackberry-deploy',
-            'blackberry-signer',
-            'blackberry-debugtokenrequest',
-        ])('should fall back to www on BlackBerry10', function() {
-            payloads.blackberry10 = 'This is the BlackBerry10 test file.';
-            test_serve('blackberry10', '/test.html', payloads.blackberry10, {timeout: 10000})();
-        });
-
-        itifapps([
-            'xcodebuild',
-        ])('should fall back to www on iOS', function() {
-            payloads.ios = 'This is the iOS test file.';
-            test_serve('ios', '/test.html', payloads.ios, {timeout: 10000})();
-        });
-    });
-});
-

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/spec-cordova/test-config-2.xml
----------------------------------------------------------------------
diff --git a/spec-cordova/test-config-2.xml b/spec-cordova/test-config-2.xml
deleted file mode 100644
index bbfbffb..0000000
--- a/spec-cordova/test-config-2.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<widget android-packageName="io.cordova.hellocordova.android" id="io.cordova.hellocordova" ios-CFBundleIdentifier="io.cordova.hellocordova.ios" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
-    <name>Hello Cordova</name>
-    <description>
-        A sample Apache Cordova application that responds to the deviceready event.
-    </description>
-    <author email="dev@cordova.apache.org" href="http://cordova.io">
-        Apache Cordova Team
-    </author>
-    <content src="index.html" />
-    
-    <platform name="ios">
-        <preference name="orientation" value="all" />
-    </platform>
-    <platform name="android">
-        <preference name="orientation" value="sensorLandscape" />
-    </platform>
-    
-    <access origin="http://*.apache.org" />
-    <access origin="https://*.apache.org" />
-    
-    <allow-navigation href="http://*.apache.org" />
-    <allow-navigation href="https://*.apache.org" />
-     
-</widget>

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/spec-cordova/test-config.xml
----------------------------------------------------------------------
diff --git a/spec-cordova/test-config.xml b/spec-cordova/test-config.xml
deleted file mode 100644
index ffe8cf7..0000000
--- a/spec-cordova/test-config.xml
+++ /dev/null
@@ -1,114 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<widget android-packageName="io.cordova.hellocordova.android" id="io.cordova.hellocordova" ios-CFBundleIdentifier="io.cordova.hellocordova.ios" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
-    <name>Hello Cordova</name>
-    <description>
-        A sample Apache Cordova application that responds to the deviceready event.
-    </description>
-    <author email="dev@cordova.apache.org" href="http://cordova.io">
-        Apache Cordova Team
-    </author>
-    <content src="index.html" />
-    
-    <!-- 
-        <access> tests
-        
-        Test wildcard allow all. Note in ATS you can open up all, and have restrictions for certain domains.
-        This is to allow for example, an in-app-browser (*) but your own server communications must be https, for example.
-     -->
-    <access origin="*" />
-    <!-- https, with subdomain wildcard, with attribute differences -->
-    <access origin="https://*.server01.com" /> <!-- equivalent to the next line -->
-    <access origin="https://*.server01.com" minimum-tls-version="TLSv1.2" requires-forward-secrecy="true" />
-    <access origin="https://*.server02.com" minimum-tls-version="TLSv1.2" requires-forward-secrecy="false" />
-    <access origin="https://*.server03.com" minimum-tls-version="TLSv1.1" requires-forward-secrecy="true" />
-    <access origin="https://*.server04.com" minimum-tls-version="TLSv1.1" requires-forward-secrecy="false" />
-    <!-- http, no subdomain wildcard, with attribute differences -->
-    <access origin="http://server05.com" /> <!-- equivalent to the next line -->
-    <access origin="http://server05.com" minimum-tls-version="TLSv1.2" requires-forward-secrecy="true" />
-    <access origin="http://server06.com" minimum-tls-version="TLSv1.2" requires-forward-secrecy="false" />
-    <access origin="http://server07.com" minimum-tls-version="TLSv1.1" requires-forward-secrecy="true" />
-    <access origin="http://server08.com" minimum-tls-version="TLSv1.1" requires-forward-secrecy="false" />
-    <!-- https, no subdomain wildcard, with attribute differences -->
-    <access origin="https://server09.com" /> <!-- equivalent to the next line -->
-    <access origin="https://server09.com" minimum-tls-version="TLSv1.2" requires-forward-secrecy="true" />
-    <access origin="https://server10.com" minimum-tls-version="TLSv1.2" requires-forward-secrecy="false" />
-    <access origin="https://server11.com" minimum-tls-version="TLSv1.1" requires-forward-secrecy="true" />
-    <access origin="https://server12.com" minimum-tls-version="TLSv1.1" requires-forward-secrecy="false" />
-
-    <!-- 
-        <allow-navigation> tests
-        
-        Test wildcard allow all. Note in ATS you can open up all, and have restrictions for certain domains.
-        This is to allow for example, an in-app-browser (*) but your own server communications must be https, for example.
-     -->
-    <allow-navigation href="*" />
-    <!-- https, with subdomain wildcard, attribute differences -->
-    <allow-navigation href="https://*.server21.com" /> <!-- equivalent to the next line -->
-    <allow-navigation href="https://*.server21.com" minimum-tls-version="TLSv1.2" requires-forward-secrecy="true" />
-    <allow-navigation href="https://*.server22.com" minimum-tls-version="TLSv1.2" requires-forward-secrecy="false" />
-    <allow-navigation href="https://*.server23.com" minimum-tls-version="TLSv1.1" requires-forward-secrecy="true" />
-    <allow-navigation href="https://*.server24.com" minimum-tls-version="TLSv1.1" requires-forward-secrecy="false" />
-    <!-- http, no subdomain, with attribute differences -->
-    <allow-navigation href="http://server25.com" /> <!-- equivalent to the next line -->
-    <allow-navigation href="http://server25.com" minimum-tls-version="TLSv1.2" requires-forward-secrecy="true" />
-    <allow-navigation href="http://server26.com" minimum-tls-version="TLSv1.2" requires-forward-secrecy="false" />
-    <allow-navigation href="http://server27.com" minimum-tls-version="TLSv1.1" requires-forward-secrecy="true" />
-    <allow-navigation href="http://server28.com" minimum-tls-version="TLSv1.1" requires-forward-secrecy="false" />
-    <!-- https, no subdomain, with attribute differences -->
-    <allow-navigation href="https://server29.com" /> <!-- equivalent to the next line -->
-    <allow-navigation href="https://server29.com" minimum-tls-version="TLSv1.2" requires-forward-secrecy="true" />
-    <allow-navigation href="https://server30.com" minimum-tls-version="TLSv1.2" requires-forward-secrecy="false" />
-    <allow-navigation href="https://server31.com" minimum-tls-version="TLSv1.1" requires-forward-secrecy="true" />
-    <allow-navigation href="https://server32.com" minimum-tls-version="TLSv1.1" requires-forward-secrecy="false" />
-    <!-- wildcard scheme, with subdomain wildcard, with attribute differences -->
-    <allow-navigation href="*://*.server33.com" /> <!-- equivalent to the next line -->
-    <allow-navigation href="*://*.server33.com" minimum-tls-version="TLSv1.2" requires-forward-secrecy="true" />
-    <allow-navigation href="*://*.server34.com" minimum-tls-version="TLSv1.2" requires-forward-secrecy="false" />
-    <allow-navigation href="*://*.server35.com" minimum-tls-version="TLSv1.1" requires-forward-secrecy="true" />
-    <allow-navigation href="*://*.server36.com" minimum-tls-version="TLSv1.1" requires-forward-secrecy="false" />
-    <!-- wildcard scheme, no subdomain, with attribute differences -->
-    <allow-navigation href="*://server37.com" /> <!-- equivalent to the next line -->
-    <allow-navigation href="*://server37.com" minimum-tls-version="TLSv1.2" requires-forward-secrecy="true" />
-    <allow-navigation href="*://server38.com" minimum-tls-version="TLSv1.2" requires-forward-secrecy="false" />
-    <allow-navigation href="*://server39.com" minimum-tls-version="TLSv1.1" requires-forward-secrecy="true" />
-    <allow-navigation href="*://server40.com" minimum-tls-version="TLSv1.1" requires-forward-secrecy="false" />
-
-    <!-- https://issues.apache.org/jira/browse/CB-9758 Mobilespec crashes adding plugins on OS X -->
-    <allow-navigation href="data:*" />
-    <allow-navigation href="http:*" />
-    <allow-navigation href="https:*" />
-    <allow-navigation href="http://*" />
-    <allow-navigation href="https://*" />
-
-    <preference name="fullscreen" value="true" />
-    <preference name="webviewbounce" value="true" />
-    <preference name="orientation" value="portrait" />
-    <icon id="icon" src="icon.png" />
-    <icon height="255" id="logo" src="logo.png" width="255" />
-    <platform name="android">
-        <icon density="mdpi" height="255" src="logo-android.png" width="255" />
-        <preference name="android-minSdkVersion" value="10" />
-        <preference name="orientation" value="landscape" />
-    </platform>
-    <plugin name="org.apache.cordova.pluginwithvars">
-        <variable name="var" value="varvalue" />
-    </plugin>
-    <plugin name="org.apache.cordova.pluginwithurl" src="http://cordova.apache.org/pluginwithurl" />
-    <plugin name="org.apache.cordova.pluginwithversion" version="1.1.1" />
-    <plugin name="org.apache.cordova.pluginwithurlandversion" src="http://cordova.apache.org/pluginwithurlandversion" version="1.1.1" />
-    <plugin name="org.apache.cordova.justaplugin" />
-    <feature name="Legacy plugin entry with version">
-        <param name="id" value="org.apache.cordova.legacyfeatureversion" />
-        <param name="version" value="1.2.3" />
-        <param name="aVar" value="aValue" />
-    </feature>
-    <feature name="Legacy plugin entry with url">
-        <param name="id" value="org.apache.cordova.legacyfeatureurl" />
-        <param name="url" value="http://cordova.apache.org/legacyfeatureurl" />
-    </feature>
-    <feature name="Legacy plugin entry with version and url">
-        <param name="id" value="org.apache.cordova.legacyfeatureversionandurl" />
-        <param name="version" value="1.2.3" />
-        <param name="url" value="http://cordova.apache.org/legacyfeatureversionandurl" />
-    </feature>
-</widget>

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/spec-cordova/util.spec.js
----------------------------------------------------------------------
diff --git a/spec-cordova/util.spec.js b/spec-cordova/util.spec.js
deleted file mode 100644
index 99a5e4a..0000000
--- a/spec-cordova/util.spec.js
+++ /dev/null
@@ -1,310 +0,0 @@
-/**
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-*/
-
-/* jshint sub: true */
-
-var shell = require('shelljs'),
-    path = require('path'),
-    fs = require('fs'),
-    util = require('../src/cordova/util'),
-    events = require('../cordova-lib').events,
-    helpers = require('./helpers'),
-    temp = path.join(__dirname, '..', 'temp');
-
-var cwd = process.cwd();
-var home = process.env[(process.platform == 'win32') ? 'USERPROFILE' : 'HOME'];
-var origPWD = process.env['PWD'];
-
-describe('util module', function() {
-    describe('isCordova method', function() {
-        afterEach(function() {
-            process.env['PWD'] = origPWD;
-            process.chdir(cwd);
-        });
-        function removeDir(directory) {
-            shell.rm('-rf', directory);
-        }
-        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('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('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);
-            shell.mkdir('-p', anotherdir);
-            shell.mkdir('-p', path.join(somedir, 'www', 'config.xml'));
-            expect(util.isCordova(somedir)).toEqual(somedir);
-        });
-        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');
-            removeDir(somedir);
-            shell.mkdir('-p', anotherdir);
-            shell.mkdir('-p', path.join(somedir, 'www'));
-            shell.mkdir('-p', path.join(somedir, 'config.xml'));
-            process.chdir(anotherdir);
-            expect(util.isCordova()).toEqual(somedir);
-        });
-        it('Test 005 : should use PWD when available', function() {
-            var somedir = path.join(home,'somedir');
-            var anotherdir = path.join(somedir, 'anotherdir');
-            removeDir(somedir);
-            shell.mkdir('-p', anotherdir);
-            shell.mkdir('-p', path.join(somedir, 'www', 'config.xml'));
-            process.env['PWD'] = anotherdir;
-            process.chdir(path.sep);
-            expect(util.isCordova()).toEqual(somedir);
-        });
-        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);
-            shell.mkdir('-p', anotherdir);
-            shell.mkdir('-p', path.join(somedir, 'www', 'config.xml'));
-            process.env['PWD'] = path.sep;
-            process.chdir(anotherdir);
-            expect(util.isCordova()).toEqual(somedir);
-        });
-        it('Test 007 : should ignore platform www/config.xml', function() {
-            var somedir = path.join(home,'somedir');
-            var anotherdir = path.join(somedir, 'anotherdir');
-            removeDir(somedir);
-            shell.mkdir('-p', anotherdir);
-            shell.mkdir('-p', path.join(anotherdir, 'www', 'config.xml'));
-            shell.mkdir('-p', path.join(somedir, 'www'));
-            shell.mkdir('-p', path.join(somedir, 'config.xml'));
-            expect(util.isCordova(anotherdir)).toEqual(somedir);
-        });
-    });
-    describe('deleteSvnFolders method', function() {
-        afterEach(function() {
-            shell.rm('-rf', temp);
-        });
-        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');
-            var two_svn = path.join(two, '.svn');
-            shell.mkdir('-p', one_svn);
-            shell.mkdir('-p', two_svn);
-            util.deleteSvnFolders(temp);
-            expect(fs.existsSync(one_svn)).toEqual(false);
-            expect(fs.existsSync(two_svn)).toEqual(false);
-        });
-    });
-    describe('listPlatforms method', function() {
-        afterEach(function() {
-            shell.rm('-rf', temp);
-        });
-        it('Test 009 : should only return supported platform directories present in a cordova project dir', function() {
-            var platforms = path.join(temp, 'platforms');
-
-            shell.mkdir('-p', path.join(platforms, 'android'));
-            shell.mkdir('-p', path.join(platforms, 'ios'));
-            shell.mkdir('-p', path.join(platforms, 'wp8'));
-            shell.mkdir('-p', path.join(platforms, 'atari'));
-
-            // create a typical platforms.json file, it should not be returned as a platform
-            shell.exec('touch ' + path.join(platforms,'platforms.json'));
-
-            var res = util.listPlatforms(temp);
-            expect(res.length).toEqual(4);
-        });
-    });
-    describe('getInstalledPlatformsWithVersions method', function() {
-        afterEach(function() {
-            shell.rm('-rf', temp);
-        });
-        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');
-
-            shell.mkdir('-p', android);
-
-            shell.cp('-R',
-                path.join(__dirname, 'fixtures', 'platforms', helpers.testPlatform), platforms);
-            util.getInstalledPlatformsWithVersions(temp)
-            .then(function(platformMap) {
-                expect(platformMap['android']).toBe('3.1.0');
-            }).fin(done);
-        });
-    });
-    describe('findPlugins method', function() {
-        afterEach(function() {
-            shell.rm('-rf', temp);
-        });
-        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');
-            var wp8_dir = path.join(plugins, 'wp8');
-            var atari = path.join(plugins, 'atari');
-            shell.mkdir('-p', android);
-            shell.mkdir('-p', ios);
-            shell.mkdir('-p', wp8_dir);
-            shell.mkdir('-p', atari);
-            var res = util.findPlugins(plugins);
-            expect(res.length).toEqual(4);
-        });
-        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');
-            var svn = path.join(plugins, '.svn');
-            shell.mkdir('-p', android);
-            shell.mkdir('-p', ios);
-            shell.mkdir('-p', svn);
-            var res = util.findPlugins(plugins);
-            expect(res.length).toEqual(2);
-            expect(res.indexOf('.svn')).toEqual(-1);
-        });
-        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');
-            var cvs = path.join(plugins, 'CVS');
-            shell.mkdir('-p', android);
-            shell.mkdir('-p', ios);
-            shell.mkdir('-p', cvs);
-            var res = util.findPlugins(plugins);
-            expect(res.length).toEqual(2);
-            expect(res.indexOf('CVS')).toEqual(-1);
-        });
-    });
-
-    describe('preprocessOptions method', function() {
-
-        var isCordova, listPlatforms;
-        var DEFAULT_OPTIONS = {
-            // 'android' is here because we create a spy
-            // for listPlatforms below that returns 'android'
-            platforms: ['android'],
-            verbose: false
-        };
-
-        beforeEach(function() {
-            isCordova = spyOn(util, 'isCordova').and.returnValue('/fake/path');
-            listPlatforms = spyOn(util, 'listPlatforms').and.returnValue(['android']);
-        });
-
-        it('Test 014 : should throw if called outside of cordova project', function() {
-            isCordova.and.returnValue(false);
-            expect(function() { util.preProcessOptions(); }).toThrow();
-        });
-
-        it('Test 015 : should throw when no platforms added to project', function() {
-            listPlatforms.and.returnValue([]);
-            expect(function () { util.preProcessOptions(); }).toThrow();
-        });
-
-        it('Test 016 : should return default options when no arguments passed', function() {
-            expect(util.preProcessOptions()).toEqual(jasmine.objectContaining(DEFAULT_OPTIONS));
-        });
-
-        it('Test 017 : should accept single string argument as platform name', function() {
-            expect(util.preProcessOptions('ios')).toEqual(jasmine.objectContaining({platforms: ['ios']}));
-        });
-
-        it('Test 018 : should accept array of strings as platform names', function() {
-            expect(util.preProcessOptions(['ios', 'windows'])).toEqual(jasmine.objectContaining({platforms: ['ios', 'windows']}));
-        });
-
-        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('Test 020 : should pick buildConfig if no option is provided, but buildConfig.json exists', function() {
-            spyOn(fs, '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')}}));
-        });
-
-        describe('ensurePlatformOptionsCompatible', function() {
-
-            var unknownOptions = ['--foo', '--appx=uap', '--gradleArg=--no-daemon'];
-            var validOptions = ['--debug', '--release', '--device', '--emulator', '--nobuild', '--list',
-                    '--buildConfig=/fake/path/build.json', '--target=foo', '--archs="x86 x64"'];
-
-            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('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.argsFor(0)).toMatch('consider updating your cordova.* method calls');
-                events.removeListener('warn', warnSpy);
-            });
-
-            it('Test 023 : should convert options Array into object with \'argv\' field', function() {
-                expect(util.preProcessOptions({options: []}))
-                    .toEqual(jasmine.objectContaining({options: {argv: []}}));
-            });
-
-            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,
-                    'nobuild': true, 'list': true,
-                    'buildConfig': '/fake/path/build.json',
-                    'target': 'foo',
-                    'archs': '\"x86 x64\"'
-                };
-
-                expect(util.preProcessOptions({options: validOptions}).options)
-                    .toEqual(jasmine.objectContaining(expectedResult));
-
-                validOptions.forEach(function (validOption) {
-                    expect(util.preProcessOptions({options: validOptions}).options.argv)
-                        .not.toContain(validOption);
-                });
-            });
-
-            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'
-                };
-
-                expect(util.preProcessOptions({options: unknownOptions}).options)
-                    .toEqual(jasmine.objectContaining(expectedResult));
-            });
-
-            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/d164a88f/spec-plugman/.jshintrc
----------------------------------------------------------------------
diff --git a/spec-plugman/.jshintrc b/spec-plugman/.jshintrc
deleted file mode 100644
index 17eae32..0000000
--- a/spec-plugman/.jshintrc
+++ /dev/null
@@ -1,11 +0,0 @@
-{
-    "node": true
-  , "bitwise": true
-  , "undef": true
-  , "trailing": true
-  , "quotmark": true
-  , "indent": 4
-  , "unused": "vars"
-  , "latedef": "nofunc"
-  , "jasmine": true
-}

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/spec-plugman/add_platform.spec.js
----------------------------------------------------------------------
diff --git a/spec-plugman/add_platform.spec.js b/spec-plugman/add_platform.spec.js
deleted file mode 100644
index 15524c7..0000000
--- a/spec-plugman/add_platform.spec.js
+++ /dev/null
@@ -1,74 +0,0 @@
-/**
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-*/
-var platform = require('../src/plugman/platform'),
-    Q = require('q'),
-    fs = require('fs');
-
-describe( 'platform add/remove', 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();
-        expect(sPlatformA).toHaveBeenCalled();
-        platform.remove();
-        expect(sPlatformR).toHaveBeenCalled();
-    });
-});
-
-
-describe( 'platform add', function() {
-    var done = false,
-        existsSync;
-
-    beforeEach( function() {
-        existsSync = spyOn( fs, 'existsSync' ).and.returnValue( false );
-        done = false;
-    });
-    it( 'Test 002 : 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();
-        });
-    }, 6000);
-});
-
-
-describe( 'platform remove', function() {
-    var done = false,
-        existsSync;
-        
-    beforeEach( function() {
-        existsSync = spyOn( fs, 'existsSync' ).and.returnValue( false );
-        done = false;
-    });
-    it( 'Test 003 : 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/d164a88f/spec-plugman/common.js
----------------------------------------------------------------------
diff --git a/spec-plugman/common.js b/spec-plugman/common.js
deleted file mode 100644
index dd29539..0000000
--- a/spec-plugman/common.js
+++ /dev/null
@@ -1,80 +0,0 @@
-/**
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-*/
-
-//     nopt = require('nopt');
-
-// var known_opts = {
-//     'verbose' : Boolean,
-//     'debug' : Number
-// }, shortHands = { 'd' : ['--debug'] };
-
-// var opt = nopt(known_opts, shortHands);
-// var mapNames = {
-//     'verbose' : 7,
-//     'info'    : 6,
-//     'notice'  : 5,
-//     'warn'    : 4,
-//     'error'   : 3
-// }
-
-// if(opt.verbose)
-//     opt.debug = 7;
-
-// if(opt.debug) {
-//     for(var i in mapNames) {
-//         if(mapNames[i] <= opt.debug)
-//             plugman.on(i, console.log);
-//     }
-
-//     if(opt.debug >= 6)
-//         plugman.on('log', console.log);
-// }
-var common = {};
-
-module.exports = common = {
-    spy: {
-        getInstall: function(emitSpy){
-            return common.spy.startsWith(emitSpy, 'Install start');
-        },
-
-        getDeleted: function(emitSpy){
-            return common.spy.startsWith(emitSpy, 'Deleted');
-        },
-
-        startsWith: function(emitSpy, string)
-        {
-            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 = [];
-            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/d164a88f/spec-plugman/config.spec.js
----------------------------------------------------------------------
diff --git a/spec-plugman/config.spec.js b/spec-plugman/config.spec.js
deleted file mode 100644
index 99c9dcb..0000000
--- a/spec-plugman/config.spec.js
+++ /dev/null
@@ -1,30 +0,0 @@
-/**
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-*/
-var config = require('../src/plugman/config'),
-    Q = require('q'),
-    registry = require('../src/plugman/registry/registry');
-
-describe('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);
-        expect(sConfig).toHaveBeenCalledWith(params);
-    });
-});

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/spec-plugman/create.spec.js
----------------------------------------------------------------------
diff --git a/spec-plugman/create.spec.js b/spec-plugman/create.spec.js
deleted file mode 100644
index 64b0cdc..0000000
--- a/spec-plugman/create.spec.js
+++ /dev/null
@@ -1,77 +0,0 @@
-/**
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-*/
-var create = require('../src/plugman/create'),
-    Q = require('q'),
-    fs = require('fs'),
-    shell = require('shelljs'),
-    plugman = require('../src/plugman/plugman');
-
-describe( 'create', function() {
-    it( 'Test 001 : should call create', function() {
-        var sCreate = spyOn( plugman, 'create' ).and.returnValue(Q());
-        plugman.create();
-        expect(sCreate).toHaveBeenCalled();
-    });
-});
-
-describe( 'create plugin', function() {
-    var done = false,
-        existsSync,
-        mkdir,
-        writeFileSync;
-
-    beforeEach( function() {
-        existsSync = spyOn( fs, 'existsSync' ).and.returnValue( false );
-        mkdir = spyOn( shell, 'mkdir' ).and.returnValue( true );
-        writeFileSync = spyOn( fs, 'writeFileSync' );
-        done = false;
-    });
-
-    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) {
-            expect(errMsg).toBeUndefined();
-            done();
-        });
-    }, 6000);
-});
-
-describe( 'create plugin in existing plugin', function() {
-    var done = false,
-        existsSync;
-
-    beforeEach( function() {
-        existsSync = spyOn( fs, 'existsSync' ).and.returnValue( true );
-        done = false;
-    });
-
-    it( 'Test 003 : should fail due to an existing plugin.xml', function(done) {
-        create()
-        .then(function(result) {
-            expect(false).toBe(true);
-            done();
-        }).fail(function err(errMsg) {
-            expect(errMsg.toString()).toContain( 'plugin.xml already exists. Are you already in a plugin?'  );
-            done();
-        });
-    }, 6000);
-});

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/spec-plugman/info.spec.js
----------------------------------------------------------------------
diff --git a/spec-plugman/info.spec.js b/spec-plugman/info.spec.js
deleted file mode 100644
index beaa03f..0000000
--- a/spec-plugman/info.spec.js
+++ /dev/null
@@ -1,33 +0,0 @@
-/**
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-*/
-var search = require('../src/plugman/info'),
-    Q = require('q'),
-    registry = require('../src/plugman/registry/registry');
-
-describe('info', function() {
-    it('Test 001 : should show plugin info', function() {
-        var sSearch = spyOn(registry, 'info').and.returnValue(Q({
-            name: 'fakePlugin',
-            version: '1.0.0',
-            engines: [{ name: 'plugman', version: '>=0.11' }]
-        }));
-        search(new Array('myplugin'));
-        expect(sSearch).toHaveBeenCalledWith(['myplugin']);
-    });
-});

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/spec-plugman/install.spec.js
----------------------------------------------------------------------
diff --git a/spec-plugman/install.spec.js b/spec-plugman/install.spec.js
deleted file mode 100644
index 388d277..0000000
--- a/spec-plugman/install.spec.js
+++ /dev/null
@@ -1,540 +0,0 @@
-/**
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-*/
-
-/* jshint sub:true */
-
-var path = require('path'),
-    install = require('../src/plugman/install'),
-    actions = require('cordova-common').ActionStack,
-    xmlHelpers = require('cordova-common').xmlHelpers,
-    et      = require('elementtree'),
-    PlatformJson = require('cordova-common').PlatformJson,
-    events = require('cordova-common').events,
-    plugman = require('../src/plugman/plugman'),
-    platforms = require('../src/plugman/platforms/common'),
-    knownPlatforms  = require('../src/platforms/platforms'),
-    common  = require('./common'),
-    fs      = require('fs'),
-    os      = require('os'),
-    path    = require('path'),
-    shell   = require('shelljs'),
-    child_process = require('child_process'),
-    semver  = require('semver'),
-    Q = require('q'),
-    spec    = __dirname,
-    done    = false,
-    srcProject = path.join(spec, 'projects', 'android'),
-    temp_dir = path.join(fs.realpathSync(os.tmpdir()), 'plugman-test'),
-    project = path.join(temp_dir, 'android_install'),
-    plugins_dir = path.join(spec, 'plugins'),
-    plugins_install_dir = path.join(project, 'cordova', 'plugins'),
-    plugins = {
-        'org.test.plugins.dummyplugin' : path.join(plugins_dir, 'org.test.plugins.dummyplugin'),
-        'com.cordova.engine' : path.join(plugins_dir, 'com.cordova.engine'),
-        'com.cordova.engine-android' : path.join(plugins_dir, 'com.cordova.engine-android'),
-        'org.test.plugins.childbrowser' : path.join(plugins_dir, 'org.test.plugins.childbrowser'),
-        'com.adobe.vars' : path.join(plugins_dir, 'com.adobe.vars'),
-        'org.test.defaultvariables' : path.join(plugins_dir, 'org.test.defaultvariables'),
-        'org.test.invalid.engine.script' : path.join(plugins_dir, 'org.test.invalid.engine.script'),
-        'org.test.invalid.engine.no.platform' : path.join(plugins_dir, 'org.test.invalid.engine.no.platform'),
-        'org.test.invalid.engine.no.scriptSrc' : path.join(plugins_dir, 'org.test.invalid.engine.no.scriptSrc'),
-        'A' : path.join(plugins_dir, 'dependencies', 'A'),
-        'B' : path.join(plugins_dir, 'dependencies', 'B'),
-        'C' : path.join(plugins_dir, 'dependencies', 'C'),
-        'F' : path.join(plugins_dir, 'dependencies', 'F'),
-        'G' : path.join(plugins_dir, 'dependencies', 'G'),
-        'I' : path.join(plugins_dir, 'dependencies', 'I'),
-        'C@1.0.0' : path.join(plugins_dir, 'dependencies', 'C@1.0.0')
-    },
-    results = {},
-    TIMEOUT = 90000,
-    superspawn = require('cordova-common').superspawn;
-
-
-// Pre-crete the temp dir, without it the test fails.
-shell.mkdir('-p', temp_dir);
-
-var existsSync = fs.existsSync;
-
-// Mocked functions for tests
-var fake = {
-    'existsSync' : {
-        'noPlugins' : function(path){
-            // fake installed plugin directories as 'not found'
-            if( path.slice(-5) !== '.json' && path.indexOf(plugins_install_dir) >= 0) {
-                return false;
-            }
-
-            return existsSync(path);
-        }
-    },
-    'fetch' : {
-        'dependencies' : function(id, dir) {
-            if(id == plugins['A'])
-                return Q(id); // full path to plugin
-            return Q( path.join(plugins_dir, 'dependencies', id) );
-        }
-    }
-};
-
-var TEST_XML = '<?xml version="1.0" encoding="UTF-8"?>\n' +
-    '<widget xmlns     = "http://www.w3.org/ns/widgets"\n' +
-    '        xmlns:cdv = "http://cordova.apache.org/ns/1.0"\n' +
-    '        id        = "io.cordova.hellocordova"\n' +
-    '        version   = "0.0.1">\n' +
-    '    <name>Hello Cordova</name>\n' +
-    '    <description>\n' +
-    '        A sample Apache Cordova application that responds to the deviceready event.\n' +
-    '    </description>\n' +
-    '    <author href="http://cordova.io" email="dev@cordova.apache.org">\n' +
-    '        Apache Cordova Team\n' +
-    '    </author>\n' +
-    '    <content src="index.html" />\n' +
-    '    <access origin="*" />\n' +
-    '    <preference name="fullscreen" value="true" />\n' +
-    '    <preference name="webviewbounce" value="true" />\n' +
-    '</widget>\n';
-
-describe('plugman install start', function() {
-    var config_queue_add, proc, actions_push, ca, emit;
-
-    beforeEach(function() {
-        config_queue_add = spyOn(PlatformJson.prototype, 'addInstalledPluginToPrepareQueue');
-        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').and.callFake(function(path) {
-            if (/config.xml$/.test(path)) return new et.ElementTree(et.XML(TEST_XML));
-            return origParseElementtreeSync(path);
-        });
-    });
-
-    it('Test 001 : plugman install start', function(done) {
-        shell.rm('-rf', project);
-        shell.cp('-R', path.join(srcProject, '*'), project);
-
-        // Every time when addPlugin is called it will return some truthy value
-        var returnValueIndex = 0;
-        var returnValues = [true, {}, [], 'foo', function(){}];
-        var api = knownPlatforms.getPlatformApi('android', project);
-        var addPluginOrig = api.addPlugin;
-        spyOn(api, 'addPlugin').and.callFake(function () {
-            return addPluginOrig.apply(api, arguments)
-            .thenResolve(returnValues[returnValueIndex++]);
-        });
-
-        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();
-            done();
-        });
-    }, TIMEOUT);
-});
-
-describe('install', function() {
-    var chmod, exec, add_to_queue, cp, rm, fetchSpy;
-    var spawnSpy;
-
-    beforeEach(function() {
-
-        exec = spyOn(child_process, 'exec').and.callFake(function(cmd, cb) {
-            cb(false, '', '');
-        });
-        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, '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;
-    });
-
-    describe('success', 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.');
-        }, TIMEOUT);
-        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.');
-        }, TIMEOUT);
-        it('Test 004 : should interpolate variables into <info> tags', function() {
-            // VariableBrowser
-            expect(results['emit_results'][2]).toBe('Remember that your api key is batman!');
-        }, TIMEOUT);
-        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'] );
-            install('android', project, 'CLEANYOURSHORTS')
-            .fail(function(err){
-                expect(err).toBeUndefined();
-            })
-            .fin(function () {
-                expect(fetchSpy).toHaveBeenCalled();
-                done();
-            });
-        });
-        
-        describe('engine versions', function () {
-            var fail, satisfies;
-            beforeEach(function () {
-                fail = jasmine.createSpy('fail');
-                satisfies = spyOn(semver, 'satisfies').and.returnValue(true);
-                spyOn(PlatformJson.prototype, 'isPluginInstalled').and.returnValue(false);
-            });
-
-            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)
-                .fin(function () {
-                    expect(satisfies).toHaveBeenCalledWith('2.5.0','>=1.0.0', true);
-                    done();
-                });
-            }, TIMEOUT);
-            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)
-                .fin(function () {
-                    expect(satisfies).toHaveBeenCalledWith('3.0.0-rc1','>=1.0.0', true);
-                    done();
-                });
-            }, TIMEOUT);
-            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)
-                .fin(function() {
-                    expect(satisfies).toHaveBeenCalledWith('3.1.0','>=3.1.0', true);
-                    done();
-                });
-            }, TIMEOUT);
-            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.count()).toBe(3);
-                    // <engine name="cordova" VERSION=">=3.0.0"/>
-                    expect(satisfies.calls.argsFor(0)).toEqual([ cordovaVersion, '>=3.0.0', true ]);
-                    // <engine name="cordova-android" VERSION=">=3.1.0"/>
-                    expect(satisfies.calls.argsFor(1)).toEqual([ '18.0.0', '>=3.1.0', true ]);
-                    // <engine name="android-sdk" VERSION=">=18"/>
-                    expect(satisfies.calls.argsFor(2)).toEqual([ '18.0.0','>=18', true ]);
-                    done();
-                });
-            }, TIMEOUT);
-            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.count()).toBe(4);
-                    // <engine name="cordova" version=">=2.3.0"/>
-                    expect(satisfies.calls.argsFor(0)).toEqual([ cordovaVersion, '>=2.3.0', true ]);
-                    // <engine name="cordova-plugman" version=">=0.10.0" />
-                    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.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.argsFor(3)).toEqual([ null, '>=3.0.0', true ]);
-                    done();
-                });
-            }, TIMEOUT);
-            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 () {
-                    expect(satisfies).not.toHaveBeenCalledWith('','>=3.0.0', true);
-                })
-                .fin(done);
-            }, TIMEOUT);
-        });
-
-        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() {
-                expect(spy).not.toHaveBeenCalledWith('','>=3.0.0');
-            }).fail(function(err) {
-                expect(err).toBeUndefined();
-            }).fin(done);
-        }, TIMEOUT);
-
-        describe('with dependencies', function() {
-            var emit;
-            beforeEach(function() {
-                spyOn(fs, 'existsSync').and.callFake( fake['existsSync']['noPlugins'] );
-                fetchSpy.and.callFake( fake['fetch']['dependencies'] );
-                emit = spyOn(events, 'emit');
-                exec.and.callFake(function(cmd, cb) {
-                    cb(null, '9.0.0\n');
-                });
-
-                function PlatformApiMock() {}
-                PlatformApiMock.addPlugin = function() {
-                    return Q();
-                };
-                spyOn(knownPlatforms, 'getPlatformApi').and.returnValue(PlatformApiMock);
-            });
-
-            it('Test 015 : should install specific version of dependency', function(done) {
-                // Plugin I depends on C@1.0.0
-                emit.calls.reset();
-                return install('android', project, plugins['I'])
-                .then(function() {
-                    var install = common.spy.getInstall(emit);
-                    expect(fetchSpy).toHaveBeenCalledWith('C@1.0.0', jasmine.any(String), jasmine.any(Object));
-                    expect(install).toEqual([
-                        'Install start for "C" on android.',
-                        'Install start for "I" on android.'
-                    ]);
-                    done();
-                }, TIMEOUT);
-            }, TIMEOUT);
-
-            it('Test 016 : 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.'
-                    ]);
-                    done();
-                }); 
-            }, TIMEOUT);
-
-            it('Test 017 : 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.'
-                    ]);
-                    done();
-                });
-            }, TIMEOUT);
-
-            it('Test 018 : should process all dependent plugins with alternate routes to the same plugin', function(done) {
-                // Plugin F depends on A, C, D and E
-                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.',
-                        'Install start for "A" on android.',
-                        'Install start for "D" on android.',
-                        'Install start for "F" on android.'
-                    ]);
-                    done();
-                });
-            }, TIMEOUT);
-
-            it('Test 019 : should throw if there is a cyclic dependency', function(done) {
-                return install('android', project, plugins['G'])
-                .then(function() {
-                    common.spy.getInstall(emit);
-                }).fail(function err (errMsg) {
-                    expect(errMsg.toString()).toContain('Cyclic dependency from G to H');
-                }).fin(done);
-            }, TIMEOUT);
-
-            it('Test 020 : 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();
-                });
-            }, TIMEOUT);
-
-            it('Test 021 : 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(){
-                    return {
-                        source: {type: 'dir', url: path.join(plugins['B'], '..', 'meta')}
-                    };
-                });
-
-                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.'
-                    ]);
-
-                    var copy = common.spy.startsWith(emit, 'Copying from');
-                    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();
-                });
-            }, TIMEOUT);
-        });
-    });
-
-    describe('failure', function() {
-        it('Test 023 : 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'])
-            .then(success)
-            .fail(function (err) {
-                expect(err.toString()).toContain('Variable(s) missing: API_KEY');
-            })
-            .fin(function () {
-                expect(success).not.toHaveBeenCalled();
-                done();
-            });
-        }, TIMEOUT);
-
-        it('Test 024 : 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) {
-                expect(false).toBe(true);
-                done();
-            }).fail(function err(errMsg) {
-                expect(errMsg.toString()).toContain('"git" command line tool is not installed: make sure it is accessible on your PATH.');
-                done();
-            });
-        }, TIMEOUT);
-
-        it('Test 025 :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(result).toBe(true);
-                done();
-            })
-            .fail(function (error) {
-                expect(error).toBeUndefined();
-            });
-        }, TIMEOUT);
-
-        it('Test 026 : 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="*" />
-                    expect(err).toBeDefined();
-                    expect(err.message.indexOf('Security violation:')).toBe(0);
-                });
-
-            spyOn(PlatformJson.prototype, 'isPluginInstalled').and.returnValue(false);
-            install('android', project, plugins['org.test.invalid.engine.script'])
-                .then(success)
-                .fail(fail)
-                .fin(function() {
-                    expect(success).not.toHaveBeenCalled();
-                    expect(fail).toHaveBeenCalled();
-                    done();
-                });
-        }, TIMEOUT);
-        it('Test 027 : 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);
-            install('android', project, plugins['org.test.invalid.engine.no.platform'])
-                .then(success)
-                .fail(fail)
-                .fin(function() {
-                    expect(success).not.toHaveBeenCalled();
-                    expect(fail).toHaveBeenCalled();
-                    done();
-                });
-        }, TIMEOUT);
-        it('Test 028 : 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);
-            install('android', project, plugins['org.test.invalid.engine.no.scriptSrc'])
-                .then(success)
-                .fail(fail)
-                .fin(function() {
-                    expect(success).not.toHaveBeenCalled();
-                    expect(fail).toHaveBeenCalled();
-                    done();
-                });
-        }, TIMEOUT);
-    });
-});
-
-describe('end', function() {
-
-    it('Test 034 : end', function() {
-        shell.rm('-rf', temp_dir);
-    }, TIMEOUT);
-});

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/spec-plugman/owner.spec.js
----------------------------------------------------------------------
diff --git a/spec-plugman/owner.spec.js b/spec-plugman/owner.spec.js
deleted file mode 100644
index 868c364..0000000
--- a/spec-plugman/owner.spec.js
+++ /dev/null
@@ -1,30 +0,0 @@
-/**
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-*/
-var owner = require('../src/plugman/owner'),
-    Q = require('q'),
-    registry = require('../src/plugman/registry/registry');
-
-describe('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);
-        expect(sOwner).toHaveBeenCalledWith(params);
-    });
-});


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


Mime
View raw message