Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7742)

Unified Diff: chrome/browser/ui/cocoa/extensions/extension_message_bubble_browsertest_mac.mm

Issue 2105393002: [Extensions UI] Handle multiple warning bubbles racing to show (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@2743
Patch Set: Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/cocoa/extensions/extension_message_bubble_browsertest_mac.mm
diff --git a/chrome/browser/ui/cocoa/extensions/extension_message_bubble_browsertest_mac.mm b/chrome/browser/ui/cocoa/extensions/extension_message_bubble_browsertest_mac.mm
index e7dd1a813be14848bf3cae7baa4d26a3422f0755..67dd76c65efa733a46185fcb348e4aec8c650172 100644
--- a/chrome/browser/ui/cocoa/extensions/extension_message_bubble_browsertest_mac.mm
+++ b/chrome/browser/ui/cocoa/extensions/extension_message_bubble_browsertest_mac.mm
@@ -8,9 +8,11 @@
#import "chrome/browser/ui/cocoa/extensions/browser_action_button.h"
#import "chrome/browser/ui/cocoa/extensions/browser_actions_controller.h"
#import "chrome/browser/ui/cocoa/extensions/toolbar_actions_bar_bubble_mac.h"
+#import "chrome/browser/ui/cocoa/run_loop_testing.h"
#import "chrome/browser/ui/cocoa/toolbar/toolbar_controller.h"
#include "chrome/browser/ui/extensions/extension_message_bubble_browsertest.h"
#include "ui/base/cocoa/cocoa_base_utils.h"
+#include "ui/events/test/cocoa_test_event_utils.h"
namespace {
@@ -20,6 +22,22 @@ ToolbarController* ToolbarControllerForBrowser(Browser* browser) {
browser->window()->GetNativeWindow()] toolbarController];
}
+ToolbarActionsBarBubbleMac* GetBubbleForBrowser(Browser* browser) {
+ ToolbarController* toolbarController = ToolbarControllerForBrowser(browser);
+ BrowserActionsController* actionsController =
+ [toolbarController browserActionsController];
+ return [actionsController activeBubble];
+}
+
+void ClickInView(NSView* view) {
+ ASSERT_TRUE(view);
+ std::pair<NSEvent*, NSEvent*> events =
+ cocoa_test_event_utils::MouseClickInView(view, 1);
+ [NSApp postEvent:events.second atStart:YES];
+ [NSApp sendEvent:events.first];
+ chrome::testing::NSRunLoopRunAllPending();
+}
+
// Checks that the |bubble| is using the |expectedReferenceView|, and is in
// approximately the correct position.
void CheckBubbleAndReferenceView(ToolbarActionsBarBubbleMac* bubble,
@@ -73,10 +91,14 @@ class ExtensionMessageBubbleBrowserTestMac
~ExtensionMessageBubbleBrowserTestMac() override {}
private:
+ // ExtensionMessageBubbleBrowserTest:
void SetUpCommandLine(base::CommandLine* command_line) override;
- void CheckBubble(Browser* browser, AnchorPosition anchor) override;
- void CloseBubble(Browser* browser) override;
- void CheckBubbleIsNotPresent(Browser* browser) override;
+ void CheckBubbleNative(Browser* browser, AnchorPosition anchor) override;
+ void CloseBubbleNative(Browser* browser) override;
+ void CheckBubbleIsNotPresentNative(Browser* browser) override;
+ void ClickLearnMoreButton(Browser* browser) override;
+ void ClickActionButton(Browser* browser) override;
+ void ClickDismissButton(Browser* browser) override;
DISALLOW_COPY_AND_ASSIGN(ExtensionMessageBubbleBrowserTestMac);
};
@@ -87,7 +109,7 @@ void ExtensionMessageBubbleBrowserTestMac::SetUpCommandLine(
[ToolbarActionsBarBubbleMac setAnimationEnabledForTesting:NO];
}
-void ExtensionMessageBubbleBrowserTestMac::CheckBubble(
+void ExtensionMessageBubbleBrowserTestMac::CheckBubbleNative(
Browser* browser,
AnchorPosition anchor) {
ToolbarController* toolbarController = ToolbarControllerForBrowser(browser);
@@ -106,7 +128,7 @@ void ExtensionMessageBubbleBrowserTestMac::CheckBubble(
CheckBubbleAndReferenceView(bubble, anchorView);
}
-void ExtensionMessageBubbleBrowserTestMac::CloseBubble(Browser* browser) {
+void ExtensionMessageBubbleBrowserTestMac::CloseBubbleNative(Browser* browser) {
BrowserActionsController* controller =
[ToolbarControllerForBrowser(browser) browserActionsController];
ToolbarActionsBarBubbleMac* bubble = [controller activeBubble];
@@ -115,7 +137,7 @@ void ExtensionMessageBubbleBrowserTestMac::CloseBubble(Browser* browser) {
EXPECT_EQ(nil, [controller activeBubble]);
}
-void ExtensionMessageBubbleBrowserTestMac::CheckBubbleIsNotPresent(
+void ExtensionMessageBubbleBrowserTestMac::CheckBubbleIsNotPresentNative(
Browser* browser) {
EXPECT_EQ(
nil,
@@ -123,6 +145,23 @@ void ExtensionMessageBubbleBrowserTestMac::CheckBubbleIsNotPresent(
activeBubble]);
}
+void ExtensionMessageBubbleBrowserTestMac::ClickLearnMoreButton(
+ Browser* browser) {
+ ToolbarActionsBarBubbleMac* bubble = GetBubbleForBrowser(browser);
+ ClickInView([bubble learnMoreButton]);
+}
+
+void ExtensionMessageBubbleBrowserTestMac::ClickActionButton(Browser* browser) {
+ ToolbarActionsBarBubbleMac* bubble = GetBubbleForBrowser(browser);
+ ClickInView([bubble actionButton]);
+}
+
+void ExtensionMessageBubbleBrowserTestMac::ClickDismissButton(
+ Browser* browser) {
+ ToolbarActionsBarBubbleMac* bubble = GetBubbleForBrowser(browser);
+ ClickInView([bubble dismissButton]);
+}
+
IN_PROC_BROWSER_TEST_F(ExtensionMessageBubbleBrowserTestMac,
ExtensionBubbleAnchoredToExtensionAction) {
TestBubbleAnchoredToExtensionAction();
@@ -157,3 +196,23 @@ IN_PROC_BROWSER_TEST_F(ExtensionMessageBubbleBrowserTestMac,
TestDevModeBubbleIsntShownTwice) {
TestDevModeBubbleIsntShownTwice();
}
+
+IN_PROC_BROWSER_TEST_F(ExtensionMessageBubbleBrowserTestMac,
+ TestBubbleWithMultipleWindows) {
+ TestBubbleWithMultipleWindows();
+}
+
+IN_PROC_BROWSER_TEST_F(ExtensionMessageBubbleBrowserTestMac,
+ TestClickingLearnMoreButton) {
+ TestClickingLearnMoreButton();
+}
+
+IN_PROC_BROWSER_TEST_F(ExtensionMessageBubbleBrowserTestMac,
+ TestClickingActionButton) {
+ TestClickingActionButton();
+}
+
+IN_PROC_BROWSER_TEST_F(ExtensionMessageBubbleBrowserTestMac,
+ TestClickingDismissButton) {
+ TestClickingDismissButton();
+}

Powered by Google App Engine
This is Rietveld 408576698