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

Side by Side Diff: chrome/browser/ui/views/apps/shaped_app_window_targeter_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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "chrome/browser/ui/views/apps/shaped_app_window_targeter.h" 5 #include "chrome/browser/ui/views/apps/shaped_app_window_targeter.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "apps/ui/views/app_window_frame_view.h" 9 #include "apps/ui/views/app_window_frame_view.h"
10 #include "base/macros.h" 10 #include "base/macros.h"
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 widget_->Show(); 49 widget_->Show();
50 } 50 }
51 51
52 void TearDown() override { 52 void TearDown() override {
53 widget_.reset(); 53 widget_.reset();
54 aura::test::AuraTestBase::TearDown(); 54 aura::test::AuraTestBase::TearDown();
55 } 55 }
56 56
57 private: 57 private:
58 views::WebView web_view_; 58 views::WebView web_view_;
59 scoped_ptr<views::Widget> widget_; 59 std::unique_ptr<views::Widget> widget_;
60 ChromeNativeAppWindowViewsAura app_window_; 60 ChromeNativeAppWindowViewsAura app_window_;
61 61
62 DISALLOW_COPY_AND_ASSIGN(ShapedAppWindowTargeterTest); 62 DISALLOW_COPY_AND_ASSIGN(ShapedAppWindowTargeterTest);
63 }; 63 };
64 64
65 TEST_F(ShapedAppWindowTargeterTest, HitTestBasic) { 65 TEST_F(ShapedAppWindowTargeterTest, HitTestBasic) {
66 aura::Window* window = widget()->GetNativeWindow(); 66 aura::Window* window = widget()->GetNativeWindow();
67 { 67 {
68 // Without any custom shapes, the event should be targeted correctly to the 68 // Without any custom shapes, the event should be targeted correctly to the
69 // window. 69 // window.
70 ui::MouseEvent move(ui::ET_MOUSE_MOVED, gfx::Point(40, 40), 70 ui::MouseEvent move(ui::ET_MOUSE_MOVED, gfx::Point(40, 40),
71 gfx::Point(40, 40), ui::EventTimeForNow(), ui::EF_NONE, 71 gfx::Point(40, 40), ui::EventTimeForNow(), ui::EF_NONE,
72 ui::EF_NONE); 72 ui::EF_NONE);
73 ui::EventDispatchDetails details = 73 ui::EventDispatchDetails details =
74 event_processor()->OnEventFromSource(&move); 74 event_processor()->OnEventFromSource(&move);
75 ASSERT_FALSE(details.dispatcher_destroyed); 75 ASSERT_FALSE(details.dispatcher_destroyed);
76 EXPECT_EQ(window, move.target()); 76 EXPECT_EQ(window, move.target());
77 } 77 }
78 78
79 scoped_ptr<SkRegion> region(new SkRegion); 79 std::unique_ptr<SkRegion> region(new SkRegion);
80 region->op(SkIRect::MakeXYWH(0, 0, 0, 0), SkRegion::kUnion_Op); 80 region->op(SkIRect::MakeXYWH(0, 0, 0, 0), SkRegion::kUnion_Op);
81 app_window()->UpdateShape(std::move(region)); 81 app_window()->UpdateShape(std::move(region));
82 { 82 {
83 // With an empty custom shape, all events within the window should fall 83 // With an empty custom shape, all events within the window should fall
84 // through to the root window. 84 // through to the root window.
85 ui::MouseEvent move(ui::ET_MOUSE_MOVED, gfx::Point(40, 40), 85 ui::MouseEvent move(ui::ET_MOUSE_MOVED, gfx::Point(40, 40),
86 gfx::Point(40, 40), ui::EventTimeForNow(), ui::EF_NONE, 86 gfx::Point(40, 40), ui::EventTimeForNow(), ui::EF_NONE,
87 ui::EF_NONE); 87 ui::EF_NONE);
88 ui::EventDispatchDetails details = 88 ui::EventDispatchDetails details =
89 event_processor()->OnEventFromSource(&move); 89 event_processor()->OnEventFromSource(&move);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 ASSERT_FALSE(details.dispatcher_destroyed); 123 ASSERT_FALSE(details.dispatcher_destroyed);
124 EXPECT_EQ(window, move2.target()); 124 EXPECT_EQ(window, move2.target());
125 } 125 }
126 } 126 }
127 127
128 TEST_F(ShapedAppWindowTargeterTest, HitTestOnlyForShapedWindow) { 128 TEST_F(ShapedAppWindowTargeterTest, HitTestOnlyForShapedWindow) {
129 // Install a window-targeter on the root window that allows a window to 129 // Install a window-targeter on the root window that allows a window to
130 // receive events outside of its bounds. Verify that this window-targeter is 130 // receive events outside of its bounds. Verify that this window-targeter is
131 // active unless the window has a custom shape. 131 // active unless the window has a custom shape.
132 gfx::Insets inset(-30); 132 gfx::Insets inset(-30);
133 root_window()->SetEventTargeter(scoped_ptr<ui::EventTargeter>( 133 root_window()->SetEventTargeter(std::unique_ptr<ui::EventTargeter>(
134 new wm::EasyResizeWindowTargeter(root_window(), inset, inset))); 134 new wm::EasyResizeWindowTargeter(root_window(), inset, inset)));
135 135
136 aura::Window* window = widget()->GetNativeWindow(); 136 aura::Window* window = widget()->GetNativeWindow();
137 { 137 {
138 // Without any custom shapes, an event within the window bounds should be 138 // Without any custom shapes, an event within the window bounds should be
139 // targeted correctly to the window. 139 // targeted correctly to the window.
140 ui::MouseEvent move(ui::ET_MOUSE_MOVED, gfx::Point(40, 40), 140 ui::MouseEvent move(ui::ET_MOUSE_MOVED, gfx::Point(40, 40),
141 gfx::Point(40, 40), ui::EventTimeForNow(), ui::EF_NONE, 141 gfx::Point(40, 40), ui::EventTimeForNow(), ui::EF_NONE,
142 ui::EF_NONE); 142 ui::EF_NONE);
143 ui::EventDispatchDetails details = 143 ui::EventDispatchDetails details =
144 event_processor()->OnEventFromSource(&move); 144 event_processor()->OnEventFromSource(&move);
145 ASSERT_FALSE(details.dispatcher_destroyed); 145 ASSERT_FALSE(details.dispatcher_destroyed);
146 EXPECT_EQ(window, move.target()); 146 EXPECT_EQ(window, move.target());
147 } 147 }
148 { 148 {
149 // Without any custom shapes, an event that falls just outside the window 149 // Without any custom shapes, an event that falls just outside the window
150 // bounds should also be targeted correctly to the window, because of the 150 // bounds should also be targeted correctly to the window, because of the
151 // targeter installed on the root-window. 151 // targeter installed on the root-window.
152 ui::MouseEvent move(ui::ET_MOUSE_MOVED, gfx::Point(10, 10), 152 ui::MouseEvent move(ui::ET_MOUSE_MOVED, gfx::Point(10, 10),
153 gfx::Point(10, 10), ui::EventTimeForNow(), ui::EF_NONE, 153 gfx::Point(10, 10), ui::EventTimeForNow(), ui::EF_NONE,
154 ui::EF_NONE); 154 ui::EF_NONE);
155 ui::EventDispatchDetails details = 155 ui::EventDispatchDetails details =
156 event_processor()->OnEventFromSource(&move); 156 event_processor()->OnEventFromSource(&move);
157 ASSERT_FALSE(details.dispatcher_destroyed); 157 ASSERT_FALSE(details.dispatcher_destroyed);
158 EXPECT_EQ(window, move.target()); 158 EXPECT_EQ(window, move.target());
159 } 159 }
160 160
161 scoped_ptr<SkRegion> region(new SkRegion); 161 std::unique_ptr<SkRegion> region(new SkRegion);
162 region->op(SkIRect::MakeXYWH(40, 0, 20, 100), SkRegion::kUnion_Op); 162 region->op(SkIRect::MakeXYWH(40, 0, 20, 100), SkRegion::kUnion_Op);
163 region->op(SkIRect::MakeXYWH(0, 40, 100, 20), SkRegion::kUnion_Op); 163 region->op(SkIRect::MakeXYWH(0, 40, 100, 20), SkRegion::kUnion_Op);
164 app_window()->UpdateShape(std::move(region)); 164 app_window()->UpdateShape(std::move(region));
165 { 165 {
166 // With the custom shape, the events that don't fall within the custom shape 166 // With the custom shape, the events that don't fall within the custom shape
167 // will go through to the root window. 167 // will go through to the root window.
168 ui::MouseEvent move(ui::ET_MOUSE_MOVED, gfx::Point(10, 10), 168 ui::MouseEvent move(ui::ET_MOUSE_MOVED, gfx::Point(10, 10),
169 gfx::Point(10, 10), ui::EventTimeForNow(), ui::EF_NONE, 169 gfx::Point(10, 10), ui::EventTimeForNow(), ui::EF_NONE,
170 ui::EF_NONE); 170 ui::EF_NONE);
171 ui::EventDispatchDetails details = 171 ui::EventDispatchDetails details =
172 event_processor()->OnEventFromSource(&move); 172 event_processor()->OnEventFromSource(&move);
173 ASSERT_FALSE(details.dispatcher_destroyed); 173 ASSERT_FALSE(details.dispatcher_destroyed);
174 EXPECT_EQ(root_window(), move.target()); 174 EXPECT_EQ(root_window(), move.target());
175 } 175 }
176 176
177 // Remove the custom shape. This should restore the behaviour of targeting the 177 // Remove the custom shape. This should restore the behaviour of targeting the
178 // app window for events just outside its bounds. 178 // app window for events just outside its bounds.
179 app_window()->UpdateShape(scoped_ptr<SkRegion>()); 179 app_window()->UpdateShape(std::unique_ptr<SkRegion>());
180 { 180 {
181 ui::MouseEvent move(ui::ET_MOUSE_MOVED, gfx::Point(10, 10), 181 ui::MouseEvent move(ui::ET_MOUSE_MOVED, gfx::Point(10, 10),
182 gfx::Point(10, 10), ui::EventTimeForNow(), ui::EF_NONE, 182 gfx::Point(10, 10), ui::EventTimeForNow(), ui::EF_NONE,
183 ui::EF_NONE); 183 ui::EF_NONE);
184 ui::EventDispatchDetails details = 184 ui::EventDispatchDetails details =
185 event_processor()->OnEventFromSource(&move); 185 event_processor()->OnEventFromSource(&move);
186 ASSERT_FALSE(details.dispatcher_destroyed); 186 ASSERT_FALSE(details.dispatcher_destroyed);
187 EXPECT_EQ(window, move.target()); 187 EXPECT_EQ(window, move.target());
188 } 188 }
189 } 189 }
(...skipping 21 matching lines...) Expand all
211 gfx::Point(32, 37), ui::EventTimeForNow(), ui::EF_NONE, 211 gfx::Point(32, 37), ui::EventTimeForNow(), ui::EF_NONE,
212 ui::EF_NONE); 212 ui::EF_NONE);
213 ui::EventDispatchDetails details = 213 ui::EventDispatchDetails details =
214 event_processor()->OnEventFromSource(&move); 214 event_processor()->OnEventFromSource(&move);
215 ASSERT_FALSE(details.dispatcher_destroyed); 215 ASSERT_FALSE(details.dispatcher_destroyed);
216 EXPECT_EQ(window, move.target()); 216 EXPECT_EQ(window, move.target());
217 } 217 }
218 218
219 #if !defined(OS_CHROMEOS) 219 #if !defined(OS_CHROMEOS)
220 // The non standard app frame has a easy resize targetter installed. 220 // The non standard app frame has a easy resize targetter installed.
221 scoped_ptr<views::NonClientFrameView> frame( 221 std::unique_ptr<views::NonClientFrameView> frame(
222 app_window_views()->CreateNonStandardAppFrame()); 222 app_window_views()->CreateNonStandardAppFrame());
223 { 223 {
224 // Ensure that the window has an event targeter (there should be an 224 // Ensure that the window has an event targeter (there should be an
225 // EasyResizeWindowTargeter installed). 225 // EasyResizeWindowTargeter installed).
226 EXPECT_TRUE(static_cast<ui::EventTarget*>(window)->GetEventTargeter()); 226 EXPECT_TRUE(static_cast<ui::EventTarget*>(window)->GetEventTargeter());
227 } 227 }
228 { 228 {
229 // An event in the center of the window should always have 229 // An event in the center of the window should always have
230 // |window| as its target. 230 // |window| as its target.
231 // TODO(mgiuca): This isn't really testing anything (note that it has the 231 // TODO(mgiuca): This isn't really testing anything (note that it has the
(...skipping 19 matching lines...) Expand all
251 ui::MouseEvent move(ui::ET_MOUSE_MOVED, gfx::Point(32, 37), 251 ui::MouseEvent move(ui::ET_MOUSE_MOVED, gfx::Point(32, 37),
252 gfx::Point(32, 37), ui::EventTimeForNow(), ui::EF_NONE, 252 gfx::Point(32, 37), ui::EventTimeForNow(), ui::EF_NONE,
253 ui::EF_NONE); 253 ui::EF_NONE);
254 ui::EventDispatchDetails details = 254 ui::EventDispatchDetails details =
255 event_processor()->OnEventFromSource(&move); 255 event_processor()->OnEventFromSource(&move);
256 ASSERT_FALSE(details.dispatcher_destroyed); 256 ASSERT_FALSE(details.dispatcher_destroyed);
257 EXPECT_EQ(window, move.target()); 257 EXPECT_EQ(window, move.target());
258 } 258 }
259 #endif // defined (OS_CHROMEOS) 259 #endif // defined (OS_CHROMEOS)
260 } 260 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/apps/chrome_native_app_window_views_aura_ash.cc ('k') | chrome/browser/ui/views/ash/tab_scrubber.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698