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

Unified Diff: ui/views/widget/native_widget_mac_unittest.mm

Issue 2148893003: MacViews: Fixed CHECK in |-updateTooltipIfRequiredAt:|. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 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
« no previous file with comments | « ui/views/cocoa/bridged_content_view.mm ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/views/widget/native_widget_mac_unittest.mm
diff --git a/ui/views/widget/native_widget_mac_unittest.mm b/ui/views/widget/native_widget_mac_unittest.mm
index c8124a9dec482194166e6a57ab2f116dadb543f5..0386462ee32cee9fe7034eb86a90f15c7055bf13 100644
--- a/ui/views/widget/native_widget_mac_unittest.mm
+++ b/ui/views/widget/native_widget_mac_unittest.mm
@@ -260,6 +260,27 @@ class SimpleBubbleView : public BubbleDialogDelegateView {
DISALLOW_COPY_AND_ASSIGN(SimpleBubbleView);
};
+class CustomTooltipView : public View {
+ public:
+ CustomTooltipView(const base::string16& tooltip, views::View* tooltip_handler)
tapted 2016/07/15 06:23:44 nit: remove `views::`
kirr 2016/07/15 07:36:09 Done.
+ : tooltip_(tooltip), tooltip_handler_(tooltip_handler) {}
+
+ // Overridden from View:
tapted 2016/07/15 06:23:44 nit: just, // View:
kirr 2016/07/15 07:36:08 Done.
+ bool GetTooltipText(const gfx::Point& p,
+ base::string16* tooltip) const override {
+ *tooltip = tooltip_;
+ return true;
+ }
+
+ View* GetTooltipHandlerForPoint(const gfx::Point& point) override {
+ return tooltip_handler_ ? tooltip_handler_ : this;
+ }
+
+ private:
+ base::string16 tooltip_;
+ View* tooltip_handler_; // weak
tapted 2016/07/15 06:23:44 nit: // Weak.
kirr 2016/07/15 07:36:09 Done.
+};
tapted 2016/07/15 06:23:44 nit: DISALLOW_COPY_AND_ASSIGN(CustomTooltipView);
kirr 2016/07/15 07:36:09 Done.
+
// Test visibility states triggered externally.
TEST_F(NativeWidgetMacTest, HideAndShowExternally) {
Widget* widget = CreateTopLevelPlatformWidget();
@@ -809,6 +830,43 @@ TEST_F(NativeWidgetMacTest, Tooltips) {
widget->CloseNow();
}
+// Tests case when mouse events handles in one widget,
tapted 2016/07/15 06:23:44 nit: handles->are handled, widget->Widget (also t
kirr 2016/07/15 07:36:08 Done.
+// but tooltip belongs to another.
+// It happens in menu widgets, when submenu is shown above parent
tapted 2016/07/15 06:23:44 nit: It happens in menus when a submenu is shown a
kirr 2016/07/15 07:36:09 Done.
+// and parent get MouseExit event.
+TEST_F(NativeWidgetMacTest, TwoWidgetTooltips) {
+ // Init two widgets, one above another.
+ Widget* widget_below = CreateTopLevelPlatformWidget();
+ widget_below->SetBounds(gfx::Rect(50, 50, 200, 200));
+
+ Widget* widget_above =
+ CreateChildPlatformWidget(widget_below->GetNativeView());
+ widget_above->SetBounds(gfx::Rect(100, 0, 100, 200));
+
+ const base::string16 tooltip_above = base::ASCIIToUTF16("Front");
+ CustomTooltipView* view_above = new CustomTooltipView(tooltip_above, nullptr);
+ view_above->SetBoundsRect(widget_above->GetContentsView()->bounds());
+ widget_above->GetContentsView()->AddChildView(view_above);
+
+ CustomTooltipView* view_below =
+ new CustomTooltipView(base::ASCIIToUTF16("Back"), view_above);
+ view_below->SetBoundsRect(widget_below->GetContentsView()->bounds());
+ widget_below->GetContentsView()->AddChildView(view_below);
+
+ widget_below->Show();
+ widget_above->Show();
+
+ // Move mouse above second widget and check that it returns tooltip
+ // for second. Despite that event was handled in the first one.
+ ui::test::EventGenerator event_generator(GetContext(),
+ widget_below->GetNativeWindow());
+ event_generator.MoveMouseTo(gfx::Point(120, 60));
+ EXPECT_EQ(tooltip_above, TooltipTextForWidget(widget_below));
+
+ widget_above->CloseNow();
+ widget_below->CloseNow();
+}
+
namespace {
// Delegate to make Widgets of a provided ui::ModalType.
« no previous file with comments | « ui/views/cocoa/bridged_content_view.mm ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698