@Override @Before public void setUp() throws Exception { super.setUp(); // Set the SMTP port to the default port used by Greenmail (3025) getUtil() .updateObject("XWiki", "XWikiPreferences", "XWiki.XWikiPreferences", 0, "smtp_port", 3025); // Start GreenMail test server this.greenMail = new GreenMail(); this.greenMail.start(); // Create a user for the test String userName = RandomStringUtils.randomAlphanumeric(5); WatchlistUserProfilePage profilePage = new WatchlistUserProfilePage(userName); getUtil() .registerLoginAndGotoPage( profilePage.getUsername(), "password", getUtil().getURL("XWiki", profilePage.getUsername())); // Set the Admin user's email address to use a localhost domain so that the mail is caught by // our // GreenMail Mock mail server. getUtil() .updateObject( "XWiki", profilePage.getUsername(), "XWiki.XWikiUsers", 0, "email", "admin@localhost"); this.watchlistPage = profilePage.switchToWatchlist(); // Disable auto watch WatchlistPreferencesEditPage watchlistPreferences = this.watchlistPage.editPreferences(); watchlistPreferences.setAutomaticWatchNone(); watchlistPreferences.clickSaveAndContinue(); }
@Test @IgnoreBrowsers({ @IgnoreBrowser( value = "internet.*", version = "8\\.*", reason = "See http://jira.xwiki.org/browse/XE-1146"), @IgnoreBrowser( value = "internet.*", version = "9\\.*", reason = "See http://jira.xwiki.org/browse/XE-1177") }) public void testWatchThisPageAndWholeSpace() throws Exception { // Clear the list of watched documents and spaces getUtil() .updateObject( "XWiki", this.watchlistPage.getUsername(), "XWiki.WatchListClass", 0, "spaces", "", "documents", ""); // Watch Test.TestWatchThisPage ViewPage page = getUtil().createPage("Test", "TestWatchThisPage", "TestWatchThisPage ui", null); page.watchDocument(); // Watch TestWatchWholeSpace.Test1 page = getUtil().createPage("TestWatchWholeSpace", "Test1", "TestWatchWholeSpace ui", null); page.watchSpace(); // Verify that the watched page & space are present in the watchlist manager this.watchlistPage = WatchlistUserProfilePage.gotoPage(this.watchlistPage.getUsername()); // TODO: use LiveTableElement instead but does not seems to work... // LiveTableElement watchlist = this.watchlistPage.getWatchList(); // watchlist.waitUntilReady(); this.watchlistPage.waitUntilElementIsVisible( By.xpath( "//tbody[@id='mywatchlist-display']/tr/td/a[@href='/xwiki/bin/view/Test/TestWatchThisPage']")); Assert.assertTrue(this.watchlistPage.isWatched("Test", "TestWatchThisPage")); Assert.assertTrue(this.watchlistPage.isWatched("TestWatchWholeSpace")); // Ensure that the watchlist notified is set to Daily since we're going to trigger that notifier // scheduler job WatchlistPreferencesEditPage watchlistPreferences = this.watchlistPage.editPreferences(); watchlistPreferences.setNotifierDaily(); watchlistPreferences.clickSaveAndContinue(); // Switch to Admin user and go to the scheduler home page SchedulerHomePage schedulerHomePage = new SchedulerHomePage(); getDriver().get(getUtil().getURLToLoginAsAdminAndGotoPage(schedulerHomePage.getURL())); getUtil().recacheSecretToken(); // Trigger the notification for the Daily job schedulerHomePage.clickJobActionTrigger("WatchList daily notifier"); // Wait for the email with a timeout Assert.assertTrue("Mail not received", this.greenMail.waitForIncomingEmail(70000, 1)); // Verify email content String messageFromXWiki = GreenMailUtil.getBody(this.greenMail.getReceivedMessages()[0]); Assert.assertFalse(messageFromXWiki.contains("Exception")); Assert.assertTrue(messageFromXWiki.contains("TestWatchThisPage")); Assert.assertTrue(messageFromXWiki.contains("TestWatchWholeSpace")); }