You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by an...@apache.org on 2016/07/13 09:33:15 UTC
cordova-lib git commit: CB-11491 Introduce before_deploy hook
Repository: cordova-lib
Updated Branches:
refs/heads/master 8290d7e3e -> 7d367dcb0
CB-11491 Introduce before_deploy hook
This closes #460
Project: http://git-wip-us.apache.org/repos/asf/cordova-lib/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-lib/commit/7d367dcb
Tree: http://git-wip-us.apache.org/repos/asf/cordova-lib/tree/7d367dcb
Diff: http://git-wip-us.apache.org/repos/asf/cordova-lib/diff/7d367dcb
Branch: refs/heads/master
Commit: 7d367dcb01740450e0af447308c0b859616e709d
Parents: 8290d7e
Author: daserge <v-...@microsoft.com>
Authored: Thu Jun 30 15:38:54 2016 +0300
Committer: Vladimir Kotikov <v-...@microsoft.com>
Committed: Wed Jul 13 12:31:55 2016 +0300
----------------------------------------------------------------------
cordova-lib/spec-cordova/emulate.spec.js | 31 +++++++++++++++++++++++++--
cordova-lib/spec-cordova/run.spec.js | 31 +++++++++++++++++++++++++--
cordova-lib/src/cordova/emulate.js | 13 ++++++++++-
cordova-lib/src/cordova/run.js | 13 ++++++++++-
4 files changed, 82 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/7d367dcb/cordova-lib/spec-cordova/emulate.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/emulate.spec.js b/cordova-lib/spec-cordova/emulate.spec.js
index 3f9b093..c04c16d 100644
--- a/cordova-lib/spec-cordova/emulate.spec.js
+++ b/cordova-lib/spec-cordova/emulate.spec.js
@@ -36,7 +36,10 @@ describe('emulate command', function() {
fire = spyOn(HooksRunner.prototype, 'fire').andReturn(Q());
prepare_spy = spyOn(cordova.raw, 'prepare').andReturn(Q());
fail = function (err) { expect(err.stack).not.toBeDefined(); };
- platformApi = { run: jasmine.createSpy('run').andReturn(Q()) };
+ platformApi = {
+ run: jasmine.createSpy('run').andReturn(Q()),
+ build: jasmine.createSpy('build').andReturn(Q())
+ };
getPlatformApi = spyOn(platforms, 'getPlatformApi').andReturn(platformApi);
});
describe('failure', function() {
@@ -73,6 +76,7 @@ describe('emulate command', function() {
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)
@@ -82,7 +86,8 @@ describe('emulate command', function() {
cordova.raw.emulate({platforms: ['ios'], options: {optionTastic: true }}).then(function(err) {
expect(prepare_spy).toHaveBeenCalledWith(jasmine.objectContaining({platforms: ['ios']}));
expect(getPlatformApi).toHaveBeenCalledWith('ios');
- expect(platformApi.run).toHaveBeenCalledWith({ device: false, emulator: true, optionTastic: true });
+ 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);
@@ -104,6 +109,28 @@ describe('emulate command', function() {
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').andCallFake(function(opts) {
+ opts.couldBeModified = 'insideBuild';
+ return Q();
+ });
+ });
+ afterEach(function() {
+ platformApi.build = originalBuildSpy;
+ });
+ it('should leave parameters unchanged', function(done) {
+ cordova.raw.run({platforms: ['blackberry10'], options:{password: '1q1q'}}).then(function() {
+ expect(prepare_spy).toHaveBeenCalledWith({ platforms: [ 'blackberry10' ], options: { password: '1q1q', 'couldBeModified': 'insideBuild' }, verbose: false });
+ expect(platformApi.build).toHaveBeenCalledWith({password: '1q1q', 'couldBeModified': 'insideBuild'});
+ expect(platformApi.run).toHaveBeenCalledWith({password: '1q1q', nobuild: true});
+ }, function(err) {
+ expect(err).toBeUndefined();
+ }).fin(done);
+ });
+ });
});
describe('hooks', function() {
http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/7d367dcb/cordova-lib/spec-cordova/run.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/run.spec.js b/cordova-lib/spec-cordova/run.spec.js
index 13e6e13..b1dedd3 100644
--- a/cordova-lib/spec-cordova/run.spec.js
+++ b/cordova-lib/spec-cordova/run.spec.js
@@ -35,7 +35,10 @@ describe('run command', function() {
list_platforms = spyOn(util, 'listPlatforms').andReturn(supported_platforms);
fire = spyOn(HooksRunner.prototype, 'fire').andReturn(Q());
prepare_spy = spyOn(cordova.raw, 'prepare').andReturn(Q());
- platformApi = { run: jasmine.createSpy('run').andReturn(Q()) };
+ platformApi = {
+ run: jasmine.createSpy('run').andReturn(Q()),
+ build: jasmine.createSpy('build').andReturn(Q())
+ };
getPlatformApi = spyOn(platforms, 'getPlatformApi').andReturn(platformApi);
});
describe('failure', function() {
@@ -71,6 +74,7 @@ describe('run command', function() {
cordova.raw.run(['android','ios']).then(function() {
expect(getPlatformApi).toHaveBeenCalledWith('android');
expect(getPlatformApi).toHaveBeenCalledWith('ios');
+ expect(platformApi.build).toHaveBeenCalled();
expect(platformApi.run).toHaveBeenCalled();
}, function(err) {
expect(err).toBeUndefined();
@@ -79,7 +83,8 @@ describe('run command', function() {
it('should pass down parameters', function(done) {
cordova.raw.run({platforms: ['blackberry10'], options:{password: '1q1q'}}).then(function() {
expect(prepare_spy).toHaveBeenCalledWith({ platforms: [ 'blackberry10' ], options: { password: '1q1q' }, verbose: false });
- expect(platformApi.run).toHaveBeenCalledWith({password: '1q1q'});
+ expect(platformApi.build).toHaveBeenCalledWith({password: '1q1q'});
+ expect(platformApi.run).toHaveBeenCalledWith({password: '1q1q', nobuild: true});
}, function(err) {
expect(err).toBeUndefined();
}).fin(done);
@@ -102,6 +107,28 @@ describe('run command', function() {
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').andCallFake(function(opts) {
+ opts.couldBeModified = 'insideBuild';
+ return Q();
+ });
+ });
+ afterEach(function() {
+ platformApi.build = originalBuildSpy;
+ });
+ it('should leave parameters unchanged', function(done) {
+ cordova.raw.run({platforms: ['blackberry10'], options:{password: '1q1q'}}).then(function() {
+ expect(prepare_spy).toHaveBeenCalledWith({ platforms: [ 'blackberry10' ], options: { password: '1q1q', 'couldBeModified': 'insideBuild' }, verbose: false });
+ expect(platformApi.build).toHaveBeenCalledWith({password: '1q1q', 'couldBeModified': 'insideBuild'});
+ expect(platformApi.run).toHaveBeenCalledWith({password: '1q1q', nobuild: true});
+ }, function(err) {
+ expect(err).toBeUndefined();
+ }).fin(done);
+ });
+ });
});
describe('hooks', function() {
http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/7d367dcb/cordova-lib/src/cordova/emulate.js
----------------------------------------------------------------------
diff --git a/cordova-lib/src/cordova/emulate.js b/cordova-lib/src/cordova/emulate.js
index 2c8fea4..b0b61aa 100644
--- a/cordova-lib/src/cordova/emulate.js
+++ b/cordova-lib/src/cordova/emulate.js
@@ -40,9 +40,20 @@ module.exports = function emulate(options) {
}).then(function() {
// Deploy in parallel (output gets intermixed though...)
return Q.all(options.platforms.map(function(platform) {
+ // This is needed as .build modifies opts
+ var optsClone = _.clone(options.options);
return platform_lib
.getPlatformApi(platform)
- .run(_.clone(options.options));
+ .build(options.options)
+ .then(function() {
+ return hooksRunner.fire('before_deploy', options);
+ })
+ .then(function() {
+ optsClone.nobuild = true;
+ return platform_lib
+ .getPlatformApi(platform)
+ .run(optsClone);
+ });
}));
}).then(function() {
return hooksRunner.fire('after_emulate', options);
http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/7d367dcb/cordova-lib/src/cordova/run.js
----------------------------------------------------------------------
diff --git a/cordova-lib/src/cordova/run.js b/cordova-lib/src/cordova/run.js
index be15205..74fe8f5 100644
--- a/cordova-lib/src/cordova/run.js
+++ b/cordova-lib/src/cordova/run.js
@@ -40,9 +40,20 @@ module.exports = function run(options) {
}).then(function() {
// Deploy in parallel (output gets intermixed though...)
return Q.all(options.platforms.map(function(platform) {
+ // This is needed as .build modifies opts
+ var optsClone = _.clone(options.options);
return platform_lib
.getPlatformApi(platform)
- .run(_.clone(options.options));
+ .build(options.options)
+ .then(function() {
+ return hooksRunner.fire('before_deploy', options);
+ })
+ .then(function() {
+ optsClone.nobuild = true;
+ return platform_lib
+ .getPlatformApi(platform)
+ .run(optsClone);
+ });
}));
}).then(function() {
return hooksRunner.fire('after_run', options);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org