Esempio n. 1
0
        public void Control_AuthenticatedView_AuthenticatedViewTest()
        {
            RunInAllBrowsers(browser => {
                browser.NavigateToUrl(SamplesRouteUrls.ControlSamples_AuthenticatedView_AuthenticatedViewTest);

                // make sure we are signed out
                browser.First("input[value='Sign Out']").Click().Wait();

                AssertUI.InnerTextEquals(browser.First(".result"), "I am not authenticated!");
                browser.First("input[value='Sign In']").Click().Wait();
                AssertUI.InnerTextEquals(browser.First(".result"), "I am authenticated!");
                browser.First("input[value='Sign Out']").Click().Wait();
                AssertUI.InnerTextEquals(browser.First(".result"), "I am not authenticated!");
            });
        }
        private void ValidateDefaultRouteLinkState(IBrowserWrapper browser, string suffix = "")
        {
            AssertUI.HyperLinkEquals(browser.First("#opt1_empty"), "FeatureSamples/ParameterBinding/OptionalParameterBinding" + suffix, UrlKind.Relative, UriComponents.PathAndQuery);
            AssertUI.HyperLinkEquals(browser.First("#opt1_param_empty"), "FeatureSamples/ParameterBinding/OptionalParameterBinding" + suffix, UrlKind.Relative, UriComponents.PathAndQuery);
            AssertUI.HyperLinkEquals(browser.First("#opt1_param_A2"), "FeatureSamples/ParameterBinding/OptionalParameterBinding" + suffix, UrlKind.Relative, UriComponents.PathAndQuery);

            AssertUI.HyperLinkEquals(browser.First("#opt1_param_ID2"), "FeatureSamples/ParameterBinding/OptionalParameterBinding/4", UrlKind.Relative, UriComponents.PathAndQuery);
            AssertUI.HyperLinkEquals(browser.First("#opt1_param_ID2A2"), "FeatureSamples/ParameterBinding/OptionalParameterBinding/5", UrlKind.Relative, UriComponents.PathAndQuery);


            AssertUI.HyperLinkEquals(browser.First("#opt2_empty"), "FeatureSamples/ParameterBinding/OptionalParameterBinding2/300", UrlKind.Relative, UriComponents.PathAndQuery);
            AssertUI.HyperLinkEquals(browser.First("#opt2_param_A"), "FeatureSamples/ParameterBinding/OptionalParameterBinding2/300", UrlKind.Relative, UriComponents.PathAndQuery);
            AssertUI.HyperLinkEquals(browser.First("#opt2_param_2"), "FeatureSamples/ParameterBinding/OptionalParameterBinding2/3", UrlKind.Relative, UriComponents.PathAndQuery);
            AssertUI.HyperLinkEquals(browser.First("#opt2_param_ID2A2"), "FeatureSamples/ParameterBinding/OptionalParameterBinding/4", UrlKind.Relative, UriComponents.PathAndQuery);
        }
Esempio n. 3
0
        public void Control_ValidationSummary_RecursiveValidationSummary()
        {
            RunInAllBrowsers(browser => {
                browser.NavigateToUrl(SamplesRouteUrls.ControlSamples_ValidationSummary_RecursiveValidationSummary);

                browser.ElementAt("input[type=button]", 0).Click().Wait();

                browser.ElementAt("ul", 0).FindElements("li").ThrowIfDifferentCountThan(2);
                AssertUI.InnerTextEquals(browser.First("#result"), "false");

                browser.ElementAt("input[type=button]", 1).Click().Wait();
                browser.ElementAt("ul", 1).FindElements("li").ThrowIfDifferentCountThan(1);
                AssertUI.InnerTextEquals(browser.First("#result"), "false");
            });
        }
Esempio n. 4
0
        public void Control_TextBox_IntBoundTextBox()
        {
            RunInAllBrowsers(browser => {
                browser.NavigateToUrl(SamplesRouteUrls.ControlSamples_TextBox_IntBoundTextBox);

                browser.ElementAt("input", 0).Clear();
                browser.ElementAt("input", 0).SendKeys("hello");
                browser.ElementAt("input[type=button]", 0).Click();
                browser.Wait();

                AssertUI.Value(browser.ElementAt("input", 0), "hello");
                AssertUI.InnerTextEquals(browser.ElementAt("span", 0), "0");
                AssertUI.TextNotEmpty(browser.FirstOrDefault("#ValidatorMessage"));
            });
        }
Esempio n. 5
0
 public void CheckValueTest()
 {
     RunInAllBrowsers(browser =>
     {
         browser.NavigateToUrl("valuetest.aspx");
         AssertUI.CheckIfValue(browser.First("#input-radio"), "radio1");
         AssertUI.CheckIfValue(browser.First("#input-radio2"), "radio2");
         AssertUI.CheckIfValue(browser.First("#checkbox1"), "checkboxvalue1");
         AssertUI.CheckIfValue(browser.First("#checkbox2"), "checkboxvalue2");
         AssertUI.CheckIfValue(browser.First("#area"), "areavalue");
         AssertUI.CheckIfValue(browser.First("#input-text"), "text1");
         AssertUI.CheckIfValue(browser.First("#input-text"), "texT1", false);
         AssertUI.CheckIfValue(browser.First("#input-text"), "   texT1   ", false);
     });
 }
Esempio n. 6
0
        public void Feature_ViewModelProtection_ComplexViewModelProtection(string messageDataUi, string originalText, string changedText, string afterPostBackText)
        {
            RunComplexViewModelProtectionTest(browser => {
                var message = browser.Single(messageDataUi, this.SelectByDataUi);
                AssertUI.TextEquals(message, originalText);
                browser.Single($"change-{messageDataUi}", this.SelectByDataUi).Click().Wait();

                message = browser.Single(messageDataUi, this.SelectByDataUi);
                AssertUI.TextEquals(message, changedText);
            },
                                              browser => {
                var message = browser.Single(messageDataUi, this.SelectByDataUi);
                AssertUI.TextEquals(message, afterPostBackText);
            });
        }
Esempio n. 7
0
        public void Control_LinkButton_LinkButtonOnClick()
        {
            RunInAllBrowsers(browser =>
            {
                browser.NavigateToUrl(SamplesRouteUrls.ControlSamples_LinkButton_LinkButtonOnclick);
                var onclickResult = browser.First("span.result1");
                var clickResult   = browser.First("span.result2");
                AssertUI.InnerTextEquals(clickResult, "");
                AssertUI.InnerTextEquals(onclickResult, "");

                browser.Click("#LinkButton");
                AssertUI.InnerTextEquals(clickResult, "Changed from command binding");
                AssertUI.InnerTextEquals(onclickResult, "Changed from onclick");
            });
        }
Esempio n. 8
0
        public void Feature_PostbackConcurrency_RedirectPostbackQueueSpa_PostbackDuringRedirect()
        {
            RunInAllBrowsers(browser => {
                browser.NavigateToUrl(SamplesRouteUrls.FeatureSamples_PostbackConcurrency_RedirectPostbackQueueSpa);

                browser.ElementAt("input[type=button]", 0).Click();
                browser.ElementAt("input[type=button]", 1).Click();

                while (!browser.CurrentUrl.Contains("?time"))
                {
                    Thread.Sleep(100);
                    AssertUI.TextNotEquals(browser.Single(".result"), "1");
                }
            });
        }
Esempio n. 9
0
        public void Control_IncludeInPageProperty_IncludeInPage_GridViewEmptyDataTemplate()
        {
            const string gridViewDataUi = "gridView-emptyDataTemplate";
            const string messageDataUi  = "emptyDataTemplate";

            CheckIncludeInPage(browser => {
                AssertUI.IsNotDisplayed(browser, gridViewDataUi, this.SelectByDataUi);
                var message = browser.Single(messageDataUi, this.SelectByDataUi);
                AssertUI.IsDisplayed(message);
                AssertUI.TextEquals(message, "There are no Customers to display");
            }, browser => {
                Assert.AreEqual(0, browser.FindElements(gridViewDataUi).Count);
                Assert.AreEqual(0, browser.FindElements(messageDataUi).Count);
            });
        }
Esempio n. 10
0
        public void Feature_AttachedProperties_AttachedProperties()
        {
            RunInAllBrowsers(browser => {
                browser.NavigateToUrl(SamplesRouteUrls.FeatureSamples_AttachedProperties_AttachedProperties);

                var div = browser.Single(".div");
                AssertUI.Attribute(div, "bind:value", a => a == "test");
                AssertUI.Attribute(div, "bind:value2", a => a == "aaa");

                var txb = browser.Single("input[type=text]");
                txb.Clear().SendKeys("bbb").SendKeys(Keys.Tab);

                AssertUI.Attribute(div, "bind:value2", a => a == "bbb");
            });
        }
Esempio n. 11
0
        public void FileDialogTest()
        {
            RunInAllBrowsers(browser =>
            {
                browser.NavigateToUrl("FileDialog.aspx");

                var tempFile = Path.GetTempFileName();
                File.WriteAllText(tempFile, "test content");

                browser.FileUploadDialogSelect(browser.First("input[type=file]"), tempFile);
                AssertUI.CheckAttribute(browser.First("input[type=file]"), "value", s => !string.IsNullOrWhiteSpace(s));

                File.Delete(tempFile);
            });
        }
Esempio n. 12
0
        public void ConfirmTest()
        {
            RunInAllBrowsers(browser =>
            {
                browser.NavigateToUrl("/Confirm.aspx");

                var button = browser.First("#button");
                button.Click();

                AssertUI.CheckIfInnerText(browser.ConfirmAlert().First("#message"), s => s.Equals("Accept", StringComparison.OrdinalIgnoreCase));

                button.Click();
                AssertUI.CheckIfInnerText(browser.DismissAlert().First("#message"), s => s.Equals("Dismiss", StringComparison.OrdinalIgnoreCase));
            });
        }
Esempio n. 13
0
        public void Feature_DateTimeSerialization_DateTimeSerialization()
        {
            var culture = new CultureInfo("cs-CZ");

            CultureInfo.CurrentCulture = new CultureInfo("en");

            RunInAllBrowsers(browser => {
                browser.NavigateToUrl(SamplesRouteUrls.FeatureSamples_DateTimeSerialization_DateTimeSerialization);
                browser.WaitFor(() => browser.FindElements("input[type=text]").ThrowIfSequenceEmpty(), 5000);

                // verify the first date
                browser.ElementAt("input[type=text]", 0).Clear().SendKeys("18.2.1988");
                browser.ElementAt("input[type=button]", 1).Click();

                AssertUI.InnerText(browser.ElementAt("span", 0), s => DateTime.Parse(s).Equals(new DateTime(1988, 2, 18)));
                browser.ElementAt("input[type=text]", 0).Clear().SendKeys("test");
                browser.ElementAt("input[type=button]", 1).Click();

                AssertUI.InnerText(browser.ElementAt("span", 0),
                                   s => DateTime.Parse(s).Equals(DateTime.MinValue));

                // verify the second date
                browser.ElementAt("input[type=text]", 1).Clear().SendKeys("2011-03-19 16:48:17");
                browser.ElementAt("input[type=button]", 3).Click();

                AssertUI.InnerText(browser.ElementAt("span", 1),
                                   s => DateTime.Parse(s).Equals(new DateTime(2011, 3, 19, 16, 48, 0)));

                browser.ElementAt("input[type=text]", 1).Clear().SendKeys("test");
                browser.ElementAt("input[type=button]", 3).Click();

                AssertUI.InnerTextEquals(browser.ElementAt("span", 1), "null");

                // try to set dates from server
                browser.ElementAt("input[type=button]", 0).Click();
                browser.ElementAt("input[type=button]", 2).Click();

                browser.Wait(500);

                // there is no time in the field
                AssertUI.Attribute(browser.ElementAt("input[type=text]", 0), "value",
                                   s => (DateTime.Now - DateTime.Parse(s, culture)).TotalHours < 24);

                // the minutes can differ slightly
                AssertUI.Attribute(browser.ElementAt("input[type=text]", 1), "value",
                                   s => (DateTime.Now - DateTime.Parse(s, culture)).TotalMinutes < 1);
            });
        }
Esempio n. 14
0
        public void Feature_Api_GetCollection()
        {
            RunInAllBrowsers(browser => {
                browser.NavigateToUrl(SamplesRouteUrls.FeatureSamples_Api_GetCollection);

                // click the first button (ID = 11)
                browser.WaitFor(() => {
                    browser.First(".id-company[data-company-id='11'] input[type=button]").Click()
                    .Wait();
                }, 30000, "Cannot find CompanyID = 11. Probably data are not loaded. (The page did not load in 5s.)");

                // ensure that orders have been loaded
                var orders = browser.FindElements(".id-order");
                AssertUI.Any(orders).Attribute("data-order-id", "6");

                var idToDelete = orders[2].GetAttribute("data-order-id");       // every order has two elements (read-only and edit)

                // delete order (ID = 7)
                browser.First($".id-order[data-order-id='{idToDelete}'] input[type=button][value=Delete]").Click().Wait();
                orders = browser.FindElements(".id-order");
                AssertUI.Any(orders).Attribute("data-order-id", "6");
                AssertUI.All(orders).Attribute("data-order-id", s => s != idToDelete);

                // click the second button (ID = 12)
                browser.First(".id-company[data-company-id='12'] input[type=button]").Click().Wait();

                // ensure that orders have been loaded
                orders = browser.FindElements(".id-order");
                AssertUI.Any(orders).Attribute("data-order-id", "2");
                AssertUI.Any(orders).Attribute("data-order-id", "9");

                // edit order (ID = 2)
                browser.First(".id-order[data-order-id='2'] input[type=button][value=Edit]").Click().Wait();
                browser.First(".id-order.id-edit input[type=text]").Clear().SendKeys("2000-01-01");
                browser.First(".id-order.id-edit input[type=button][value=Apply]").Click().Wait();
                browser.First(".id-order.id-edit input[type=button][value=Exit]").Click().Wait();

                AssertUI.TextEquals(browser.First(".id-order[data-order-id='2'] .id-date"), "2000-01-01");

                // change the order (ID = 2) date back so the test can be run once again
                browser.First(".id-order[data-order-id='2'] input[type=button][value=Edit]").Click().Wait();
                browser.First(".id-order.id-edit input[type=text]").Clear().SendKeys("2010-01-01");
                browser.First(".id-order.id-edit input[type=button][value=Apply]").Click().Wait();
                browser.First(".id-order.id-edit input[type=button][value=Exit]").Click().Wait();

                AssertUI.TextEquals(browser.First(".id-order[data-order-id='2'] .id-date"), "2010-01-01");
            });
        }
Esempio n. 15
0
        public void AlertTest2()
        {
            RunInAllBrowsers(browser =>
            {
                browser.NavigateToUrl("/Alert.aspx");

                browser.First("#button").Click();
                try
                {
                    AssertUI.CheckIfAlertTextEquals(browser, "Confirm test", true);
                }
                catch (AlertException)
                {
                }
            });
        }
Esempio n. 16
0
        public void Feature_Localization_Localization_NestedPage_Type()
        {
            RunInAllBrowsers(browser => {
                browser.NavigateToUrl(SamplesRouteUrls.FeatureSamples_Localization_Localization_NestedPage_Type);

                AssertUI.InnerTextEquals(browser.First("#masterPage"), "Master page", false);
                AssertUI.InnerTextEquals(browser.First("#fromLocalizationFile1"), "This comes from resource file!", false);
                AssertUI.InnerTextEquals(browser.First("#fromLocalizationFile2"), "Nested page title", false);

                // change language
                browser.Last("a").Click();
                AssertUI.InnerTextEquals(browser.First("#masterPage"), "Master page", false);
                AssertUI.InnerTextEquals(browser.First("#fromLocalizationFile1"), "Tohle pochází z resource souboru!", false);
                AssertUI.InnerTextEquals(browser.First("#fromLocalizationFile2"), "Nested page title", false);
            });
        }
Esempio n. 17
0
        public void Control_GridView_RenamedPrimaryKey()
        {
            RunInAllBrowsers(browser => {
                browser.NavigateToUrl(SamplesRouteUrls.ControlSamples_GridView_RenamedPrimaryKey);
                browser.WaitUntilDotvvmInited();

                var gridview = browser.Single("gridview", SelectByDataUi);
                AssertUI.NotContainsElement(gridview, "input");

                browser.First("edit-button", SelectByDataUi).Click();
                browser.WaitFor(() => AssertUI.ContainsElement(gridview, "input"), 1000);

                browser.First("save-button", SelectByDataUi).Click();
                browser.WaitFor(() => AssertUI.NotContainsElement(gridview, "input"), 1000);
            });
        }
Esempio n. 18
0
        private void CheckSeparators(IBrowserWrapper browser, string repeaterDataUi)
        {
            var repeater = browser.Single(repeaterDataUi, this.SelectByDataUi);

            for (int i = 0; i < repeater.Children.Count; i++)
            {
                if (i % 2 == 0)
                {
                    AssertUI.Attribute(repeater.Children[i], "data-ui", s => s == "item");
                }
                else
                {
                    AssertUI.Attribute(repeater.Children[i], "data-ui", s => s == "separator");
                }
            }
        }
Esempio n. 19
0
        public void Complex_GridViewDataSet_ControlWithITemplateInColumn()
        {
            RunInAllBrowsers(browser =>
            {
                browser.NavigateToUrl(SamplesRouteUrls.ComplexSamples_GridViewDataSet_GridViewDataSet);
                browser.First(".GridView");

                var templateContents = browser.FindElements(SelectByDataUiId("template-content"));

                foreach (var content in templateContents)
                {
                    AssertUI.InnerTextEquals(content, "Not Authenticated");
                }
                Assert.Equal(3, templateContents.Count);
            });
        }
Esempio n. 20
0
        public void Feature_StaticCommand_StaticCommand_ArrayAssigment()
        {
            RunInAllBrowsers(browser => {
                browser.NavigateToUrl(SamplesRouteUrls.FeatureSamples_StaticCommand_StaticCommand_ArrayAssigment);

                AssertUI.InnerTextEquals(browser.ElementAt(".item", 0), "Anne");
                AssertUI.InnerTextEquals(browser.ElementAt(".item", 1), "Martin");

                var button = browser.Single("input[type=button]");
                button.Click().Wait();

                AssertUI.InnerTextEquals(browser.ElementAt(".item", 0), "Bob");
                AssertUI.InnerTextEquals(browser.ElementAt(".item", 1), "Oliver");
                AssertUI.InnerTextEquals(browser.ElementAt(".item", 2), "Pablo");
            });
        }
Esempio n. 21
0
        public void Feature_Serialization_Serialization()
        {
            RunInAllBrowsers(browser => {
                browser.NavigateToUrl(SamplesRouteUrls.FeatureSamples_Serialization_Serialization);

                // fill the values
                browser.ElementAt("input[type=text]", 0).SendKeys("1");
                browser.ElementAt("input[type=text]", 1).SendKeys("2");
                browser.Click("input[type=button]");

                // verify the results
                AssertUI.Attribute(browser.ElementAt("input[type=text]", 0), "value", s => s.Equals(""));
                AssertUI.Attribute(browser.ElementAt("input[type=text]", 1), "value", s => s.Equals("2"));
                AssertUI.InnerTextEquals(browser.Last("span"), ",2");
            });
        }
Esempio n. 22
0
        public void Feature_Validation_EncryptedData()
        {
            RunInAllBrowsers(browser => {
                browser.NavigateToUrl(SamplesRouteUrls.FeatureSamples_Validation_EncryptedData);

                var counterButton = browser.Single("[data-ui=counter-button]");
                var result        = browser.First("[data-ui=result]");

                AssertUI.InnerTextEquals(result, "0");

                counterButton.Click();
                AssertUI.InnerTextEquals(result, "1");
                counterButton.Click();
                AssertUI.InnerTextEquals(result, "2");
            });
        }
Esempio n. 23
0
        public void TextNotEmptyText_ExpectedFailure()
        {
            var driver = new MockIWebDriver()
            {
                FindElementsAction = () => new List <IWebElement>()
                {
                    new MockIWebElement()
                }
            };
            var browser = CreateMockedIBrowserWrapper(driver);

            Assert.Throws <UnexpectedElementStateException>(() =>
            {
                AssertUI.TextNotEmpty(browser.First("#empty-div"));
            });
        }
Esempio n. 24
0
        public void Control_GridView_InvalidCssClass_CheckBox()
        {
            RunInAllBrowsers(browser => {
                browser.NavigateToUrl(SamplesRouteUrls.ControlSamples_GridView_InvalidCssClass);
                browser.WaitUntilDotvvmInited();

                var gridview = browser.Single("gridview", SelectByDataUi);
                AssertUI.HasNotClass(gridview.First(".is-standalone > span"), "invalid");

                gridview.First("edit-button", SelectByDataUi).Click();
                var checkBox = browser.First(".is-standalone > input");
                checkBox.Click();
                gridview.First("save-button", SelectByDataUi).Click();
                browser.WaitFor(() => AssertUI.HasClass(gridview.First(".is-standalone > span"), "invalid"), 1000);
            });
        }
Esempio n. 25
0
        public void Feature_BindingPageInfo_BindingPageInfo()
        {
            RunInAllBrowsers(browser => {
                browser.NavigateToUrl(SamplesRouteUrls.FeatureSamples_BindingPageInfo_BindingPageInfo);

                var text   = browser.Single("[data-ui=postback-text]");
                var button = browser.Single("[data-ui=long-postback-button]");

                AssertUI.InnerTextEquals(text, "no postback");
                button.Click();
                AssertUI.InnerTextEquals(text, "postback running");

                browser.Wait(1000);
                AssertUI.InnerTextEquals(text, "no postback");
            });
        }
Esempio n. 26
0
        public void TextTestAll()
        {
            RunInAllBrowsers(browser =>
            {
                browser.NavigateToUrl("text.aspx");

                var elements = new[]
                {
                    browser.First("#button"),
                    browser.First("#input"),
                    browser.First("#area")
                };
                AssertUI.All(elements).CheckIfTextEquals("text", false);
                AssertUI.All(elements).CheckIfText(s => s.ToLower().Contains("text"));
            });
        }
Esempio n. 27
0
        public void HtmlTagHasAmpAttribute(string dataui, bool hasWrapper)
        {
            RunInAllBrowsers(SampleUrl, wrapper =>
            {
                var textWrapper = wrapper.Single(dataui, SelectByDataUiId);

                if (hasWrapper)
                {
                    textWrapper = textWrapper.Single("div", By.TagName);
                }

                var bold = textWrapper.Single("b", By.TagName);
                AssertUI.InnerTextEquals(textWrapper, "Hello value");
                AssertUI.InnerTextEquals(bold, "value");
            });
        }
Esempio n. 28
0
        public void Control_HtmlLiteral_HtmlLiteral()
        {
            RunInAllBrowsers(browser => {
                browser.NavigateToUrl(SamplesRouteUrls.ControlSamples_HtmlLiteral_HtmlLiteral);

                var column1 = browser.ElementAt("td", 0);
                var column2 = browser.ElementAt("td", 1);

                AssertUI.InnerTextEquals(column1.ElementAt("fieldset", 0).Single("div"), "Hello value");

                AssertUI.InnerTextEquals(column2.ElementAt("fieldset", 0).Single("div"), "Hello value");

                column2.ElementAt("fieldset", 1).FindElements("div").ThrowIfDifferentCountThan(0);
                AssertUI.InnerText(column2.ElementAt("fieldset", 1), t => t.Contains("Hello value"));
            });
        }
Esempio n. 29
0
        public void Control_CheckBox_Indeterminate()
        {
            RunInAllBrowsers(browser => {
                browser.NavigateToUrl(SamplesRouteUrls.ControlSamples_CheckBox_Indeterminate);

                var checkBox = browser.First("input[type=checkbox]");
                var reset    = browser.First("input[type=button]");
                var value    = browser.First("span.value");

                AssertUI.InnerTextEquals(value, "Indeterminate");
                checkBox.Click();
                AssertUI.InnerTextEquals(value, "Other");
                reset.Click();
                AssertUI.InnerTextEquals(value, "Indeterminate");
            });
        }
Esempio n. 30
0
        public void Feature_Resource_RequiredOnPostback()
        {
            RunInAllBrowsers(browser => {
                browser.NavigateToUrl(SamplesRouteUrls.FeatureSamples_Resources_RequiredOnPostback);
                browser.WaitUntilDotvvmInited();

                var welcome = browser.Single("welcome", SelectByDataUi);
                AssertUI.TextEquals(welcome, "Welcome");

                browser.Single("button", SelectByDataUi).Click();
                browser.WaitFor(() => AssertUI.AlertTextEquals(browser, "javascript resource loaded!"), 5000);

                browser.ConfirmAlert();
                browser.WaitFor(() => AssertUI.TextEquals(welcome, "Welcome"), 1000);
            });
        }