Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: chrome/content/tests/notification.js

Issue 11144022: Add tests for the Notification module (Closed)
Patch Set: Created July 18, 2013, 12:23 p.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/content/tests/notification.js
===================================================================
new file mode 100644
--- /dev/null
+++ b/chrome/content/tests/notification.js
@@ -0,0 +1,131 @@
+(function()
+{
+ let originalApplication;
+ let originalAddonVersion;
+ let info = require("info");
+ let {Notification} = require("notification");
+
+ module("Notification",
+ {
+ setup: function()
+ {
+ originalApplication = info.application;
+ info.application = "chrome";
+ originalAddonVersion = info.addonVersion;
+ info.addonVersion = "1.4.1";
+ Prefs.shownNotifications = null;
+ },
+ teardown: function()
+ {
+ info.application = originalApplication;
+ info.addonVersion = originalAddonVersion;
+ }
+ });
+
+ test("Single notification", 1, function()
Wladimir Palant 2013/07/19 08:18:29 I would rather not specify the number of checks ex
Felix Dahlke 2013/07/19 14:30:40 Agreed, that was a misconception on my side. You a
+ {
+ let information = {
+ timestamp: 1,
+ severity: "information",
+ message: {en: "Information"}
+ };
+ let notification = Notification.getNextToShow([information]);
+ equal(notification, information);
+ });
+
+ test("Information and critical", 1, function()
+ {
+ let information = {
+ timestamp: 1,
+ severity: "information",
+ message: {en: "Information"}
+ };
+ let critical = {
+ timestamp: 2,
+ severity: "critical",
+ message: {en: "Critical"}
+ };
+ let notification = Notification.getNextToShow([information, critical]);
+ equal(notification, critical);
+ });
+
+ test("Different platforms", 1, function()
+ {
+ let information = {
+ timestamp: 1,
+ severity: "information",
+ message: {en: "Information"},
+ platforms: ["chrome", "firefox"]
+ };
+ let critical = {
+ timestamp: 2,
+ severity: "critical",
+ message: {en: "Critical"},
+ platforms: ["firefox"]
+ };
+ let notification = Notification.getNextToShow([information, critical]);
+ equal(notification, information);
+ });
+
+ test("Min version", 1, function()
+ {
+ let information = {
+ timestamp: 1,
+ severity: "information",
+ message: {en: "Information"},
+ minVersion: "1.4"
+ };
+ let critical = {
+ timestamp: 2,
+ severity: "critical",
+ message: {en: "Critical"},
+ minVersion: "1.5"
+ };
+ let notification = Notification.getNextToShow([information, critical]);
+ equal(notification, information);
+ });
+
+ test("Max version", 1, function()
+ {
+ let information = {
+ timestamp: 1,
+ severity: "information",
+ message: {en: "Information"},
+ maxVersion: "1.5"
+ };
+ let critical = {
+ timestamp: 2,
+ severity: "critical",
+ message: {en: "Critical"},
+ maxVersion: "1.4"
+ };
+ let notification = Notification.getNextToShow([information, critical]);
+ equal(notification, information);
+ });
+
+ test("Information notifications appear just once", 2, function()
+ {
+ let information = {
+ timestamp: 1,
+ severity: "information",
+ message: {en: "Information"}
+ };
+ let notification = Notification.getNextToShow([information]);
+ equal(notification, information);
+ notification = Notification.getNextToShow([information]);
+ ok(!notification, "Notification shouldn't be shown twice");
+ });
+
+ test("Critical notifications appear every time", 2, function()
+ {
+ let critical = {
+ timestamp: 1,
+ severity: "critical",
+ message: {en: "Critical"}
+ };
+ let notification = Notification.getNextToShow([critical]);
+ equal(notification, critical);
+ notification = Notification.getNextToShow([critical]);
+ equal(notification, critical);
+ });
+})();
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld