@@ -1590,6 +1590,54 @@ public void AnchorWithHrefContainingHashSamePage_ScrollsToElementOnTheSamePage()
1590
1590
Assert . Equal ( test1VerticalLocation , currentWindowScrollY ) ;
1591
1591
}
1592
1592
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
+
1593
1641
[ Fact ]
1594
1642
[ QuarantinedTest ( "https://github.com/dotnet/aspnetcore/issues/47967" ) ]
1595
1643
public void AnchorWithHrefContainingHashAnotherPage_NavigatesToPageAndScrollsToElement ( )
@@ -1609,7 +1657,7 @@ public void AnchorWithHrefContainingHashAnotherPage_NavigatesToPageAndScrollsToE
1609
1657
1610
1658
[ Fact ]
1611
1659
[ QuarantinedTest ( "https://github.com/dotnet/aspnetcore/issues/47967" ) ]
1612
- public void NavigationManagerNavigateToSameUrlWithHash_ScrollsToElementOnTheSamePage ( )
1660
+ public void NavigationManagerNavigateToAnotherUrlWithHash_NavigatesToPageAndScrollsToElement ( )
1613
1661
{
1614
1662
SetUrlViaPushState ( "/" ) ;
1615
1663
var app = Browser . MountTestComponent < TestRouter > ( ) ;
@@ -1625,7 +1673,7 @@ public void NavigationManagerNavigateToSameUrlWithHash_ScrollsToElementOnTheSame
1625
1673
}
1626
1674
1627
1675
[ Fact ]
1628
- public void NavigationManagerNavigateToAnotherUrlWithHash_NavigatesToPageAndScrollsToElement ( )
1676
+ public void NavigationManagerNavigateToSameUrlWithHash_ScrollsToElementOnTheSamePage ( )
1629
1677
{
1630
1678
SetUrlViaPushState ( "/" ) ;
1631
1679
var app = Browser . MountTestComponent < TestRouter > ( ) ;
@@ -1640,6 +1688,54 @@ public void NavigationManagerNavigateToAnotherUrlWithHash_NavigatesToPageAndScro
1640
1688
Assert . Equal ( test1VerticalLocation , currentWindowScrollY ) ;
1641
1689
}
1642
1690
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
+
1643
1739
private long BrowserScrollY
1644
1740
{
1645
1741
get => Convert . ToInt64 ( ( ( IJavaScriptExecutor ) Browser ) . ExecuteScript ( "return window.scrollY" ) , CultureInfo . CurrentCulture ) ;
0 commit comments