Commit 2ab6b762 authored by Olesia Marukhno's avatar Olesia Marukhno Committed by Commit Bot

Fix browser tests for chip UI

Fix browser and interactive ui tests when permission requests use chip
UI.

Bug: 1148277
Change-Id: I4f50a2aa32f7ad8f1f8ead3873a87cee20f9b80a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2539201
Commit-Queue: Olesia Marukhno <olesiamarukhno@google.com>
Reviewed-by: default avatarBalazs Engedy <engedy@chromium.org>
Reviewed-by: default avatarBret Sepulveda <bsep@chromium.org>
Cr-Commit-Position: refs/heads/master@{#828723}
parent 0451aef2
......@@ -756,8 +756,13 @@ IN_PROC_BROWSER_TEST_F(PermissionRequestManagerBrowserTest,
GetPermissionRequestManager()->Closing();
base::RunLoop().RunUntilIdle();
EXPECT_TRUE(request1.finished());
EXPECT_FALSE(request2.finished());
if (base::FeatureList::IsEnabled(permissions::features::kPermissionChip)) {
EXPECT_FALSE(request1.finished());
EXPECT_TRUE(request2.finished());
} else {
EXPECT_TRUE(request1.finished());
EXPECT_FALSE(request2.finished());
}
EXPECT_EQ(1u, GetPermissionRequestManager()->Requests().size());
// Close second request. No more requests pending
......
......@@ -30,7 +30,9 @@
#include "content/public/test/content_mock_cert_verifier.h"
#include "net/cert/mock_cert_verifier.h"
#include "ui/aura/client/aura_constants.h"
#include "ui/events/base_event_utils.h"
#include "ui/views/animation/test/ink_drop_host_view_test_api.h"
#include "ui/views/test/button_test_api.h"
#include "ui/views/window/frame_caption_button.h"
class ImmersiveModeControllerChromeosWebAppBrowserTest
......@@ -355,9 +357,23 @@ IN_PROC_BROWSER_TEST_F(ImmersiveModeControllerChromeosWebAppBrowserTest,
// The permission prompt is shown asynchronously. Without immersive mode
// enabled the anchor should exist.
base::RunLoop().RunUntilIdle();
views::Widget* prompt_window = test_api->GetPromptWindow();
// If the permission request is displayed using the chip UI, simulate a click
// on the chip to trigger showing the prompt.
BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser());
PermissionChip* permission_chip =
browser_view->toolbar()->location_bar()->permission_chip();
if (permission_chip->GetVisible()) {
views::test::ButtonTestApi(permission_chip->button())
.NotifyClick(ui::MouseEvent(ui::ET_MOUSE_PRESSED, gfx::Point(),
gfx::Point(), ui::EventTimeForNow(),
ui::EF_LEFT_MOUSE_BUTTON, 0));
base::RunLoop().RunUntilIdle();
}
views::Widget* prompt_widget = test_api->GetPromptWindow();
views::BubbleDialogDelegate* bubble_dialog =
prompt_window->AsWidget()->widget_delegate()->AsBubbleDialogDelegate();
prompt_widget->widget_delegate()->AsBubbleDialogDelegate();
ASSERT_TRUE(bubble_dialog);
EXPECT_TRUE(bubble_dialog->GetAnchorView());
......
......@@ -10,6 +10,9 @@
#include "chrome/browser/ui/browser_commands.h"
#include "chrome/browser/ui/browser_window.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/browser/ui/views/frame/browser_view.h"
#include "chrome/browser/ui/views/location_bar/permission_chip.h"
#include "chrome/browser/ui/views/toolbar/toolbar_view.h"
#include "chrome/test/base/in_process_browser_test.h"
#include "chrome/test/base/interactive_test_utils.h"
#include "chrome/test/base/ui_test_utils.h"
......@@ -17,6 +20,8 @@
#include "content/public/browser/web_contents.h"
#include "content/public/test/browser_test.h"
#include "ui/base/test/ui_controls.h"
#include "ui/events/base_event_utils.h"
#include "ui/views/test/button_test_api.h"
#include "ui/views/test/widget_test.h"
class PermissionBubbleInteractiveUITest : public InProcessBrowserTest {
......@@ -72,6 +77,8 @@ class PermissionBubbleInteractiveUITest : public InProcessBrowserTest {
// The permission prompt is shown asynchronously.
base::RunLoop().RunUntilIdle();
OpenBubbleIfChipUiIsShown();
EnsureWindowActive(test_api_->GetPromptWindow(), "show permission bubble");
}
......@@ -91,6 +98,22 @@ class PermissionBubbleInteractiveUITest : public InProcessBrowserTest {
#endif
}
void OpenBubbleIfChipUiIsShown() {
// If the permission request is displayed using the chip UI, simulate a
// click on the chip to trigger showing the prompt.
BrowserView* browser_view =
BrowserView::GetBrowserViewForBrowser(browser());
PermissionChip* permission_chip =
browser_view->toolbar()->location_bar()->permission_chip();
if (permission_chip->GetVisible()) {
views::test::ButtonTestApi(permission_chip->button())
.NotifyClick(ui::MouseEvent(ui::ET_MOUSE_PRESSED, gfx::Point(),
gfx::Point(), ui::EventTimeForNow(),
ui::EF_LEFT_MOUSE_BUTTON, 0));
base::RunLoop().RunUntilIdle();
}
}
void TestSwitchingTabsWithCurlyBraces() {
// Also test switching tabs with curly braces. "VKEY_OEM_4" is
// LeftBracket/Brace on a US keyboard, which ui::MacKeyCodeForWindowsKeyCode
......@@ -99,6 +122,7 @@ class PermissionBubbleInteractiveUITest : public InProcessBrowserTest {
chrome::FocusLocationBar(browser());
SendAcceleratorSync(ui::VKEY_OEM_4, true, false);
EXPECT_EQ(0, browser()->tab_strip_model()->active_index());
OpenBubbleIfChipUiIsShown();
EnsureWindowActive(test_api_->GetPromptWindow(),
"switch to permission tab with curly brace");
EXPECT_TRUE(test_api_->GetPromptWindow());
......@@ -165,6 +189,8 @@ IN_PROC_BROWSER_TEST_F(PermissionBubbleInteractiveUITest, SwitchTabs) {
JumpToPreviousOpenTab();
EXPECT_EQ(0, browser()->tab_strip_model()->active_index());
OpenBubbleIfChipUiIsShown();
// Note we don't need to makeKeyAndOrderFront for mac os: the permission
// window will take focus when it is shown again.
EnsureWindowActive(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment