You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by pu...@apache.org on 2017/06/27 02:37:23 UTC
[3/4] cordova-cli git commit: CB-12895 : after rebase
CB-12895 : after rebase
Project: http://git-wip-us.apache.org/repos/asf/cordova-cli/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-cli/commit/3127d503
Tree: http://git-wip-us.apache.org/repos/asf/cordova-cli/tree/3127d503
Diff: http://git-wip-us.apache.org/repos/asf/cordova-cli/diff/3127d503
Branch: refs/heads/master
Commit: 3127d503345fcf3e5a2be9581933c99f65197c27
Parents: 3aab003
Author: Audrey So <au...@apache.org>
Authored: Mon Jun 26 07:49:39 2017 -0700
Committer: Audrey So <au...@apache.org>
Committed: Mon Jun 26 07:55:52 2017 -0700
----------------------------------------------------------------------
spec/.eslintrc.yaml | 2 +
spec/cli.spec.js | 683 +++++++++++++++++++++++------------------------
spec/help.spec.js | 37 ++-
src/cli.js | 236 ++++++++--------
src/help.js | 4 +-
src/telemetry.js | 25 +-
6 files changed, 483 insertions(+), 504 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/3127d503/spec/.eslintrc.yaml
----------------------------------------------------------------------
diff --git a/spec/.eslintrc.yaml b/spec/.eslintrc.yaml
new file mode 100644
index 0000000..6afba65
--- /dev/null
+++ b/spec/.eslintrc.yaml
@@ -0,0 +1,2 @@
+env:
+ jasmine: true
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/3127d503/spec/cli.spec.js
----------------------------------------------------------------------
diff --git a/spec/cli.spec.js b/spec/cli.spec.js
index 3b47808..4031821 100644
--- a/spec/cli.spec.js
+++ b/spec/cli.spec.js
@@ -15,22 +15,21 @@
under the License.
*/
-var rewire = require('rewire'),
- cli = rewire("../src/cli"),
- Q = require('q'),
- cordova_lib = require('cordova-lib'),
- events = cordova_lib.events,
- cordova = cordova_lib.cordova,
- telemetry = require('../src/telemetry'),
- path = require('path'),
- Configstore = require('configstore'),
- fs = require('fs'),
- logger = require('cordova-common').CordovaLogger.get();
-
-//avoid node complaining of too many event listener added
+var rewire = require('rewire');
+var cli = rewire('../src/cli');
+var Q = require('q');
+var cordova_lib = require('cordova-lib');
+var events = cordova_lib.events;
+var cordova = cordova_lib.cordova;
+var telemetry = require('../src/telemetry');
+var path = require('path');
+var fs = require('fs');
+var logger = require('cordova-common').CordovaLogger.get();
+
+// avoid node complaining of too many event listener added
process.setMaxListeners(0);
-describe("cordova cli", function () {
+describe('cordova cli', function () {
beforeEach(function () {
// Event registration is currently process-global. Since all jasmine
// tests in a directory run in a single process (and in parallel),
@@ -38,12 +37,12 @@ describe("cordova cli", function () {
// CLI testing below would cause lots of logging messages printed out by other specs.
// This is required so that fake events chaining works (events.on('log').on('verbose')...)
- var FakeEvents = function FakeEvents() {};
+ var FakeEvents = function FakeEvents () {};
FakeEvents.prototype.on = function fakeOn () {
return new FakeEvents();
};
- spyOn(events, "on").and.returnValue(new FakeEvents());
+ spyOn(events, 'on').and.returnValue(new FakeEvents());
// Spy and mute output
spyOn(logger, 'results');
@@ -51,109 +50,109 @@ describe("cordova cli", function () {
spyOn(console, 'log');
// Prevent accidentally turning telemetry on/off during testing
- telemetry.turnOn = function() {};
- telemetry.turnOff = function() {};
- telemetry.track = function() {};
+ telemetry.turnOn = function () {};
+ telemetry.turnOff = function () {};
+ telemetry.track = function () {};
});
- describe("options", function () {
- describe("version", function () {
- var version = require("../package").version;
+ describe('options', function () {
+ describe('version', function () {
+ var version = require('../package').version;
- it("Test#001 : will spit out the version with -v", function (done) {
- cli(["node", "cordova", "-v"], function() {
- expect(logger.results.calls.mostRecent().args[0]).toMatch(version);
- done();
- });
+ it('Test#001 : will spit out the version with -v', function (done) {
+ cli(['node', 'cordova', '-v'], function () {
+ expect(logger.results.calls.mostRecent().args[0]).toMatch(version);
+ done();
+ });
}, 60000);
- it("Test#002 : will spit out the version with --version", function (done) {
- cli(["node", "cordova", "--version"], function () {
- expect(logger.results.calls.mostRecent().args[0]).toMatch(version);
- done();
- }, 60000);
+ it('Test#002 : will spit out the version with --version', function (done) {
+ cli(['node', 'cordova', '--version'], function () {
+ expect(logger.results.calls.mostRecent().args[0]).toMatch(version);
+ done();
+ }, 60000);
});
- it("Test#003 : will spit out the version with -v anywhere", function (done) {
- cli(["node", "cordova", "one", "-v", "three"], function () {
- expect(logger.results.calls.mostRecent().args[0]).toMatch(version);
- done();
- });
+ it('Test#003 : will spit out the version with -v anywhere', function (done) {
+ cli(['node', 'cordova', 'one', '-v', 'three'], function () {
+ expect(logger.results.calls.mostRecent().args[0]).toMatch(version);
+ done();
+ });
}, 60000);
});
});
- describe("Test#004 : project commands other than plugin and platform", function () {
+ describe('Test#004 : project commands other than plugin and platform', function () {
beforeEach(function () {
- spyOn(cordova, "build").and.returnValue(Q());
+ spyOn(cordova, 'build').and.returnValue(Q());
});
- it("Test#005 : will call command with all arguments passed through", function (done) {
- cli(["node", "cordova", "build", "blackberry10", "--", "-k", "abcd1234"], function () {
- expect(cordova.build).toHaveBeenCalledWith({ platforms: ['blackberry10'], options: { argv: ['-k', 'abcd1234'], fetch: true }, verbose: false, silent: false, browserify: false, fetch: true, nohooks: [ ], searchpath: undefined });
+ it('Test#005 : will call command with all arguments passed through', function (done) {
+ cli(['node', 'cordova', 'build', 'blackberry10', '--', '-k', 'abcd1234'], function () {
+ expect(cordova.build).toHaveBeenCalledWith({ platforms: ['blackberry10'], options: { argv: ['-k', 'abcd1234'], fetch: true }, verbose: false, silent: false, browserify: false, fetch: true, nohooks: [ ], searchpath: undefined });
done();
});
}, 60000);
- it("Test#006 : will consume the first instance of -d", function (done) {
- cli(["node", "cordova", "-d", "build", "blackberry10", "--", "-k", "abcd1234", "-d"], function () {
- expect(cordova.build).toHaveBeenCalledWith({ platforms: ['blackberry10'], options: { verbose: true, argv: ['-k', 'abcd1234', '-d'], fetch: true }, verbose: true, silent: false, browserify: false, fetch: true, nohooks: [ ], searchpath: undefined });
+ it('Test#006 : will consume the first instance of -d', function (done) {
+ cli(['node', 'cordova', '-d', 'build', 'blackberry10', '--', '-k', 'abcd1234', '-d'], function () {
+ expect(cordova.build).toHaveBeenCalledWith({ platforms: ['blackberry10'], options: { verbose: true, argv: ['-k', 'abcd1234', '-d'], fetch: true }, verbose: true, silent: false, browserify: false, fetch: true, nohooks: [ ], searchpath: undefined });
done();
});
});
- it("Test#007 : will consume the first instance of --verbose", function (done) {
- cli(["node", "cordova", "--verbose", "build", "blackberry10", "--", "-k", "abcd1234", "--verbose"], function () {
- expect(cordova.build).toHaveBeenCalledWith({ platforms: ['blackberry10'], options: { verbose: true, argv: ['-k', 'abcd1234', '--verbose'], fetch: true }, verbose: true, silent: false, browserify: false, fetch: true, nohooks: [ ], searchpath: undefined });
+ it('Test#007 : will consume the first instance of --verbose', function (done) {
+ cli(['node', 'cordova', '--verbose', 'build', 'blackberry10', '--', '-k', 'abcd1234', '--verbose'], function () {
+ expect(cordova.build).toHaveBeenCalledWith({ platforms: ['blackberry10'], options: { verbose: true, argv: ['-k', 'abcd1234', '--verbose'], fetch: true }, verbose: true, silent: false, browserify: false, fetch: true, nohooks: [ ], searchpath: undefined });
done();
});
});
- it("Test#008 : will consume the first instance of either --verbose or -d", function (done) {
- cli(["node", "cordova", "--verbose", "build", "blackberry10", "--", "-k", "abcd1234", "-d"], function () {
- expect(cordova.build).toHaveBeenCalledWith({ platforms: ['blackberry10'], options: { verbose: true, argv: ['-k', 'abcd1234', '-d'], fetch: true }, verbose: true, silent: false, browserify: false, fetch: true, nohooks: [ ], searchpath: undefined });
+ it('Test#008 : will consume the first instance of either --verbose or -d', function (done) {
+ cli(['node', 'cordova', '--verbose', 'build', 'blackberry10', '--', '-k', 'abcd1234', '-d'], function () {
+ expect(cordova.build).toHaveBeenCalledWith({ platforms: ['blackberry10'], options: { verbose: true, argv: ['-k', 'abcd1234', '-d'], fetch: true }, verbose: true, silent: false, browserify: false, fetch: true, nohooks: [ ], searchpath: undefined });
done();
});
});
- it("Test#009 : will consume the first instance of either --verbose or -d", function (done) {
- cli(["node", "cordova", "-d", "build", "blackberry10", "--", "-k", "abcd1234", "--verbose"], function () {
- expect(cordova.build).toHaveBeenCalledWith({ platforms: ['blackberry10'], options: { verbose: true, argv: ['-k', 'abcd1234', '--verbose'], fetch: true }, verbose: true, silent: false, browserify: false, fetch: true, nohooks: [ ], searchpath: undefined });
+ it('Test#009 : will consume the first instance of either --verbose or -d', function (done) {
+ cli(['node', 'cordova', '-d', 'build', 'blackberry10', '--', '-k', 'abcd1234', '--verbose'], function () {
+ expect(cordova.build).toHaveBeenCalledWith({ platforms: ['blackberry10'], options: { verbose: true, argv: ['-k', 'abcd1234', '--verbose'], fetch: true }, verbose: true, silent: false, browserify: false, fetch: true, nohooks: [ ], searchpath: undefined });
done();
});
});
- it("Test#010 : will consume the first instance of --silent", function (done) {
- cli(["node", "cordova", "--silent", "build", "blackberry10", "--", "-k", "abcd1234", "--silent"], function () {
- expect(cordova.build).toHaveBeenCalledWith({ platforms: ['blackberry10'], options: { silent: true, argv: ['-k', 'abcd1234', '--silent'], fetch: true }, verbose: false, silent: true, browserify: false, fetch: true, nohooks: [ ], searchpath: undefined });
+ it('Test#010 : will consume the first instance of --silent', function (done) {
+ cli(['node', 'cordova', '--silent', 'build', 'blackberry10', '--', '-k', 'abcd1234', '--silent'], function () {
+ expect(cordova.build).toHaveBeenCalledWith({ platforms: ['blackberry10'], options: { silent: true, argv: ['-k', 'abcd1234', '--silent'], fetch: true }, verbose: false, silent: true, browserify: false, fetch: true, nohooks: [ ], searchpath: undefined });
done();
});
});
});
- describe("create", function () {
+ describe('create', function () {
beforeEach(function () {
- spyOn(cordova, "create").and.returnValue(Q());
+ spyOn(cordova, 'create').and.returnValue(Q());
});
- it("Test#011 : calls cordova create", function (done) {
- cli(["node", "cordova", "create", "a", "b", "c", "--link-to", "c:\\personalWWW"], function () {
- expect(cordova.create).toHaveBeenCalledWith("a", "b", "c", jasmine.any(Object), jasmine.any(Object));
+ it('Test#011 : calls cordova create', function (done) {
+ cli(['node', 'cordova', 'create', 'a', 'b', 'c', '--link-to', 'c:\\personalWWW'], function () {
+ expect(cordova.create).toHaveBeenCalledWith('a', 'b', 'c', jasmine.any(Object), jasmine.any(Object));
done();
});
});
});
- describe("plugin", function () {
+ describe('plugin', function () {
beforeEach(function () {
- spyOn(cordova, "plugin").and.returnValue(Q());
+ spyOn(cordova, 'plugin').and.returnValue(Q());
});
- it("Test#012 : will pass variables", function (done) {
- cli(["node", "cordova", "plugin", "add", "facebook", "--variable", "FOO=foo"], function () {
+ it('Test#012 : will pass variables', function (done) {
+ cli(['node', 'cordova', 'plugin', 'add', 'facebook', '--variable', 'FOO=foo'], function () {
expect(cordova.plugin).toHaveBeenCalledWith(
- "add",
- ["facebook"],
+ 'add',
+ ['facebook'],
jasmine.any(Object)
);
var opts = cordova.plugin.calls.argsFor(0)[2];
@@ -162,11 +161,11 @@ describe("cordova cli", function () {
});
});
- it("Test#013 : will support variables with =", function (done) {
- cli(["node", "cordova", "plugin", "add", "facebook", "--variable", "MOTO=DELTA=WAS=HERE"], function () {
+ it('Test#013 : will support variables with =', function (done) {
+ cli(['node', 'cordova', 'plugin', 'add', 'facebook', '--variable', 'MOTO=DELTA=WAS=HERE'], function () {
expect(cordova.plugin).toHaveBeenCalledWith(
- "add",
- ["facebook"],
+ 'add',
+ ['facebook'],
jasmine.any(Object)
);
var opts = cordova.plugin.calls.argsFor(0)[2];
@@ -175,24 +174,24 @@ describe("cordova cli", function () {
});
});
- it("Test#014 : will pass hook patterns to suppress", function (done) {
- cli(["node", "cordova", "plugin", "add", "facebook", "--nohooks", "before_plugin_add"], function () {
+ it('Test#014 : will pass hook patterns to suppress', function (done) {
+ cli(['node', 'cordova', 'plugin', 'add', 'facebook', '--nohooks', 'before_plugin_add'], function () {
expect(cordova.plugin).toHaveBeenCalledWith(
- "add",
- ["facebook"],
+ 'add',
+ ['facebook'],
jasmine.any(Object)
);
var opts = cordova.plugin.calls.argsFor(0)[2];
- expect(opts.nohooks[0]).toBe("before_plugin_add");
+ expect(opts.nohooks[0]).toBe('before_plugin_add');
done();
});
});
- it("Test #015 : (add) will pass save:true", function (done) {
- cli(["node", "cordova", "plugin", "add", "device"], function () {
+ it('Test #015 : (add) will pass save:true', function (done) {
+ cli(['node', 'cordova', 'plugin', 'add', 'device'], function () {
expect(cordova.plugin).toHaveBeenCalledWith(
- "add",
- ["device"],
+ 'add',
+ ['device'],
jasmine.any(Object)
);
var opts = cordova.plugin.calls.argsFor(0)[2];
@@ -201,11 +200,11 @@ describe("cordova cli", function () {
});
});
- it("Test #016 : (add) will pass save:false", function (done) {
- cli(["node", "cordova", "plugin", "add", "device", "--nosave"], function () {
+ it('Test #016 : (add) will pass save:false', function (done) {
+ cli(['node', 'cordova', 'plugin', 'add', 'device', '--nosave'], function () {
expect(cordova.plugin).toHaveBeenCalledWith(
- "add",
- ["device"],
+ 'add',
+ ['device'],
jasmine.any(Object)
);
var opts = cordova.plugin.calls.argsFor(0)[2];
@@ -214,11 +213,11 @@ describe("cordova cli", function () {
});
});
- it("Test #017: (remove) will pass save:false", function (done) {
- cli(["node", "cordova", "plugin", "remove", "device", "--nosave"], function () {
+ it('Test #017: (remove) will pass save:false', function (done) {
+ cli(['node', 'cordova', 'plugin', 'remove', 'device', '--nosave'], function () {
expect(cordova.plugin).toHaveBeenCalledWith(
- "remove",
- ["device"],
+ 'remove',
+ ['device'],
jasmine.any(Object)
);
var opts = cordova.plugin.calls.argsFor(0)[2];
@@ -227,11 +226,11 @@ describe("cordova cli", function () {
});
});
- it("Test #018 : (remove) autosave is default and will pass save:true", function (done) {
- cli(["node", "cordova", "plugin", "remove", "device"], function () {
+ it('Test #018 : (remove) autosave is default and will pass save:true', function (done) {
+ cli(['node', 'cordova', 'plugin', 'remove', 'device'], function () {
expect(cordova.plugin).toHaveBeenCalledWith(
- "remove",
- ["device"],
+ 'remove',
+ ['device'],
jasmine.any(Object)
);
var opts = cordova.plugin.calls.argsFor(0)[2];
@@ -240,24 +239,24 @@ describe("cordova cli", function () {
});
});
- it("Test #019 : (add) will pass fetch:false", function (done) {
- cli(["node", "cordova", "plugin", "add", "device", "--nofetch"], function () {
- expect(cordova.plugin).toHaveBeenCalledWith(
- "add",
- ["device"],
- jasmine.any(Object)
- );
- var opts = cordova.plugin.calls.argsFor(0)[2];
- expect(opts.fetch).toBe(false);
- done();
+ it('Test #019 : (add) will pass fetch:false', function (done) {
+ cli(['node', 'cordova', 'plugin', 'add', 'device', '--nofetch'], function () {
+ expect(cordova.plugin).toHaveBeenCalledWith(
+ 'add',
+ ['device'],
+ jasmine.any(Object)
+ );
+ var opts = cordova.plugin.calls.argsFor(0)[2];
+ expect(opts.fetch).toBe(false);
+ done();
});
});
- it("Test #020 : (add) fetch is true by default and will pass fetch:true", function (done) {
- cli(["node", "cordova", "plugin", "add", "device"], function () {
+ it('Test #020 : (add) fetch is true by default and will pass fetch:true', function (done) {
+ cli(['node', 'cordova', 'plugin', 'add', 'device'], function () {
expect(cordova.plugin).toHaveBeenCalledWith(
- "add",
- ["device"],
+ 'add',
+ ['device'],
jasmine.any(Object)
);
var opts = cordova.plugin.calls.argsFor(0)[2];
@@ -266,11 +265,11 @@ describe("cordova cli", function () {
});
});
- it("Test #021 : (remove) fetch is true by default and will pass fetch:true", function (done) {
- cli(["node", "cordova", "plugin", "remove", "device"], function () {
+ it('Test #021 : (remove) fetch is true by default and will pass fetch:true', function (done) {
+ cli(['node', 'cordova', 'plugin', 'remove', 'device'], function () {
expect(cordova.plugin).toHaveBeenCalledWith(
- "remove",
- ["device"],
+ 'remove',
+ ['device'],
jasmine.any(Object)
);
var opts = cordova.plugin.calls.argsFor(0)[2];
@@ -279,11 +278,11 @@ describe("cordova cli", function () {
});
});
- it("Test #022 : (remove) will pass fetch:false", function (done) {
- cli(["node", "cordova", "plugin", "remove", "device", "--nofetch"], function () {
+ it('Test #022 : (remove) will pass fetch:false', function (done) {
+ cli(['node', 'cordova', 'plugin', 'remove', 'device', '--nofetch'], function () {
expect(cordova.plugin).toHaveBeenCalledWith(
- "remove",
- ["device"],
+ 'remove',
+ ['device'],
jasmine.any(Object)
);
var opts = cordova.plugin.calls.argsFor(0)[2];
@@ -293,170 +292,169 @@ describe("cordova cli", function () {
});
});
- describe("telemetry", function() {
- it("Test#023 : skips prompt when user runs 'cordova telemetry X'", function(done) {
- var wasPromptShown = false;
- spyOn(telemetry, "showPrompt").and.callFake(function () {
- wasPromptShown = true;
- });
-
- cli(["node", "cordova", "telemetry", "on"], function () {
- cli(["node", "cordova", "telemetry", "off"], function () {
- expect(wasPromptShown).toBeFalsy();
- done();
- });
- });
- });
-
- it("Test#024 : is NOT collected when user runs 'cordova telemetry on' while NOT opted-in", function(done) {
- spyOn(telemetry, "isOptedIn").and.returnValue(false);
- spyOn(telemetry, "isCI").and.returnValue(false);
- spyOn(telemetry, "track");
-
- cli(["node", "cordova", "telemetry", "on"], function () {
- expect(telemetry.track).not.toHaveBeenCalled();
- done();
- });
- });
-
- it("Test#025 : is collected when user runs 'cordova telemetry off' while opted-in", function(done) {
- spyOn(telemetry, "isOptedIn").and.returnValue(true);
- spyOn(telemetry, "isCI").and.returnValue(false);
- spyOn(telemetry, "track");
-
- cli(["node", "cordova", "telemetry", "off"], function () {
- expect(telemetry.track).toHaveBeenCalledWith("telemetry", "off", "via-cordova-telemetry-cmd", "successful");
- done();
- });
- });
-
- it("Test#026 : tracks platforms/plugins subcommands", function(done) {
- spyOn(telemetry, "isOptedIn").and.returnValue(true);
- spyOn(telemetry, "isCI").and.returnValue(false);
- spyOn(telemetry, "hasUserOptedInOrOut").and.returnValue(true);
- spyOn(cordova, "platform").and.returnValue(Q());
- spyOn(telemetry, "track");
-
- cli(["node", "cordova", "platform", "add", "ios"], function () {
- expect(telemetry.track).toHaveBeenCalledWith("platform", "add", "successful");
- done();
- });
- });
-
- it("Test#027 : shows prompt if user neither opted in or out yet", function(done) {
- spyOn(cordova, "prepare").and.returnValue(Q());
- spyOn(telemetry, "hasUserOptedInOrOut").and.returnValue(false);
- spyOn(telemetry, "isCI").and.returnValue(false);
- spyOn(telemetry, "isNoTelemetryFlag").and.returnValue(false);
- spyOn(telemetry, "showPrompt").and.returnValue(Q(false));
-
- cli(["node", "cordova", "prepare"], function () {
- expect(telemetry.showPrompt).toHaveBeenCalled();
- done();
- });
- });
-
- // note: we override telemetry timeout here so we don't need to wait 30 seconds
- it("Test#028 : opts-out if prompt times out AND it tracks opt-out", function(done) {
- // Remove any optOut settings that might have been saved
- // ... and force prompt to be shown
- telemetry.clear();
- spyOn(telemetry, "hasUserOptedInOrOut").and.returnValue(false);
- spyOn(telemetry, "isCI").and.returnValue(false);
- spyOn(telemetry, "track");
-
- telemetry.timeoutInSecs = 1;
- cli(["node", "cordova", "--version"], function () {
- if(process.env.CI) {
- expect(telemetry.isOptedIn()).toBeTruthy();
- }
- else {
- expect(telemetry.isOptedIn()).toBeFalsy();
- }
- expect(telemetry.track).toHaveBeenCalledWith("telemetry", "off", "via-cli-prompt-choice", "successful");
- done();
- });
- });
-
- it("Test#029 : is NOT collected in CI environments and doesn't prompt", function(done) {
- spyOn(telemetry, "hasUserOptedInOrOut").and.returnValue(true);
- spyOn(telemetry, "isOptedIn").and.returnValue(true);
- spyOn(telemetry, "isCI").and.returnValue(true);
- spyOn(telemetry, "showPrompt");
- spyOn(telemetry, "track");
-
- cli(["node", "cordova", "--version"], function () {
- expect(telemetry.showPrompt).not.toHaveBeenCalled();
- expect(telemetry.track).not.toHaveBeenCalled();
- done();
- });
- });
-
- it("Test#030 : is NOT collected when --no-telemetry flag found and doesn't prompt", function(done) {
- spyOn(telemetry, "hasUserOptedInOrOut").and.returnValue(false);
- spyOn(telemetry, "isOptedIn").and.returnValue(true);
- spyOn(telemetry, "isCI").and.returnValue(false);
- spyOn(telemetry, "showPrompt");
- spyOn(telemetry, "track");
-
- cli(["node", "cordova", "--version", "--no-telemetry"], function () {
- expect(telemetry.showPrompt).not.toHaveBeenCalled();
- expect(telemetry.track).not.toHaveBeenCalled();
- done();
- });
- });
-
- it("Test#031 : is NOT collected if user opted out", function(done) {
- spyOn(telemetry, "hasUserOptedInOrOut").and.returnValue(true);
- spyOn(telemetry, "isOptedIn").and.returnValue(false);
- spyOn(telemetry, "isCI").and.returnValue(false);
- spyOn(telemetry, "showPrompt");
- spyOn(telemetry, "track");
-
- cli(["node", "cordova", "--version"], function () {
- expect(telemetry.showPrompt).not.toHaveBeenCalled();
- expect(telemetry.track).not.toHaveBeenCalled();
- done();
- });
- });
-
- it("Test#032 : is collected if user opted in", function(done) {
- spyOn(telemetry, "hasUserOptedInOrOut").and.returnValue(true);
- spyOn(telemetry, "isOptedIn").and.returnValue(true);
- spyOn(telemetry, "isCI").and.returnValue(false);
- spyOn(telemetry, "showPrompt");
- spyOn(telemetry, "track");
-
- cli(["node", "cordova", "--version"], function () {
- expect(telemetry.showPrompt).not.toHaveBeenCalled();
- expect(telemetry.track).toHaveBeenCalled();
- done();
- });
- });
-
- it("Test#033 : track opt-out that happened via 'cordova telemetry off' even if user is NOT opted-in ", function(done) {
- spyOn(telemetry, "isCI").and.returnValue(false);
- spyOn(telemetry, "isOptedIn").and.returnValue(false); // same as calling `telemetry.turnOff();`
- spyOn(telemetry, "hasUserOptedInOrOut").and.returnValue(true);
- spyOn(telemetry, "track");
-
- expect(telemetry.isOptedIn()).toBeFalsy();
-
- cli(["node", "cordova", "telemetry", "off"], function () {
- expect(telemetry.isOptedIn()).toBeFalsy();
- expect(telemetry.track).toHaveBeenCalledWith("telemetry", "off", "via-cordova-telemetry-cmd", "successful");
- done();
- });
- });
+ describe('telemetry', function () {
+ it("Test#023 : skips prompt when user runs 'cordova telemetry X'", function (done) {
+ var wasPromptShown = false;
+ spyOn(telemetry, 'showPrompt').and.callFake(function () {
+ wasPromptShown = true;
+ });
+
+ cli(['node', 'cordova', 'telemetry', 'on'], function () {
+ cli(['node', 'cordova', 'telemetry', 'off'], function () {
+ expect(wasPromptShown).toBeFalsy();
+ done();
+ });
+ });
+ });
+
+ it("Test#024 : is NOT collected when user runs 'cordova telemetry on' while NOT opted-in", function (done) {
+ spyOn(telemetry, 'isOptedIn').and.returnValue(false);
+ spyOn(telemetry, 'isCI').and.returnValue(false);
+ spyOn(telemetry, 'track');
+
+ cli(['node', 'cordova', 'telemetry', 'on'], function () {
+ expect(telemetry.track).not.toHaveBeenCalled();
+ done();
+ });
+ });
+
+ it("Test#025 : is collected when user runs 'cordova telemetry off' while opted-in", function (done) {
+ spyOn(telemetry, 'isOptedIn').and.returnValue(true);
+ spyOn(telemetry, 'isCI').and.returnValue(false);
+ spyOn(telemetry, 'track');
+
+ cli(['node', 'cordova', 'telemetry', 'off'], function () {
+ expect(telemetry.track).toHaveBeenCalledWith('telemetry', 'off', 'via-cordova-telemetry-cmd', 'successful');
+ done();
+ });
+ });
+
+ it('Test#026 : tracks platforms/plugins subcommands', function (done) {
+ spyOn(telemetry, 'isOptedIn').and.returnValue(true);
+ spyOn(telemetry, 'isCI').and.returnValue(false);
+ spyOn(telemetry, 'hasUserOptedInOrOut').and.returnValue(true);
+ spyOn(cordova, 'platform').and.returnValue(Q());
+ spyOn(telemetry, 'track');
+
+ cli(['node', 'cordova', 'platform', 'add', 'ios'], function () {
+ expect(telemetry.track).toHaveBeenCalledWith('platform', 'add', 'successful');
+ done();
+ });
+ });
+
+ it('Test#027 : shows prompt if user neither opted in or out yet', function (done) {
+ spyOn(cordova, 'prepare').and.returnValue(Q());
+ spyOn(telemetry, 'hasUserOptedInOrOut').and.returnValue(false);
+ spyOn(telemetry, 'isCI').and.returnValue(false);
+ spyOn(telemetry, 'isNoTelemetryFlag').and.returnValue(false);
+ spyOn(telemetry, 'showPrompt').and.returnValue(Q(false));
+
+ cli(['node', 'cordova', 'prepare'], function () {
+ expect(telemetry.showPrompt).toHaveBeenCalled();
+ done();
+ });
+ });
+
+ // note: we override telemetry timeout here so we don't need to wait 30 seconds
+ it('Test#028 : opts-out if prompt times out AND it tracks opt-out', function (done) {
+ // Remove any optOut settings that might have been saved
+ // ... and force prompt to be shown
+ telemetry.clear();
+ spyOn(telemetry, 'hasUserOptedInOrOut').and.returnValue(false);
+ spyOn(telemetry, 'isCI').and.returnValue(false);
+ spyOn(telemetry, 'track');
+
+ telemetry.timeoutInSecs = 1;
+ cli(['node', 'cordova', '--version'], function () {
+ if (process.env.CI) {
+ expect(telemetry.isOptedIn()).toBeTruthy();
+ } else {
+ expect(telemetry.isOptedIn()).toBeFalsy();
+ }
+ expect(telemetry.track).toHaveBeenCalledWith('telemetry', 'off', 'via-cli-prompt-choice', 'successful');
+ done();
+ });
+ });
+
+ it("Test#029 : is NOT collected in CI environments and doesn't prompt", function (done) {
+ spyOn(telemetry, 'hasUserOptedInOrOut').and.returnValue(true);
+ spyOn(telemetry, 'isOptedIn').and.returnValue(true);
+ spyOn(telemetry, 'isCI').and.returnValue(true);
+ spyOn(telemetry, 'showPrompt');
+ spyOn(telemetry, 'track');
+
+ cli(['node', 'cordova', '--version'], function () {
+ expect(telemetry.showPrompt).not.toHaveBeenCalled();
+ expect(telemetry.track).not.toHaveBeenCalled();
+ done();
+ });
+ });
+
+ it("Test#030 : is NOT collected when --no-telemetry flag found and doesn't prompt", function (done) {
+ spyOn(telemetry, 'hasUserOptedInOrOut').and.returnValue(false);
+ spyOn(telemetry, 'isOptedIn').and.returnValue(true);
+ spyOn(telemetry, 'isCI').and.returnValue(false);
+ spyOn(telemetry, 'showPrompt');
+ spyOn(telemetry, 'track');
+
+ cli(['node', 'cordova', '--version', '--no-telemetry'], function () {
+ expect(telemetry.showPrompt).not.toHaveBeenCalled();
+ expect(telemetry.track).not.toHaveBeenCalled();
+ done();
+ });
+ });
+
+ it('Test#031 : is NOT collected if user opted out', function (done) {
+ spyOn(telemetry, 'hasUserOptedInOrOut').and.returnValue(true);
+ spyOn(telemetry, 'isOptedIn').and.returnValue(false);
+ spyOn(telemetry, 'isCI').and.returnValue(false);
+ spyOn(telemetry, 'showPrompt');
+ spyOn(telemetry, 'track');
+
+ cli(['node', 'cordova', '--version'], function () {
+ expect(telemetry.showPrompt).not.toHaveBeenCalled();
+ expect(telemetry.track).not.toHaveBeenCalled();
+ done();
+ });
+ });
+
+ it('Test#032 : is collected if user opted in', function (done) {
+ spyOn(telemetry, 'hasUserOptedInOrOut').and.returnValue(true);
+ spyOn(telemetry, 'isOptedIn').and.returnValue(true);
+ spyOn(telemetry, 'isCI').and.returnValue(false);
+ spyOn(telemetry, 'showPrompt');
+ spyOn(telemetry, 'track');
+
+ cli(['node', 'cordova', '--version'], function () {
+ expect(telemetry.showPrompt).not.toHaveBeenCalled();
+ expect(telemetry.track).toHaveBeenCalled();
+ done();
+ });
+ });
+
+ it("Test#033 : track opt-out that happened via 'cordova telemetry off' even if user is NOT opted-in ", function (done) {
+ spyOn(telemetry, 'isCI').and.returnValue(false);
+ spyOn(telemetry, 'isOptedIn').and.returnValue(false); // same as calling `telemetry.turnOff();`
+ spyOn(telemetry, 'hasUserOptedInOrOut').and.returnValue(true);
+ spyOn(telemetry, 'track');
+
+ expect(telemetry.isOptedIn()).toBeFalsy();
+
+ cli(['node', 'cordova', 'telemetry', 'off'], function () {
+ expect(telemetry.isOptedIn()).toBeFalsy();
+ expect(telemetry.track).toHaveBeenCalledWith('telemetry', 'off', 'via-cordova-telemetry-cmd', 'successful');
+ done();
+ });
+ });
});
});
-describe("raw", function () {
+describe('raw', function () {
var rawInterface = cordova.raw;
- it("has a raw implementation of previously callable commands", function (done) {
- Object.keys(rawInterface).forEach(function(key) {
+ it('has a raw implementation of previously callable commands', function (done) {
+ Object.keys(rawInterface).forEach(function (key) {
expect(typeof rawInterface[key]).toBe('function');
- spyOn(cordova,key);
+ spyOn(cordova, key);
rawInterface[key](); // call the raw version
expect(cordova[key]).toHaveBeenCalled();
});
@@ -464,18 +462,18 @@ describe("raw", function () {
});
});
-describe("platform", function () {
+describe('platform', function () {
beforeEach(function () {
- spyOn(cordova, "platform").and.returnValue(Q());
+ spyOn(cordova, 'platform').and.returnValue(Q());
logger.setLevel('error');
});
- it("Test #034 : (add) autosave is the default setting for platform add", function (done) {
- cli(["node", "cordova", "platform", "add", "ios"], function () {
+ it('Test #034 : (add) autosave is the default setting for platform add', function (done) {
+ cli(['node', 'cordova', 'platform', 'add', 'ios'], function () {
expect(cordova.platform).toHaveBeenCalledWith(
- "add",
- ["ios"],
+ 'add',
+ ['ios'],
jasmine.any(Object)
);
var opts = cordova.platform.calls.argsFor(0)[2];
@@ -484,11 +482,11 @@ describe("platform", function () {
});
});
- it("Test #035 : (add) platform is not saved when --nosave is passed in", function (done) {
- cli(["node", "cordova", "platform", "add", "ios", "--nosave"], function () {
+ it('Test #035 : (add) platform is not saved when --nosave is passed in', function (done) {
+ cli(['node', 'cordova', 'platform', 'add', 'ios', '--nosave'], function () {
expect(cordova.platform).toHaveBeenCalledWith(
- "add",
- ["ios"],
+ 'add',
+ ['ios'],
jasmine.any(Object)
);
var opts = cordova.platform.calls.argsFor(0)[2];
@@ -497,11 +495,11 @@ describe("platform", function () {
});
});
- it("Test #036 : (remove) autosave is the default setting for platform remove", function (done) {
- cli(["node", "cordova", "platform", "remove", "ios"], function () {
+ it('Test #036 : (remove) autosave is the default setting for platform remove', function (done) {
+ cli(['node', 'cordova', 'platform', 'remove', 'ios'], function () {
expect(cordova.platform).toHaveBeenCalledWith(
- "remove",
- ["ios"],
+ 'remove',
+ ['ios'],
jasmine.any(Object)
);
var opts = cordova.platform.calls.argsFor(0)[2];
@@ -510,11 +508,11 @@ describe("platform", function () {
});
});
- it("Test #037 : (remove) platform is not removed when --nosave is passed in", function (done) {
- cli(["node", "cordova", "platform", "remove", "ios", "--nosave"], function () {
+ it('Test #037 : (remove) platform is not removed when --nosave is passed in', function (done) {
+ cli(['node', 'cordova', 'platform', 'remove', 'ios', '--nosave'], function () {
expect(cordova.platform).toHaveBeenCalledWith(
- "remove",
- ["ios"],
+ 'remove',
+ ['ios'],
jasmine.any(Object)
);
var opts = cordova.platform.calls.argsFor(0)[2];
@@ -523,24 +521,24 @@ describe("platform", function () {
});
});
- it("Test #038 : (add) will pass fetch:false", function (done) {
- cli(["node", "cordova", "platform", "add", "device", "--nofetch"], function () {
- expect(cordova.platform).toHaveBeenCalledWith(
- "add",
- ["device"],
- jasmine.any(Object)
- );
- var opts = cordova.platform.calls.argsFor(0)[2];
- expect(opts.fetch).toBe(false);
- done();
+ it('Test #038 : (add) will pass fetch:false', function (done) {
+ cli(['node', 'cordova', 'platform', 'add', 'device', '--nofetch'], function () {
+ expect(cordova.platform).toHaveBeenCalledWith(
+ 'add',
+ ['device'],
+ jasmine.any(Object)
+ );
+ var opts = cordova.platform.calls.argsFor(0)[2];
+ expect(opts.fetch).toBe(false);
+ done();
});
});
- it("Test #039 : (add) fetch is true by default and will pass fetch:true", function (done) {
- cli(["node", "cordova", "platform", "add", "device"], function () {
+ it('Test #039 : (add) fetch is true by default and will pass fetch:true', function (done) {
+ cli(['node', 'cordova', 'platform', 'add', 'device'], function () {
expect(cordova.platform).toHaveBeenCalledWith(
- "add",
- ["device"],
+ 'add',
+ ['device'],
jasmine.any(Object)
);
var opts = cordova.platform.calls.argsFor(0)[2];
@@ -549,11 +547,11 @@ describe("platform", function () {
});
});
- it("Test #040 : (remove) fetch is true by default and will pass fetch:true", function (done) {
- cli(["node", "cordova", "platform", "remove", "device"], function () {
+ it('Test #040 : (remove) fetch is true by default and will pass fetch:true', function (done) {
+ cli(['node', 'cordova', 'platform', 'remove', 'device'], function () {
expect(cordova.platform).toHaveBeenCalledWith(
- "remove",
- ["device"],
+ 'remove',
+ ['device'],
jasmine.any(Object)
);
var opts = cordova.platform.calls.argsFor(0)[2];
@@ -562,11 +560,11 @@ describe("platform", function () {
});
});
- it("Test #041 : (remove) will pass fetch:false", function (done) {
- cli(["node", "cordova", "platform", "remove", "device", "--nofetch"], function () {
+ it('Test #041 : (remove) will pass fetch:false', function (done) {
+ cli(['node', 'cordova', 'platform', 'remove', 'device', '--nofetch'], function () {
expect(cordova.platform).toHaveBeenCalledWith(
- "remove",
- ["device"],
+ 'remove',
+ ['device'],
jasmine.any(Object)
);
var opts = cordova.platform.calls.argsFor(0)[2];
@@ -576,95 +574,92 @@ describe("platform", function () {
});
});
-
-
-describe("config", function () {
- var clirevert,
- confrevert,
- editorArgs,
- cordovaConfig = {},
- confHolder;
+describe('config', function () {
+ var clirevert;
+ var confrevert;
+ var editorArgs;
+ var cordovaConfig = {};
+ var confHolder;
var confMock = {
- set: function(key, value) {
+ set: function (key, value) {
cordovaConfig[key] = value;
},
- del: function(key) {
+ del: function (key) {
delete cordovaConfig[key];
},
- path: function() {
+ path: function () {
confHolder = 'Pathcalled';
return 'some/path/cordova-config.json';
},
- get: function(key) {
+ get: function (key) {
confHolder = cordovaConfig[key];
return cordovaConfig[key];
}
};
beforeEach(function () {
- clirevert = cli.__set__('editor', function(path1, cb) {
+ clirevert = cli.__set__('editor', function (path1, cb) {
editorArgs = path1();
cb();
});
confrevert = cli.__set__('conf', confMock);
logger.setLevel('error');
- //spyOn(console, 'log');
+ // spyOn(console, 'log');
});
- afterEach(function() {
+ afterEach(function () {
clirevert();
confrevert();
confHolder = undefined;
});
- it("Test#042 : config set autosave is called with true", function (done) {
- cli(["node", "cordova", "config", "set", "autosave", "true", "--silent"], function () {
+ it('Test#042 : config set autosave is called with true', function (done) {
+ cli(['node', 'cordova', 'config', 'set', 'autosave', 'true', '--silent'], function () {
expect(cordovaConfig.autosave).toBe('true');
done();
});
});
- it("Test#043 : config delete autosave is called", function (done) {
- cli(["node", "cordova", "config", "delete", "autosave"], function () {
+ it('Test#043 : config delete autosave is called', function (done) {
+ cli(['node', 'cordova', 'config', 'delete', 'autosave'], function () {
expect(cordovaConfig.autosave).toBeUndefined();
done();
});
});
- it("Test#044 : config set is called even without value, defaults to true", function (done) {
- cli(["node", "cordova", "config", "set", "autosave"], function () {
+ it('Test#044 : config set is called even without value, defaults to true', function (done) {
+ cli(['node', 'cordova', 'config', 'set', 'autosave'], function () {
expect(cordovaConfig.autosave).toBe(true);
done();
});
});
- it("Test #045 : config get is called", function (done) {
- cli(["node", "cordova", "config", "get", "autosave"], function () {
+ it('Test #045 : config get is called', function (done) {
+ cli(['node', 'cordova', 'config', 'get', 'autosave'], function () {
expect(confHolder).toBe(true);
done();
});
});
- it("Test #046 : config edit is called", function (done) {
- cli(["node", "cordova", "config", "edit"], function () {
+ it('Test #046 : config edit is called', function (done) {
+ cli(['node', 'cordova', 'config', 'edit'], function () {
expect(path.basename(editorArgs)).toEqual('cordova-config.json');
expect(confHolder).toEqual('Pathcalled');
done();
});
});
- it("Test #047 : config ls is called", function (done) {
- spyOn(fs, 'readFile').and.callFake(function(confPath, cb){
+ it('Test #047 : config ls is called', function (done) {
+ spyOn(fs, 'readFile').and.callFake(function (confPath, cb) {
confHolder = confPath();
});
- cli(["node", "cordova", "config", "ls"], function () {
+ cli(['node', 'cordova', 'config', 'ls'], function () {
expect(path.basename(confHolder)).toEqual('cordova-config.json');
done();
});
});
-
-});
\ No newline at end of file
+});
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/3127d503/spec/help.spec.js
----------------------------------------------------------------------
diff --git a/spec/help.spec.js b/spec/help.spec.js
index a2ef8a0..84f59d7 100644
--- a/spec/help.spec.js
+++ b/spec/help.spec.js
@@ -14,47 +14,46 @@
specific language governing permissions and limitations
under the License.
*/
-var cordova_lib = require('cordova-lib'),
- cordova = cordova_lib.cordova,
- help = require('../src/help'),
- allcommands;
+var cordova_lib = require('cordova-lib');
+var cordova = cordova_lib.cordova;
+var help = require('../src/help');
+var allcommands;
-describe('help', function() {
- allcommands = [''].concat(Object.keys(cordova).map(function(k) {
- if (k in cordova.raw)
- return k;
+describe('help', function () {
+ allcommands = [''].concat(Object.keys(cordova).map(function (k) {
+ if (k in cordova.raw) { return k; }
return null;
}).filter(function (k) { return k; }));
- describe('commands should', function() {
- afterEach(function() {
+ describe('commands should', function () {
+ afterEach(function () {
cordova.removeAllListeners('results');
});
describe('return results, and no long lines', function () {
allcommands.forEach(function (k) {
- it(k, function(done) {
+ it(k, function (done) {
var result = help([k]);
expect(result).toMatch(/^Synopsis/);
- expect(result.split("\n").filter(function (l) { return l.length > 130; }).length).toBe(0);
+ expect(result.split('\n').filter(function (l) { return l.length > 130; }).length).toBe(0);
done();
});
});
});
describe('use cordova-cli instead of cordova:', function () {
- var binname = cordova.binname,
- testname = 'testgap';
- beforeEach(function() {
+ var binname = cordova.binname;
+ var testname = 'testgap';
+ beforeEach(function () {
cordova.binname = testname;
});
- afterEach(function() {
+ afterEach(function () {
cordova.binname = binname;
});
allcommands.forEach(function (k) {
- it(k || '(default)', function(done) {
+ it(k || '(default)', function (done) {
var result = help([k]);
- expect(result.split("\n")[2]).toMatch(RegExp(testname + ' (?:' + k + '|command)\\b'));
+ expect(result.split('\n')[2]).toMatch(RegExp(testname + ' (?:' + k + '|command)\\b'));
done();
});
});
});
});
-});
\ No newline at end of file
+});
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/3127d503/src/cli.js
----------------------------------------------------------------------
diff --git a/src/cli.js b/src/cli.js
index f97de4c..79dafa7 100644
--- a/src/cli.js
+++ b/src/cli.js
@@ -20,68 +20,63 @@
laxcomma:true
*/
-
-var path = require('path'),
- Q = require('q'),
- nopt = require('nopt'),
- updateNotifier = require('update-notifier'),
- pkg = require('../package.json'),
- telemetry = require('./telemetry'),
- help = require('./help'),
- cordova_lib = require('cordova-lib'),
- CordovaError = cordova_lib.CordovaError,
- cordova = cordova_lib.cordova,
- events = cordova_lib.events,
- logger = require('cordova-common').CordovaLogger.get(),
- Configstore = require('configstore'),
- conf = new Configstore(pkg.name + '-config'),
- editor = require('editor'),
- fs = require('fs');
+var path = require('path');
+var Q = require('q');
+var nopt = require('nopt');
+var updateNotifier = require('update-notifier');
+var pkg = require('../package.json');
+var telemetry = require('./telemetry');
+var help = require('./help');
+var cordova_lib = require('cordova-lib');
+var CordovaError = cordova_lib.CordovaError;
+var cordova = cordova_lib.cordova;
+var events = cordova_lib.events;
+var logger = require('cordova-common').CordovaLogger.get();
+var Configstore = require('configstore');
+var conf = new Configstore(pkg.name + '-config');
+var editor = require('editor');
+var fs = require('fs');
var knownOpts = {
- 'verbose' : Boolean
- ,'version' : Boolean
- ,'help' : Boolean
- ,'silent' : Boolean
- ,'experimental' : Boolean
- ,'noregistry' : Boolean
- ,'nohooks': Array
- ,'shrinkwrap' : Boolean
- ,'copy-from' : String
- ,'link-to' : path
- ,'searchpath' : String
- ,'variable' : Array
- ,'link': Boolean
- ,'force': Boolean
+ 'verbose': Boolean,
+ 'version': Boolean,
+ 'help': Boolean,
+ 'silent': Boolean,
+ 'experimental': Boolean,
+ 'noregistry': Boolean,
+ 'nohooks': Array,
+ 'shrinkwrap': Boolean,
+ 'copy-from': String,
+ 'link-to': path,
+ 'searchpath': String,
+ 'variable': Array,
+ 'link': Boolean,
+ 'force': Boolean,
// Flags to be passed to `cordova build/run/emulate`
- ,'debug' : Boolean
- ,'release' : Boolean
- ,'archs' : String
- ,'device' : Boolean
- ,'emulator': Boolean
- ,'target' : String
- ,'browserify': Boolean
- ,'noprepare': Boolean
- ,'fetch': Boolean
- ,'nobuild': Boolean
- ,'list': Boolean
- ,'buildConfig' : String
- ,'template' : String
+ 'debug': Boolean,
+ 'release': Boolean,
+ 'archs': String,
+ 'device': Boolean,
+ 'emulator': Boolean,
+ 'target': String,
+ 'browserify': Boolean,
+ 'noprepare': Boolean,
+ 'fetch': Boolean,
+ 'nobuild': Boolean,
+ 'list': Boolean,
+ 'buildConfig': String,
+ 'template': String
};
var shortHands = {
- 'd' : '--verbose'
- ,'v' : '--version'
- ,'h' : '--help'
- ,'src' : '--copy-from'
- ,'t' : '--template'
+ 'd': '--verbose',
+ 'v': '--version',
+ 'h': '--help',
+ 'src': '--copy-from',
+ 't': '--template'
};
-var Configstore = require('configstore');
-var conf = new Configstore(pkg.name + '-config');
-
-
-function checkForUpdates() {
+function checkForUpdates () {
try {
// Checks for available update and returns an instance
var notifier = updateNotifier({
@@ -106,7 +101,7 @@ module.exports = function (inputArgs, cb) {
/**
* mainly used for testing.
*/
- cb = cb || function(){};
+ cb = cb || function () {};
// If no inputArgs given, use process.argv.
inputArgs = inputArgs || process.argv;
@@ -116,9 +111,9 @@ module.exports = function (inputArgs, cb) {
var isConfigCmd = (cmd === 'config');
// ToDO: Move nopt-based parsing of args up here
- if(cmd === '--version' || cmd === '-v') {
+ if (cmd === '--version' || cmd === '-v') {
cmd = 'version';
- } else if(!cmd || cmd === '--help' || cmd === 'h') {
+ } else if (!cmd || cmd === '--help' || cmd === 'h') {
cmd = 'help';
}
@@ -127,7 +122,7 @@ module.exports = function (inputArgs, cb) {
if (inputArgs[4]) {
logger.subscribe(events);
conf.get(inputArgs[4]);
- if(conf.get(inputArgs[4]) !== undefined) {
+ if (conf.get(inputArgs[4]) !== undefined) {
events.emit('log', conf.get(inputArgs[4]).toString());
} else {
events.emit('log', 'undefined');
@@ -141,7 +136,7 @@ module.exports = function (inputArgs, cb) {
conf.set(inputArgs[4], true);
}
- if(inputArgs[5]) {
+ if (inputArgs[5]) {
conf.set(inputArgs[4], inputArgs[5]);
}
}
@@ -161,18 +156,17 @@ module.exports = function (inputArgs, cb) {
}
// If "ls" is called
- if (isConfigCmd && inputArgs[3] === 'ls' || inputArgs[3] === 'list') {
- fs.readFile(conf.path, 'utf8', function (err,data) {
+ if ((isConfigCmd && inputArgs[3] === 'ls') || (inputArgs[3] === 'list')) {
+ fs.readFile(conf.path, 'utf8', function (err, data) {
if (err) {
logger.error(err);
- }
- else {
+ } else {
logger.log(data);
}
});
}
- Q().then(function() {
+ Q().then(function () {
/**
* Skip telemetry prompt if:
* - CI environment variable is present
@@ -180,7 +174,7 @@ module.exports = function (inputArgs, cb) {
* - Command ran is: `cordova telemetry on | off | ...`
*/
- if(telemetry.isCI(process.env) || telemetry.isNoTelemetryFlag(inputArgs)) {
+ if (telemetry.isCI(process.env) || telemetry.isNoTelemetryFlag(inputArgs)) {
return Q(false);
}
@@ -188,12 +182,12 @@ module.exports = function (inputArgs, cb) {
* We shouldn't prompt for telemetry if user issues a command of the form: `cordova telemetry on | off | ...x`
* Also, if the user has already been prompted and made a decision, use his saved answer
*/
- if(isTelemetryCmd) {
+ if (isTelemetryCmd) {
var isOptedIn = telemetry.isOptedIn();
return handleTelemetryCmd(subcommand, isOptedIn);
}
- if(telemetry.hasUserOptedInOrOut()) {
+ if (telemetry.hasUserOptedInOrOut()) {
return Q(telemetry.isOptedIn());
}
@@ -204,7 +198,7 @@ module.exports = function (inputArgs, cb) {
return telemetry.showPrompt();
}).then(function (collectTelemetry) {
shouldCollectTelemetry = collectTelemetry;
- if(isTelemetryCmd) {
+ if (isTelemetryCmd) {
return Q();
}
return cli(inputArgs);
@@ -224,19 +218,19 @@ module.exports = function (inputArgs, cb) {
}).done();
};
-function getSubCommand(args, cmd) {
- if(['platform','platforms','plugin','plugins','telemetry','config'].indexOf(cmd) > -1) {
+function getSubCommand (args, cmd) {
+ if (['platform', 'platforms', 'plugin', 'plugins', 'telemetry', 'config'].indexOf(cmd) > -1) {
return args[3]; // e.g: args='node cordova platform rm ios', 'node cordova telemetry on'
}
return null;
}
-function printHelp(command) {
+function printHelp (command) {
var result = help([command]);
cordova.emit('results', result);
}
-function handleTelemetryCmd(subcommand, isOptedIn) {
+function handleTelemetryCmd (subcommand, isOptedIn) {
if (subcommand !== 'on' && subcommand !== 'off') {
logger.subscribe(events);
@@ -244,7 +238,7 @@ function handleTelemetryCmd(subcommand, isOptedIn) {
return;
}
- var turnOn = subcommand === 'on' ? true : false;
+ var turnOn = subcommand === 'on';
var cmdSuccess = true;
// turn telemetry on or off
@@ -264,31 +258,31 @@ function handleTelemetryCmd(subcommand, isOptedIn) {
if (!turnOn) {
// Always track telemetry opt-outs (whether user opted out or not!)
- telemetry.track('telemetry', 'off', 'via-cordova-telemetry-cmd', cmdSuccess ? 'successful': 'unsuccessful');
+ telemetry.track('telemetry', 'off', 'via-cordova-telemetry-cmd', cmdSuccess ? 'successful' : 'unsuccessful');
return Q();
}
- if(isOptedIn) {
+ if (isOptedIn) {
telemetry.track('telemetry', 'on', 'via-cordova-telemetry-cmd', cmdSuccess ? 'successful' : 'unsuccessful');
}
return Q();
}
-function cli(inputArgs) {
+function cli (inputArgs) {
checkForUpdates();
var args = nopt(knownOpts, shortHands, inputArgs);
- process.on('uncaughtException', function(err) {
- if(err.message) {
+ process.on('uncaughtException', function (err) {
+ if (err.message) {
logger.error(err.message);
} else {
logger.error(err);
}
// Don't send exception details, just send that it happened
- if(shouldCollectTelemetry) {
+ if (shouldCollectTelemetry) {
telemetry.track('uncaughtException');
}
process.exit(1);
@@ -298,8 +292,7 @@ function cli(inputArgs) {
if (args.silent) {
logger.setLevel('error');
- }
- else if (args.verbose) { // can't be both silent AND verbose, silent wins
+ } else if (args.verbose) { // can't be both silent AND verbose, silent wins
logger.setLevel('verbose');
}
@@ -309,7 +302,7 @@ function cli(inputArgs) {
if (args.version || usingPrerelease) {
var libVersion = require('cordova-lib/package').version;
var toPrint = cliVersion;
- if (cliVersion != libVersion || usingPrerelease) {
+ if (cliVersion !== libVersion || usingPrerelease) {
toPrint += ' (cordova-lib@' + libVersion + ')';
}
@@ -335,8 +328,8 @@ function cli(inputArgs) {
// false, the unparsed args after -- are kept in unparsedArgs and can be
// passed downstream to some scripts invoked by Cordova.
var unparsedArgs = [];
- var parseStopperIdx = args.argv.original.indexOf('--');
- if (parseStopperIdx != -1) {
+ var parseStopperIdx = args.argv.original.indexOf('--');
+ if (parseStopperIdx !== -1) {
unparsedArgs = args.argv.original.slice(parseStopperIdx + 1);
}
@@ -348,14 +341,14 @@ function cli(inputArgs) {
var cmd = undashed[0];
var subcommand;
- if ( !cmd || cmd == 'help' || args.help ) {
- if (!args.help && remain[0] == 'help') {
+ if (!cmd || cmd === 'help' || args.help) {
+ if (!args.help && remain[0] === 'help') {
remain.shift();
}
return printHelp(remain);
}
- if ( !cordova.hasOwnProperty(cmd) ) {
+ if (!cordova.hasOwnProperty(cmd)) {
var msg2 = 'Cordova does not know ' + cmd + '; try `' + cordova_lib.binname +
' help` for a list of all the available commands.';
throw new CordovaError(msg2);
@@ -375,7 +368,7 @@ function cli(inputArgs) {
browserify: args.browserify || false,
fetch: args.fetch,
nohooks: args.nohooks || [],
- searchpath : args.searchpath
+ searchpath: args.searchpath
};
var platformCommands = ['emulate', 'build', 'prepare', 'compile', 'run', 'clean'];
@@ -397,9 +390,9 @@ function cli(inputArgs) {
opts.platforms = undashed.slice(1);
return cordova[cmd].call(null, opts.platforms)
- .then(function(platformChecks) {
+ .then(function (platformChecks) {
- var someChecksFailed = Object.keys(platformChecks).map(function(platformName) {
+ var someChecksFailed = Object.keys(platformChecks).map(function (platformName) {
events.emit('log', '\nRequirements check results for ' + platformName + ':');
var platformCheck = platformChecks[platformName];
if (platformCheck instanceof CordovaError) {
@@ -408,7 +401,7 @@ function cli(inputArgs) {
}
var someChecksFailed = false;
- platformCheck.forEach(function(checkItem) {
+ platformCheck.forEach(function (checkItem) {
var checkSummary = checkItem.name + ': ' +
(checkItem.installed ? 'installed ' : 'not installed ') +
(checkItem.metadata.version || '');
@@ -420,7 +413,7 @@ function cli(inputArgs) {
});
return someChecksFailed;
- }).some(function(isCheckFailedForPlatform) {
+ }).some(function (isCheckFailedForPlatform) {
return isCheckFailedForPlatform;
});
@@ -432,9 +425,9 @@ function cli(inputArgs) {
var port = undashed[1];
return cordova.serve(port);
} else if (cmd === 'create') {
- return create(undashed,args);
+ return create(undashed, args);
} else if (cmd === 'config') {
- //Don't need to do anything with cordova-lib since config was handled above
+ // Don't need to do anything with cordova-lib since config was handled above
return true;
} else {
// platform/plugins add/rm [target(s)]
@@ -445,10 +438,9 @@ function cli(inputArgs) {
args.variable.forEach(function (strVar) {
// CB-9171
var keyVal = strVar.split('=');
- if(keyVal.length < 2) {
+ if (keyVal.length < 2) {
throw new CordovaError('invalid variable format: ' + strVar);
- }
- else {
+ } else {
var key = keyVal.shift().toUpperCase();
var val = keyVal.join('=');
cli_vars[key] = val;
@@ -470,40 +462,37 @@ function cli(inputArgs) {
// User explicitly did not pass in fetch
args.fetch = conf.get('fetch');
}
- if(args.browserify === undefined) {
- // User explicitly did not pass in browserify
- args.browserify = conf.get('browserify');
+ if (args.browserify === undefined) {
+ // User explicitly did not pass in browserify
+ args.browserify = conf.get('browserify');
}
if (args.searchpath === undefined) {
// User explicitly did not pass in searchpath
args.searchpath = conf.get('searchpath');
}
- var download_opts = { searchpath : args.searchpath
- , noregistry : args.noregistry
- , nohooks : args.nohooks
- , cli_variables : cli_vars
- , browserify: args.browserify || false
- , fetch: args.fetch
- , link: args.link || false
- , save: args.save
- , shrinkwrap: args.shrinkwrap || false
- , force: args.force || false
+ var download_opts = { searchpath: args.searchpath,
+ noregistry: args.noregistry,
+ nohooks: args.nohooks,
+ cli_variables: cli_vars,
+ browserify: args.browserify || false,
+ fetch: args.fetch,
+ link: args.link || false,
+ save: args.save,
+ shrinkwrap: args.shrinkwrap || false,
+ force: args.force || false
};
return cordova[cmd](subcommand, targets, download_opts);
}
}
-function create(undashed, args) {
- var cfg; // Create config
- var customWww; // Template path
- var wwwCfg; // Template config
+function create (undashed, args) {
+ var cfg; // Create config
+ var customWww; // Template path
+ var wwwCfg; // Template config
// If we got a fourth parameter, consider it to be JSON to init the config.
- if (undashed[4])
- cfg = JSON.parse(undashed[4]);
- else
- cfg = {};
+ if (undashed[4]) { cfg = JSON.parse(undashed[4]); } else { cfg = {}; }
customWww = args['copy-from'] || args['link-to'] || args.template;
@@ -515,8 +504,7 @@ function create(undashed, args) {
}
// Resolve tilda
- if (customWww.substr(0,1) === '~')
- customWww = path.join(process.env.HOME, customWww.substr(1));
+ if (customWww.substr(0, 1) === '~') { customWww = path.join(process.env.HOME, customWww.substr(1)); }
wwwCfg = {
url: customWww,
@@ -537,10 +525,10 @@ function create(undashed, args) {
cfg.lib = cfg.lib || {};
cfg.lib.www = wwwCfg;
}
- return cordova.create( undashed[1] // dir to create the project in
- , undashed[2] // App id
- , undashed[3] // App name
+ return cordova.create(undashed[1] // dir to create the project in
+ , undashed[2] // App id
+ , undashed[3] // App name
, cfg
, events || undefined
);
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/3127d503/src/help.js
----------------------------------------------------------------------
diff --git a/src/help.js b/src/help.js
index b319ab5..9e2480d 100644
--- a/src/help.js
+++ b/src/help.js
@@ -18,8 +18,6 @@
*/
var fs = require('fs');
var cordova_lib = require('cordova-lib');
-var cordova = cordova_lib.cordova;
-var Q = require('q');
var path = require('path');
module.exports = function help (args) {
@@ -44,7 +42,7 @@ module.exports = function help (args) {
return !!f;
});
raw = fs.readFileSync(file[0]).toString('utf8').replace(/cordova-cli/g, cordova_lib.binname);
- //cordova.emit('results', raw);
+ // cordova.emit('results', raw);
return raw;
};
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/3127d503/src/telemetry.js
----------------------------------------------------------------------
diff --git a/src/telemetry.js b/src/telemetry.js
index 9636515..ab6ef1d 100644
--- a/src/telemetry.js
+++ b/src/telemetry.js
@@ -20,8 +20,6 @@
laxcomma:true
*/
-
-
// For further details on telemetry, see:
// https://github.com/cordova/cordova-discuss/pull/43
@@ -37,11 +35,10 @@ var insight = new Insight({
pkg: pkg
});
-
/**
* Returns true if the user opted in, and false otherwise
*/
-function showPrompt() {
+function showPrompt () {
var deferred = Q.defer();
@@ -63,7 +60,7 @@ function showPrompt() {
return deferred.promise;
}
-function track() {
+function track () {
// Remove empty, null or undefined strings from arguments
for (var property in arguments) {
var val = arguments[property];
@@ -74,11 +71,11 @@ function track() {
insight.track.apply(insight, arguments);
}
-function turnOn() {
+function turnOn () {
insight.optOut = false;
}
-function turnOff() {
+function turnOff () {
insight.optOut = true;
}
@@ -87,18 +84,18 @@ function turnOff() {
* Has the same effect as if user never answered the telemetry prompt
* Useful for testing purposes
*/
-function clear() {
+function clear () {
insight.optOut = undefined;
}
-function isOptedIn() {
+function isOptedIn () {
return !insight.optOut;
}
/**
* Has the user already answered the telemetry prompt? (thereby opting in or out?)
*/
-function hasUserOptedInOrOut() {
+function hasUserOptedInOrOut () {
var insightOptOut = insight.optOut === undefined;
return !(insightOptOut);
}
@@ -106,14 +103,14 @@ function hasUserOptedInOrOut() {
/**
* Is the environment variable 'CI' specified ?
*/
-function isCI(env) {
+function isCI (env) {
return !!env.CI;
}
/**
* Has the user ran a command of the form: `cordova run --no-telemetry` ?
*/
-function isNoTelemetryFlag(args) {
+function isNoTelemetryFlag (args) {
return args.indexOf('--no-telemetry') > -1;
}
@@ -128,5 +125,5 @@ module.exports = {
isCI: isCI,
showPrompt: showPrompt,
isNoTelemetryFlag: isNoTelemetryFlag,
- timeoutInSecs:30
-};
\ No newline at end of file
+ timeoutInSecs: 30
+};
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org