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/02/18 13:50:39 UTC
cordova-windows git commit: CB-10303 Adds tests to cover arguments
parsing regression
Repository: cordova-windows
Updated Branches:
refs/heads/master 45e5bd131 -> 51ac7ab16
CB-10303 Adds tests to cover arguments parsing regression
Also updates some tests to:
* Use jamine spies instead of rewire in most cases
* Do not stub console log to simplify debug
This closes #145
Project: http://git-wip-us.apache.org/repos/asf/cordova-windows/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-windows/commit/51ac7ab1
Tree: http://git-wip-us.apache.org/repos/asf/cordova-windows/tree/51ac7ab1
Diff: http://git-wip-us.apache.org/repos/asf/cordova-windows/diff/51ac7ab1
Branch: refs/heads/master
Commit: 51ac7ab16cbb68fe52fa13c4049aa7546ce5a770
Parents: 45e5bd1
Author: Vladimir Kotikov <ko...@gmail.com>
Authored: Thu Jan 28 14:36:51 2016 +0300
Committer: Vladimir Kotikov <ko...@gmail.com>
Committed: Thu Feb 18 15:42:47 2016 +0300
----------------------------------------------------------------------
spec/unit/build.spec.js | 89 ++++++++++++++--------------
spec/unit/fixtures/fakeBuildConfig.json | 9 +++
2 files changed, 52 insertions(+), 46 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-windows/blob/51ac7ab1/spec/unit/build.spec.js
----------------------------------------------------------------------
diff --git a/spec/unit/build.spec.js b/spec/unit/build.spec.js
index 3105906..96b1fac 100644
--- a/spec/unit/build.spec.js
+++ b/spec/unit/build.spec.js
@@ -25,6 +25,9 @@ var Q = require('q'),
prepare = require(platformRoot + '/cordova/lib/prepare.js'),
build = rewire(platformRoot + '/cordova/lib/build.js');
+var utils = require(platformRoot + '/cordova/lib/utils');
+var AppxManifest = require(platformRoot + '/cordova/lib/AppxManifest');
+
function createFindAvailableVersionMock(version, path, buildSpy) {
build.__set__('MSBuildTools.findAvailableVersion', function() {
return Q.resolve({
@@ -68,28 +71,11 @@ function createConfigParserMock(winVersion, phoneVersion) {
}
describe('run method', function() {
- var consoleLogOriginal,
- isCordovaProjectOriginal,
- findAvailableVersionOriginal,
- applyPlatformConfigOriginal,
+ var findAvailableVersionOriginal,
configParserOriginal;
- var isCordovaProjectFalse = function () {
- return false;
- };
-
- var isCordovaProjectTrue = function () {
- return true;
- };
-
beforeEach(function () {
- // console output suppression
- consoleLogOriginal = build.__get__('console.log');
- build.__set__('console.log', function () {} );
-
- isCordovaProjectOriginal = build.__get__('utils.isCordovaProject');
findAvailableVersionOriginal = build.__get__('MSBuildTools.findAvailableVersion');
- applyPlatformConfigOriginal = build.__get__('prepare.applyPlatformConfig');
configParserOriginal = build.__get__('ConfigParser');
var originalBuildMethod = build.run;
@@ -98,14 +84,21 @@ describe('run method', function() {
return originalBuildMethod.apply({locations: {www: 'some/path'}}, arguments);
});
+ spyOn(utils, 'isCordovaProject').andReturn(true);
+ spyOn(prepare, 'applyPlatformConfig');
spyOn(prepare, 'addBOMSignature');
+ spyOn(prepare, 'updateBuildConfig');
+
+ spyOn(AppxManifest, 'get').andReturn({
+ getIdentity: function () {
+ return { setPublisher: function () {} };
+ },
+ write: function () {}
+ });
});
afterEach(function() {
- build.__set__('console.log', consoleLogOriginal);
- build.__set__('utils.isCordovaProject', isCordovaProjectOriginal);
build.__set__('MSBuildTools.findAvailableVersion', findAvailableVersionOriginal);
- build.__set__('prepare.applyPlatformConfig', applyPlatformConfigOriginal);
build.__set__('ConfigParser', configParserOriginal);
});
@@ -113,7 +106,8 @@ describe('run method', function() {
var rejectSpy = jasmine.createSpy(),
buildSpy = jasmine.createSpy();
- build.__set__('utils.isCordovaProject', isCordovaProjectFalse);
+ // utils.isCordovaProject is a spy, so we can call andReturn directly on it
+ utils.isCordovaProject.andReturn(false);
createFindAllAvailableVersionsMock([{version: '14.0', buildProject: buildSpy, path: testPath }]);
build.run([ 'node', buildPath, '--release', '--debug' ])
@@ -129,7 +123,6 @@ describe('run method', function() {
var rejectSpy = jasmine.createSpy(),
buildSpy = jasmine.createSpy();
- build.__set__('utils.isCordovaProject', isCordovaProjectTrue);
createFindAvailableVersionMock('14.0', testPath, buildSpy);
build.run([ 'node', buildPath, '--release', '--debug' ])
@@ -145,7 +138,6 @@ describe('run method', function() {
var rejectSpy = jasmine.createSpy(),
buildSpy = jasmine.createSpy();
- build.__set__('utils.isCordovaProject', isCordovaProjectTrue);
createFindAvailableVersionMock('14.0', testPath, buildSpy);
build.run([ 'node', buildPath, '--phone', '--win' ])
@@ -157,14 +149,37 @@ describe('run method', function() {
});
});
+ it('should respect build configuration from \'buildConfig\' option', function (done) {
+
+ createFindAllAvailableVersionsMock([{version: '14.0', buildProject: jasmine.createSpy(), path: testPath }]);
+ var buildConfigPath = path.resolve(__dirname, 'fixtures/fakeBuildConfig.json');
+
+ build.run({ buildConfig: buildConfigPath })
+ .finally(function() {
+ expect(prepare.updateBuildConfig).toHaveBeenCalled();
+
+ var buildOpts = prepare.updateBuildConfig.calls[0].args[0];
+ var buildConfig = require(buildConfigPath).windows.debug;
+
+ expect(buildOpts.packageCertificateKeyFile).toBeDefined();
+ expect(buildOpts.packageCertificateKeyFile)
+ .toEqual(path.resolve(path.dirname(buildConfigPath), buildConfig.packageCertificateKeyFile));
+
+ ['packageThumbprint', 'publisherId'].forEach(function (key) {
+ expect(buildOpts[key]).toBeDefined();
+ expect(buildOpts[key]).toEqual(buildConfig[key]);
+ });
+
+ done();
+ });
+ });
+
it('spec.4 should call buildProject of MSBuildTools with buildType = "release" if called with --release argument', function(done) {
var buildSpy = jasmine.createSpy().andCallFake(function (solutionFile, buildType, buildArch) {
expect(buildType).toBe('release');
});
- build.__set__('utils.isCordovaProject', isCordovaProjectTrue);
createFindAllAvailableVersionsMock([{version: '14.0', buildProject: buildSpy, path: testPath }]);
- build.__set__('prepare.applyPlatformConfig', function() {} );
build.run({ release: true })
.finally(function() {
@@ -178,9 +193,7 @@ describe('run method', function() {
expect(buildType).toBe('debug');
});
- build.__set__('utils.isCordovaProject', isCordovaProjectTrue);
createFindAllAvailableVersionsMock([{version: '14.0', buildProject: buildSpy, path: testPath }]);
- build.__set__('prepare.applyPlatformConfig', function() {} );
build.run([ 'node', buildPath ])
.finally(function() {
@@ -194,11 +207,9 @@ describe('run method', function() {
expect(buildArch).toBe('arm');
});
- build.__set__('utils.isCordovaProject', isCordovaProjectTrue);
createFindAllAvailableVersionsMock([{version: '14.0', buildProject: buildSpy, path: testPath }]);
- build.__set__('prepare.applyPlatformConfig', function() {} );
- build.run({argv: ['--archs=arm'] })
+ build.run({ archs: 'arm' })
.finally(function() {
expect(buildSpy).toHaveBeenCalled();
done();
@@ -211,7 +222,6 @@ describe('run method', function() {
x64Build = jasmine.createSpy(),
anyCpuBuild = jasmine.createSpy();
- build.__set__('utils.isCordovaProject', isCordovaProjectTrue);
createFindAllAvailableVersionsMock([
{
version: '14.0',
@@ -237,9 +247,8 @@ describe('run method', function() {
}
}
}]);
- build.__set__('prepare.applyPlatformConfig', function() {} );
- build.run({ argv: ['--archs=arm x86 x64 anycpu', '--phone'] })
+ build.run({ archs: 'arm x86 x64 anycpu', argv: ['--phone'] })
.finally(function() {
expect(armBuild).toHaveBeenCalled();
expect(x86Build).toHaveBeenCalled();
@@ -253,9 +262,7 @@ describe('run method', function() {
var buildSpy = jasmine.createSpy(),
errorSpy = jasmine.createSpy();
- build.__set__('utils.isCordovaProject', isCordovaProjectTrue);
createFindAllAvailableVersionsMock([{version: '4.0', buildProject: buildSpy, path: testPath }]);
- build.__set__('prepare.applyPlatformConfig', function() {} );
createConfigParserMock('8.0');
build.run({argv: ['--win']})
@@ -273,9 +280,7 @@ describe('run method', function() {
it('spec.9 should call buildProject of MSBuildTools if built for windows 8.1', function(done) {
var buildSpy = jasmine.createSpy();
- build.__set__('utils.isCordovaProject', isCordovaProjectTrue);
createFindAllAvailableVersionsMock([{version: '14.0', buildProject: buildSpy, path: testPath }]);
- build.__set__('prepare.applyPlatformConfig', function() {} );
createConfigParserMock('8.1');
build.run({argv: ['--win']})
@@ -289,9 +294,7 @@ describe('run method', function() {
var buildSpy = jasmine.createSpy(),
errorSpy = jasmine.createSpy();
- build.__set__('utils.isCordovaProject', isCordovaProjectTrue);
createFindAvailableVersionMock('14.0', testPath, buildSpy);
- build.__set__('prepare.applyPlatformConfig', function() {} );
createConfigParserMock('unsupported value here');
build.run({argv: ['--win']})
@@ -309,9 +312,7 @@ describe('run method', function() {
it('spec.11 should call buildProject of MSBuildTools if built for windows phone 8.1', function(done) {
var buildSpy = jasmine.createSpy();
- build.__set__('utils.isCordovaProject', isCordovaProjectTrue);
createFindAllAvailableVersionsMock([{version: '14.0', buildProject: buildSpy, path: testPath }]);
- build.__set__('prepare.applyPlatformConfig', function() {} );
createConfigParserMock(null, '8.1');
build.run({argv: ['--phone']})
@@ -325,9 +326,7 @@ describe('run method', function() {
var buildSpy = jasmine.createSpy(),
errorSpy = jasmine.createSpy();
- build.__set__('utils.isCordovaProject', isCordovaProjectTrue);
createFindAvailableVersionMock('14.0', testPath, buildSpy);
- build.__set__('prepare.applyPlatformConfig', function() {} );
createConfigParserMock(null, 'unsupported value here');
build.run({argv: ['--phone']})
@@ -348,9 +347,7 @@ describe('run method', function() {
expect(solutionFile.toLowerCase().indexOf('cordovaapp.windows10.jsproj') >=0).toBe(true);
});
- build.__set__('utils.isCordovaProject', isCordovaProjectTrue);
createFindAllAvailableVersionsMock([{version: '14.0', buildProject: buildSpy, path: testPath }]);
- build.__set__('prepare.applyPlatformConfig', function() {} );
// provision config to target Windows 8.1
createConfigParserMock('8.1', '8.1');
// explicitly specify Windows 10 as target
http://git-wip-us.apache.org/repos/asf/cordova-windows/blob/51ac7ab1/spec/unit/fixtures/fakeBuildConfig.json
----------------------------------------------------------------------
diff --git a/spec/unit/fixtures/fakeBuildConfig.json b/spec/unit/fixtures/fakeBuildConfig.json
new file mode 100644
index 0000000..a89df47
--- /dev/null
+++ b/spec/unit/fixtures/fakeBuildConfig.json
@@ -0,0 +1,9 @@
+{
+ "windows": {
+ "debug": {
+ "packageCertificateKeyFile": "some/path",
+ "packageThumbprint": "thumbprint",
+ "publisherId": "CN=Publisher, O=Id"
+ }
+ }
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org