From 932750f77df037b7b4b3e5d04bcb79522588ee27 Mon Sep 17 00:00:00 2001 From: Jesse Rosenberger Date: Fri, 7 Oct 2016 14:07:14 +0300 Subject: [PATCH 1/3] Fix redeclared var & change to let --- tools/tests/cordova-platforms.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/tests/cordova-platforms.js b/tools/tests/cordova-platforms.js index 4f50a1371c..3ed63449d5 100644 --- a/tools/tests/cordova-platforms.js +++ b/tools/tests/cordova-platforms.js @@ -4,7 +4,7 @@ var files = require('../fs/files.js'); selftest.define("add cordova platforms", ["cordova"], function () { var s = new Sandbox(); - var run; + let run; // Starting a run s.createApp("myapp", "package-tests"); @@ -15,7 +15,7 @@ selftest.define("add cordova platforms", ["cordova"], function () { run.match("meteor add-platform android"); run.expectExit(1); - var run = s.run("add-platform", "android"); + run = s.run("add-platform", "android"); // Cordova may need to download cordova-android if it's not already // cached (in ~/.cordova). run.waitSecs(30); From 3359d2397c41aba7bcf663496a60e06c3724e78e Mon Sep 17 00:00:00 2001 From: Jesse Rosenberger Date: Fri, 7 Oct 2016 14:08:51 +0300 Subject: [PATCH 2/3] Add test which verifies the Cordova dependency messages are working Previously, the Cordova message was failing in CI. It wasn't caught on CircleCI since they have Cordova installed by default so this path was never tested. I found this when I ran this through Semaphore CI who does not have Cordova available by default. This test fails without meteor/meteor#7884 and passes with it. --- tools/tests/cordova-platforms.js | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/tools/tests/cordova-platforms.js b/tools/tests/cordova-platforms.js index 3ed63449d5..3b134a533d 100644 --- a/tools/tests/cordova-platforms.js +++ b/tools/tests/cordova-platforms.js @@ -32,4 +32,27 @@ selftest.define("add cordova platforms", ["cordova"], function () { run.matchErr("Please add the Android platform to your project first"); run.match("meteor add-platform android"); run.expectExit(1); + + if (process.platform !== 'win32') { + const originalAndroidHome = process.env.ANDROID_HOME; + const originalPath = process.env.PATH; + + // Hide the fact that Android is installed (as it is on CircleCI) by providing + // access to only bare system functionality. Android is installed globally in /usr/local/ + // on CircleCI and on Mac. + s.set("ANDROID_HOME", undefined); + s.set("PATH", "/usr/bin:/bin:/usr/sbin:/sbin"); + + run = s.run("add-platform", "android"); + run.match("added platform"); + run.match("Your system does not yet seem to fulfill all requirements to build apps for Android"); + run.expectExit(0); + + run = s.run("remove-platform", "android"); + run.match("removed"); + run.expectExit(0); + + s.set("ANDROID_HOME", originalAndroidHome); + s.set("PATH", originalPath); + } }); From 8c948d2ebc120c1924578b8a79fe2dc651661d8b Mon Sep 17 00:00:00 2001 From: Jesse Rosenberger Date: Fri, 7 Oct 2016 14:17:11 +0300 Subject: [PATCH 3/3] Test: Ensure message when platform already added If the platform is already added, it should provide the appropriate message. --- tools/tests/cordova-platforms.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tools/tests/cordova-platforms.js b/tools/tests/cordova-platforms.js index 3b134a533d..cc29ab2480 100644 --- a/tools/tests/cordova-platforms.js +++ b/tools/tests/cordova-platforms.js @@ -22,6 +22,10 @@ selftest.define("add cordova platforms", ["cordova"], function () { run.match("added platform"); run.expectExit(0); + run = s.run("add-platform", "android"); + run.matchErr("android: platform is already added"); + run.expectExit(1); + run = s.run("remove-platform", "foo"); run.matchErr("foo: platform is not"); run.expectExit(1);