summaryrefslogtreecommitdiffstats
path: root/browser/components/newtab/test/unit/asrouter/CFRMessageProvider.test.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/newtab/test/unit/asrouter/CFRMessageProvider.test.js')
-rw-r--r--browser/components/newtab/test/unit/asrouter/CFRMessageProvider.test.js46
1 files changed, 46 insertions, 0 deletions
diff --git a/browser/components/newtab/test/unit/asrouter/CFRMessageProvider.test.js b/browser/components/newtab/test/unit/asrouter/CFRMessageProvider.test.js
new file mode 100644
index 0000000000..0b4f97d265
--- /dev/null
+++ b/browser/components/newtab/test/unit/asrouter/CFRMessageProvider.test.js
@@ -0,0 +1,46 @@
+import { CFRMessageProvider } from "lib/CFRMessageProvider.jsm";
+
+const REGULAR_IDS = [
+ "FACEBOOK_CONTAINER",
+ "GOOGLE_TRANSLATE",
+ "YOUTUBE_ENHANCE",
+ // These are excluded for now.
+ // "WIKIPEDIA_CONTEXT_MENU_SEARCH",
+ // "REDDIT_ENHANCEMENT",
+];
+
+describe("CFRMessageProvider", () => {
+ let messages;
+ beforeEach(async () => {
+ messages = await CFRMessageProvider.getMessages();
+ });
+ it("should have a total of 14 messages", () => {
+ assert.lengthOf(messages, 14);
+ });
+ it("should have one message each for the three regular addons", () => {
+ for (const id of REGULAR_IDS) {
+ const cohort3 = messages.find(msg => msg.id === `${id}_3`);
+ assert.ok(cohort3, `contains three day cohort for ${id}`);
+ assert.deepEqual(
+ cohort3.frequency,
+ { lifetime: 3 },
+ "three day cohort has the right frequency cap"
+ );
+ assert.notInclude(cohort3.targeting, `providerCohorts.cfr`);
+ }
+ });
+ it("should restrict locale for PIN_TAB message", () => {
+ const pinTabMessage = messages.find(m => m.id === "PIN_TAB");
+
+ // 6 en-* locales, fr and de
+ assert.lengthOf(pinTabMessage.targeting.match(/en-|fr|de/g), 8);
+ });
+ it("should contain `www.` version of the hosts", () => {
+ const pinTabMessage = messages.find(m => m.id === "PIN_TAB");
+
+ assert.isTrue(
+ !!pinTabMessage.trigger.params.filter(host => host.startsWith("www."))
+ .length
+ );
+ });
+});