Commit 62972354 authored by Olesia Marukhno's avatar Olesia Marukhno Committed by Commit Bot

Update permission prompt tests for chip UI

Also move all permission dialog browser tests to separate file.

Bug: 1148277
Change-Id: I69006766d26d8193f883df2671427cc0eecc2bd0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2534855
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@{#827754}
parent 85e33f87
......@@ -59,6 +59,10 @@ class PermissionChip : public views::View,
// BubbleOwnerDelegate:
bool IsBubbleShowing() const override;
PermissionPromptBubbleView* prompt_bubble_for_testing() {
return prompt_bubble_;
}
private:
void ChipButtonPressed();
void Collapse();
......
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "base/run_loop.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_window.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/browser/ui/test/test_browser_dialog.h"
#include "chrome/browser/ui/ui_features.h"
#include "chrome/browser/ui/views/frame/browser_view.h"
#include "chrome/browser/ui/views/location_bar/location_bar_view.h"
#include "chrome/browser/ui/views/location_bar/permission_chip.h"
#include "chrome/browser/ui/views/toolbar/toolbar_view.h"
#include "chrome/test/permissions/permission_request_manager_test_api.h"
#include "components/permissions/features.h"
#include "content/public/browser/web_contents.h"
#include "content/public/test/browser_test.h"
#include "ui/events/base_event_utils.h"
#include "ui/views/test/button_test_api.h"
class PermissionChipPromptBrowserTest : public DialogBrowserTest {
public:
PermissionChipPromptBrowserTest() {
feature_list_.InitAndEnableFeature(permissions::features::kPermissionChip);
}
PermissionChipPromptBrowserTest(const PermissionChipPromptBrowserTest&) =
delete;
PermissionChipPromptBrowserTest& operator=(
const PermissionChipPromptBrowserTest&) = delete;
// DialogBrowserTest:
void ShowUi(const std::string& name) override {
std::unique_ptr<test::PermissionRequestManagerTestApi> test_api_ =
std::make_unique<test::PermissionRequestManagerTestApi>(browser());
EXPECT_TRUE(test_api_->manager());
test_api_->AddSimpleRequest(GetActiveMainFrame(),
ContentSettingsType::GEOLOCATION);
base::RunLoop().RunUntilIdle();
BrowserView* browser_view =
BrowserView::GetBrowserViewForBrowser(browser());
PermissionChip* permission_chip =
browser_view->toolbar()->location_bar()->permission_chip();
ASSERT_TRUE(permission_chip);
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));
}
content::RenderFrameHost* GetActiveMainFrame() {
return browser()->tab_strip_model()->GetActiveWebContents()->GetMainFrame();
}
private:
base::test::ScopedFeatureList feature_list_;
};
IN_PROC_BROWSER_TEST_F(PermissionChipPromptBrowserTest, InvokeUi_geolocation) {
ShowAndVerifyUi();
}
......@@ -36,7 +36,10 @@ class PermissionPromptImpl : public permissions::PermissionPrompt,
const override;
PermissionPromptBubbleView* prompt_bubble_for_testing() {
return prompt_bubble_;
if (prompt_bubble_)
return prompt_bubble_;
return permission_chip_ ? permission_chip_->prompt_bubble_for_testing()
: nullptr;
}
// views::WidgetObserver:
......
......@@ -2223,7 +2223,6 @@ if (!is_android) {
"../browser/ui/views/location_bar/location_bar_view_browsertest.cc",
"../browser/ui/views/location_bar/location_icon_view_browsertest.cc",
"../browser/ui/views/location_bar/permission_chip_browsertest.cc",
"../browser/ui/views/location_bar/permission_chip_prompt_browsertest.cc",
"../browser/ui/views/location_bar/zoom_bubble_view_browsertest.cc",
"../browser/ui/views/media_router/cast_dialog_view_browsertest.cc",
"../browser/ui/views/media_router/media_router_dialog_controller_views_browsertest.cc",
......
......@@ -171,6 +171,8 @@ class PermissionRequestManager
view_factory_ = std::move(view_factory);
}
PermissionPrompt* view_for_testing() { return view_.get(); }
private:
friend class test::PermissionRequestManagerTestApi;
friend class content::WebContentsUserData<PermissionRequestManager>;
......
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