Exemple #1
0
        public async Task ChangeTitle_on_Server_Test(HostingModel hostingModel, BlazorVersion blazorVersion)
        {
            var host = this._TestContext.StartHost(hostingModel, blazorVersion);

            var httpClient = new HttpClient();

            var contentOfHome = await httpClient.GetStringAsync(host.GetUrl("/"));

            Regex.Match(contentOfHome, "<title>(?<title>.+)</title>")
            .Groups["title"].Value.Is("Sample Site");

            var contentOfCounter = await httpClient.GetStringAsync(host.GetUrl("/").TrimEnd('/') + "/counter");

            Regex.Match(contentOfCounter, "<title>(?<title>.+)</title>")
            .Groups["title"].Value.Is("Counter(0)");

            var contentOfFetchdata = await httpClient.GetStringAsync(host.GetUrl("/").TrimEnd('/') + "/fetchdata");

            Regex.Match(contentOfFetchdata, "<title>(?<title>.+)</title>")
            .Groups["title"].Value.Is("Fetch data");
        }
Exemple #2
0
        public void ChangeTitle_on_Browser_Start_from_Counter_Test(HostingModel hostingModel, BlazorVersion blazorVersion)
        {
            var host   = this._TestContext.StartHost(hostingModel, blazorVersion);
            var driver = this._TestContext.WebDriver;

            // Navigate to "Counter"
            driver.GoToUrlAndWait(host.GetUrl("/counter"));

            // Validate document title of "Counter"
            driver.Wait(1000).Until(_ => driver.Title == "Counter(0)");

            // document title will be updated real time.
            driver.FindElement(By.CssSelector("button.btn-primary")).Click();
            driver.Wait(1000).Until(_ => driver.Title == "Counter(1)");
            driver.FindElement(By.CssSelector("button.btn-primary")).Click();
            driver.Wait(1000).Until(_ => driver.Title == "Counter(2)");

            // Go back to "Home"
            driver.ClickHome();

            // Validate document title of "Home" was restored.
            driver.Wait(1000).Until(_ => driver.Title == "Sample Site");
        }
Exemple #3
0
        public void HelperJavaScript_Namespace_Not_Conflict_Test(HostingModel hostingModel, BlazorVersion blazorVersion)
        {
            var host   = this._TestContext.StartHost(hostingModel, blazorVersion);
            var driver = this._TestContext.WebDriver;

            driver.GoToUrlAndWait(host.GetUrl("/counter"));

            var random = new Random();
            var a      = random.Next(1, 10);
            var b      = random.Next(1, 10);
            var result = driver.ExecuteJavaScript <long>($"return Toolbelt.Blazor.add({a},{b})");

            result.Is(a + b);
        }
Exemple #4
0
        public void Change_at_OnAfterRender_on_Browser_Start_from_OnAfterRender_Test(HostingModel hostingModel, BlazorVersion blazorVersion)
        {
            var host   = this._TestContext.StartHost(hostingModel, blazorVersion);
            var driver = this._TestContext.WebDriver;

            // Navigate to "Change at "OnAfterRender"", and validate the document title of it
            driver.GoToUrlAndWait(host.GetUrl("/change-at-onafterrender"));
            driver.Wait(5000).Until(_ => driver.FindElement(By.XPath("//h1[text()='Change at \"OnAfterRender\"']")));
            Thread.Sleep(200);

            driver.Wait(1000).Until(_ => driver.Title == "2nd title");

            // Validate meta elements of "Change at "OnAfterRender""
            var actualMetaAtOnAfterRender = driver.DumpMetaElements();

            actualMetaAtOnAfterRender.Is(ExpectMeta.AtOnAfterRender);

            // Validate link elements of "Change at "OnAfterRender""
            var actualLinkAtOnAfterRender = driver.DumpLinkElements();

            actualLinkAtOnAfterRender.Is(ExpectLinks.AtOnAfterRender);

            // Go back to Home, and validate the document title, meta elements, link elements of "Home"
            driver.ClickHome();
            driver.Wait(1000).Until(_ => driver.Title == "Sample Site");
            var actualMetaAtHome = driver.DumpMetaElements();

            actualMetaAtHome.Is(ExpectMeta.AtHome);
            var actualLinkAtHome = driver.DumpLinkElements();

            actualLinkAtHome.Is(ExpectLinks.AtHome);
        }
Exemple #5
0
        public void Refresh_and_Cancel_on_Browser_Start_from_Redirect_Test(HostingModel hostingModel, BlazorVersion blazorVersion)
        {
            var host   = this._TestContext.StartHost(hostingModel, blazorVersion);
            var driver = this._TestContext.WebDriver;

            driver.Navigate().GoToUrl(host.GetUrl("/").TrimEnd('/') + "/redirect");
            driver.Wait(5000).Until(_ => driver.FindElement(By.XPath("//h1[text()='Redirect to Home']")));
            Thread.Sleep(200);
            driver.DumpMetaElements()
            .Contains("'','','refresh','3;url=/'")     // <- added 'refresh'
            .IsTrue();

            // Navigate to "Fetch data"
            driver.ClickFetchData();

            // Wait for redirected...
            Thread.Sleep(5000);

            // Validate current page is not redirected, stay on "Counter".
            driver.Wait(1000).Until(_ => driver.FindElement(By.XPath("//h1[text()='Weather forecast']")));
            driver.Url.TrimEnd('/').Is(host.GetUrl("/").TrimEnd('/') + "/fetchdata");
        }
Exemple #6
0
        public void Refresh_on_Browser_Start_from_Redirect_Test(HostingModel hostingModel, BlazorVersion blazorVersion)
        {
            var host   = this._TestContext.StartHost(hostingModel, blazorVersion);
            var driver = this._TestContext.WebDriver;

            driver.Navigate().GoToUrl(host.GetUrl("/").TrimEnd('/') + "/redirect");
            driver.Wait(5000).Until(_ => driver.FindElement(By.XPath("//h1[text()='Redirect to Home']")));
            Thread.Sleep(200);
            driver.DumpMetaElements()
            .Contains("'','','refresh','3;url=/'")     // <- added 'refresh'
            .IsTrue();

            // Wait for redirected...
            Thread.Sleep(5000);

            // Validate current page is "Home".
            driver.Wait(1000).Until(_ => driver.FindElement(By.XPath("//h1[text()='Hello, world!']")));
            driver.Url.TrimEnd('/').Is(host.GetUrl("/").TrimEnd('/'));
        }
Exemple #7
0
        public void ChangeLinkElements_on_Browser_Start_from_Counter_Test(HostingModel hostingModel, BlazorVersion blazorVersion)
        {
            var host   = this._TestContext.StartHost(hostingModel, blazorVersion);
            var driver = this._TestContext.WebDriver;

            // Navigate to "Counter", and validate link elements of "Counter"
            driver.GoToUrlAndWait(host.GetUrl("/counter"));
            var actualAtCounter = driver.DumpLinkElements();

            actualAtCounter.Is(ExpectLinks.AtCounter);

            // Go back to "Home", and validate link elements of "Home" were restored.
            driver.ClickHome();
            var actualAtHomem = driver.DumpLinkElements();

            actualAtHomem.Is(ExpectLinks.AtHome);
        }
Exemple #8
0
        public void ChangeMetaElements_on_Browser_Start_from_Home_Test(HostingModel hostingModel, BlazorVersion blazorVersion)
        {
            var host   = this._TestContext.StartHost(hostingModel, blazorVersion);
            var driver = this._TestContext.WebDriver;

            // Navigate to Home
            driver.GoToUrlAndWait(host.GetUrl("/"));

            // Validate meta elements of "Home"
            var actualAtHome = driver.DumpMetaElements();

            actualAtHome.Is(ExpectMeta.AtHome);

            // Navigate to "Counter"
            driver.ClickCounter();

            // Validate meta elements of "Counter"
            var actualAtCounter = driver.DumpMetaElements();

            actualAtCounter.Is(ExpectMeta.AtCounter);

            // Navigate to "Fetch data"
            driver.ClickFetchData();

            // Validate meta elements of "Fetch data"
            var actualAtFetchData = driver.DumpMetaElements();

            actualAtFetchData.Is(ExpectMeta.AtFetchData);

            // Go back to "Home"
            driver.ClickHome();

            // Validate meta elements of "Home" were restored.
            var actualAtReturnHome = driver.DumpMetaElements();

            actualAtReturnHome.Is(ExpectMeta.AtHome);
        }
Exemple #9
0
        public async Task ChangeMetaElements_on_Server_Test(HostingModel hostingModel, BlazorVersion blazorVersion)
        {
            var host       = this._TestContext.StartHost(hostingModel, blazorVersion);
            var httpClient = new HttpClient();

            var contentAtHome = await httpClient.GetStringAsync(host.GetUrl("/"));

            var actualAtHome = this.DumpMetaElements(contentAtHome);

            actualAtHome.Is(ExpectMeta.AtHome);

            var contentAtCounter = await httpClient.GetStringAsync(host.GetUrl("/counter"));

            var actualAtCounter = this.DumpMetaElements(contentAtCounter);

            actualAtCounter.Is(ExpectMeta.AtCounter);

            var contentAtFetchdata = await httpClient.GetStringAsync(host.GetUrl("/fetchdata"));

            var actualAtFetchData = this.DumpMetaElements(contentAtFetchdata);

            actualAtFetchData.Is(ExpectMeta.AtFetchData);
        }
Exemple #10
0
        public async Task AddLinkElementsOnly_on_Server_Test(HostingModel hostingModel, BlazorVersion blazorVersion)
        {
            var host               = this._TestContext.StartHost(hostingModel, blazorVersion);
            var httpClient         = new HttpClient();
            var contentOfCanonical = await httpClient.GetStringAsync(host.GetUrl("/canonical"));

            this.DumpLinkElements(contentOfCanonical).Any(
                elemnt => elemnt == $"rel:canonical, href:/canonical, type:, media:, title:, sizes:, as:, crossorigin:, hreflang:, imagesizes:, imagesrcset:, disabled:false"
                ).IsTrue();
        }