public void User_can_delete_widget() { var browser = default(Browser); var page = default(HomePage); var deletedWidgetId = default(string); "Given a user having some widgets on his page".Context(() => { BrowserHelper.ClearCookies(); browser = BrowserHelper.OpenNewBrowser(Urls.Homepage); browser.WaitForAsyncPostbackComplete(10000); }); "When user deletes one of the widget".Do(() => { page = browser.Page <HomePage>(); var rssWidget = RssWidgetControl.GetTheFirstRssWidget(page); deletedWidgetId = rssWidget.Element.Id; rssWidget.Close(); browser.WaitForAsyncPostbackComplete(10000); }); "Then it should remove the widget from the page".Assert(() => { using (browser) { Assert.False(browser.Element(deletedWidgetId).Exists); } }); "Then it should not come on revisit".Assert(() => { using (browser) { browser.Refresh(); browser.WaitForAsyncPostbackComplete(10000); Assert.False(browser.Element(deletedWidgetId).Exists); } }); }
public void User_can_change_rss_widget_setting() { var browser = default(Browser); var page = default(HomePage); var rssWidget = default(RssWidgetControl); "Given a new user on the homepage having a RSS widget".Context(() => { BrowserHelper.ClearCookies(); browser = BrowserHelper.OpenNewBrowser(Urls.Homepage); browser.WaitForAsyncPostbackComplete(10000); page = browser.Page <HomePage>(); rssWidget = RssWidgetControl.GetTheFirstRssWidget(page); }); "When user clicks on the edit link of the widget".Do(() => { rssWidget.EditLink.Click(); browser.WaitForAsyncPostbackComplete(10000); }); "Then it should show the settings area of the widget".Assert(() => { using (browser) { Assert.True(rssWidget.UrlTextBox.Exists); Assert.Equal("http://www.wikihow.com/feed.rss", rssWidget.UrlTextBox.Text); Assert.Equal("3", rssWidget.CountDropdown.SelectedItem); } }); "Then it should allow user to change the number of feeds to show".Assert(() => { using (browser) { rssWidget.CountDropdown.Select("10"); rssWidget.SaveButton.Click(); browser.WaitForAsyncPostbackComplete(10000); Assert.Equal(10, rssWidget.FeedLinks.Count); } }); "Then it should persist the changes on next page load".Assert(() => { using (browser) { // Make changes rssWidget.CountDropdown.Select("5"); rssWidget.SaveButton.Click(); browser.WaitForAsyncPostbackComplete(10000); // Reload the page browser.GoTo(Urls.Homepage); //Thread.Sleep(5000); browser.WaitForAsyncPostbackComplete(10000); page = browser.Page <HomePage>(); rssWidget = RssWidgetControl.GetTheFirstRssWidget(page); // Ensure the changes are reflected Assert.Equal(5, rssWidget.FeedLinks.Count); } }); }