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