@@ -1590,6 +1590,54 @@ public void AnchorWithHrefContainingHashSamePage_ScrollsToElementOnTheSamePage()
15901590 Assert . Equal ( test1VerticalLocation , currentWindowScrollY ) ;
15911591 }
15921592
1593+ [ Fact ]
1594+ public void AnchorWithHrefToSameUrlWithQueryAndHash_ScrollsToElementOnTheSamePage ( )
1595+ {
1596+ SetUrlViaPushState ( "/" ) ;
1597+ var app = Browser . MountTestComponent < TestRouter > ( ) ;
1598+ app . FindElement ( By . LinkText ( "Long page with hash" ) ) . Click ( ) ;
1599+
1600+ app . FindElement ( By . Id ( "anchor-test1-with-query" ) ) . Click ( ) ;
1601+
1602+ var currentWindowScrollY = BrowserScrollY ;
1603+ var test1VerticalLocation = app . FindElement ( By . Id ( "test1" ) ) . Location . Y ;
1604+ var currentRelativeUrl = _serverFixture . RootUri . MakeRelativeUri ( new Uri ( Browser . Url ) ) . ToString ( ) ;
1605+ Assert . Equal ( "subdir/LongPageWithHash?color=green&number=123#test1" , currentRelativeUrl ) ;
1606+ Assert . Equal ( test1VerticalLocation , currentWindowScrollY ) ;
1607+ }
1608+
1609+ [ Fact ]
1610+ public void AnchorWithHrefToSameUrlWithParamAndHash_ScrollsToElementOnTheSamePage ( )
1611+ {
1612+ SetUrlViaPushState ( "/" ) ;
1613+ var app = Browser . MountTestComponent < TestRouter > ( ) ;
1614+ app . FindElement ( By . LinkText ( "Long page with hash" ) ) . Click ( ) ;
1615+
1616+ app . FindElement ( By . Id ( "anchor-test1-with-param" ) ) . Click ( ) ;
1617+
1618+ var currentWindowScrollY = BrowserScrollY ;
1619+ var test1VerticalLocation = app . FindElement ( By . Id ( "test1" ) ) . Location . Y ;
1620+ var currentRelativeUrl = _serverFixture . RootUri . MakeRelativeUri ( new Uri ( Browser . Url ) ) . ToString ( ) ;
1621+ Assert . Equal ( "subdir/LongPageWithHash/11#test1" , currentRelativeUrl ) ;
1622+ Assert . Equal ( test1VerticalLocation , currentWindowScrollY ) ;
1623+ }
1624+
1625+ [ Fact ]
1626+ public void AnchorWithHrefToSameUrlWithParamQueryAndHash_ScrollsToElementOnTheSamePage ( )
1627+ {
1628+ SetUrlViaPushState ( "/" ) ;
1629+ var app = Browser . MountTestComponent < TestRouter > ( ) ;
1630+ app . FindElement ( By . LinkText ( "Long page with hash" ) ) . Click ( ) ;
1631+
1632+ app . FindElement ( By . Id ( "anchor-test1-with-param-and-query" ) ) . Click ( ) ;
1633+
1634+ var currentWindowScrollY = BrowserScrollY ;
1635+ var test1VerticalLocation = app . FindElement ( By . Id ( "test1" ) ) . Location . Y ;
1636+ var currentRelativeUrl = _serverFixture . RootUri . MakeRelativeUri ( new Uri ( Browser . Url ) ) . ToString ( ) ;
1637+ Assert . Equal ( "subdir/LongPageWithHash/11?color=green&number=123#test1" , currentRelativeUrl ) ;
1638+ Assert . Equal ( test1VerticalLocation , currentWindowScrollY ) ;
1639+ }
1640+
15931641 [ Fact ]
15941642 [ QuarantinedTest ( "https://github.com/dotnet/aspnetcore/issues/47967" ) ]
15951643 public void AnchorWithHrefContainingHashAnotherPage_NavigatesToPageAndScrollsToElement ( )
@@ -1609,7 +1657,7 @@ public void AnchorWithHrefContainingHashAnotherPage_NavigatesToPageAndScrollsToE
16091657
16101658 [ Fact ]
16111659 [ QuarantinedTest ( "https://github.com/dotnet/aspnetcore/issues/47967" ) ]
1612- public void NavigationManagerNavigateToSameUrlWithHash_ScrollsToElementOnTheSamePage ( )
1660+ public void NavigationManagerNavigateToAnotherUrlWithHash_NavigatesToPageAndScrollsToElement ( )
16131661 {
16141662 SetUrlViaPushState ( "/" ) ;
16151663 var app = Browser . MountTestComponent < TestRouter > ( ) ;
@@ -1625,7 +1673,7 @@ public void NavigationManagerNavigateToSameUrlWithHash_ScrollsToElementOnTheSame
16251673 }
16261674
16271675 [ Fact ]
1628- public void NavigationManagerNavigateToAnotherUrlWithHash_NavigatesToPageAndScrollsToElement ( )
1676+ public void NavigationManagerNavigateToSameUrlWithHash_ScrollsToElementOnTheSamePage ( )
16291677 {
16301678 SetUrlViaPushState ( "/" ) ;
16311679 var app = Browser . MountTestComponent < TestRouter > ( ) ;
@@ -1640,6 +1688,54 @@ public void NavigationManagerNavigateToAnotherUrlWithHash_NavigatesToPageAndScro
16401688 Assert . Equal ( test1VerticalLocation , currentWindowScrollY ) ;
16411689 }
16421690
1691+ [ Fact ]
1692+ public void NavigationManagerNavigateToSameUrlWithQueryAndHash_ScrollsToElementOnTheSamePage ( )
1693+ {
1694+ SetUrlViaPushState ( "/" ) ;
1695+ var app = Browser . MountTestComponent < TestRouter > ( ) ;
1696+ app . FindElement ( By . LinkText ( "Long page with hash" ) ) . Click ( ) ;
1697+
1698+ app . FindElement ( By . Id ( "navigate-test1-with-query" ) ) . Click ( ) ;
1699+
1700+ var currentWindowScrollY = BrowserScrollY ;
1701+ var test1VerticalLocation = app . FindElement ( By . Id ( "test1" ) ) . Location . Y ;
1702+ var currentRelativeUrl = _serverFixture . RootUri . MakeRelativeUri ( new Uri ( Browser . Url ) ) . ToString ( ) ;
1703+ Assert . Equal ( "subdir/LongPageWithHash?color=green&number=123#test1" , currentRelativeUrl ) ;
1704+ Assert . Equal ( test1VerticalLocation , currentWindowScrollY ) ;
1705+ }
1706+
1707+ [ Fact ]
1708+ public void NavigationManagerNavigateToSameUrlWithParamAndHash_ScrollsToElementOnTheSamePage ( )
1709+ {
1710+ SetUrlViaPushState ( "/" ) ;
1711+ var app = Browser . MountTestComponent < TestRouter > ( ) ;
1712+ app . FindElement ( By . LinkText ( "Long page with hash" ) ) . Click ( ) ;
1713+
1714+ app . FindElement ( By . Id ( "navigate-test1-with-param" ) ) . Click ( ) ;
1715+
1716+ var currentWindowScrollY = BrowserScrollY ;
1717+ var test1VerticalLocation = app . FindElement ( By . Id ( "test1" ) ) . Location . Y ;
1718+ var currentRelativeUrl = _serverFixture . RootUri . MakeRelativeUri ( new Uri ( Browser . Url ) ) . ToString ( ) ;
1719+ Assert . Equal ( "subdir/LongPageWithHash/22#test1" , currentRelativeUrl ) ;
1720+ Assert . Equal ( test1VerticalLocation , currentWindowScrollY ) ;
1721+ }
1722+
1723+ [ Fact ]
1724+ public void NavigationManagerNavigateToSameUrlWithParamQueryAndHash_ScrollsToElementOnTheSamePage ( )
1725+ {
1726+ SetUrlViaPushState ( "/" ) ;
1727+ var app = Browser . MountTestComponent < TestRouter > ( ) ;
1728+ app . FindElement ( By . LinkText ( "Long page with hash" ) ) . Click ( ) ;
1729+
1730+ app . FindElement ( By . Id ( "navigate-test1-with-param-and-query" ) ) . Click ( ) ;
1731+
1732+ var currentWindowScrollY = BrowserScrollY ;
1733+ var test1VerticalLocation = app . FindElement ( By . Id ( "test1" ) ) . Location . Y ;
1734+ var currentRelativeUrl = _serverFixture . RootUri . MakeRelativeUri ( new Uri ( Browser . Url ) ) . ToString ( ) ;
1735+ Assert . Equal ( "subdir/LongPageWithHash/22?color=green&number=123#test1" , currentRelativeUrl ) ;
1736+ Assert . Equal ( test1VerticalLocation , currentWindowScrollY ) ;
1737+ }
1738+
16431739 private long BrowserScrollY
16441740 {
16451741 get => Convert . ToInt64 ( ( ( IJavaScriptExecutor ) Browser ) . ExecuteScript ( "return window.scrollY" ) , CultureInfo . CurrentCulture ) ;
0 commit comments