| Index: chrome/browser/ui/views/constrained_window_views_browsertest.cc
|
| diff --git a/chrome/browser/ui/views/constrained_window_views_browsertest.cc b/chrome/browser/ui/views/constrained_window_views_browsertest.cc
|
| index b842745b5914734ad94eba229f87be018a43124c..efdf105265948db499e9773d5777336393a3268d 100644
|
| --- a/chrome/browser/ui/views/constrained_window_views_browsertest.cc
|
| +++ b/chrome/browser/ui/views/constrained_window_views_browsertest.cc
|
| @@ -168,6 +168,53 @@ IN_PROC_BROWSER_TEST_F(ConstrainedWindowViewTest, TabMoveTest) {
|
| EXPECT_EQ(NULL, dialog->GetWidget());
|
| }
|
|
|
| +// Tests that the web contents navigates when backspace is pressed.
|
| +IN_PROC_BROWSER_TEST_F(ConstrainedWindowViewTest, NavigationOnBackspace) {
|
| + content::WebContents* web_contents =
|
| + browser()->tab_strip_model()->GetActiveWebContents();
|
| + content::WaitForLoadStop(web_contents);
|
| + const GURL original_url = web_contents->GetURL();
|
| + EXPECT_NE(GURL(chrome::kChromeUIVersionURL), original_url);
|
| + ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIVersionURL));
|
| + content::WaitForLoadStop(web_contents);
|
| + EXPECT_EQ(GURL(chrome::kChromeUIVersionURL), web_contents->GetURL());
|
| +
|
| + std::unique_ptr<TestDialog> dialog = ShowModalDialog(web_contents);
|
| +
|
| + views::Widget* widget = dialog->GetWidget();
|
| +
|
| + EXPECT_TRUE(widget->IsVisible());
|
| + EXPECT_EQ(dialog->GetContentsView(),
|
| + widget->GetFocusManager()->GetFocusedView());
|
| +
|
| + // Pressing backspace should not navigate back and close the dialog
|
| + // with the Finch flag disabled.
|
| + EXPECT_TRUE(chrome::CanGoBack(browser()));
|
| + EXPECT_TRUE(ui_test_utils::SendKeyPressSync(browser(), ui::VKEY_BACK,
|
| + false, false, false, false));
|
| + content::RunAllPendingInMessageLoop();
|
| + content::WaitForLoadStop(web_contents);
|
| +
|
| + EXPECT_EQ(widget, dialog->GetWidget());
|
| + EXPECT_EQ(GURL(chrome::kChromeUIVersionURL), web_contents->GetURL());
|
| +
|
| + // Pressing backspace should navigate back and close the dialog with the
|
| + // Finch flag enabled.
|
| + base::FeatureList::ClearInstanceForTesting();
|
| + std::unique_ptr<base::FeatureList> feature_list(new base::FeatureList);
|
| + feature_list->InitializeFromCommandLine("BackspaceGoesBack", std::string());
|
| + base::FeatureList::SetInstance(std::move(feature_list));
|
| +
|
| + EXPECT_TRUE(chrome::CanGoBack(browser()));
|
| + EXPECT_TRUE(ui_test_utils::SendKeyPressSync(browser(), ui::VKEY_BACK,
|
| + false, false, false, false));
|
| + content::RunAllPendingInMessageLoop();
|
| + content::WaitForLoadStop(web_contents);
|
| +
|
| + EXPECT_EQ(nullptr, dialog->GetWidget());
|
| + EXPECT_EQ(original_url, web_contents->GetURL());
|
| +}
|
| +
|
| // Tests that the dialog closes when the escape key is pressed.
|
| IN_PROC_BROWSER_TEST_F(ConstrainedWindowViewTest, ClosesOnEscape) {
|
| #if defined(OS_WIN)
|
|
|