You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by ra...@apache.org on 2019/11/24 14:33:27 UTC
[cordova-coho] branch master updated: test(versionutil): test on
actual platforms (#250)
This is an automated email from the ASF dual-hosted git repository.
raphinesse pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cordova-coho.git
The following commit(s) were added to refs/heads/master by this push:
new 63561f3 test(versionutil): test on actual platforms (#250)
63561f3 is described below
commit 63561f35d9b7dbb3a3148cb20127deb49762881b
Author: Raphael von der GrĂ¼n <ra...@gmail.com>
AuthorDate: Sun Nov 24 15:33:20 2019 +0100
test(versionutil): test on actual platforms (#250)
* test(versionutil): test on actual platforms
* test(versionutil): fix suite name
* test(versionutil): remove needless manual timeout
---
package.json | 4 ++
spec/versionutil.spec.js | 133 +++++++++++++++++------------------------------
2 files changed, 51 insertions(+), 86 deletions(-)
diff --git a/package.json b/package.json
index 010c2ea..7aaa8a2 100644
--- a/package.json
+++ b/package.json
@@ -28,6 +28,10 @@
"xml2js": "0.4.17"
},
"devDependencies": {
+ "cordova-android": "^8.1.0",
+ "cordova-browser": "^6.0.0",
+ "cordova-ios": "^5.0.1",
+ "cordova-windows": "^7.0.0",
"eslint": "^5.12.0",
"eslint-config-semistandard": "^13.0.0",
"eslint-config-standard": "^12.0.0",
diff --git a/spec/versionutil.spec.js b/spec/versionutil.spec.js
index 4d474ab..176843b 100644
--- a/spec/versionutil.spec.js
+++ b/spec/versionutil.spec.js
@@ -20,14 +20,10 @@ under the License.
var versionutil = require('../src/versionutil');
require('jasmine-co').install();
var fs = require('fs');
+var os = require('os');
var path = require('path');
var shell = require('shelljs');
-var xml2js = require('xml2js');
-var repoutil = require('../src/repoutil');
-var executil = require('../src/executil');
var gitutil = require('../src/gitutil');
-var apputil = require('../src/apputil');
-var TIMEOUT = 60000;
var androidRepo = { title: 'Android',
id: 'android',
repoName: 'cordova-android',
@@ -54,97 +50,62 @@ var browserRepo = { title: 'Browser',
jiraComponentName: 'Browser',
cordovaJsSrcName: 'cordova.browser.js',
cordovaJsPaths: ['cordova-lib/cordova.js'] };
+const testVersion = '0.0.99';
-describe('Correct version is passed to gradle.build', function () {
- beforeEach(function * () {
- spyOn(fs, 'writeFileSync').and.returnValue(true);
- spyOn(fs, 'readFileSync').and.returnValue('{}');
- spyOn(xml2js, 'parseString').and.returnValue(true);
- spyOn(fs, 'existsSync').and.returnValue(true);
- spyOn(shell, 'sed').and.returnValue(true);
- spyOn(apputil, 'print').and.returnValue(true);
- spyOn(repoutil, 'isInRepoGroup').and.returnValue(true);
- spyOn(gitutil, 'pendingChangesExist').and.callFake(function () {
- return function * () { return true; };
- });
- spyOn(executil, 'execHelper').and.callFake(function () {
- return function * () { return true; };
- });
+describe('versionutil', function () {
+ let tmpDir;
+
+ beforeEach(() => {
+ const tmpDirTemplate = path.join(os.tmpdir(), 'cordova-coho-tests-');
+ tmpDir = fs.mkdtempSync(tmpDirTemplate);
+
+ spyOn(gitutil, 'pendingChangesExist').and.callFake(() => function * () { return true; });
+ spyOn(gitutil, 'commitChanges').and.callFake(() => function * () {});
});
- afterEach(function () {
- fs.writeFileSync.calls.reset();
- fs.readFileSync.calls.reset();
- fs.existsSync.calls.reset();
- shell.sed.calls.reset();
- apputil.print.calls.reset();
- repoutil.isInRepoGroup.calls.reset();
- gitutil.pendingChangesExist.calls.reset();
- executil.execHelper.calls.reset();
+ afterEach(() => {
+ process.chdir(__dirname);
+ shell.rm('-rf', tmpDir);
});
+ function setupPlatform (id) {
+ const src = path.dirname(require.resolve(`cordova-${id}/package`));
+ shell.cp('-R', src, tmpDir);
+ process.chdir(path.join(tmpDir, `cordova-${id}`));
+ }
+
+ function expectTestVersioninFiles (...paths) {
+ for (const p of paths) {
+ const content = fs.readFileSync(path.normalize(p), { encoding: 'utf-8' });
+ expect(content).toMatch(testVersion);
+ }
+ }
+
it('Test#001 : checks that the correct android version is passed in', function * () {
- yield versionutil.updateRepoVersion(androidRepo, '6.4.0-dev');
- // Check call count
- expect(fs.writeFileSync.calls.count()).toEqual(2);
- expect(fs.existsSync.calls.count()).toEqual(4);
- expect(fs.readFileSync.calls.count()).toEqual(3);
- expect(repoutil.isInRepoGroup.calls.count()).toEqual(2);
- expect(repoutil.isInRepoGroup.calls.count()).toEqual(2);
- expect(gitutil.pendingChangesExist.calls.count()).toEqual(4);
- expect(executil.execHelper.calls.count()).toEqual(1);
- expect(apputil.print.calls.count()).toEqual(0);
- expect(shell.sed.calls.count()).toEqual(5);
- // Check that args are correct
- expect(shell.sed.calls.argsFor(0)[2]).toEqual('CORDOVA_VERSION = "6.4.0-dev";');
- expect(shell.sed.calls.argsFor(1)[2]).toEqual('VERSION = "6.4.0-dev";');
- expect(shell.sed.calls.argsFor(2)[2]).toEqual("version = '6.4.0-dev'");
- expect(shell.sed.calls.argsFor(3)[2]).toEqual("vcsTag = '6.4.0-dev'");
- expect(shell.sed.calls.argsFor(4)[2]).toContain("name = '6.4.0-dev");
- }, TIMEOUT);
+ setupPlatform('android');
+ yield versionutil.updateRepoVersion(androidRepo, testVersion);
+ expectTestVersioninFiles(
+ 'bin/templates/cordova/version',
+ 'framework/src/org/apache/cordova/CordovaWebView.java',
+ 'framework/build.gradle'
+ );
+ });
it('Test#002 : checks that the correct ios version is passed in', function * () {
- yield versionutil.updateRepoVersion(iosRepo, '4.2.0-dev');
- // Check call count
- expect(fs.writeFileSync.calls.count()).toEqual(2);
- expect(fs.existsSync.calls.count()).toEqual(4);
- expect(repoutil.isInRepoGroup.calls.count()).toEqual(2);
- expect(fs.readFileSync.calls.count()).toEqual(3);
- expect(gitutil.pendingChangesExist.calls.count()).toEqual(4);
- expect(shell.sed.calls.count()).toEqual(1);
- expect(apputil.print.calls.count()).toEqual(0);
- expect(executil.execHelper.calls.count()).toEqual(1);
- // Check that args are correct
- expect(shell.sed.calls.argsFor(0)[2]).toEqual('VERSION="4.2.0-dev";');
- }, TIMEOUT);
+ setupPlatform('ios');
+ yield versionutil.updateRepoVersion(iosRepo, testVersion);
+ expectTestVersioninFiles('bin/templates/scripts/cordova/version');
+ });
it('Test#003 : checks that the correct windows version is passed in', function * () {
- yield versionutil.updateRepoVersion(windowsRepo, '4.5.0-dev');
- // Check call count
- expect(fs.writeFileSync.calls.count()).toEqual(2);
- expect(fs.existsSync.calls.count()).toEqual(5);
- expect(repoutil.isInRepoGroup.calls.count()).toEqual(2);
- expect(gitutil.pendingChangesExist.calls.count()).toEqual(4);
- expect(fs.readFileSync.calls.count()).toEqual(3);
- expect(shell.sed.calls.count()).toEqual(1);
- expect(apputil.print.calls.count()).toEqual(0);
- expect(executil.execHelper.calls.count()).toEqual(1);
- // Check that args are correct
- expect(shell.sed.calls.argsFor(0)[2]).toEqual('VERSION = "4.5.0-dev";');
- }, TIMEOUT);
+ setupPlatform('windows');
+ yield versionutil.updateRepoVersion(windowsRepo, testVersion);
+ expectTestVersioninFiles('template/cordova/version');
+ });
it('Test#004 : check that the correct browser version is passed in', function * () {
- yield versionutil.updateRepoVersion(browserRepo, '4.1.0-dev');
- // Check call count
- expect(fs.writeFileSync.calls.count()).toEqual(2);
- expect(fs.existsSync.calls.count()).toEqual(5);
- expect(repoutil.isInRepoGroup.calls.count()).toEqual(2);
- expect(gitutil.pendingChangesExist.calls.count()).toEqual(4);
- expect(fs.readFileSync.calls.count()).toEqual(3);
- expect(shell.sed.calls.count()).toEqual(1);
- expect(apputil.print.calls.count()).toEqual(0);
- expect(executil.execHelper.calls.count()).toEqual(1);
- // Check that args are correct
- expect(shell.sed.calls.argsFor(0)[2]).toEqual('VERSION = "4.1.0-dev";');
- }, TIMEOUT);
+ setupPlatform('browser');
+ yield versionutil.updateRepoVersion(browserRepo, testVersion);
+ expectTestVersioninFiles('bin/template/cordova/version');
+ });
});
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org