|
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