cordova-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From fil...@apache.org
Subject [50/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:22:31 GMT
http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/.jshintignore
----------------------------------------------------------------------
diff --git a/.jshintignore b/.jshintignore
index 4422d84..facec45 100644
--- a/.jshintignore
+++ b/.jshintignore
@@ -1,4 +1,4 @@
-spec-cordova/fixtures/*
-spec-plugman/projects/*
-spec-plugman/plugins/*
-spec-cordova/temp/*
+spec/cordova/fixtures/**
+spec/plugman/projects/**
+spec/plugman/plugins/**
+spec/cordova/temp/**

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/.travis.yml
----------------------------------------------------------------------
diff --git a/.travis.yml b/.travis.yml
index ad22ec9..aec9bd6 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -23,5 +23,4 @@ install:
   #- (cd cordova-fetch && npm install && npm link ../cordova-common)
 
 script:
-  - "npm run e2e-tests"
-  - "npm run ci"
+  - "npm test"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/README.md
----------------------------------------------------------------------
diff --git a/README.md b/README.md
index 55b7d87..fc1a779 100644
--- a/README.md
+++ b/README.md
@@ -30,7 +30,7 @@
 # cordova-lib
 Contains npm modules used primarily by [cordova](https://github.com/apache/cordova-cli/) and [plugman](https://github.com/apache/cordova-plugman/).
 
-:warning: Report issues on the [Apache Cordova issue tracker](https://issues.apache.org/jira/issues/?jql=project%20%3D%20CB%20AND%20status%20in%20%28Open%2C%20%22In%20Progress%22%2C%20Reopened%29%20AND%20resolution%20%3D%20Unresolved%20AND%20component%20%3D%20%22CordovaLib%22%20ORDER%20BY%20priority%20DESC%2C%20summary%20ASC%2C%20updatedDate%20DESC)
+:warning: Report issues on the [Apache Cordova issue tracker](https://issues.apache.org/jira/issues/?jql=project%20%3D%20CB%20AND%20status%20in%20%28Open%2C%20%22In%20Progress%22%2C%20Reopened%29%20AND%20resolution%20%3D%20Unresolved%20AND%20component%20%3D%20%22cordova-lib%22%20ORDER%20BY%20priority%20DESC%2C%20summary%20ASC%2C%20updatedDate%20DESC)
 
 ## Setup
 * Clone this repository onto your local machine.
@@ -47,8 +47,8 @@ Contains npm modules used primarily by [cordova](https://github.com/apache/cordo
 
 This package exposes the following commands;
 
-* `npm run jshint` - runs jshint check against all js files
-* `npm run jasmine` - runs jasmine tests from spec-plugman and spec-cordova directories
-* `npm run cover` - runs istanbul code coverage tool to measure tests coverage
-
-* `npm test` - shortcut for `npm run jshint && npm run jasmine`
+* `npm run jshint` - runs a linter (jshint) on relevant source and test code
+* `npm run unit-tests` - runs the unit tests (via jasmine) from the `spec/` directory
+* `npm run cover` - runs istanbul code coverage tool to measure unit test code coverage
+* `npm run e2e-tests` - runs heavy integration tests from the `integration-tests/` directory (WARNING: these take a long time to run and rely on file and network I/O)
+* `npm test` - shortcut for running the linter, the unit tests and the integration tests

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/appveyor.yml
----------------------------------------------------------------------
diff --git a/appveyor.yml b/appveyor.yml
index 2653b3a..535f546 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -46,4 +46,4 @@ build: off
 test_script:
   - node --version
   - npm --version
-  - "npm test && npm run e2e-tests"
+  - "npm test"

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/integration-tests/HooksRunner.spec.js
----------------------------------------------------------------------
diff --git a/integration-tests/HooksRunner.spec.js b/integration-tests/HooksRunner.spec.js
index 61962ac..f076c16 100644
--- a/integration-tests/HooksRunner.spec.js
+++ b/integration-tests/HooksRunner.spec.js
@@ -27,7 +27,7 @@ var cordova = require('../src/cordova/cordova'),
     os     = require('os'),
     Q      = require('q'),
     child_process = require('child_process'),
-    helpers = require('../spec-cordova/helpers'),
+    helpers = require('../spec/helpers'),
     PluginInfo = require('cordova-common').PluginInfo,
     superspawn = require('cordova-common').superspawn,
     config = require('../src/cordova/config');
@@ -40,7 +40,7 @@ var hooksDir = path.join(project, 'hooks');
 var hooksDirDot = path.join(project, '.cordova', 'hooks');
 var scriptsDir = path.join(project, 'scripts');
 var ext = platform.match(/(win32|win64)/)?'bat':'sh';
-var fixtures = path.join(__dirname, '..', 'spec-cordova', 'fixtures');
+var fixtures = path.join(__dirname, '..', 'spec', 'cordova', 'fixtures');
 var testPluginFixturePath = path.join(fixtures, 'plugins', 'com.plugin.withhooks');
 
 var cordovaUtil = require('../src/cordova/util');

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/integration-tests/fetch.spec.js
----------------------------------------------------------------------
diff --git a/integration-tests/fetch.spec.js b/integration-tests/fetch.spec.js
index 78e3b9b..693f925 100644
--- a/integration-tests/fetch.spec.js
+++ b/integration-tests/fetch.spec.js
@@ -19,11 +19,11 @@
 
 var path = require('path'),
     shell = require('shelljs'),
-    helpers = require('../spec-cordova/helpers'),
+    helpers = require('../spec/helpers'),
     cordova = require('../src/cordova/cordova');
 
 var TIMEOUT = 90000,
-    plugins_dir = path.join(__dirname, '..', 'spec-plugman', 'plugins');
+    plugins_dir = path.join(__dirname, '..', 'spec', 'plugman', 'plugins');
 
 var plugins = {
     'Test1' : path.join(plugins_dir, 'dependencies', 'Test1'),

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/integration-tests/jasmine.json
----------------------------------------------------------------------
diff --git a/integration-tests/jasmine.json b/integration-tests/jasmine.json
index f9414b7..62b234a 100644
--- a/integration-tests/jasmine.json
+++ b/integration-tests/jasmine.json
@@ -5,8 +5,8 @@
     	"**/*[sS]pec.js"
     ],
     "helpers": [
-      "../spec-cordova/helpers.js",
-      "../spec-cordova/helper.js"
+        "../spec/helpers.js",
+        "../spec/helper.js"
     ],
     "stopSpecOnExpectationFailure": false,
     "random": false

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/integration-tests/pkgJson-restore.spec.js
----------------------------------------------------------------------
diff --git a/integration-tests/pkgJson-restore.spec.js b/integration-tests/pkgJson-restore.spec.js
index 1cee295..0913a41 100644
--- a/integration-tests/pkgJson-restore.spec.js
+++ b/integration-tests/pkgJson-restore.spec.js
@@ -16,7 +16,7 @@
     specific language governing permissions and limitations
     under the License.
     */
-    var helpers = require('../spec-cordova/helpers'),
+    var helpers = require('../spec/helpers'),
     path = require('path'),
     shell = require('shelljs'),
     events = require('cordova-common').events,
@@ -43,7 +43,7 @@ describe('tests platform/spec restore with --save', function () {
         shell.rm('-rf', project);
         // Copy then move because we need to copy everything, but that means it will copy the whole directory.
         // Using /* doesn't work because of hidden files.
-        shell.cp('-R', path.join(__dirname, '..', 'spec-cordova', 'fixtures', 'basePkgJson'), tmpDir);
+        shell.cp('-R', path.join(__dirname, '..', 'spec', 'cordova', 'fixtures', 'basePkgJson'), tmpDir);
         shell.mv(path.join(tmpDir, 'basePkgJson'), project);
         process.chdir(project);
         delete process.env.PWD;
@@ -293,7 +293,7 @@ describe('tests platform/spec restore with --save', function () {
         shell.rm('-rf', tmpDir);
         // Copy then move because we need to copy everything, but that means it will copy the whole directory.
         // Using /* doesn't work because of hidden files.
-        shell.cp('-R', path.join(__dirname, '..', 'spec-cordova', 'fixtures', 'basePkgJson'), tmpDir);
+        shell.cp('-R', path.join(__dirname, '..', 'spec', 'cordova', 'fixtures', 'basePkgJson'), tmpDir);
         shell.mv(path.join(tmpDir, 'basePkgJson'), project);
         process.chdir(project);
         events.on('results', function(res) { results = res; });
@@ -395,7 +395,7 @@ describe('files should not be modified if their platforms are identical', functi
         // Copy then move because we need to copy everything, but that means it will copy the whole directory.
         // Using /* doesn't work because of hidden files.
         // Use basePkgJson6 because pkg.json and config.xml contain only android
-        shell.cp('-R', path.join(__dirname, '..', 'spec-cordova', 'fixtures', 'basePkgJson6'), tmpDir);
+        shell.cp('-R', path.join(__dirname, '..', 'spec', 'cordova', 'fixtures', 'basePkgJson6'), tmpDir);
         shell.mv(path.join(tmpDir, 'basePkgJson6'), project);
         process.chdir(project);
         events.on('results', function(res) { results = res; });
@@ -465,7 +465,7 @@ describe('update pkg.json to include platforms in config.xml', function () {
         shell.rm('-rf', tmpDir);
         // Copy then move because we need to copy everything, but that means it will copy the whole directory.
         // Using /* doesn't work because of hidden files.
-        shell.cp('-R', path.join(__dirname, '..', 'spec-cordova', 'fixtures', 'basePkgJson5'), tmpDir);
+        shell.cp('-R', path.join(__dirname, '..', 'spec', 'cordova', 'fixtures', 'basePkgJson5'), tmpDir);
         shell.mv(path.join(tmpDir, 'basePkgJson5'), project);
         process.chdir(project);
         events.on('results', function(res) { results = res; });
@@ -549,7 +549,7 @@ describe('update empty package.json to match config.xml', function () {
         shell.rm('-rf', tmpDir);
         // Copy then move because we need to copy everything, but that means it will copy the whole directory.
         // Using /* doesn't work because of hidden files.
-        shell.cp('-R', path.join(__dirname, '..', 'spec-cordova', 'fixtures', 'basePkgJson3'), tmpDir);
+        shell.cp('-R', path.join(__dirname, '..', 'spec', 'cordova', 'fixtures', 'basePkgJson3'), tmpDir);
         shell.mv(path.join(tmpDir, 'basePkgJson3'), project);
         process.chdir(project);
         events.on('results', function(res) { results = res; });
@@ -627,7 +627,7 @@ describe('update config.xml to include platforms in pkg.json', function () {
         shell.rm('-rf', tmpDir);
         // Copy then move because we need to copy everything, but that means it will copy the whole directory.
         // Using /* doesn't work because of hidden files.
-        shell.cp('-R', path.join(__dirname, '..', 'spec-cordova', 'fixtures', 'basePkgJson4'), tmpDir);
+        shell.cp('-R', path.join(__dirname, '..', 'spec', 'cordova', 'fixtures', 'basePkgJson4'), tmpDir);
         shell.mv(path.join(tmpDir, 'basePkgJson4'), project);
         process.chdir(project);
         events.on('results', function(res) { results = res; });
@@ -715,7 +715,7 @@ describe('update config.xml to use the variable found in pkg.json', function ()
         shell.rm('-rf', tmpDir);
         // Copy then move because we need to copy everything, but that means it will copy the whole directory.
         // Using /* doesn't work because of hidden files.
-        shell.cp('-R', path.join(__dirname, '..', 'spec-cordova', 'fixtures', 'basePkgJson8'), tmpDir);
+        shell.cp('-R', path.join(__dirname, '..', 'spec', 'cordova', 'fixtures', 'basePkgJson8'), tmpDir);
         shell.mv(path.join(tmpDir, 'basePkgJson8'), project);
         process.chdir(project);
         events.on('results', function(res) { results = res; });
@@ -797,7 +797,7 @@ describe('update pkg.json to include plugin and variable found in config.xml', f
         shell.rm('-rf', tmpDir);
         // Copy then move because we need to copy everything, but that means it will copy the whole directory.
         // Using /* doesn't work because of hidden files.
-        shell.cp('-R', path.join(__dirname, '..', 'spec-cordova', 'fixtures', 'basePkgJson9'), tmpDir);
+        shell.cp('-R', path.join(__dirname, '..', 'spec', 'cordova', 'fixtures', 'basePkgJson9'), tmpDir);
         shell.mv(path.join(tmpDir, 'basePkgJson9'), project);
         process.chdir(project);
         events.on('results', function(res) { results = res; });
@@ -883,7 +883,7 @@ describe('update pkg.json AND config.xml to include all plugins and merge unique
         shell.rm('-rf', tmpDir);
         // Copy then move because we need to copy everything, but that means it will copy the whole directory.
         // Using /* doesn't work because of hidden files.
-        shell.cp('-R', path.join(__dirname, '..', 'spec-cordova', 'fixtures', 'basePkgJson10'), tmpDir);
+        shell.cp('-R', path.join(__dirname, '..', 'spec', 'cordova', 'fixtures', 'basePkgJson10'), tmpDir);
         shell.mv(path.join(tmpDir, 'basePkgJson10'), project);
         process.chdir(project);
         events.on('results', function(res) { results = res; });
@@ -1005,7 +1005,7 @@ describe('update pkg.json AND config.xml to include all plugins/merge variables
         shell.rm('-rf', tmpDir);
         // Copy then move because we need to copy everything, but that means it will copy the whole directory.
         // Using /* doesn't work because of hidden files.
-        shell.cp('-R', path.join(__dirname, '..', 'spec-cordova', 'fixtures', 'basePkgJson11'), tmpDir);
+        shell.cp('-R', path.join(__dirname, '..', 'spec', 'cordova', 'fixtures', 'basePkgJson11'), tmpDir);
         shell.mv(path.join(tmpDir, 'basePkgJson11'), project);
         process.chdir(project);
         events.on('results', function(res) { results = res; });
@@ -1146,7 +1146,7 @@ describe('update config.xml to include the plugin that is in pkg.json', function
         shell.rm('-rf', tmpDir);
         // Copy then move because we need to copy everything, but that means it will copy the whole directory.
         // Using /* doesn't work because of hidden files.
-        shell.cp('-R', path.join(__dirname, '..', 'spec-cordova', 'fixtures', 'basePkgJson12'), tmpDir);
+        shell.cp('-R', path.join(__dirname, '..', 'spec', 'cordova', 'fixtures', 'basePkgJson12'), tmpDir);
         shell.mv(path.join(tmpDir, 'basePkgJson12'), project);
         process.chdir(project);
         events.on('results', function(res) { results = res; });
@@ -1246,7 +1246,7 @@ describe('platforms and plugins should be restored with config.xml even without
         // Copy then move because we need to copy everything, but that means it will copy the whole directory.
         // Using /* doesn't work because of hidden files.
         // Use basePkgJson6 because pkg.json and config.xml contain only android
-        shell.cp('-R', path.join(__dirname, '..', 'spec-cordova', 'fixtures', 'basePkgJson13'), tmpDir);
+        shell.cp('-R', path.join(__dirname, '..', 'spec', 'cordova', 'fixtures', 'basePkgJson13'), tmpDir);
         shell.mv(path.join(tmpDir, 'basePkgJson13'), project);
         process.chdir(project);
         events.on('results', function(res) { results = res; });
@@ -1396,7 +1396,7 @@ describe('tests platform/spec restore with --save', function () {
         shell.rm('-rf', tmpDir);
         // Copy then move because we need to copy everything, but that means it will copy the whole directory.
         // Using /* doesn't work because of hidden files.
-        shell.cp('-R', path.join(__dirname, '..', 'spec-cordova', 'fixtures', 'basePkgJson'), tmpDir);
+        shell.cp('-R', path.join(__dirname, '..', 'spec', 'cordova', 'fixtures', 'basePkgJson'), tmpDir);
         shell.mv(path.join(tmpDir, 'basePkgJson'), project);
         process.chdir(project);
         events.on('results', function(res) { results = res; });

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/integration-tests/pkgJson.spec.js
----------------------------------------------------------------------
diff --git a/integration-tests/pkgJson.spec.js b/integration-tests/pkgJson.spec.js
index d5cdf15..7609a09 100644
--- a/integration-tests/pkgJson.spec.js
+++ b/integration-tests/pkgJson.spec.js
@@ -16,7 +16,7 @@
     specific language governing permissions and limitations
     under the License.
 */
-var helpers = require('../spec-cordova/helpers'),
+var helpers = require('../spec/helpers'),
     path = require('path'),
     shell = require('shelljs'),
     events = require('cordova-common').events,
@@ -49,10 +49,10 @@ describe('plugin end-to-end', function() {
 
         // Copy then move because we need to copy everything, but that means it will copy the whole directory.
         // Using /* doesn't work because of hidden files.
-        shell.cp('-R', path.join(__dirname, '..', 'spec-cordova', 'fixtures', 'basePkgJson'), tmpDir);
+        shell.cp('-R', path.join(__dirname, '..', 'spec', 'cordova', 'fixtures', 'basePkgJson'), tmpDir);
         shell.mv(path.join(tmpDir, 'basePkgJson'), project);
         // Copy some platform to avoid working on a project with no platforms.
-        shell.cp('-R', path.join(__dirname, '..', 'spec-plugman', 'projects', helpers.testPlatform), path.join(project, 'platforms'));
+        shell.cp('-R', path.join(__dirname, '..', 'spec', 'plugman', 'projects', helpers.testPlatform), path.join(project, 'platforms'));
         process.chdir(project);
         delete process.env.PWD;
     });
@@ -299,8 +299,8 @@ describe('plugin end-to-end', function() {
     it('Test#025 : if you add a platform/plugin with local path, pkg.json gets updated', function (done) {
 
         var cwd = process.cwd();
-        var platformPath = path.join(testRunRoot,'spec-cordova/fixtures/platforms/cordova-browser');
-        var pluginPath = path.join(testRunRoot,'spec-cordova/fixtures/plugins/cordova-lib-test-plugin');
+        var platformPath = path.join(testRunRoot,'spec', 'cordova/fixtures/platforms/cordova-browser');
+        var pluginPath = path.join(testRunRoot,'spec', 'cordova/fixtures/plugins/cordova-lib-test-plugin');
         var pkgJsonPath = path.join(cwd,'package.json');
         var pkgJson;
         var configXmlPath = path.join(cwd, 'config.xml');
@@ -374,7 +374,7 @@ describe('platform end-to-end with --save', function () {
 
         // cp then mv because we need to copy everything, but that means it'll copy the whole directory.
         // Using /* doesn't work because of hidden files.
-        shell.cp('-R', path.join(__dirname, '..', 'spec-cordova', 'fixtures', 'basePkgJson'), tmpDir);
+        shell.cp('-R', path.join(__dirname, '..', 'spec', 'cordova', 'fixtures', 'basePkgJson'), tmpDir);
         shell.mv(path.join(tmpDir, 'basePkgJson'), project);
         process.chdir(project);
         events.on('results', function(res) { results = res; });
@@ -591,7 +591,7 @@ describe('During add, if pkg.json has a platform/plugin spec, use that one.', fu
 
         // cp then mv because we need to copy everything, but that means it'll copy the whole directory.
         // Using /* doesn't work because of hidden files.
-        shell.cp('-R', path.join(__dirname, '..', 'spec-cordova', 'fixtures', 'basePkgJson15'), tmpDir);
+        shell.cp('-R', path.join(__dirname, '..', 'spec', 'cordova', 'fixtures', 'basePkgJson15'), tmpDir);
         shell.mv(path.join(tmpDir, 'basePkgJson15'), project);
         process.chdir(project);
         events.on('results', function(res) { results = res; });
@@ -701,7 +701,7 @@ describe('During add, if config.xml has a platform/plugin spec and pkg.json does
 
         // cp then mv because we need to copy everything, but that means it'll copy the whole directory.
         // Using /* doesn't work because of hidden files.
-        shell.cp('-R', path.join(__dirname, '..', 'spec-cordova', 'fixtures', 'basePkgJson16'), tmpDir);
+        shell.cp('-R', path.join(__dirname, '..', 'spec', 'cordova', 'fixtures', 'basePkgJson16'), tmpDir);
         shell.mv(path.join(tmpDir, 'basePkgJson16'), project);
         process.chdir(project);
         events.on('results', function(res) { results = res; });
@@ -799,7 +799,7 @@ describe('During add, if add specifies a platform spec, use that one regardless
         shell.rm('-rf', tmpDir);
         // cp then mv because we need to copy everything, but that means it'll copy the whole directory.
         // Using /* doesn't work because of hidden files.
-        shell.cp('-R', path.join(__dirname, '..', 'spec-cordova', 'fixtures', 'basePkgJson17'), tmpDir);
+        shell.cp('-R', path.join(__dirname, '..', 'spec', 'cordova', 'fixtures', 'basePkgJson17'), tmpDir);
         shell.mv(path.join(tmpDir, 'basePkgJson17'), project);
         process.chdir(project);
         events.on('results', function(res) { results = res; });
@@ -905,7 +905,7 @@ describe('local path is added to config.xml without pkg.json', function () {
 
         // cp then mv because we need to copy everything, but that means it'll copy the whole directory.
         // Using /* doesn't work because of hidden files.
-        shell.cp('-R', path.join(__dirname, '..', 'spec-cordova', 'fixtures', 'basePkgJson13'), tmpDir);
+        shell.cp('-R', path.join(__dirname, '..', 'spec', 'cordova', 'fixtures', 'basePkgJson13'), tmpDir);
         shell.mv(path.join(tmpDir, 'basePkgJson13'), project);
         process.chdir(project);
         events.on('results', function(res) { results = res; });
@@ -924,7 +924,7 @@ describe('local path is added to config.xml without pkg.json', function () {
         var engines = cfg.getEngines();
         var engNames;
         var engSpec;
-        var platformPath = path.join(testRunRoot,'spec-cordova/fixtures/platforms/cordova-browser');
+        var platformPath = path.join(testRunRoot,'spec', 'cordova/fixtures/platforms/cordova-browser');
 
         // Run cordova platform add local path --save --fetch.
         return cordova.platform('add', platformPath, {'save':true, 'fetch':true})
@@ -949,7 +949,7 @@ describe('local path is added to config.xml without pkg.json', function () {
     // Test#027: has NO pkg.json. Checks if local path is added to config.xml and has no errors.
     it('Test#027 : if you add a plugin with local path, config.xml gets updated', function (done) {
         var cwd = process.cwd();
-        var pluginPath = path.join(testRunRoot,'spec-cordova/fixtures/plugins/cordova-lib-test-plugin');
+        var pluginPath = path.join(testRunRoot,'spec', 'cordova/fixtures/plugins/cordova-lib-test-plugin');
         var configXmlPath = path.join(cwd, 'config.xml');
         var cfg = new ConfigParser(configXmlPath);
         var configPlugins = cfg.getPluginIdList();

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/integration-tests/platform.spec.js
----------------------------------------------------------------------
diff --git a/integration-tests/platform.spec.js b/integration-tests/platform.spec.js
index 8669b51..78164ee 100644
--- a/integration-tests/platform.spec.js
+++ b/integration-tests/platform.spec.js
@@ -15,7 +15,7 @@
     under the License.
 */
 
-var helpers = require('../spec-cordova/helpers'),
+var helpers = require('../spec/helpers'),
     path = require('path'),
     fs = require('fs'),
     shell = require('shelljs'),
@@ -31,7 +31,7 @@ var helpers = require('../spec-cordova/helpers'),
     addHelper = rewire('../src/cordova/platform/addHelper');
 
 var projectRoot = 'C:\\Projects\\cordova-projects\\move-tracker';
-var fixturesDir = path.join(__dirname, '..', 'spec-cordova', 'fixtures');
+var fixturesDir = path.join(__dirname, '..', 'spec', 'cordova', 'fixtures');
 var pluginsDir = path.join(fixturesDir, 'plugins');
 
 describe('platform end-to-end', function () {

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/integration-tests/plugin.spec.js
----------------------------------------------------------------------
diff --git a/integration-tests/plugin.spec.js b/integration-tests/plugin.spec.js
index 15243ca..c08eb99 100644
--- a/integration-tests/plugin.spec.js
+++ b/integration-tests/plugin.spec.js
@@ -17,7 +17,7 @@
     under the License.
 */
 
-var helpers = require('../spec-cordova/helpers'),
+var helpers = require('../spec/helpers'),
     path = require('path'),
     Q = require('q'),
     shell = require('shelljs'),
@@ -32,7 +32,7 @@ var util = require('../src/cordova/util');
 
 var tmpDir = helpers.tmpDir('plugin_test');
 var project = path.join(tmpDir, 'project');
-var fixturesDir = path.join(__dirname, '..', 'spec-cordova', 'fixtures');
+var fixturesDir = path.join(__dirname, '..', 'spec', 'cordova', 'fixtures');
 var pluginsDir = path.join(fixturesDir, 'plugins');
 
 var pluginId = 'org.apache.cordova.fakeplugin1';
@@ -113,7 +113,7 @@ describe('plugin end-to-end', function() {
         shell.cp('-R', path.join(fixturesDir, 'base'), tmpDir);
         shell.mv(path.join(tmpDir, 'base'), project);
         // Copy some platform to avoid working on a project with no platforms.
-        shell.cp('-R', path.join(__dirname, '..', 'spec-plugman', 'projects', helpers.testPlatform), path.join(project, 'platforms'));
+        shell.cp('-R', path.join(__dirname, '..', 'spec', 'plugman', 'projects', helpers.testPlatform), path.join(project, 'platforms'));
         process.chdir(project);
 
         // Reset origCwd before each spec to respect chdirs

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/integration-tests/plugin_fetch.spec.js
----------------------------------------------------------------------
diff --git a/integration-tests/plugin_fetch.spec.js b/integration-tests/plugin_fetch.spec.js
index 1e171c5..55b1a0e 100644
--- a/integration-tests/plugin_fetch.spec.js
+++ b/integration-tests/plugin_fetch.spec.js
@@ -20,7 +20,7 @@
 // TODO: all of these tests should go as unit tests to src/cordova/plugin/add
 
 var plugin  = require('../src/cordova/plugin/add'),
-    helpers = require('../spec-cordova/helpers'),
+    helpers = require('../spec/helpers'),
     path    = require('path'),
     events = require('cordova-common').events,
     shell   = require('shelljs');
@@ -137,7 +137,7 @@ function getWarningCheckCallback(done, requirements) {
         done();
     };
 }
-var fixtures = path.join(__dirname, '..', 'spec-cordova', 'fixtures');
+var fixtures = path.join(__dirname, '..', 'spec', 'cordova', 'fixtures');
 
 function createTestProject() {
     // Get the base project

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/integration-tests/plugman_fetch.spec.js
----------------------------------------------------------------------
diff --git a/integration-tests/plugman_fetch.spec.js b/integration-tests/plugman_fetch.spec.js
index 5e02b39..3896db1 100644
--- a/integration-tests/plugman_fetch.spec.js
+++ b/integration-tests/plugman_fetch.spec.js
@@ -27,7 +27,7 @@ var rewire  = require('rewire'),
     //xml_helpers = require('../src/util/xml-helpers'),
     metadata = require('../src/plugman/util/metadata'),
     temp    = path.join(os.tmpdir(), 'plugman', 'fetch');
-var plugins_dir = path.join(__dirname, '..', 'spec-plugman', 'plugins'),
+var plugins_dir = path.join(__dirname, '..', 'spec', 'plugman', 'plugins'),
     test_plugin = path.join(plugins_dir, 'org.test.plugins.childbrowser'),
     test_pkgjson_plugin = path.join(plugins_dir, 'pkgjson-test-plugin'),
     test_plugin_searchpath = path.join(test_plugin, '..'),

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/integration-tests/plugman_uninstall.spec.js
----------------------------------------------------------------------
diff --git a/integration-tests/plugman_uninstall.spec.js b/integration-tests/plugman_uninstall.spec.js
index af6ed1c..6aa6ea9 100644
--- a/integration-tests/plugman_uninstall.spec.js
+++ b/integration-tests/plugman_uninstall.spec.js
@@ -25,7 +25,7 @@ var uninstall = require('../src/plugman/uninstall'),
     PluginInfo = require('cordova-common').PluginInfo,
     events = require('cordova-common').events,
     plugman = require('../src/plugman/plugman'),
-    common  = require('../spec-plugman/common'),
+    common  = require('../spec/common'),
     platforms = require('../src/platforms/platforms'),
     xmlHelpers = require('cordova-common').xmlHelpers,
     et      = require('elementtree'),
@@ -33,7 +33,7 @@ var uninstall = require('../src/plugman/uninstall'),
     path    = require('path'),
     shell   = require('shelljs'),
     Q       = require('q'),
-    spec    = path.join(__dirname, '..', 'spec-plugman'),
+    spec    = path.join(__dirname, '..', 'spec', 'plugman'),
     done    = false,
     srcProject = path.join(spec, 'projects', 'android'),
     project = path.join(spec, 'projects', 'android_uninstall.test'),

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/package.json
----------------------------------------------------------------------
diff --git a/package.json b/package.json
index 25f7b5e..6878ad7 100644
--- a/package.json
+++ b/package.json
@@ -50,13 +50,10 @@
     "rewire": "2.5.2"
   },
   "scripts": {
-    "test": "npm run jshint && npm run jasmine",
-    "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 JASMINE_CONFIG_PATH=spec-cordova/jasmine.json",
-    "jasmine-ios": "jasmine spec-cordova/platform.spec.ios.js",
-    "cover": "istanbul cover --root src --print detail jasmine JASMINE_CONFIG_PATH=spec-cordova/jasmine.json",
+    "test": "npm run jshint && npm run unit-tests && npm run e2e-tests",
+    "jshint": "jshint src spec",
+    "unit-tests": "jasmine JASMINE_CONFIG_PATH=spec/jasmine.json",
+    "cover": "istanbul cover --root src --print detail jasmine JASMINE_CONFIG_PATH=spec/jasmine.json",
     "e2e-tests" : "jasmine JASMINE_CONFIG_PATH=integration-tests/jasmine.json"
   },
   "contributors": [

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/spec-cordova/.jshintrc
----------------------------------------------------------------------
diff --git a/spec-cordova/.jshintrc b/spec-cordova/.jshintrc
deleted file mode 100644
index 381f147..0000000
--- a/spec-cordova/.jshintrc
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-    "node": true
-  , "bitwise": true
-  , "undef": true
-  , "trailing": true
-  , "quotmark": true
-  , "indent": 4
-  , "unused": "vars"
-  , "latedef": "nofunc"
-  , "jasmine": true
-  , "predef" : [ "xdescribe"]
-}

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/spec-cordova/Projects/ProjectMetadata/config.xml
----------------------------------------------------------------------
diff --git a/spec-cordova/Projects/ProjectMetadata/config.xml b/spec-cordova/Projects/ProjectMetadata/config.xml
deleted file mode 100644
index a7df1ec..0000000
--- a/spec-cordova/Projects/ProjectMetadata/config.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<widget id="io.cordova.projectmetadata" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
-    <name>ProjectMetadata</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 origin="*" />
-    <allow-intent href="http://*/*" />
-    <allow-intent href="https://*/*" />
-    <allow-intent href="tel:*" />
-    <allow-intent href="sms:*" />
-    <allow-intent href="mailto:*" />
-    <allow-intent href="geo:*" />
-    <platform name="android">
-        <allow-intent href="market:*" />
-    </platform>
-    <platform name="ios">
-        <allow-intent href="itms:*" />
-        <allow-intent href="itms-apps:*" />
-    </platform>
-    <engine name="android" version="3.7.1" /> <!-- this uses deprecated version attribute-->
-    <engine name="browser" spec="https://github.com/apache/cordova-browser.git" /> <!-- this uses current spec attribute -->
-    <plugin name="org.apache.cordova.device" spec="0.3.0" /> <!-- this uses current spec attribute -->
-    <plugin name="org.apache.cordova.camera" src="https://github.com/apache/cordova-plugin-camera.git"> <!-- this uses deprecated src attribute-->
-        <variable name="TEST_VARIABLE" value="My Test Variable" />
-    </plugin>
-    <plugin name="org.apache.cordova.file" src="https://github.com/apache/cordova-plugin-file.git" version="1.2.3" /> <!-- this uses outdated src and version attributes -->
-</widget>

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/spec-cordova/build.spec.js
----------------------------------------------------------------------
diff --git a/spec-cordova/build.spec.js b/spec-cordova/build.spec.js
deleted file mode 100644
index b6e3ad1..0000000
--- a/spec-cordova/build.spec.js
+++ /dev/null
@@ -1,130 +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('build command', function() {
-    var is_cordova, cd_project_root, list_platforms, fire;
-    var project_dir = '/some/path';
-    var prepare_spy, compile_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());
-        compile_spy = spyOn(cordova, 'compile').and.returnValue(Q());
-    });
-    describe('failure', function() {
-        it('Test 001 : should not run inside a project with no platforms', function(done) {
-            list_platforms.and.returnValue([]);
-            cordova.build()
-            .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) {
-            is_cordova.and.returnValue(false);
-
-            cordova.build()
-            .then(function() {
-                expect('this call').toBe('fail');
-            }, function(err) {
-                expect(err.message).toEqual(
-                    'Current working directory is not a Cordova-based project.'
-                );
-            }).fin(done);
-        });
-    });
-
-    describe('success', function() {
-        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.build(['android','ios']).then(function() {
-                var opts = Object({ platforms: [ 'android', 'ios' ], verbose: false, options: Object({  }) });
-                expect(prepare_spy).toHaveBeenCalledWith(opts);
-                expect(compile_spy).toHaveBeenCalledWith(opts);
-                done();
-            });
-        });
-        it('Test 004 : should pass down options', function(done) {
-            cordova.build({platforms: ['android'], options: {release: true}}).then(function() {
-                var opts = {platforms: ['android'], options: {release: true}, verbose: false};
-                expect(prepare_spy).toHaveBeenCalledWith(opts);
-                expect(compile_spy).toHaveBeenCalledWith(opts);
-                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.* methods "options" argument was changed');
-            }
-
-            cordova.on('warn', warnSpy);
-            cordova.build({platforms:['android'], options:['--release', '--cdvBuildOpt=opt']}).then(function () {
-                var opts = {platforms: ['android'], options: jasmine.objectContaining({release: true, argv: ['--cdvBuildOpt=opt']}), verbose: false};
-                expect(prepare_spy).toHaveBeenCalledWith(opts);
-                expect(compile_spy).toHaveBeenCalledWith(opts);
-                cordova.off('warn', warnSpy);
-                done();
-            });
-        });
-    });
-
-    describe('hooks', function() {
-        describe('when platforms are added', function() {
-            it('Test 006 : should fire before hooks through the hooker module', function(done) {
-                cordova.build(['android', 'ios']).then(function() {
-                    expect(fire.calls.argsFor(0)).toEqual(['before_build', {verbose: false, platforms:['android', 'ios'] , options: {}}]);
-                    done();
-                });
-            });
-            it('Test 007 : should fire after hooks through the hooker module', function(done) {
-                cordova.build('android').then(function() {
-                     expect(fire.calls.argsFor(1)).toEqual([ 'after_build', { platforms: [ 'android' ], verbose: false, options: {} } ]);
-                     done();
-                });
-            });
-        });
-
-        describe('with no platforms added', function() {
-            it('Test 008 : should not fire the hooker', function(done) {
-                list_platforms.and.returnValue([]);
-                Q().then(cordova.build).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);
-            });
-        });
-    });
-});

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/spec-cordova/compile.spec.js
----------------------------------------------------------------------
diff --git a/spec-cordova/compile.spec.js b/spec-cordova/compile.spec.js
deleted file mode 100644
index 4c94508..0000000
--- a/spec-cordova/compile.spec.js
+++ /dev/null
@@ -1,141 +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'),
-    util = require('../src/cordova/util'),
-    Q = require('q');
-
-var supported_platforms = Object.keys(platforms).filter(function(p) { return p != 'www'; });
-
-
-describe('compile command', function() {
-    var is_cordova, list_platforms, fire, cd_project_root, fail, platformApi, getPlatformApi;
-    var project_dir = '/some/path';
-
-    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());
-        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('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.compile()
-            .then(success, function(result) {
-                expect(result instanceof Error).toBe(true);
-                expect('' + result).toContain('No platforms added to this project. Please use `cordova platform add <platform>`.');
-            })
-            .fin(function() {
-                expect(success).not.toHaveBeenCalled();
-                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.compile()
-            .then(success, function(result) {
-                expect(result instanceof Error).toBe(true);
-            })
-            .fin(function() {
-                expect(success).not.toHaveBeenCalled();
-                done();
-            });
-        });
-    });
-
-    describe('success', function() {
-        it('Test 003 : should run inside a Cordova-based project with at least one added platform and shell out to build', function(done) {
-            cordova.compile(['android','ios']).then(function() {
-                expect(getPlatformApi).toHaveBeenCalledWith('android');
-                expect(getPlatformApi).toHaveBeenCalledWith('ios');
-                expect(platformApi.build).toHaveBeenCalled();
-            })
-            .fail(fail)
-            .fin(done);
-        });
-
-        it('Test 004 : should pass down optional parameters', function (done) {
-            cordova.compile({platforms:['blackberry10'], options:{release: true}}).then(function () {
-                expect(getPlatformApi).toHaveBeenCalledWith('blackberry10');
-                expect(platformApi.build).toHaveBeenCalledWith({release: true});
-            })
-            .fail(fail)
-            .fin(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.* methods "options" argument was changed');
-            }
-
-            cordova.on('warn', warnSpy);
-            cordova.compile({platforms:['blackberry10'], options:['--release']}).then(function () {
-                expect(getPlatformApi).toHaveBeenCalledWith('blackberry10');
-                expect(platformApi.build).toHaveBeenCalledWith({release: true, argv: []});
-            })
-            .fail(fail)
-            .fin(function () {
-                cordova.off('warn', warnSpy);
-                done();
-            });
-        });
-    });
-
-    describe('hooks', function() {
-        describe('when platforms are added', function() {
-            it('Test 006 : should fire before hooks through the hooker module', function(done) {
-                cordova.compile(['android', 'ios']).then(function() {
-                    expect(fire.calls.argsFor(0)).toEqual(['before_compile', {verbose: false, platforms:['android', 'ios'] , options: {}}]);
-                    done();
-                })
-                .fail(fail)
-                .fin(done);
-            });
-            it('Test 007 : should fire after hooks through the hooker module', function(done) {
-                cordova.compile('android').then(function() {
-                    expect(fire.calls.argsFor(1)).toEqual(['after_compile', {verbose: false, platforms:['android'] , options: {}}]);
-                    done();
-                })
-                .fail(fail)
-                .fin(done);
-            });
-        });
-
-        describe('with no platforms added', function() {
-            it('Test 008 : should not fire the hooker', function(done) {
-                list_platforms.and.returnValue([]);
-                Q().then(cordova.compile).then(function() {
-                    expect('this call').toBe('fail');
-                }, function(err) {
-                    expect(fire).not.toHaveBeenCalled();
-                    expect(err.message).toContain(
-                        '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/cordova-lib.spec.js
----------------------------------------------------------------------
diff --git a/spec-cordova/cordova-lib.spec.js b/spec-cordova/cordova-lib.spec.js
deleted file mode 100644
index 7f734b4..0000000
--- a/spec-cordova/cordova-lib.spec.js
+++ /dev/null
@@ -1,23 +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 unused:false */
-
-// Verify that cordova-lib.js can be loaded
-var cordovaLib = require('../cordova-lib');

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/spec-cordova/create.spec.js
----------------------------------------------------------------------
diff --git a/spec-cordova/create.spec.js b/spec-cordova/create.spec.js
deleted file mode 100644
index d9bc572..0000000
--- a/spec-cordova/create.spec.js
+++ /dev/null
@@ -1,112 +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 helpers = require('./helpers'),
-    path = require('path'),
-    shell = require('shelljs'),
-    Q = require('q'),
-    events = require('cordova-common').events,
-    ConfigParser = require('cordova-common').ConfigParser,
-    cordova = require('../src/cordova/cordova');
-
-var tmpDir = helpers.tmpDir('create_test');
-var appName = 'TestBase';
-var appId = 'org.testing';
-var project = path.join(tmpDir, appName);
-
-var configBasic = {
-    lib: {
-        www: {
-            template: false
-        }
-    }
-};
-
-describe('cordova create checks for valid-identifier', function() {
-    it('Test 001 : should reject reserved words from start of id', function(done) {
-        cordova.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.');
-        })
-        .fin(done);
-    });
-    
-    it('Test 002 : should reject reserved words from end of id', function(done) {
-        cordova.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.');
-        })
-        .fin(done);
-    });
-});
-
-
-describe('create basic test (see more in cordova-create)', function() {
-    //this.timeout(240000);
-
-    beforeEach(function() {
-        shell.rm('-rf', project);
-        shell.mkdir('-p', tmpDir);
-    });
-
-
-    afterEach(function() {
-        process.chdir(path.join(__dirname, '..'));  // Needed to rm the dir on Windows.
-        shell.rm('-rf', tmpDir);
-    });
-
-    function checkProject() {
-        // Check if top level dirs exist.
-        var dirs = ['hooks', 'platforms', 'plugins', 'www'];
-        dirs.forEach(function(d) {
-            expect(path.join(project, d)).toExist();
-        });
-
-        expect(path.join(project, 'hooks', 'README.md')).toExist();
-
-        // Check if www files exist.
-        expect(path.join(project, 'www', 'index.html')).toExist();
-
-        // Check that config.xml was updated.
-        var configXml = new ConfigParser(path.join(project, 'config.xml'));
-        expect(configXml.packageName()).toEqual(appId);
-
-        // TODO (kamrik): check somehow that we got the right config.xml from the fixture and not some place else.
-        // expect(configXml.name()).toEqual('TestBase');
-    }
-
-    var results;
-    events.on('results', function(res) { results = res; });
-
-    it('Test 003 : should successfully run', function(done) {
-        // Call cordova create with no args, should return help.
-        Q()
-            .then(function() {
-                // Create a real project
-                return cordova.create(project, appId, appName, configBasic, events);
-            })
-            .then(checkProject)
-            .fail(function(err) {
-                console.log(err && err.stack);
-                expect(err).toBeUndefined();
-            })
-            .fin(done);
-    }, 60000);
-
-});

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/spec-cordova/emulate.spec.js
----------------------------------------------------------------------
diff --git a/spec-cordova/emulate.spec.js b/spec-cordova/emulate.spec.js
deleted file mode 100644
index 24a72bf..0000000
--- a/spec-cordova/emulate.spec.js
+++ /dev/null
@@ -1,193 +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('emulate command', function() {
-    var is_cordova, cd_project_root, list_platforms, fire, fail;
-    var project_dir = '/some/path';
-    var prepare_spy, platformApi, getPlatformApi;
-
-    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());
-        fail = function (err) { expect(err.stack).not.toBeDefined(); };
-        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([]);
-            var success = jasmine.createSpy('success');
-            cordova.compile()
-            .then(success, function(result) {
-                expect(result instanceof Error).toBe(true);
-                expect('' + result).toContain('No platforms added to this project. Please use `cordova platform add <platform>`.');
-            })
-            .fin(function() {
-                expect(success).not.toHaveBeenCalled();
-                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.compile()
-            .then(success, function(result) {
-                expect(result instanceof Error).toBe(true);
-            })
-            .fin(function() {
-                expect(success).not.toHaveBeenCalled();
-                done();
-            });
-        });
-    });
-
-    describe('success', function() {
-        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.emulate(['android','ios']).then(function(err) {
-                expect(prepare_spy).toHaveBeenCalledWith(jasmine.objectContaining({platforms: ['android', 'ios']}));
-                expect(getPlatformApi).toHaveBeenCalledWith('android');
-                expect(getPlatformApi).toHaveBeenCalledWith('ios');
-                expect(platformApi.build).toHaveBeenCalled();
-                expect(platformApi.run).toHaveBeenCalled();
-            })
-            .fail(fail)
-            .fin(done);
-        });
-        it('Test 004 : should pass down options', function(done) {
-            cordova.emulate({platforms: ['ios'], options: {optionTastic: true }}).then(function(err) {
-                expect(prepare_spy).toHaveBeenCalledWith(jasmine.objectContaining({platforms: ['ios']}));
-                expect(getPlatformApi).toHaveBeenCalledWith('ios');
-                expect(platformApi.build).toHaveBeenCalledWith({ device: false, emulator: true, optionTastic: true });
-                expect(platformApi.run).toHaveBeenCalledWith({ device: false, emulator: true, optionTastic: true, nobuild: true });
-            })
-            .fail(fail)
-            .fin(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.* methods "options" argument was changed');
-            }
-
-            cordova.on('warn', warnSpy);
-            cordova.emulate({platforms:['ios'], options:['--optionTastic']}).then(function () {
-                expect(prepare_spy).toHaveBeenCalledWith(jasmine.objectContaining({platforms: ['ios']}));
-                expect(getPlatformApi).toHaveBeenCalledWith('ios');
-                expect(platformApi.run).toHaveBeenCalledWith(jasmine.objectContaining({emulator: true, argv: ['--optionTastic']}));
-            })
-            .fail(fail)
-            .fin(function () {
-                cordova.off('warn', warnSpy);
-                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 006 : 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);
-            });
-        });
-
-        it('Test 007 : should call platform\'s build method', function (done) {
-            cordova.emulate({platforms: ['blackberry10']})
-            .then(function() {
-                expect(prepare_spy).toHaveBeenCalled();
-                expect(platformApi.build).toHaveBeenCalledWith({device: false, emulator: true});
-                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.emulate({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('hooks', function() {
-        describe('when platforms are added', function() {
-            it('Test 009 : should fire before hooks through the hooker module', function(done) {
-                cordova.emulate(['android', 'ios']).then(function() {
-                    expect(fire).toHaveBeenCalledWith('before_emulate',
-                        jasmine.objectContaining({verbose: false, platforms:['android', 'ios'], options: jasmine.any(Object)}));
-                })
-                .fail(fail)
-                .fin(done);
-            });
-            it('Test 010 : should fire after hooks through the hooker module', function(done) {
-                cordova.emulate('android').then(function() {
-                     expect(fire).toHaveBeenCalledWith('after_emulate',
-                        jasmine.objectContaining({verbose: false, platforms:['android'], options: jasmine.any(Object)}));
-                })
-                .fail(fail)
-                .fin(done);
-            });
-        });
-
-        describe('with no platforms added', function() {
-            it('Test 011 : should not fire the hooker', function(done) {
-                list_platforms.and.returnValue([]);
-                Q().then(cordova.emulate).then(function() {
-                    expect('this call').toBe('fail');
-                }, function(err) {
-                    expect(fire).not.toHaveBeenCalled();
-                    expect(''+err).toContain('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/fixtures/base/.cordova/config.json
----------------------------------------------------------------------
diff --git a/spec-cordova/fixtures/base/.cordova/config.json b/spec-cordova/fixtures/base/.cordova/config.json
deleted file mode 100644
index 4f52ca7..0000000
--- a/spec-cordova/fixtures/base/.cordova/config.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
-  "id": "org.testing",
-  "name":"TestBase",
-  "lib": {
-    "android": {
-      "url": "/some/junk/path",
-      "version": "dev",
-      "id": "cordova-android-dev"
-    },
-    "ios": {
-      "url": "/some/junk/path",
-      "version": "dev",
-      "id": "cordova-ios-dev"
-    },
-    "wp8": {
-      "url": "/some/junk/path",
-      "version": "dev",
-      "id": "cordova-wp8-dev"
-    }
-  }
-}
-

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/spec-cordova/fixtures/base/merges/.svn
----------------------------------------------------------------------
diff --git a/spec-cordova/fixtures/base/merges/.svn b/spec-cordova/fixtures/base/merges/.svn
deleted file mode 100644
index e69de29..0000000

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/spec-cordova/fixtures/base/plugins/.svn
----------------------------------------------------------------------
diff --git a/spec-cordova/fixtures/base/plugins/.svn b/spec-cordova/fixtures/base/plugins/.svn
deleted file mode 100644
index e69de29..0000000

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/spec-cordova/fixtures/base/www/config.xml
----------------------------------------------------------------------
diff --git a/spec-cordova/fixtures/base/www/config.xml b/spec-cordova/fixtures/base/www/config.xml
deleted file mode 100644
index 9c807f1..0000000
--- a/spec-cordova/fixtures/base/www/config.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<widget id="org.testing" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
-    <name>TestBase</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 origin="*" />
-    <preference name="fullscreen" value="true" />
-    <preference name="webviewbounce" value="true" />
-    <engine name="ios"/>
-    <plugin name="cordova-plugin-camera"/>
-</widget>

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/spec-cordova/fixtures/base/www/css/index.css
----------------------------------------------------------------------
diff --git a/spec-cordova/fixtures/base/www/css/index.css b/spec-cordova/fixtures/base/www/css/index.css
deleted file mode 100644
index 51daa79..0000000
--- a/spec-cordova/fixtures/base/www/css/index.css
+++ /dev/null
@@ -1,115 +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.
- */
-* {
-    -webkit-tap-highlight-color: rgba(0,0,0,0); /* make transparent link selection, adjust last value opacity 0 to 1.0 */
-}
-
-body {
-    -webkit-touch-callout: none;                /* prevent callout to copy image, etc when tap to hold */
-    -webkit-text-size-adjust: none;             /* prevent webkit from resizing text to fit */
-    -webkit-user-select: none;                  /* prevent copy paste, to allow, change 'none' to 'text' */
-    background-color:#E4E4E4;
-    background-image:linear-gradient(top, #A7A7A7 0%, #E4E4E4 51%);
-    background-image:-webkit-linear-gradient(top, #A7A7A7 0%, #E4E4E4 51%);
-    background-image:-ms-linear-gradient(top, #A7A7A7 0%, #E4E4E4 51%);
-    background-image:-webkit-gradient(
-        linear,
-        left top,
-        left bottom,
-        color-stop(0, #A7A7A7),
-        color-stop(0.51, #E4E4E4)
-    );
-    background-attachment:fixed;
-    font-family:'HelveticaNeue-Light', 'HelveticaNeue', Helvetica, Arial, sans-serif;
-    font-size:12px;
-    height:100%;
-    margin:0px;
-    padding:0px;
-    text-transform:uppercase;
-    width:100%;
-}
-
-/* Portrait layout (default) */
-.app {
-    background:url(../img/logo.png) no-repeat center top; /* 170px x 200px */
-    position:absolute;             /* position in the center of the screen */
-    left:50%;
-    top:50%;
-    height:50px;                   /* text area height */
-    width:225px;                   /* text area width */
-    text-align:center;
-    padding:180px 0px 0px 0px;     /* image height is 200px (bottom 20px are overlapped with text) */
-    margin:-115px 0px 0px -112px;  /* offset vertical: half of image height and text area height */
-                                   /* offset horizontal: half of text area width */
-}
-
-/* Landscape layout (with min-width) */
-@media screen and (min-aspect-ratio: 1/1) and (min-width:400px) {
-    .app {
-        background-position:left center;
-        padding:75px 0px 75px 170px;  /* padding-top + padding-bottom + text area = image height */
-        margin:-90px 0px 0px -198px;  /* offset vertical: half of image height */
-                                      /* offset horizontal: half of image width and text area width */
-    }
-}
-
-h1 {
-    font-size:24px;
-    font-weight:normal;
-    margin:0px;
-    overflow:visible;
-    padding:0px;
-    text-align:center;
-}
-
-.event {
-    border-radius:4px;
-    -webkit-border-radius:4px;
-    color:#FFFFFF;
-    font-size:12px;
-    margin:0px 30px;
-    padding:2px 0px;
-}
-
-.event.listening {
-    background-color:#333333;
-    display:block;
-}
-
-.event.received {
-    background-color:#4B946A;
-    display:none;
-}
-
-@keyframes fade {
-    from { opacity: 1.0; }
-    50% { opacity: 0.4; }
-    to { opacity: 1.0; }
-}
- 
-@-webkit-keyframes fade {
-    from { opacity: 1.0; }
-    50% { opacity: 0.4; }
-    to { opacity: 1.0; }
-}
- 
-.blink {
-    animation:fade 3000ms infinite;
-    -webkit-animation:fade 3000ms infinite;
-}

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/spec-cordova/fixtures/base/www/img/logo.png
----------------------------------------------------------------------
diff --git a/spec-cordova/fixtures/base/www/img/logo.png b/spec-cordova/fixtures/base/www/img/logo.png
deleted file mode 100644
index 9519e7d..0000000
Binary files a/spec-cordova/fixtures/base/www/img/logo.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/spec-cordova/fixtures/base/www/index.html
----------------------------------------------------------------------
diff --git a/spec-cordova/fixtures/base/www/index.html b/spec-cordova/fixtures/base/www/index.html
deleted file mode 100644
index bde5741..0000000
--- a/spec-cordova/fixtures/base/www/index.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<!--
-    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.
--->
-<html>
-    <head>
-        <meta charset="utf-8" />
-        <meta name="format-detection" content="telephone=no" />
-        <!-- WARNING: for iOS 7, remove the width=device-width and height=device-height attributes. See https://issues.apache.org/jira/browse/CB-4323 -->
-        <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
-        <link rel="stylesheet" type="text/css" href="css/index.css" />
-        <title>Hello World</title>
-    </head>
-    <body>
-        <div class="app">
-            <h1>Apache Cordova</h1>
-            <div id="deviceready" class="blink">
-                <p class="event listening">Connecting to Device</p>
-                <p class="event received">Device is Ready</p>
-            </div>
-        </div>
-        <script type="text/javascript" src="cordova.js"></script>
-        <script type="text/javascript" src="js/index.js"></script>
-        <script type="text/javascript">
-            app.initialize();
-        </script>
-    </body>
-</html>

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/spec-cordova/fixtures/base/www/js/index.js
----------------------------------------------------------------------
diff --git a/spec-cordova/fixtures/base/www/js/index.js b/spec-cordova/fixtures/base/www/js/index.js
deleted file mode 100644
index 31d9064..0000000
--- a/spec-cordova/fixtures/base/www/js/index.js
+++ /dev/null
@@ -1,49 +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 app = {
-    // Application Constructor
-    initialize: function() {
-        this.bindEvents();
-    },
-    // Bind Event Listeners
-    //
-    // Bind any events that are required on startup. Common events are:
-    // 'load', 'deviceready', 'offline', and 'online'.
-    bindEvents: function() {
-        document.addEventListener('deviceready', this.onDeviceReady, false);
-    },
-    // deviceready Event Handler
-    //
-    // The scope of 'this' is the event. In order to call the 'receivedEvent'
-    // function, we must explicity call 'app.receivedEvent(...);'
-    onDeviceReady: function() {
-        app.receivedEvent('deviceready');
-    },
-    // Update DOM on a Received Event
-    receivedEvent: function(id) {
-        var parentElement = document.getElementById(id);
-        var listeningElement = parentElement.querySelector('.listening');
-        var receivedElement = parentElement.querySelector('.received');
-
-        listeningElement.setAttribute('style', 'display:none;');
-        receivedElement.setAttribute('style', 'display:block;');
-
-        console.log('Received Event: ' + id);
-    }
-};

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/spec-cordova/fixtures/base/www/spec.html
----------------------------------------------------------------------
diff --git a/spec-cordova/fixtures/base/www/spec.html b/spec-cordova/fixtures/base/www/spec.html
deleted file mode 100644
index 71f00de..0000000
--- a/spec-cordova/fixtures/base/www/spec.html
+++ /dev/null
@@ -1,68 +0,0 @@
-<!DOCTYPE html>
-<!--
-    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.
--->
-<html>
-    <head>
-        <title>Jasmine Spec Runner</title>
-
-        <!-- jasmine source -->
-        <link rel="shortcut icon" type="image/png" href="spec/lib/jasmine-1.2.0/jasmine_favicon.png">
-        <link rel="stylesheet" type="text/css" href="spec/lib/jasmine-1.2.0/jasmine.css">
-        <script type="text/javascript" src="spec/lib/jasmine-1.2.0/jasmine.js"></script>
-        <script type="text/javascript" src="spec/lib/jasmine-1.2.0/jasmine-html.js"></script>
-
-        <!-- include source files here... -->
-        <script type="text/javascript" src="js/index.js"></script>
-
-        <!-- include spec files here... -->
-        <script type="text/javascript" src="spec/helper.js"></script>
-        <script type="text/javascript" src="spec/index.js"></script>
-
-        <script type="text/javascript">
-            (function() {
-                var jasmineEnv = jasmine.getEnv();
-                jasmineEnv.updateInterval = 1000;
-
-                var htmlReporter = new jasmine.HtmlReporter();
-
-                jasmineEnv.addReporter(htmlReporter);
-
-                jasmineEnv.specFilter = function(spec) {
-                    return htmlReporter.specFilter(spec);
-                };
-
-                var currentWindowOnload = window.onload;
-
-                window.onload = function() {
-                    if (currentWindowOnload) {
-                        currentWindowOnload();
-                    }
-                    execJasmine();
-                };
-
-                function execJasmine() {
-                    jasmineEnv.execute();
-                }
-            })();
-        </script>
-    </head>
-    <body>
-        <div id="stage" style="display:none;"></div>
-    </body>
-</html>

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/spec-cordova/fixtures/basePkgJson/config.xml
----------------------------------------------------------------------
diff --git a/spec-cordova/fixtures/basePkgJson/config.xml b/spec-cordova/fixtures/basePkgJson/config.xml
deleted file mode 100644
index 9e7b9e0..0000000
--- a/spec-cordova/fixtures/basePkgJson/config.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<widget id="org.testing" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
-    <name>TestBase</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 origin="*" />
-    <preference name="fullscreen" value="true" />
-    <preference name="webviewbounce" value="true" />
-</widget>

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/spec-cordova/fixtures/basePkgJson/package.json
----------------------------------------------------------------------
diff --git a/spec-cordova/fixtures/basePkgJson/package.json b/spec-cordova/fixtures/basePkgJson/package.json
deleted file mode 100644
index eaf9d87..0000000
--- a/spec-cordova/fixtures/basePkgJson/package.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
-  "name": "testbase",
-  "version": "1.0.0",
-  "description": "",
-  "main": "index.js",
-  "scripts": {
-    "test": "echo \"Error: no test specified\" && exit 1"
-  },
-  "author": "",
-  "license": "ISC"
-}

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/spec-cordova/fixtures/basePkgJson/plugins/.svn
----------------------------------------------------------------------
diff --git a/spec-cordova/fixtures/basePkgJson/plugins/.svn b/spec-cordova/fixtures/basePkgJson/plugins/.svn
deleted file mode 100644
index e69de29..0000000

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/spec-cordova/fixtures/basePkgJson/www/css/index.css
----------------------------------------------------------------------
diff --git a/spec-cordova/fixtures/basePkgJson/www/css/index.css b/spec-cordova/fixtures/basePkgJson/www/css/index.css
deleted file mode 100644
index 51daa79..0000000
--- a/spec-cordova/fixtures/basePkgJson/www/css/index.css
+++ /dev/null
@@ -1,115 +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.
- */
-* {
-    -webkit-tap-highlight-color: rgba(0,0,0,0); /* make transparent link selection, adjust last value opacity 0 to 1.0 */
-}
-
-body {
-    -webkit-touch-callout: none;                /* prevent callout to copy image, etc when tap to hold */
-    -webkit-text-size-adjust: none;             /* prevent webkit from resizing text to fit */
-    -webkit-user-select: none;                  /* prevent copy paste, to allow, change 'none' to 'text' */
-    background-color:#E4E4E4;
-    background-image:linear-gradient(top, #A7A7A7 0%, #E4E4E4 51%);
-    background-image:-webkit-linear-gradient(top, #A7A7A7 0%, #E4E4E4 51%);
-    background-image:-ms-linear-gradient(top, #A7A7A7 0%, #E4E4E4 51%);
-    background-image:-webkit-gradient(
-        linear,
-        left top,
-        left bottom,
-        color-stop(0, #A7A7A7),
-        color-stop(0.51, #E4E4E4)
-    );
-    background-attachment:fixed;
-    font-family:'HelveticaNeue-Light', 'HelveticaNeue', Helvetica, Arial, sans-serif;
-    font-size:12px;
-    height:100%;
-    margin:0px;
-    padding:0px;
-    text-transform:uppercase;
-    width:100%;
-}
-
-/* Portrait layout (default) */
-.app {
-    background:url(../img/logo.png) no-repeat center top; /* 170px x 200px */
-    position:absolute;             /* position in the center of the screen */
-    left:50%;
-    top:50%;
-    height:50px;                   /* text area height */
-    width:225px;                   /* text area width */
-    text-align:center;
-    padding:180px 0px 0px 0px;     /* image height is 200px (bottom 20px are overlapped with text) */
-    margin:-115px 0px 0px -112px;  /* offset vertical: half of image height and text area height */
-                                   /* offset horizontal: half of text area width */
-}
-
-/* Landscape layout (with min-width) */
-@media screen and (min-aspect-ratio: 1/1) and (min-width:400px) {
-    .app {
-        background-position:left center;
-        padding:75px 0px 75px 170px;  /* padding-top + padding-bottom + text area = image height */
-        margin:-90px 0px 0px -198px;  /* offset vertical: half of image height */
-                                      /* offset horizontal: half of image width and text area width */
-    }
-}
-
-h1 {
-    font-size:24px;
-    font-weight:normal;
-    margin:0px;
-    overflow:visible;
-    padding:0px;
-    text-align:center;
-}
-
-.event {
-    border-radius:4px;
-    -webkit-border-radius:4px;
-    color:#FFFFFF;
-    font-size:12px;
-    margin:0px 30px;
-    padding:2px 0px;
-}
-
-.event.listening {
-    background-color:#333333;
-    display:block;
-}
-
-.event.received {
-    background-color:#4B946A;
-    display:none;
-}
-
-@keyframes fade {
-    from { opacity: 1.0; }
-    50% { opacity: 0.4; }
-    to { opacity: 1.0; }
-}
- 
-@-webkit-keyframes fade {
-    from { opacity: 1.0; }
-    50% { opacity: 0.4; }
-    to { opacity: 1.0; }
-}
- 
-.blink {
-    animation:fade 3000ms infinite;
-    -webkit-animation:fade 3000ms infinite;
-}

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/spec-cordova/fixtures/basePkgJson/www/index.html
----------------------------------------------------------------------
diff --git a/spec-cordova/fixtures/basePkgJson/www/index.html b/spec-cordova/fixtures/basePkgJson/www/index.html
deleted file mode 100644
index bde5741..0000000
--- a/spec-cordova/fixtures/basePkgJson/www/index.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<!--
-    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.
--->
-<html>
-    <head>
-        <meta charset="utf-8" />
-        <meta name="format-detection" content="telephone=no" />
-        <!-- WARNING: for iOS 7, remove the width=device-width and height=device-height attributes. See https://issues.apache.org/jira/browse/CB-4323 -->
-        <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
-        <link rel="stylesheet" type="text/css" href="css/index.css" />
-        <title>Hello World</title>
-    </head>
-    <body>
-        <div class="app">
-            <h1>Apache Cordova</h1>
-            <div id="deviceready" class="blink">
-                <p class="event listening">Connecting to Device</p>
-                <p class="event received">Device is Ready</p>
-            </div>
-        </div>
-        <script type="text/javascript" src="cordova.js"></script>
-        <script type="text/javascript" src="js/index.js"></script>
-        <script type="text/javascript">
-            app.initialize();
-        </script>
-    </body>
-</html>

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d164a88f/spec-cordova/fixtures/basePkgJson/www/js/index.js
----------------------------------------------------------------------
diff --git a/spec-cordova/fixtures/basePkgJson/www/js/index.js b/spec-cordova/fixtures/basePkgJson/www/js/index.js
deleted file mode 100644
index 31d9064..0000000
--- a/spec-cordova/fixtures/basePkgJson/www/js/index.js
+++ /dev/null
@@ -1,49 +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 app = {
-    // Application Constructor
-    initialize: function() {
-        this.bindEvents();
-    },
-    // Bind Event Listeners
-    //
-    // Bind any events that are required on startup. Common events are:
-    // 'load', 'deviceready', 'offline', and 'online'.
-    bindEvents: function() {
-        document.addEventListener('deviceready', this.onDeviceReady, false);
-    },
-    // deviceready Event Handler
-    //
-    // The scope of 'this' is the event. In order to call the 'receivedEvent'
-    // function, we must explicity call 'app.receivedEvent(...);'
-    onDeviceReady: function() {
-        app.receivedEvent('deviceready');
-    },
-    // Update DOM on a Received Event
-    receivedEvent: function(id) {
-        var parentElement = document.getElementById(id);
-        var listeningElement = parentElement.querySelector('.listening');
-        var receivedElement = parentElement.querySelector('.received');
-
-        listeningElement.setAttribute('style', 'display:none;');
-        receivedElement.setAttribute('style', 'display:block;');
-
-        console.log('Received Event: ' + id);
-    }
-};


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


Mime
View raw message