From ead5539e4f49d87d3e61d8417258e78cea5fa7ba Mon Sep 17 00:00:00 2001 From: icrisan <30526045+icrisan@users.noreply.github.com> Date: Mon, 16 Apr 2018 16:01:28 +0300 Subject: [PATCH] Fix Bug 1410828 - Add a test to verify that the next top site in queue replaces a dismissed top site --- .../browser_topsites_contextMenu_options.js | 34 ++++++++++++++++--- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/system-addon/test/functional/mochitest/browser_topsites_contextMenu_options.js b/system-addon/test/functional/mochitest/browser_topsites_contextMenu_options.js index d21b5d9f80..0bf9047cb7 100644 --- a/system-addon/test/functional/mochitest/browser_topsites_contextMenu_options.js +++ b/system-addon/test/functional/mochitest/browser_topsites_contextMenu_options.js @@ -4,12 +4,9 @@ "use strict"; -/** - * Test verifies the menu options for a default top site. - */ - test_newtab({ before: setDefaultTopSites, + // Test verifies the menu options for a default top site. test: async function defaultTopSites_menuOptions() { await ContentTaskUtils.waitForCondition(() => content.document.querySelector(".top-site-icon"), "Topsite tippytop icon not found"); @@ -25,3 +22,32 @@ test_newtab({ } } }); + +test_newtab({ + before: setDefaultTopSites, + // Test verifies that the next top site in queue replaces a dismissed top site. + test: async function defaultTopSites_dismiss() { + await ContentTaskUtils.waitForCondition(() => content.document.querySelector(".top-site-icon"), + "Topsite tippytop icon not found"); + + let defaultTopSitesNumber = content.document.querySelector(".top-sites-list").querySelectorAll("[class=\"top-site-outer\"]").length; + Assert.equal(defaultTopSitesNumber, 6, "6 top sites are loaded by default"); + + let secondTopSite = content.document.querySelector(".top-sites-list li:nth-child(2) a").getAttribute("href"); + + let contextMenuItems = content.openContextMenuAndGetOptions(".top-sites-list li:first-child"); + Assert.equal(contextMenuItems[4].textContent, "Dismiss", "'Dismiss' is the 5th item in the context menu list"); + + contextMenuItems[4].querySelector("a").click(); + + // Need to wait for dismiss action. + await ContentTaskUtils.waitForCondition(() => content.document.querySelector(".top-sites-list li:first-child a").getAttribute("href") === secondTopSite, + "First topsite was dismissed"); + + defaultTopSitesNumber = content.document.querySelector(".top-sites-list").querySelectorAll("[class=\"top-site-outer\"]").length; + Assert.equal(defaultTopSitesNumber, 5, "5 top sites are displayed after one of them is dismissed"); + }, + async after() { + await new Promise(resolve => NewTabUtils.undoAll(resolve)); + } +});