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

Side by Side Diff: ui/wm/core/window_animations_unittest.cc

Issue 1868363002: Replace scoped_ptr with std::unique_ptr in //ui (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@scopedptrcc
Patch Set: scopedptrui: rebase-make_scoped_ptr 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
« no previous file with comments | « ui/wm/core/window_animations.cc ('k') | ui/wm/core/window_util.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "ui/wm/core/window_animations.h" 5 #include "ui/wm/core/window_animations.h"
6 6
7 #include "base/macros.h" 7 #include "base/macros.h"
8 #include "base/time/time.h" 8 #include "base/time/time.h"
9 #include "ui/aura/test/aura_test_base.h" 9 #include "ui/aura/test/aura_test_base.h"
10 #include "ui/aura/test/test_windows.h" 10 #include "ui/aura/test/test_windows.h"
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 public: 48 public:
49 WindowAnimationsTest() {} 49 WindowAnimationsTest() {}
50 50
51 void TearDown() override { AuraTestBase::TearDown(); } 51 void TearDown() override { AuraTestBase::TearDown(); }
52 52
53 private: 53 private:
54 DISALLOW_COPY_AND_ASSIGN(WindowAnimationsTest); 54 DISALLOW_COPY_AND_ASSIGN(WindowAnimationsTest);
55 }; 55 };
56 56
57 TEST_F(WindowAnimationsTest, LayerTargetVisibility) { 57 TEST_F(WindowAnimationsTest, LayerTargetVisibility) {
58 scoped_ptr<aura::Window> window( 58 std::unique_ptr<aura::Window> window(
59 aura::test::CreateTestWindowWithId(0, NULL)); 59 aura::test::CreateTestWindowWithId(0, NULL));
60 60
61 // Layer target visibility changes according to Show/Hide. 61 // Layer target visibility changes according to Show/Hide.
62 window->Show(); 62 window->Show();
63 EXPECT_TRUE(window->layer()->GetTargetVisibility()); 63 EXPECT_TRUE(window->layer()->GetTargetVisibility());
64 window->Hide(); 64 window->Hide();
65 EXPECT_FALSE(window->layer()->GetTargetVisibility()); 65 EXPECT_FALSE(window->layer()->GetTargetVisibility());
66 window->Show(); 66 window->Show();
67 EXPECT_TRUE(window->layer()->GetTargetVisibility()); 67 EXPECT_TRUE(window->layer()->GetTargetVisibility());
68 } 68 }
69 69
70 TEST_F(WindowAnimationsTest, LayerTargetVisibility_AnimateShow) { 70 TEST_F(WindowAnimationsTest, LayerTargetVisibility_AnimateShow) {
71 // Tests if opacity and transform are reset when only show animation is 71 // Tests if opacity and transform are reset when only show animation is
72 // enabled. See also LayerTargetVisibility_AnimateHide. 72 // enabled. See also LayerTargetVisibility_AnimateHide.
73 // Since the window is not visible after Hide() is called, opacity and 73 // Since the window is not visible after Hide() is called, opacity and
74 // transform shouldn't matter in case of ANIMATE_SHOW, but we reset them 74 // transform shouldn't matter in case of ANIMATE_SHOW, but we reset them
75 // to keep consistency. 75 // to keep consistency.
76 76
77 scoped_ptr<aura::Window> window(aura::test::CreateTestWindowWithId(0, NULL)); 77 std::unique_ptr<aura::Window> window(
78 aura::test::CreateTestWindowWithId(0, NULL));
78 SetWindowVisibilityAnimationTransition(window.get(), ANIMATE_SHOW); 79 SetWindowVisibilityAnimationTransition(window.get(), ANIMATE_SHOW);
79 80
80 // Layer target visibility and opacity change according to Show/Hide. 81 // Layer target visibility and opacity change according to Show/Hide.
81 window->Show(); 82 window->Show();
82 AnimateOnChildWindowVisibilityChanged(window.get(), true); 83 AnimateOnChildWindowVisibilityChanged(window.get(), true);
83 EXPECT_TRUE(window->layer()->GetTargetVisibility()); 84 EXPECT_TRUE(window->layer()->GetTargetVisibility());
84 EXPECT_EQ(1, window->layer()->opacity()); 85 EXPECT_EQ(1, window->layer()->opacity());
85 86
86 window->Hide(); 87 window->Hide();
87 AnimateOnChildWindowVisibilityChanged(window.get(), false); 88 AnimateOnChildWindowVisibilityChanged(window.get(), false);
88 EXPECT_FALSE(window->layer()->GetTargetVisibility()); 89 EXPECT_FALSE(window->layer()->GetTargetVisibility());
89 EXPECT_EQ(0, window->layer()->opacity()); 90 EXPECT_EQ(0, window->layer()->opacity());
90 EXPECT_EQ(gfx::Transform(), window->layer()->transform()); 91 EXPECT_EQ(gfx::Transform(), window->layer()->transform());
91 92
92 window->Show(); 93 window->Show();
93 AnimateOnChildWindowVisibilityChanged(window.get(), true); 94 AnimateOnChildWindowVisibilityChanged(window.get(), true);
94 EXPECT_TRUE(window->layer()->GetTargetVisibility()); 95 EXPECT_TRUE(window->layer()->GetTargetVisibility());
95 EXPECT_EQ(1, window->layer()->opacity()); 96 EXPECT_EQ(1, window->layer()->opacity());
96 } 97 }
97 98
98 TEST_F(WindowAnimationsTest, LayerTargetVisibility_AnimateHide) { 99 TEST_F(WindowAnimationsTest, LayerTargetVisibility_AnimateHide) {
99 // Tests if opacity and transform are reset when only hide animation is 100 // Tests if opacity and transform are reset when only hide animation is
100 // enabled. Hide animation changes opacity and transform in addition to 101 // enabled. Hide animation changes opacity and transform in addition to
101 // visibility, so we need to reset not only visibility but also opacity 102 // visibility, so we need to reset not only visibility but also opacity
102 // and transform to show the window. 103 // and transform to show the window.
103 104
104 scoped_ptr<aura::Window> window(aura::test::CreateTestWindowWithId(0, NULL)); 105 std::unique_ptr<aura::Window> window(
106 aura::test::CreateTestWindowWithId(0, NULL));
105 SetWindowVisibilityAnimationTransition(window.get(), ANIMATE_HIDE); 107 SetWindowVisibilityAnimationTransition(window.get(), ANIMATE_HIDE);
106 108
107 // Layer target visibility and opacity change according to Show/Hide. 109 // Layer target visibility and opacity change according to Show/Hide.
108 window->Show(); 110 window->Show();
109 AnimateOnChildWindowVisibilityChanged(window.get(), true); 111 AnimateOnChildWindowVisibilityChanged(window.get(), true);
110 EXPECT_TRUE(window->layer()->GetTargetVisibility()); 112 EXPECT_TRUE(window->layer()->GetTargetVisibility());
111 EXPECT_EQ(1, window->layer()->opacity()); 113 EXPECT_EQ(1, window->layer()->opacity());
112 EXPECT_EQ(gfx::Transform(), window->layer()->transform()); 114 EXPECT_EQ(gfx::Transform(), window->layer()->transform());
113 115
114 window->Hide(); 116 window->Hide();
115 AnimateOnChildWindowVisibilityChanged(window.get(), false); 117 AnimateOnChildWindowVisibilityChanged(window.get(), false);
116 EXPECT_FALSE(window->layer()->GetTargetVisibility()); 118 EXPECT_FALSE(window->layer()->GetTargetVisibility());
117 EXPECT_EQ(0, window->layer()->opacity()); 119 EXPECT_EQ(0, window->layer()->opacity());
118 120
119 window->Show(); 121 window->Show();
120 AnimateOnChildWindowVisibilityChanged(window.get(), true); 122 AnimateOnChildWindowVisibilityChanged(window.get(), true);
121 EXPECT_TRUE(window->layer()->GetTargetVisibility()); 123 EXPECT_TRUE(window->layer()->GetTargetVisibility());
122 EXPECT_EQ(1, window->layer()->opacity()); 124 EXPECT_EQ(1, window->layer()->opacity());
123 EXPECT_EQ(gfx::Transform(), window->layer()->transform()); 125 EXPECT_EQ(gfx::Transform(), window->layer()->transform());
124 } 126 }
125 127
126 TEST_F(WindowAnimationsTest, HideAnimationDetachLayers) { 128 TEST_F(WindowAnimationsTest, HideAnimationDetachLayers) {
127 scoped_ptr<aura::Window> parent(aura::test::CreateTestWindowWithId(0, NULL)); 129 std::unique_ptr<aura::Window> parent(
130 aura::test::CreateTestWindowWithId(0, NULL));
128 131
129 scoped_ptr<aura::Window> other( 132 std::unique_ptr<aura::Window> other(
130 aura::test::CreateTestWindowWithId(1, parent.get())); 133 aura::test::CreateTestWindowWithId(1, parent.get()));
131 134
132 scoped_ptr<aura::Window> animating_window( 135 std::unique_ptr<aura::Window> animating_window(
133 aura::test::CreateTestWindowWithId(2, parent.get())); 136 aura::test::CreateTestWindowWithId(2, parent.get()));
134 SetWindowVisibilityAnimationTransition(animating_window.get(), ANIMATE_HIDE); 137 SetWindowVisibilityAnimationTransition(animating_window.get(), ANIMATE_HIDE);
135 138
136 EXPECT_EQ(0, GetWindowZPosition(other.get())); 139 EXPECT_EQ(0, GetWindowZPosition(other.get()));
137 EXPECT_EQ(1, GetWindowZPosition(animating_window.get())); 140 EXPECT_EQ(1, GetWindowZPosition(animating_window.get()));
138 EXPECT_EQ(0, GetLayerZPosition(other->layer())); 141 EXPECT_EQ(0, GetLayerZPosition(other->layer()));
139 EXPECT_EQ(1, GetLayerZPosition(animating_window->layer())); 142 EXPECT_EQ(1, GetLayerZPosition(animating_window->layer()));
140 143
141 { 144 {
142 ui::ScopedAnimationDurationScaleMode scale_mode( 145 ui::ScopedAnimationDurationScaleMode scale_mode(
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 std::find(parent->layer()->children().begin(), 187 std::find(parent->layer()->children().begin(),
185 parent->layer()->children().end(), 188 parent->layer()->children().end(),
186 animating_layer) == 189 animating_layer) ==
187 parent->layer()->children().end()); 190 parent->layer()->children().end());
188 } 191 }
189 } 192 }
190 193
191 TEST_F(WindowAnimationsTest, HideAnimationDetachLayersWithTransientChildren) { 194 TEST_F(WindowAnimationsTest, HideAnimationDetachLayersWithTransientChildren) {
192 TransientWindowStackingClient transient_stacking_client; 195 TransientWindowStackingClient transient_stacking_client;
193 196
194 scoped_ptr<aura::Window> parent(aura::test::CreateTestWindowWithId(0, NULL)); 197 std::unique_ptr<aura::Window> parent(
198 aura::test::CreateTestWindowWithId(0, NULL));
195 199
196 scoped_ptr<aura::Window> other( 200 std::unique_ptr<aura::Window> other(
197 aura::test::CreateTestWindowWithId(1, parent.get())); 201 aura::test::CreateTestWindowWithId(1, parent.get()));
198 202
199 scoped_ptr<aura::Window> animating_window( 203 std::unique_ptr<aura::Window> animating_window(
200 aura::test::CreateTestWindowWithId(2, parent.get())); 204 aura::test::CreateTestWindowWithId(2, parent.get()));
201 SetWindowVisibilityAnimationTransition(animating_window.get(), ANIMATE_HIDE); 205 SetWindowVisibilityAnimationTransition(animating_window.get(), ANIMATE_HIDE);
202 206
203 scoped_ptr<aura::Window> transient1( 207 std::unique_ptr<aura::Window> transient1(
204 aura::test::CreateTestWindowWithId(3, parent.get())); 208 aura::test::CreateTestWindowWithId(3, parent.get()));
205 scoped_ptr<aura::Window> transient2( 209 std::unique_ptr<aura::Window> transient2(
206 aura::test::CreateTestWindowWithId(4, parent.get())); 210 aura::test::CreateTestWindowWithId(4, parent.get()));
207 211
208 TransientWindowManager::Get(animating_window.get()); 212 TransientWindowManager::Get(animating_window.get());
209 AddTransientChild(animating_window.get(), transient1.get()); 213 AddTransientChild(animating_window.get(), transient1.get());
210 AddTransientChild(animating_window.get(), transient2.get()); 214 AddTransientChild(animating_window.get(), transient2.get());
211 215
212 EXPECT_EQ(0, GetWindowZPosition(other.get())); 216 EXPECT_EQ(0, GetWindowZPosition(other.get()));
213 EXPECT_EQ(1, GetWindowZPosition(animating_window.get())); 217 EXPECT_EQ(1, GetWindowZPosition(animating_window.get()));
214 EXPECT_EQ(2, GetWindowZPosition(transient1.get())); 218 EXPECT_EQ(2, GetWindowZPosition(transient1.get()));
215 EXPECT_EQ(3, GetWindowZPosition(transient2.get())); 219 EXPECT_EQ(3, GetWindowZPosition(transient2.get()));
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
265 bool hide_completed() const { return hide_completed_; } 269 bool hide_completed() const { return hide_completed_; }
266 270
267 private: 271 private:
268 bool hide_completed_; 272 bool hide_completed_;
269 273
270 DISALLOW_COPY_AND_ASSIGN(NotifyHideCompletedAnimationHost); 274 DISALLOW_COPY_AND_ASSIGN(NotifyHideCompletedAnimationHost);
271 }; 275 };
272 276
273 TEST_F(WindowAnimationsTest, NotifyHideCompleted) { 277 TEST_F(WindowAnimationsTest, NotifyHideCompleted) {
274 NotifyHideCompletedAnimationHost animation_host; 278 NotifyHideCompletedAnimationHost animation_host;
275 scoped_ptr<aura::Window> window(aura::test::CreateTestWindowWithId(0, NULL)); 279 std::unique_ptr<aura::Window> window(
280 aura::test::CreateTestWindowWithId(0, NULL));
276 aura::client::SetAnimationHost(window.get(), &animation_host); 281 aura::client::SetAnimationHost(window.get(), &animation_host);
277 wm::SetWindowVisibilityAnimationType( 282 wm::SetWindowVisibilityAnimationType(
278 window.get(), WINDOW_VISIBILITY_ANIMATION_TYPE_FADE); 283 window.get(), WINDOW_VISIBILITY_ANIMATION_TYPE_FADE);
279 AnimateOnChildWindowVisibilityChanged(window.get(), true); 284 AnimateOnChildWindowVisibilityChanged(window.get(), true);
280 EXPECT_TRUE(window->layer()->visible()); 285 EXPECT_TRUE(window->layer()->visible());
281 286
282 EXPECT_FALSE(animation_host.hide_completed()); 287 EXPECT_FALSE(animation_host.hide_completed());
283 AnimateOnChildWindowVisibilityChanged(window.get(), false); 288 AnimateOnChildWindowVisibilityChanged(window.get(), false);
284 EXPECT_TRUE(animation_host.hide_completed()); 289 EXPECT_TRUE(animation_host.hide_completed());
285 } 290 }
286 291
287 // The rotation animation for hiding a window should not leak the animation 292 // The rotation animation for hiding a window should not leak the animation
288 // observer. 293 // observer.
289 TEST_F(WindowAnimationsTest, RotateHideNoLeak) { 294 TEST_F(WindowAnimationsTest, RotateHideNoLeak) {
290 ui::ScopedAnimationDurationScaleMode scale_mode( 295 ui::ScopedAnimationDurationScaleMode scale_mode(
291 ui::ScopedAnimationDurationScaleMode::FAST_DURATION); 296 ui::ScopedAnimationDurationScaleMode::FAST_DURATION);
292 297
293 scoped_ptr<aura::Window> window(aura::test::CreateTestWindowWithId(0, NULL)); 298 std::unique_ptr<aura::Window> window(
299 aura::test::CreateTestWindowWithId(0, NULL));
294 ui::Layer* animating_layer = window->layer(); 300 ui::Layer* animating_layer = window->layer();
295 wm::SetWindowVisibilityAnimationType(window.get(), 301 wm::SetWindowVisibilityAnimationType(window.get(),
296 WINDOW_VISIBILITY_ANIMATION_TYPE_ROTATE); 302 WINDOW_VISIBILITY_ANIMATION_TYPE_ROTATE);
297 303
298 AnimateOnChildWindowVisibilityChanged(window.get(), true); 304 AnimateOnChildWindowVisibilityChanged(window.get(), true);
299 AnimateOnChildWindowVisibilityChanged(window.get(), false); 305 AnimateOnChildWindowVisibilityChanged(window.get(), false);
300 306
301 animating_layer->GetAnimator()->StopAnimating(); 307 animating_layer->GetAnimator()->StopAnimating();
302 } 308 }
303 309
304 // The rotation animation for hiding a window should not crash when terminated 310 // The rotation animation for hiding a window should not crash when terminated
305 // by LayerAnimator::StopAnimating(). 311 // by LayerAnimator::StopAnimating().
306 TEST_F(WindowAnimationsTest, RotateHideNoCrash) { 312 TEST_F(WindowAnimationsTest, RotateHideNoCrash) {
307 ui::ScopedAnimationDurationScaleMode scale_mode( 313 ui::ScopedAnimationDurationScaleMode scale_mode(
308 ui::ScopedAnimationDurationScaleMode::FAST_DURATION); 314 ui::ScopedAnimationDurationScaleMode::FAST_DURATION);
309 315
310 scoped_ptr<aura::Window> window(aura::test::CreateTestWindowWithId(0, NULL)); 316 std::unique_ptr<aura::Window> window(
317 aura::test::CreateTestWindowWithId(0, NULL));
311 ui::Layer* animating_layer = window->layer(); 318 ui::Layer* animating_layer = window->layer();
312 wm::SetWindowVisibilityAnimationType(window.get(), 319 wm::SetWindowVisibilityAnimationType(window.get(),
313 WINDOW_VISIBILITY_ANIMATION_TYPE_ROTATE); 320 WINDOW_VISIBILITY_ANIMATION_TYPE_ROTATE);
314 AnimateOnChildWindowVisibilityChanged(window.get(), true); 321 AnimateOnChildWindowVisibilityChanged(window.get(), true);
315 window->layer()->GetAnimator()->Step(base::TimeTicks::Now() + 322 window->layer()->GetAnimator()->Step(base::TimeTicks::Now() +
316 base::TimeDelta::FromSeconds(5)); 323 base::TimeDelta::FromSeconds(5));
317 AnimateOnChildWindowVisibilityChanged(window.get(), false); 324 AnimateOnChildWindowVisibilityChanged(window.get(), false);
318 animating_layer->GetAnimator()->StopAnimating(); 325 animating_layer->GetAnimator()->StopAnimating();
319 } 326 }
320 327
321 } // namespace wm 328 } // namespace wm
OLDNEW
« no previous file with comments | « ui/wm/core/window_animations.cc ('k') | ui/wm/core/window_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698