コード例 #1
0
        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);
                }
            });
        }
コード例 #2
0
        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);
                }
            });
        }