diff options
Diffstat (limited to 'chromium/content/browser/text_fragment_browsertest.cc')
-rw-r--r-- | chromium/content/browser/text_fragment_browsertest.cc | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/chromium/content/browser/text_fragment_browsertest.cc b/chromium/content/browser/text_fragment_browsertest.cc index 2c6e0d5fdca..86c392b8733 100644 --- a/chromium/content/browser/text_fragment_browsertest.cc +++ b/chromium/content/browser/text_fragment_browsertest.cc @@ -431,6 +431,21 @@ IN_PROC_BROWSER_TEST_F(ForceLoadAtTopBrowserTest, FragmentAnchorDisabled) { EXPECT_TRUE(main_contents->GetMainFrame()->GetView()->IsScrollOffsetAtTop()); } +IN_PROC_BROWSER_TEST_F(ForceLoadAtTopBrowserTest, SameDocumentNavigation) { + GURL url( + embedded_test_server()->GetURL("/scrollable_page_with_content.html")); + WebContents* main_contents = shell()->web_contents(); + + EXPECT_TRUE(NavigateToURL(shell(), url)); + EXPECT_TRUE(WaitForRenderFrameReady(main_contents->GetMainFrame())); + EXPECT_TRUE(main_contents->GetMainFrame()->GetView()->IsScrollOffsetAtTop()); + + ClickElementWithId(main_contents, "link"); + + RunUntilInputProcessed(GetWidgetHost()); + EXPECT_FALSE(main_contents->GetMainFrame()->GetView()->IsScrollOffsetAtTop()); +} + IN_PROC_BROWSER_TEST_F(ForceLoadAtTopBrowserTest, TextFragmentAnchorDisabled) { GURL url(embedded_test_server()->GetURL( "/scrollable_page_with_content.html#:~:text=text")); @@ -450,4 +465,26 @@ IN_PROC_BROWSER_TEST_F(ForceLoadAtTopBrowserTest, TextFragmentAnchorDisabled) { EXPECT_TRUE(main_contents->GetMainFrame()->GetView()->IsScrollOffsetAtTop()); } +// Test that Tab key press puts focus from the start of selection. +IN_PROC_BROWSER_TEST_F(TextFragmentAnchorBrowserTest, TabFocus) { + ASSERT_TRUE(embedded_test_server()->Start()); + GURL url(embedded_test_server()->GetURL( + "/scrollable_page_with_anchor.html#:~:text=text")); + WebContents* main_contents = shell()->web_contents(); + RenderFrameSubmissionObserver frame_observer(main_contents); + EXPECT_TRUE(NavigateToURL(shell(), url)); + WaitForPageLoad(main_contents); + frame_observer.WaitForScrollOffsetAtTop( + /*expected_scroll_offset_at_top=*/false); + + DOMMessageQueue msg_queue; + SimulateKeyPress(main_contents, ui::DomKey::TAB, ui::DomCode::TAB, + ui::VKEY_TAB, false, false, false, false); + + // Wait for focus to happen. + std::string message; + EXPECT_TRUE(msg_queue.WaitForMessage(&message)); + EXPECT_EQ("\"FocusDone2\"", message); +} + } // namespace content |