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

Side by Side Diff: chrome/browser/ui/views/toolbar/toolbar_actions_bar_bubble_views_unittest.cc

Issue 1865213004: Convert //chrome/browser/ui from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 8 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/run_loop.h" 5 #include "base/run_loop.h"
6 #include "base/strings/utf_string_conversions.h" 6 #include "base/strings/utf_string_conversions.h"
7 #include "chrome/browser/ui/toolbar/test_toolbar_actions_bar_bubble_delegate.h" 7 #include "chrome/browser/ui/toolbar/test_toolbar_actions_bar_bubble_delegate.h"
8 #include "chrome/browser/ui/views/toolbar/toolbar_actions_bar_bubble_views.h" 8 #include "chrome/browser/ui/views/toolbar/toolbar_actions_bar_bubble_views.h"
9 #include "ui/events/event_utils.h" 9 #include "ui/events/event_utils.h"
10 #include "ui/events/test/event_generator.h" 10 #include "ui/events/test/event_generator.h"
11 #include "ui/views/bubble/bubble_delegate.h" 11 #include "ui/views/bubble/bubble_delegate.h"
12 #include "ui/views/controls/button/label_button.h" 12 #include "ui/views/controls/button/label_button.h"
13 #include "ui/views/test/test_widget_observer.h" 13 #include "ui/views/test/test_widget_observer.h"
14 #include "ui/views/test/views_test_base.h" 14 #include "ui/views/test/views_test_base.h"
15 #include "ui/views/widget/widget.h" 15 #include "ui/views/widget/widget.h"
16 16
17 namespace { 17 namespace {
18 18
19 gfx::Point GetCenterInScreenCoordinates(const views::View* view) { 19 gfx::Point GetCenterInScreenCoordinates(const views::View* view) {
20 gfx::Point center(view->width() / 2, view->height() / 2); 20 gfx::Point center(view->width() / 2, view->height() / 2);
21 views::View::ConvertPointToScreen(view, &center); 21 views::View::ConvertPointToScreen(view, &center);
22 return center; 22 return center;
23 } 23 }
24 24
25 } // namespace 25 } // namespace
26 26
27 class ToolbarActionsBarBubbleViewsTest : public views::ViewsTestBase { 27 class ToolbarActionsBarBubbleViewsTest : public views::ViewsTestBase {
28 protected: 28 protected:
29 scoped_ptr<views::Widget> CreateAnchorWidget() { 29 std::unique_ptr<views::Widget> CreateAnchorWidget() {
30 scoped_ptr<views::Widget> anchor_widget(new views::Widget()); 30 std::unique_ptr<views::Widget> anchor_widget(new views::Widget());
31 views::Widget::InitParams params = 31 views::Widget::InitParams params =
32 CreateParams(views::Widget::InitParams::TYPE_WINDOW); 32 CreateParams(views::Widget::InitParams::TYPE_WINDOW);
33 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; 33 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
34 anchor_widget->Init(params); 34 anchor_widget->Init(params);
35 return anchor_widget; 35 return anchor_widget;
36 } 36 }
37 37
38 base::string16 HeadingString() { return base::ASCIIToUTF16("Heading"); } 38 base::string16 HeadingString() { return base::ASCIIToUTF16("Heading"); }
39 base::string16 BodyString() { return base::ASCIIToUTF16("Body"); } 39 base::string16 BodyString() { return base::ASCIIToUTF16("Body"); }
40 base::string16 ActionString() { return base::ASCIIToUTF16("Action"); } 40 base::string16 ActionString() { return base::ASCIIToUTF16("Action"); }
41 base::string16 DismissString() { return base::ASCIIToUTF16("Dismiss"); } 41 base::string16 DismissString() { return base::ASCIIToUTF16("Dismiss"); }
42 }; 42 };
43 43
44 TEST_F(ToolbarActionsBarBubbleViewsTest, TestBubbleLayoutActionButton) { 44 TEST_F(ToolbarActionsBarBubbleViewsTest, TestBubbleLayoutActionButton) {
45 scoped_ptr<views::Widget> anchor_widget = CreateAnchorWidget(); 45 std::unique_ptr<views::Widget> anchor_widget = CreateAnchorWidget();
46 TestToolbarActionsBarBubbleDelegate delegate(HeadingString(), BodyString(), 46 TestToolbarActionsBarBubbleDelegate delegate(HeadingString(), BodyString(),
47 ActionString()); 47 ActionString());
48 ToolbarActionsBarBubbleViews* bubble = new ToolbarActionsBarBubbleViews( 48 ToolbarActionsBarBubbleViews* bubble = new ToolbarActionsBarBubbleViews(
49 anchor_widget->GetContentsView(), delegate.GetDelegate()); 49 anchor_widget->GetContentsView(), delegate.GetDelegate());
50 views::BubbleDelegateView::CreateBubble(bubble); 50 views::BubbleDelegateView::CreateBubble(bubble);
51 bubble->Show(); 51 bubble->Show();
52 52
53 EXPECT_TRUE(bubble->heading_label()); 53 EXPECT_TRUE(bubble->heading_label());
54 EXPECT_EQ(HeadingString(), bubble->heading_label()->text()); 54 EXPECT_EQ(HeadingString(), bubble->heading_label()->text());
55 EXPECT_TRUE(bubble->content_label()); 55 EXPECT_TRUE(bubble->content_label());
56 EXPECT_EQ(BodyString(), bubble->content_label()->text()); 56 EXPECT_EQ(BodyString(), bubble->content_label()->text());
57 EXPECT_TRUE(bubble->action_button()); 57 EXPECT_TRUE(bubble->action_button());
58 EXPECT_EQ(ActionString(), bubble->action_button()->GetText()); 58 EXPECT_EQ(ActionString(), bubble->action_button()->GetText());
59 EXPECT_FALSE(bubble->dismiss_button()); 59 EXPECT_FALSE(bubble->dismiss_button());
60 60
61 bubble->GetWidget()->Close(); 61 bubble->GetWidget()->Close();
62 base::RunLoop().RunUntilIdle(); 62 base::RunLoop().RunUntilIdle();
63 } 63 }
64 64
65 TEST_F(ToolbarActionsBarBubbleViewsTest, 65 TEST_F(ToolbarActionsBarBubbleViewsTest,
66 TestBubbleLayoutActionAndDismissButton) { 66 TestBubbleLayoutActionAndDismissButton) {
67 scoped_ptr<views::Widget> anchor_widget = CreateAnchorWidget(); 67 std::unique_ptr<views::Widget> anchor_widget = CreateAnchorWidget();
68 TestToolbarActionsBarBubbleDelegate delegate(HeadingString(), BodyString(), 68 TestToolbarActionsBarBubbleDelegate delegate(HeadingString(), BodyString(),
69 ActionString()); 69 ActionString());
70 delegate.set_dismiss_button_text(DismissString()); 70 delegate.set_dismiss_button_text(DismissString());
71 ToolbarActionsBarBubbleViews* bubble = new ToolbarActionsBarBubbleViews( 71 ToolbarActionsBarBubbleViews* bubble = new ToolbarActionsBarBubbleViews(
72 anchor_widget->GetContentsView(), delegate.GetDelegate()); 72 anchor_widget->GetContentsView(), delegate.GetDelegate());
73 views::BubbleDelegateView::CreateBubble(bubble); 73 views::BubbleDelegateView::CreateBubble(bubble);
74 bubble->Show(); 74 bubble->Show();
75 75
76 EXPECT_TRUE(bubble->heading_label()); 76 EXPECT_TRUE(bubble->heading_label());
77 EXPECT_EQ(HeadingString(), bubble->heading_label()->text()); 77 EXPECT_EQ(HeadingString(), bubble->heading_label()->text());
78 EXPECT_TRUE(bubble->content_label()); 78 EXPECT_TRUE(bubble->content_label());
79 EXPECT_EQ(BodyString(), bubble->content_label()->text()); 79 EXPECT_EQ(BodyString(), bubble->content_label()->text());
80 EXPECT_TRUE(bubble->action_button()); 80 EXPECT_TRUE(bubble->action_button());
81 EXPECT_EQ(ActionString(), bubble->action_button()->GetText()); 81 EXPECT_EQ(ActionString(), bubble->action_button()->GetText());
82 EXPECT_TRUE(bubble->dismiss_button()); 82 EXPECT_TRUE(bubble->dismiss_button());
83 EXPECT_EQ(DismissString(), bubble->dismiss_button()->GetText()); 83 EXPECT_EQ(DismissString(), bubble->dismiss_button()->GetText());
84 84
85 bubble->GetWidget()->Close(); 85 bubble->GetWidget()->Close();
86 base::RunLoop().RunUntilIdle(); 86 base::RunLoop().RunUntilIdle();
87 } 87 }
88 88
89 TEST_F(ToolbarActionsBarBubbleViewsTest, TestShowAndCloseBubble) { 89 TEST_F(ToolbarActionsBarBubbleViewsTest, TestShowAndCloseBubble) {
90 scoped_ptr<views::Widget> anchor_widget = CreateAnchorWidget(); 90 std::unique_ptr<views::Widget> anchor_widget = CreateAnchorWidget();
91 TestToolbarActionsBarBubbleDelegate delegate(HeadingString(), BodyString(), 91 TestToolbarActionsBarBubbleDelegate delegate(HeadingString(), BodyString(),
92 ActionString()); 92 ActionString());
93 delegate.set_dismiss_button_text(DismissString()); 93 delegate.set_dismiss_button_text(DismissString());
94 ToolbarActionsBarBubbleViews* bubble = new ToolbarActionsBarBubbleViews( 94 ToolbarActionsBarBubbleViews* bubble = new ToolbarActionsBarBubbleViews(
95 anchor_widget->GetContentsView(), delegate.GetDelegate()); 95 anchor_widget->GetContentsView(), delegate.GetDelegate());
96 96
97 EXPECT_FALSE(delegate.shown()); 97 EXPECT_FALSE(delegate.shown());
98 EXPECT_FALSE(delegate.close_action()); 98 EXPECT_FALSE(delegate.close_action());
99 views::Widget* bubble_widget = 99 views::Widget* bubble_widget =
100 views::BubbleDelegateView::CreateBubble(bubble); 100 views::BubbleDelegateView::CreateBubble(bubble);
101 views::test::TestWidgetObserver bubble_observer(bubble_widget); 101 views::test::TestWidgetObserver bubble_observer(bubble_widget);
102 bubble->Show(); 102 bubble->Show();
103 EXPECT_TRUE(delegate.shown()); 103 EXPECT_TRUE(delegate.shown());
104 EXPECT_FALSE(delegate.close_action()); 104 EXPECT_FALSE(delegate.close_action());
105 105
106 bubble_widget->Close(); 106 bubble_widget->Close();
107 base::RunLoop().RunUntilIdle(); 107 base::RunLoop().RunUntilIdle();
108 ASSERT_TRUE(delegate.close_action()); 108 ASSERT_TRUE(delegate.close_action());
109 EXPECT_EQ(ToolbarActionsBarBubbleDelegate::CLOSE_DISMISS_USER_ACTION, 109 EXPECT_EQ(ToolbarActionsBarBubbleDelegate::CLOSE_DISMISS_USER_ACTION,
110 *delegate.close_action()); 110 *delegate.close_action());
111 EXPECT_TRUE(bubble_observer.widget_closed()); 111 EXPECT_TRUE(bubble_observer.widget_closed());
112 } 112 }
113 113
114 TEST_F(ToolbarActionsBarBubbleViewsTest, TestClickActionButton) { 114 TEST_F(ToolbarActionsBarBubbleViewsTest, TestClickActionButton) {
115 scoped_ptr<views::Widget> anchor_widget = CreateAnchorWidget(); 115 std::unique_ptr<views::Widget> anchor_widget = CreateAnchorWidget();
116 TestToolbarActionsBarBubbleDelegate delegate(HeadingString(), BodyString(), 116 TestToolbarActionsBarBubbleDelegate delegate(HeadingString(), BodyString(),
117 ActionString()); 117 ActionString());
118 delegate.set_dismiss_button_text(DismissString()); 118 delegate.set_dismiss_button_text(DismissString());
119 ToolbarActionsBarBubbleViews* bubble = new ToolbarActionsBarBubbleViews( 119 ToolbarActionsBarBubbleViews* bubble = new ToolbarActionsBarBubbleViews(
120 anchor_widget->GetContentsView(), delegate.GetDelegate()); 120 anchor_widget->GetContentsView(), delegate.GetDelegate());
121 views::Widget* bubble_widget = 121 views::Widget* bubble_widget =
122 views::BubbleDelegateView::CreateBubble(bubble); 122 views::BubbleDelegateView::CreateBubble(bubble);
123 views::test::TestWidgetObserver bubble_observer(bubble_widget); 123 views::test::TestWidgetObserver bubble_observer(bubble_widget);
124 bubble->Show(); 124 bubble->Show();
125 125
126 EXPECT_FALSE(delegate.close_action()); 126 EXPECT_FALSE(delegate.close_action());
127 ui::test::EventGenerator generator(GetContext(), 127 ui::test::EventGenerator generator(GetContext(),
128 anchor_widget->GetNativeWindow()); 128 anchor_widget->GetNativeWindow());
129 generator.MoveMouseTo(GetCenterInScreenCoordinates(bubble->action_button())); 129 generator.MoveMouseTo(GetCenterInScreenCoordinates(bubble->action_button()));
130 generator.ClickLeftButton(); 130 generator.ClickLeftButton();
131 base::RunLoop().RunUntilIdle(); 131 base::RunLoop().RunUntilIdle();
132 ASSERT_TRUE(delegate.close_action()); 132 ASSERT_TRUE(delegate.close_action());
133 EXPECT_EQ(ToolbarActionsBarBubbleDelegate::CLOSE_EXECUTE, 133 EXPECT_EQ(ToolbarActionsBarBubbleDelegate::CLOSE_EXECUTE,
134 *delegate.close_action()); 134 *delegate.close_action());
135 EXPECT_TRUE(bubble_observer.widget_closed()); 135 EXPECT_TRUE(bubble_observer.widget_closed());
136 } 136 }
137 137
138 TEST_F(ToolbarActionsBarBubbleViewsTest, TestCloseOnDeactivation) { 138 TEST_F(ToolbarActionsBarBubbleViewsTest, TestCloseOnDeactivation) {
139 scoped_ptr<views::Widget> anchor_widget = CreateAnchorWidget(); 139 std::unique_ptr<views::Widget> anchor_widget = CreateAnchorWidget();
140 TestToolbarActionsBarBubbleDelegate delegate(HeadingString(), BodyString(), 140 TestToolbarActionsBarBubbleDelegate delegate(HeadingString(), BodyString(),
141 ActionString()); 141 ActionString());
142 delegate.set_dismiss_button_text(DismissString()); 142 delegate.set_dismiss_button_text(DismissString());
143 ToolbarActionsBarBubbleViews* bubble = new ToolbarActionsBarBubbleViews( 143 ToolbarActionsBarBubbleViews* bubble = new ToolbarActionsBarBubbleViews(
144 anchor_widget->GetContentsView(), delegate.GetDelegate()); 144 anchor_widget->GetContentsView(), delegate.GetDelegate());
145 views::Widget* bubble_widget = 145 views::Widget* bubble_widget =
146 views::BubbleDelegateView::CreateBubble(bubble); 146 views::BubbleDelegateView::CreateBubble(bubble);
147 views::test::TestWidgetObserver bubble_observer(bubble_widget); 147 views::test::TestWidgetObserver bubble_observer(bubble_widget);
148 bubble->Show(); 148 bubble->Show();
149 149
150 EXPECT_FALSE(delegate.close_action()); 150 EXPECT_FALSE(delegate.close_action());
151 // Close the bubble by activating another widget. The delegate should be 151 // Close the bubble by activating another widget. The delegate should be
152 // told it was dismissed. 152 // told it was dismissed.
153 anchor_widget->Activate(); 153 anchor_widget->Activate();
154 base::RunLoop().RunUntilIdle(); 154 base::RunLoop().RunUntilIdle();
155 ASSERT_TRUE(delegate.close_action()); 155 ASSERT_TRUE(delegate.close_action());
156 EXPECT_EQ(ToolbarActionsBarBubbleDelegate::CLOSE_DISMISS_DEACTIVATION, 156 EXPECT_EQ(ToolbarActionsBarBubbleDelegate::CLOSE_DISMISS_DEACTIVATION,
157 *delegate.close_action()); 157 *delegate.close_action());
158 EXPECT_TRUE(bubble_observer.widget_closed()); 158 EXPECT_TRUE(bubble_observer.widget_closed());
159 } 159 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/toolbar/toolbar_actions_bar_bubble_views.cc ('k') | chrome/browser/ui/views/toolbar/toolbar_button.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698