OLD | NEW |
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 "base/mac/scoped_nsobject.h" | 5 #include "base/mac/scoped_nsobject.h" |
| 6 #include "base/memory/scoped_ptr.h" |
6 #include "base/message_loop/message_pump_mac.h" | 7 #include "base/message_loop/message_pump_mac.h" |
7 #import "chrome/browser/ui/cocoa/cocoa_test_helper.h" | 8 #import "chrome/browser/ui/cocoa/cocoa_test_helper.h" |
8 #import "chrome/browser/ui/cocoa/constrained_window/constrained_window_animation
.h" | 9 #import "chrome/browser/ui/cocoa/constrained_window/constrained_window_animation
.h" |
9 | 10 |
10 // This class runs an animation for exactly two frames then end it. | 11 // This class runs an animation for exactly two frames then end it. |
11 @interface ConstrainedWindowAnimationTestDelegate : NSObject | 12 @interface ConstrainedWindowAnimationTestDelegate : NSObject |
12 <NSAnimationDelegate> { | 13 <NSAnimationDelegate> { |
13 @private | 14 @private |
14 CGFloat frameCount_; | 15 CGFloat frameCount_; |
15 scoped_refptr<base::MessagePumpNSRunLoop> message_pump_; | 16 scoped_ptr<base::MessagePumpNSRunLoop> message_pump_; |
16 } | 17 } |
17 | 18 |
18 - (void)runAnimation:(NSAnimation*)animation; | 19 - (void)runAnimation:(NSAnimation*)animation; |
19 | 20 |
20 @end | 21 @end |
21 | 22 |
22 @implementation ConstrainedWindowAnimationTestDelegate | 23 @implementation ConstrainedWindowAnimationTestDelegate |
23 | 24 |
24 - (id)init { | 25 - (id)init { |
25 if ((self = [super init])) | 26 if ((self = [super init])) |
26 message_pump_ = new base::MessagePumpNSRunLoop; | 27 message_pump_.reset(new base::MessagePumpNSRunLoop); |
27 return self; | 28 return self; |
28 } | 29 } |
29 | 30 |
30 - (float)animation:(NSAnimation*)animation | 31 - (float)animation:(NSAnimation*)animation |
31 valueForProgress:(NSAnimationProgress)progress { | 32 valueForProgress:(NSAnimationProgress)progress { |
32 ++frameCount_; | 33 ++frameCount_; |
33 if (frameCount_ >= 2) | 34 if (frameCount_ >= 2) |
34 [animation setDuration:0.0]; | 35 [animation setDuration:0.0]; |
35 return frameCount_ == 1 ? 0.2 : 0.6; | 36 return frameCount_ == 1 ? 0.2 : 0.6; |
36 } | 37 } |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
73 [[ConstrainedWindowAnimationHide alloc] initWithWindow:test_window()]); | 74 [[ConstrainedWindowAnimationHide alloc] initWithWindow:test_window()]); |
74 [delegate_ runAnimation:animation]; | 75 [delegate_ runAnimation:animation]; |
75 } | 76 } |
76 | 77 |
77 // Test the pulse animation. | 78 // Test the pulse animation. |
78 TEST_F(ConstrainedWindowAnimationTest, Pulse) { | 79 TEST_F(ConstrainedWindowAnimationTest, Pulse) { |
79 base::scoped_nsobject<NSAnimation> animation( | 80 base::scoped_nsobject<NSAnimation> animation( |
80 [[ConstrainedWindowAnimationPulse alloc] initWithWindow:test_window()]); | 81 [[ConstrainedWindowAnimationPulse alloc] initWithWindow:test_window()]); |
81 [delegate_ runAnimation:animation]; | 82 [delegate_ runAnimation:animation]; |
82 } | 83 } |
OLD | NEW |