You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by fi...@apache.org on 2013/06/14 19:31:39 UTC
[70/83] [abbrv] git commit: build specs.
build specs.
Project: http://git-wip-us.apache.org/repos/asf/cordova-cli/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-cli/commit/4ddae0cb
Tree: http://git-wip-us.apache.org/repos/asf/cordova-cli/tree/4ddae0cb
Diff: http://git-wip-us.apache.org/repos/asf/cordova-cli/diff/4ddae0cb
Branch: refs/heads/lazy
Commit: 4ddae0cbd45c4dd25ae3130fe6cf0315129a7a5b
Parents: f285715
Author: Fil Maj <ma...@gmail.com>
Authored: Wed Jun 12 22:27:21 2013 -0700
Committer: Fil Maj <ma...@gmail.com>
Committed: Thu Jun 13 11:13:22 2013 -0700
----------------------------------------------------------------------
spec/build.spec.js | 87 +++++++++++++++--------------------------------
spec/prepare.spec.js | 2 --
src/build.js | 2 --
3 files changed, 28 insertions(+), 63 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/4ddae0cb/spec/build.spec.js
----------------------------------------------------------------------
diff --git a/spec/build.spec.js b/spec/build.spec.js
index 7b30414..0a48293 100644
--- a/spec/build.spec.js
+++ b/spec/build.spec.js
@@ -16,59 +16,50 @@
specific language governing permissions and limitations
under the License.
*/
-var cordova = require('../../cordova'),
+var cordova = require('../cordova'),
+ platforms = require('../platforms'),
shell = require('shelljs'),
path = require('path'),
fs = require('fs'),
- events = require('../../src/events'),
- hooker = require('../../src/hooker'),
- tempDir = path.join(__dirname, '..', '..', 'temp');
+ hooker = require('../src/hooker'),
+ util = require('../src/util');
-var cwd = process.cwd();
+var supported_platforms = Object.keys(platforms).filter(function(p) { return p != 'www'; });
describe('build command', function() {
+ var is_cordova, list_platforms, fire;
+ var project_dir = '/some/path';
+ var prepare_spy, compile_spy;
beforeEach(function() {
- shell.rm('-rf', tempDir);
- shell.mkdir('-p', tempDir);
+ is_cordova = spyOn(util, 'isCordova').andReturn(project_dir);
+ list_platforms = spyOn(util, 'listPlatforms').andReturn(supported_platforms);
+ fire = spyOn(hooker.prototype, 'fire').andCallFake(function(e, opts, cb) {
+ cb(false);
+ });
+ prepare_spy = spyOn(cordova, 'prepare').andCallFake(function(platforms, cb) {
+ cb();
+ });
+ compile_spy = spyOn(cordova, 'compile').andCallFake(function(platforms, cb) {
+ cb();
+ });
});
-
describe('failure', function() {
- afterEach(function() {
- process.chdir(cwd);
- spyOn(shell, 'exec');
- });
- it('should not run inside a Cordova-based project with no added platforms', function() {
- cordova.create(tempDir);
- process.chdir(tempDir);
+ it('should not run inside a Cordova-based project with no added platforms by calling util.listPlatforms', function() {
+ list_platforms.andReturn([]);
expect(function() {
cordova.build();
- }).toThrow();
+ }).toThrow('No platforms added! `cordova platform add <platform>` to add a platform.');
});
it('should not run outside of a Cordova-based project', function() {
- shell.mkdir('-p', tempDir);
- process.chdir(tempDir);
+ is_cordova.andReturn(false);
expect(function() {
cordova.build();
- }).toThrow();
+ }).toThrow('Current working directory is not a Cordova-based project.');
});
});
describe('success', function() {
- beforeEach(function() {
- cordova.create(tempDir);
- process.chdir(tempDir);
- });
- afterEach(function() {
- process.chdir(cwd);
- });
it('should run inside a Cordova-based project with at least one added platform and call both prepare and compile', function(done) {
- var prepare_spy = spyOn(cordova, 'prepare').andCallFake(function(platforms, cb) {
- cb();
- });
- var compile_spy = spyOn(cordova, 'compile').andCallFake(function(platforms, cb) {
- cb();
- });
-
cordova.build(['android','ios'], function(err) {
expect(prepare_spy).toHaveBeenCalledWith(['android', 'ios'], jasmine.any(Function));
expect(compile_spy).toHaveBeenCalledWith(['android', 'ios'], jasmine.any(Function));
@@ -78,37 +69,14 @@ describe('build command', function() {
});
describe('hooks', function() {
- var hook_spy;
- var prepare_spy;
- var compile_spy;
- beforeEach(function() {
- hook_spy = spyOn(hooker.prototype, 'fire').andCallFake(function(hook, opts, cb) {
- cb();
- });
- prepare_spy = spyOn(cordova, 'prepare').andCallFake(function(platforms, cb) {
- cb();
- });
- compile_spy = spyOn(cordova, 'compile').andCallFake(function(platforms, cb) {
- cb();
- });
- cordova.create(tempDir);
- process.chdir(tempDir);
- });
- afterEach(function() {
- hook_spy.reset();
- prepare_spy.reset();
- compile_spy.reset();
- process.chdir(cwd);
- });
-
describe('when platforms are added', function() {
it('should fire before hooks through the hooker module', function() {
cordova.build(['android', 'ios']);
- expect(hook_spy).toHaveBeenCalledWith('before_build', {platforms:['android', 'ios']}, jasmine.any(Function));
+ expect(fire).toHaveBeenCalledWith('before_build', {platforms:['android', 'ios']}, jasmine.any(Function));
});
it('should fire after hooks through the hooker module', function(done) {
cordova.build('android', function() {
- expect(hook_spy).toHaveBeenCalledWith('after_build', {platforms:['android']}, jasmine.any(Function));
+ expect(fire).toHaveBeenCalledWith('after_build', {platforms:['android']}, jasmine.any(Function));
done();
});
});
@@ -116,10 +84,11 @@ describe('build command', function() {
describe('with no platforms added', function() {
it('should not fire the hooker', function() {
+ list_platforms.andReturn([]);
expect(function() {
cordova.build();
}).toThrow();
- expect(hook_spy).not.toHaveBeenCalled();
+ expect(fire).not.toHaveBeenCalled();
});
});
});
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/4ddae0cb/spec/prepare.spec.js
----------------------------------------------------------------------
diff --git a/spec/prepare.spec.js b/spec/prepare.spec.js
index bc49246..671213c 100644
--- a/spec/prepare.spec.js
+++ b/spec/prepare.spec.js
@@ -27,8 +27,6 @@ var cordova = require('../cordova'),
fixtures = path.join(__dirname, 'fixtures'),
hooks = path.join(fixtures, 'hooks');
-var cwd = process.cwd();
-
var supported_platforms = Object.keys(platforms).filter(function(p) { return p != 'www'; });
describe('prepare command', function() {
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/4ddae0cb/src/build.js
----------------------------------------------------------------------
diff --git a/src/build.js b/src/build.js
index adc6749..28874bb 100644
--- a/src/build.js
+++ b/src/build.js
@@ -18,10 +18,8 @@
*/
var util = require('./util'),
path = require('path'),
- config_parser = require('./config_parser'),
fs = require('fs'),
shell = require('shelljs'),
- et = require('elementtree'),
hooker = require('./hooker'),
events = require('./events'),
n = require('ncallbacks');