From 1c235aa7611dd4f8912bce2b01e2abdba16eef26 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rodrigo=20Ram=C3=ADrez=20Norambuena?=
Date: Fri, 10 Mar 2017 03:25:16 -0300
Subject: [PATCH 1/4] Add test default calendar
---
tests/configs/data/calendar_test.ics | 190 ++++++++++++++++++++++
tests/configs/modules/calendar/default.js | 37 +++++
tests/e2e/modules/calendar_spec.js | 29 ++++
3 files changed, 256 insertions(+)
create mode 100644 tests/configs/data/calendar_test.ics
create mode 100644 tests/configs/modules/calendar/default.js
create mode 100644 tests/e2e/modules/calendar_spec.js
diff --git a/tests/configs/data/calendar_test.ics b/tests/configs/data/calendar_test.ics
new file mode 100644
index 00000000..63e001ce
--- /dev/null
+++ b/tests/configs/data/calendar_test.ics
@@ -0,0 +1,190 @@
+BEGIN:VCALENDAR
+PRODID:-//Google Inc//Google Calendar 70.9054//EN
+VERSION:2.0
+CALSCALE:GREGORIAN
+METHOD:PUBLISH
+X-WR-CALNAME:MagicMirrorTest
+X-WR-TIMEZONE:America/Santiago
+X-WR-CALDESC:Testing propose MagicMirror
+BEGIN:VTIMEZONE
+TZID:America/Santiago
+X-LIC-LOCATION:America/Santiago
+BEGIN:STANDARD
+TZOFFSETFROM:-0300
+TZOFFSETTO:-0400
+TZNAME:-04
+DTSTART:19700510T000000
+RDATE:19700510T030000
+RDATE:19710509T030000
+RDATE:19720514T030000
+RDATE:19730513T030000
+RDATE:19740512T030000
+RDATE:19750511T030000
+RDATE:19760509T030000
+RDATE:19770515T030000
+RDATE:19780514T030000
+RDATE:19790513T030000
+RDATE:19800511T030000
+RDATE:19810510T030000
+RDATE:19820509T030000
+RDATE:19830515T030000
+RDATE:19840513T030000
+RDATE:19850512T030000
+RDATE:19860511T030000
+RDATE:19870510T030000
+RDATE:19880515T030000
+RDATE:19890514T030000
+RDATE:19900513T030000
+RDATE:19910512T030000
+RDATE:19920510T030000
+RDATE:19930509T030000
+RDATE:19940515T030000
+RDATE:19950514T030000
+RDATE:19960512T030000
+RDATE:19970511T030000
+RDATE:19980510T030000
+RDATE:19990509T030000
+RDATE:20000514T030000
+RDATE:20010513T030000
+RDATE:20020512T030000
+RDATE:20030511T030000
+RDATE:20040509T030000
+RDATE:20050515T030000
+RDATE:20060514T030000
+RDATE:20070513T030000
+RDATE:20080511T030000
+RDATE:20090510T030000
+RDATE:20100509T030000
+RDATE:20110515T030000
+RDATE:20120513T030000
+RDATE:20130512T030000
+RDATE:20140511T030000
+RDATE:20150510T030000
+RDATE:20160515T030000
+RDATE:20170514T030000
+RDATE:20180513T030000
+RDATE:20190512T030000
+RDATE:20200510T030000
+RDATE:20210509T030000
+RDATE:20220515T030000
+RDATE:20230514T030000
+RDATE:20240512T030000
+RDATE:20250511T030000
+RDATE:20260510T030000
+RDATE:20270509T030000
+RDATE:20280514T030000
+RDATE:20290513T030000
+RDATE:20300512T030000
+RDATE:20310511T030000
+RDATE:20320509T030000
+RDATE:20330515T030000
+RDATE:20340514T030000
+RDATE:20350513T030000
+RDATE:20360511T030000
+RDATE:20370510T030000
+END:STANDARD
+BEGIN:STANDARD
+TZOFFSETFROM:-0300
+TZOFFSETTO:-0400
+TZNAME:-04
+DTSTART:20380509T000000
+RRULE:FREQ=YEARLY;BYMONTH=5;BYDAY=2SU
+END:STANDARD
+BEGIN:DAYLIGHT
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0300
+TZNAME:-03
+DTSTART:19700809T000000
+RDATE:19700809T040000
+RDATE:19710815T040000
+RDATE:19720813T040000
+RDATE:19730812T040000
+RDATE:19740811T040000
+RDATE:19750810T040000
+RDATE:19760815T040000
+RDATE:19770814T040000
+RDATE:19780813T040000
+RDATE:19790812T040000
+RDATE:19800810T040000
+RDATE:19810809T040000
+RDATE:19820815T040000
+RDATE:19830814T040000
+RDATE:19840812T040000
+RDATE:19850811T040000
+RDATE:19860810T040000
+RDATE:19870809T040000
+RDATE:19880814T040000
+RDATE:19890813T040000
+RDATE:19900812T040000
+RDATE:19910811T040000
+RDATE:19920809T040000
+RDATE:19930815T040000
+RDATE:19940814T040000
+RDATE:19950813T040000
+RDATE:19960811T040000
+RDATE:19970810T040000
+RDATE:19980809T040000
+RDATE:19990815T040000
+RDATE:20000813T040000
+RDATE:20010812T040000
+RDATE:20020811T040000
+RDATE:20030810T040000
+RDATE:20040815T040000
+RDATE:20050814T040000
+RDATE:20060813T040000
+RDATE:20070812T040000
+RDATE:20080810T040000
+RDATE:20090809T040000
+RDATE:20100815T040000
+RDATE:20110814T040000
+RDATE:20120812T040000
+RDATE:20130811T040000
+RDATE:20140810T040000
+RDATE:20150809T040000
+RDATE:20160814T040000
+RDATE:20170813T040000
+RDATE:20180812T040000
+RDATE:20190811T040000
+RDATE:20200809T040000
+RDATE:20210815T040000
+RDATE:20220814T040000
+RDATE:20230813T040000
+RDATE:20240811T040000
+RDATE:20250810T040000
+RDATE:20260809T040000
+RDATE:20270815T040000
+RDATE:20280813T040000
+RDATE:20290812T040000
+RDATE:20300811T040000
+RDATE:20310810T040000
+RDATE:20320815T040000
+RDATE:20330814T040000
+RDATE:20340813T040000
+RDATE:20350812T040000
+RDATE:20360810T040000
+RDATE:20370809T040000
+END:DAYLIGHT
+BEGIN:DAYLIGHT
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0300
+TZNAME:-03
+DTSTART:20380815T000000
+RRULE:FREQ=YEARLY;BYMONTH=8;BYDAY=2SU
+END:DAYLIGHT
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTART;TZID=America/Santiago:20170309T100000
+DTEND;TZID=America/Santiago:20170309T110000
+RRULE:FREQ=MONTHLY;INTERVAL=30;BYMONTHDAY=9
+DTSTAMP:20170310T172720Z
+UID:80rl9kuu5bq49gme99eklov27k@google.com
+CREATED:20170310T172400Z
+DESCRIPTION:
+LAST-MODIFIED:20170310T172400Z
+LOCATION:
+SEQUENCE:0
+STATUS:CONFIRMED
+SUMMARY:TestEvent
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR
diff --git a/tests/configs/modules/calendar/default.js b/tests/configs/modules/calendar/default.js
new file mode 100644
index 00000000..3f70d930
--- /dev/null
+++ b/tests/configs/modules/calendar/default.js
@@ -0,0 +1,37 @@
+/* Magic Mirror Test config default calendar
+ *
+ * By Rodrigo Ramírez Norambuena https://rodrigoramirez.com
+ * MIT Licensed.
+ */
+
+var config = {
+ port: 8080,
+ ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1"],
+
+ language: "en",
+ timeFormat: 12,
+ units: "metric",
+ electronOptions: {
+ webPreferences: {
+ nodeIntegration: true,
+ },
+ },
+
+ modules: [
+ {
+ module: "calendar",
+ position: "bottom_bar",
+ config: {
+ calendars: [
+ {
+ maximumNumberOfDays: 10000,
+ url: "http://localhost:8080/tests/configs/data/calendar_test.ics"
+ }
+ ]
+ }
+ }
+ ]
+};
+
+/*************** DO NOT EDIT THE LINE BELOW ***************/
+if (typeof module !== "undefined") {module.exports = config;}
diff --git a/tests/e2e/modules/calendar_spec.js b/tests/e2e/modules/calendar_spec.js
new file mode 100644
index 00000000..f8535231
--- /dev/null
+++ b/tests/e2e/modules/calendar_spec.js
@@ -0,0 +1,29 @@
+const globalSetup = require("../global-setup");
+const app = globalSetup.app;
+const chai = require("chai");
+const expect = chai.expect;
+
+describe("Calendar module", function () {
+
+ this.timeout(20000);
+
+ beforeEach(function (done) {
+ app.start().then(function() { done(); } );
+ });
+
+ afterEach(function (done) {
+ app.stop().then(function() { done(); });
+ });
+
+ describe("Default configuration", function() {
+ before(function() {
+ // Set config sample for use in test
+ process.env.MM_CONFIG_FILE = "tests/configs/modules/calendar/default.js";
+ });
+
+ it("Should return TestEvents", function () {
+ return app.client.waitUntilTextExists(".calendar", "TestEvent", 10000);
+ });
+ });
+
+});
From ceb4ef2642b81423bae99d42a410d280c7b88d36 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rodrigo=20Ram=C3=ADrez=20Norambuena?=
Date: Fri, 10 Mar 2017 04:33:27 -0300
Subject: [PATCH 2/4] Add test basic-auth
---
package.json | 1 +
tests/configs/modules/calendar/basic-auth.js | 42 ++++++++++++++++++++
tests/e2e/modules/calendar_spec.js | 16 ++++++++
tests/servers/basic-auth.js | 31 +++++++++++++++
4 files changed, 90 insertions(+)
create mode 100644 tests/configs/modules/calendar/basic-auth.js
create mode 100644 tests/servers/basic-auth.js
diff --git a/package.json b/package.json
index 704f8394..66886cad 100644
--- a/package.json
+++ b/package.json
@@ -38,6 +38,7 @@
"grunt-markdownlint": "^1.0.13",
"grunt-stylelint": "latest",
"grunt-yamllint": "latest",
+ "http-auth": "^3.1.3",
"mocha": "^3.2.0",
"spectron": "^3.4.1",
"stylelint-config-standard": "latest",
diff --git a/tests/configs/modules/calendar/basic-auth.js b/tests/configs/modules/calendar/basic-auth.js
new file mode 100644
index 00000000..1b210102
--- /dev/null
+++ b/tests/configs/modules/calendar/basic-auth.js
@@ -0,0 +1,42 @@
+/* Magic Mirror Test config default calendar
+ *
+ * By Rodrigo Ramírez Norambuena https://rodrigoramirez.com
+ * MIT Licensed.
+ */
+
+var config = {
+ port: 8080,
+ ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1"],
+
+ language: "en",
+ timeFormat: 12,
+ units: "metric",
+ electronOptions: {
+ webPreferences: {
+ nodeIntegration: true,
+ },
+ },
+
+ modules: [
+ {
+ module: "calendar",
+ position: "bottom_bar",
+ config: {
+ calendars: [
+ {
+ maximumNumberOfDays: 10000,
+ url: "http://localhost:8010/tests/configs/data/calendar_test.ics",
+ auth: {
+ user: "MagicMirror",
+ pass: "CallMeADog",
+ method: "basic"
+ }
+ }
+ ]
+ }
+ }
+ ]
+};
+
+/*************** DO NOT EDIT THE LINE BELOW ***************/
+if (typeof module !== "undefined") {module.exports = config;}
diff --git a/tests/e2e/modules/calendar_spec.js b/tests/e2e/modules/calendar_spec.js
index f8535231..3b4ac736 100644
--- a/tests/e2e/modules/calendar_spec.js
+++ b/tests/e2e/modules/calendar_spec.js
@@ -1,4 +1,5 @@
const globalSetup = require("../global-setup");
+const serverBasicAuth = require("../../servers/basic-auth.js");
const app = globalSetup.app;
const chai = require("chai");
const expect = chai.expect;
@@ -26,4 +27,19 @@ describe("Calendar module", function () {
});
});
+
+ describe("Basic auth", function() {
+ before(function() {
+ serverBasicAuth.listen(8010);
+ // Set config sample for use in test
+ process.env.MM_CONFIG_FILE = "tests/configs/modules/calendar/basic-auth.js";
+ });
+
+ it("Should return TestEvents", function () {
+ return app.client.waitUntilTextExists(".calendar", "TestEvent", 10000);
+ });
+ });
+
+
+
});
diff --git a/tests/servers/basic-auth.js b/tests/servers/basic-auth.js
new file mode 100644
index 00000000..6077cf8c
--- /dev/null
+++ b/tests/servers/basic-auth.js
@@ -0,0 +1,31 @@
+var http = require("http");
+var path = require("path");
+var auth = require("http-auth");
+var express = require("express")
+
+var basic = auth.basic({
+ realm: "MagicMirror Area restricted."
+ }, (username, password, callback) => {
+ callback(username === "MagicMirror" && password === "CallMeADog");
+ }
+);
+
+this.server = express();
+this.server.use(auth.connect(basic));
+
+// Set directories availables
+var directories = ["/tests/configs"];
+var directory;
+root_path = path.resolve(__dirname + "/../../");
+for (i in directories) {
+ directory = directories[i];
+ this.server.use(directory, express.static(path.resolve(root_path + directory)));
+}
+
+exports.listen = function () {
+ this.server.listen.apply(this.server, arguments);
+};
+
+exports.close = function (callback) {
+ this.server.close(callback);
+};
From f5c57e84c77d14da5c450b748d3f4e11f8fd7eaf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rodrigo=20Ram=C3=ADrez=20Norambuena?=
Date: Fri, 10 Mar 2017 04:36:09 -0300
Subject: [PATCH 3/4] Add test calendar without auth method. Should be set by
default basic.
---
.../configs/modules/calendar/auth-default.js | 41 +++++++++++++++++++
tests/e2e/modules/calendar_spec.js | 12 ++++++
2 files changed, 53 insertions(+)
create mode 100644 tests/configs/modules/calendar/auth-default.js
diff --git a/tests/configs/modules/calendar/auth-default.js b/tests/configs/modules/calendar/auth-default.js
new file mode 100644
index 00000000..3fee5015
--- /dev/null
+++ b/tests/configs/modules/calendar/auth-default.js
@@ -0,0 +1,41 @@
+/* Magic Mirror Test config default calendar with auth by default
+ *
+ * By Rodrigo Ramírez Norambuena https://rodrigoramirez.com
+ * MIT Licensed.
+ */
+
+var config = {
+ port: 8080,
+ ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1"],
+
+ language: "en",
+ timeFormat: 12,
+ units: "metric",
+ electronOptions: {
+ webPreferences: {
+ nodeIntegration: true,
+ },
+ },
+
+ modules: [
+ {
+ module: "calendar",
+ position: "bottom_bar",
+ config: {
+ calendars: [
+ {
+ maximumNumberOfDays: 10000,
+ url: "http://localhost:8011/tests/configs/data/calendar_test.ics",
+ auth: {
+ user: "MagicMirror",
+ pass: "CallMeADog"
+ }
+ }
+ ]
+ }
+ }
+ ]
+};
+
+/*************** DO NOT EDIT THE LINE BELOW ***************/
+if (typeof module !== "undefined") {module.exports = config;}
diff --git a/tests/e2e/modules/calendar_spec.js b/tests/e2e/modules/calendar_spec.js
index 3b4ac736..9bb68baa 100644
--- a/tests/e2e/modules/calendar_spec.js
+++ b/tests/e2e/modules/calendar_spec.js
@@ -41,5 +41,17 @@ describe("Calendar module", function () {
});
+ describe("Basic auth by default", function() {
+ before(function() {
+ serverBasicAuth.listen(8011);
+ // Set config sample for use in test
+ process.env.MM_CONFIG_FILE = "tests/configs/modules/calendar/auth-default.js";
+ });
+
+ it("Should return TestEvents", function () {
+ return app.client.waitUntilTextExists(".calendar", "TestEvent", 10000);
+ });
+ });
+
});
From b129fe908c6ade3adf9e06ddd50372caa830b2bd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rodrigo=20Ram=C3=ADrez=20Norambuena?=
Date: Fri, 10 Mar 2017 04:40:59 -0300
Subject: [PATCH 4/4] Test check backward backward compatibility authentication
method basic on calendar module
Fix travis basic-auth server
---
.../modules/calendar/old-basic-auth.js | 39 +++++++++++++++++++
tests/e2e/modules/calendar_spec.js | 13 +++++++
tests/servers/basic-auth.js | 15 ++++---
3 files changed, 59 insertions(+), 8 deletions(-)
create mode 100644 tests/configs/modules/calendar/old-basic-auth.js
diff --git a/tests/configs/modules/calendar/old-basic-auth.js b/tests/configs/modules/calendar/old-basic-auth.js
new file mode 100644
index 00000000..76e2df3a
--- /dev/null
+++ b/tests/configs/modules/calendar/old-basic-auth.js
@@ -0,0 +1,39 @@
+/* Magic Mirror Test config default calendar
+ * with authenticacion old config
+ * By Rodrigo Ramírez Norambuena https://rodrigoramirez.com
+ * MIT Licensed.
+ */
+
+var config = {
+ port: 8080,
+ ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1"],
+
+ language: "en",
+ timeFormat: 12,
+ units: "metric",
+ electronOptions: {
+ webPreferences: {
+ nodeIntegration: true,
+ },
+ },
+
+ modules: [
+ {
+ module: "calendar",
+ position: "bottom_bar",
+ config: {
+ calendars: [
+ {
+ maximumNumberOfDays: 10000,
+ url: "http://localhost:8012/tests/configs/data/calendar_test.ics",
+ user: "MagicMirror",
+ pass: "CallMeADog"
+ }
+ ]
+ }
+ }
+ ]
+};
+
+/*************** DO NOT EDIT THE LINE BELOW ***************/
+if (typeof module !== "undefined") {module.exports = config;}
diff --git a/tests/e2e/modules/calendar_spec.js b/tests/e2e/modules/calendar_spec.js
index 9bb68baa..21939f06 100644
--- a/tests/e2e/modules/calendar_spec.js
+++ b/tests/e2e/modules/calendar_spec.js
@@ -53,5 +53,18 @@ describe("Calendar module", function () {
});
});
+ describe("Basic auth backward compatibilty configuration", function() {
+ before(function() {
+ serverBasicAuth.listen(8012);
+ // Set config sample for use in test
+ process.env.MM_CONFIG_FILE = "tests/configs/modules/calendar/old-basic-auth.js";
+ });
+
+ it("Should return TestEvents", function () {
+ return app.client.waitUntilTextExists(".calendar", "TestEvent", 10000);
+ });
+ });
+
+
});
diff --git a/tests/servers/basic-auth.js b/tests/servers/basic-auth.js
index 6077cf8c..238bdc26 100644
--- a/tests/servers/basic-auth.js
+++ b/tests/servers/basic-auth.js
@@ -5,10 +5,9 @@ var express = require("express")
var basic = auth.basic({
realm: "MagicMirror Area restricted."
- }, (username, password, callback) => {
- callback(username === "MagicMirror" && password === "CallMeADog");
- }
-);
+}, (username, password, callback) => {
+ callback(username === "MagicMirror" && password === "CallMeADog");
+});
this.server = express();
this.server.use(auth.connect(basic));
@@ -16,16 +15,16 @@ this.server.use(auth.connect(basic));
// Set directories availables
var directories = ["/tests/configs"];
var directory;
-root_path = path.resolve(__dirname + "/../../");
+rootPath = path.resolve(__dirname + "/../../");
for (i in directories) {
directory = directories[i];
- this.server.use(directory, express.static(path.resolve(root_path + directory)));
+ this.server.use(directory, express.static(path.resolve(rootPath + directory)));
}
exports.listen = function () {
- this.server.listen.apply(this.server, arguments);
+ this.server.listen.apply(this.server, arguments);
};
exports.close = function (callback) {
- this.server.close(callback);
+ this.server.close(callback);
};