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

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

Issue 2086193002: [Extensions UI] Fix a crash when clicking on a bubble's learn more (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix Views clicking 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 83cd862987e79bd56c54eea5c9db314031de0373..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 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);
};
@@ -123,6 +145,23 @@ void ExtensionMessageBubbleBrowserTestMac::CheckBubbleIsNotPresentNative(
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();
@@ -162,3 +201,18 @@ 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