|
12 | 12 | using Microsoft.AspNetCore.Testing;
|
13 | 13 | using OpenQA.Selenium;
|
14 | 14 | using OpenQA.Selenium.Interactions;
|
15 |
| -using OpenQA.Selenium.Support.UI; |
16 | 15 | using Xunit;
|
17 | 16 | using Xunit.Abstractions;
|
18 | 17 |
|
@@ -608,18 +607,30 @@ public void OnNavigate_DoesNotRenderWhileOnNavigateExecuting()
|
608 | 607 | Browser.Equal("This is a long page you can scroll.", () => app.FindElement(By.Id("test-info")).Text);
|
609 | 608 | }
|
610 | 609 |
|
| 610 | + [Theory] |
| 611 | + [InlineData("/WithParameters/Name/Ñoño ñi/LastName/O'Jkl")] |
| 612 | + [InlineData("/WithParameters/Name/[Ñoño ñi]/LastName/O'Jkl")] |
| 613 | + [InlineData("/other?abc=Ñoño ñi")] |
| 614 | + [InlineData("/other?abc=[Ñoño ñi]")] |
| 615 | + public void CanArriveAtPageWithSpecialURL(string relativeUrl) |
| 616 | + { |
| 617 | + SetUrlViaPushState(relativeUrl, true); |
| 618 | + var errorUi = Browser.Exists(By.Id("blazor-error-ui")); |
| 619 | + Browser.Equal("none", () => errorUi.GetCssValue("display")); |
| 620 | + } |
| 621 | + |
611 | 622 | private long BrowserScrollY
|
612 | 623 | {
|
613 | 624 | get => (long)((IJavaScriptExecutor)Browser).ExecuteScript("return window.scrollY");
|
614 | 625 | set => ((IJavaScriptExecutor)Browser).ExecuteScript($"window.scrollTo(0, {value})");
|
615 | 626 | }
|
616 | 627 |
|
617 |
| - private string SetUrlViaPushState(string relativeUri) |
| 628 | + private string SetUrlViaPushState(string relativeUri, bool forceLoad = false) |
618 | 629 | {
|
619 | 630 | var pathBaseWithoutHash = ServerPathBase.Split('#')[0];
|
620 | 631 | var jsExecutor = (IJavaScriptExecutor)Browser;
|
621 | 632 | var absoluteUri = new Uri(_serverFixture.RootUri, $"{pathBaseWithoutHash}{relativeUri}");
|
622 |
| - jsExecutor.ExecuteScript($"Blazor.navigateTo('{absoluteUri.ToString().Replace("'", "\\'")}')"); |
| 633 | + jsExecutor.ExecuteScript($"Blazor.navigateTo('{absoluteUri.ToString().Replace("'", "\\'")}', {(forceLoad ? "true" : "false")})"); |
623 | 634 |
|
624 | 635 | return absoluteUri.AbsoluteUri;
|
625 | 636 | }
|
|
0 commit comments