From a40ad9fe173650b4bcf841d55a8528b6c1fa61cc Mon Sep 17 00:00:00 2001 From: Lennart Kats Date: Mon, 23 Nov 2015 19:35:15 +0100 Subject: [PATCH 1/2] Revert "Revert "Refactor addtrait"" --- node_modules/c9/has-internal-test-name.js | 22 ++++++++++ .../c9/has-internal-test-name_test.js | 44 +++++++++++++++++++ node_modules/c9/skip-analytics.js | 5 ++- node_modules/c9/skip-analytics_test.js | 19 ++++++++ 4 files changed, 89 insertions(+), 1 deletion(-) create mode 100644 node_modules/c9/has-internal-test-name.js create mode 100644 node_modules/c9/has-internal-test-name_test.js diff --git a/node_modules/c9/has-internal-test-name.js b/node_modules/c9/has-internal-test-name.js new file mode 100644 index 00000000..82f65452 --- /dev/null +++ b/node_modules/c9/has-internal-test-name.js @@ -0,0 +1,22 @@ +if (define === undefined) { + var define = function(fn) { + fn(require, exports, module); + }; +} + +define(function(require, exports, module) { + "use strict"; + + var internalTestNames = ["c9test", "c9 test"]; + var regex = new RegExp("^(" + internalTestNames.join("|") + ")+"); + + function hasInternalTestName(user) { + if (!user.name && !user.username) return false; + + var testedName = user.name ? user.name : user.username; + + return regex.test(testedName); + } + + module.exports = hasInternalTestName; +}); \ No newline at end of file diff --git a/node_modules/c9/has-internal-test-name_test.js b/node_modules/c9/has-internal-test-name_test.js new file mode 100644 index 00000000..9e5dff4c --- /dev/null +++ b/node_modules/c9/has-internal-test-name_test.js @@ -0,0 +1,44 @@ +"use strict"; +"use mocha"; + +require("c9/inline-mocha")(module); +var assert = require("assert"); +var faker = require("faker"); +var hasInternalTestName= require("c9/has-internal-test-name"); + +describe("has-internal-test-name", function() { + + it("returns false when undefined name", function() { + var name; + + assert.equal(false, hasInternalTestName(name), "should return false when name undefined"); + }); + + it("returns true when name contains c9test", function() { + var name = "c9testregnjkdfkfd"; + assert.equal(true, hasInternalTestName(name), "should return true when name contains c9test"); + + name = "c9test01"; + assert.equal(true, hasInternalTestName(name), "should return true when name contains c9test"); + + name = "c9testjhrrj ffjh"; + assert.equal(true, hasInternalTestName(name), "should return true when name contains c9test"); + }); + + it("returns true when name contains c9 test", function() { + var name = "c9 test dkjfdgjhfgdfk"; + assert.equal(true, hasInternalTestName(name), "should return true when name contains c9 test"); + + name = "c9 test07"; + assert.equal(true, hasInternalTestName(name), "should return true when name contains c9 test"); + + name = "c9 testdkjfdgjhfgdfk"; + assert.equal(true, hasInternalTestName(name), "should return true when name contains c9 test"); + }); + + it("returns false when not internal user test name", function() { + var name = faker.name.firstName(); + + assert.equal(false, hasInternalTestName(name), "should return false when name is not for internal testing"); + }); +}); \ No newline at end of file diff --git a/node_modules/c9/skip-analytics.js b/node_modules/c9/skip-analytics.js index 7362fd63..9d6f4850 100644 --- a/node_modules/c9/skip-analytics.js +++ b/node_modules/c9/skip-analytics.js @@ -6,12 +6,15 @@ if (define === undefined) { define(function(require, exports, module) { "use strict"; - + var hasInternalDomain = require("c9/has-internal-domain"); + var hasInternalTestName = require("c9/has-internal-test-name"); function skipAnalytics(user) { if (!user) return true; if (user.id === -1) return true; + + if (hasInternalTestName(user)) return true; if (hasInternalDomain(user.email)) return true; return false; } diff --git a/node_modules/c9/skip-analytics_test.js b/node_modules/c9/skip-analytics_test.js index 300251b0..bfaf1215 100644 --- a/node_modules/c9/skip-analytics_test.js +++ b/node_modules/c9/skip-analytics_test.js @@ -22,6 +22,25 @@ describe("skip-analytics", function() { assert.equal(true, skipAnalytics(user), "skipAnalytics should return true when user id is -1"); }); + + it("returns false when user does not have an internal test name and no email", function() { + var user = { + id: faker.random.uuid(), + name: faker.name.firstName() + }; + + assert.equal(false, skipAnalytics(user), "skipAnalytics should return false when user does not have an internal test name and no email"); + }); + + it("returns true when user has an internal test name and no email", function() { + var user = { + id: faker.random.uuid(), + name: "c9test07" + }; + + assert.equal(true, skipAnalytics(user), "skipAnalytics should return true when user has an internal test name and no email"); + }); + it("returns false when user has no email", function() { var user = { id: faker.random.uuid() From 48026f4b4b59e01f72f1b8695ef896cb696fa570 Mon Sep 17 00:00:00 2001 From: Dana Date: Mon, 23 Nov 2015 20:00:22 +0000 Subject: [PATCH 2/2] Fixes +10723 and adds extra tests --- node_modules/c9/skip-analytics.js | 2 +- node_modules/c9/skip-analytics_test.js | 40 +++++++++++++++----------- 2 files changed, 25 insertions(+), 17 deletions(-) diff --git a/node_modules/c9/skip-analytics.js b/node_modules/c9/skip-analytics.js index 9d6f4850..8c529009 100644 --- a/node_modules/c9/skip-analytics.js +++ b/node_modules/c9/skip-analytics.js @@ -12,7 +12,7 @@ define(function(require, exports, module) { function skipAnalytics(user) { if (!user) return true; - if (user.id === -1) return true; + if (user.id === -1 || user.uid === -1) return true; if (hasInternalTestName(user)) return true; if (hasInternalDomain(user.email)) return true; diff --git a/node_modules/c9/skip-analytics_test.js b/node_modules/c9/skip-analytics_test.js index bfaf1215..fe09f097 100644 --- a/node_modules/c9/skip-analytics_test.js +++ b/node_modules/c9/skip-analytics_test.js @@ -10,63 +10,71 @@ describe("skip-analytics", function() { it("returns true when user undefined", function() { var user; - + assert.equal(true, skipAnalytics(user), "skipAnalytics should return true when user undefined"); }); - + it("returns true when user id is -1", function() { var user = { id: -1 }; - + assert.equal(true, skipAnalytics(user), "skipAnalytics should return true when user id is -1"); }); - - + + it("returns true when user uid is -1", function() { + var user = { + uid: -1 + }; + + assert.equal(true, skipAnalytics(user), "skipAnalytics should return true when user uid is -1"); + }); + + it("returns false when user does not have an internal test name and no email", function() { var user = { id: faker.random.uuid(), name: faker.name.firstName() }; - + assert.equal(false, skipAnalytics(user), "skipAnalytics should return false when user does not have an internal test name and no email"); }); - + it("returns true when user has an internal test name and no email", function() { var user = { id: faker.random.uuid(), name: "c9test07" }; - + assert.equal(true, skipAnalytics(user), "skipAnalytics should return true when user has an internal test name and no email"); }); - + it("returns false when user has no email", function() { var user = { id: faker.random.uuid() }; - + assert.equal(false, skipAnalytics(user), "skipAnalytics should return false when user has no email"); }); - + it("returns true when user has internal email", function() { var user = { id: faker.random.uuid(), email: "test@c9.io" }; - + assert.equal(true, skipAnalytics(user), "skipAnalytics should return true when user has internal email"); - + user.email = "test@cloud9beta.com"; assert.equal(true, skipAnalytics(user), "skipAnalytics should return true when user has internal beta email"); }); - - it("returns false when user is authorized and does not have intermal email", function() { + + it("returns false when user is authorized and does not have intermal email", function() { var user = { id: faker.random.uuid(), email: faker.internet.email() }; - + assert.equal(false, skipAnalytics(user), "skipAnalytics should return false when user is authorized and does not have internal email"); }); }); \ No newline at end of file