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

Side by Side Diff: ios/chrome/browser/ui/fullscreen_controller_unittest.mm

Issue 2936833002: [ObjC ARC] Converts ios/chrome/browser/ui:unit_tests to ARC. (Closed)
Patch Set: Fix bad ARC guard. Created 3 years, 6 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #import "ios/chrome/browser/ui/fullscreen_controller.h" 5 #import "ios/chrome/browser/ui/fullscreen_controller.h"
6 6
7 #include "base/mac/scoped_nsobject.h"
8 #import "ios/web/public/test/fakes/test_web_view_content_view.h" 7 #import "ios/web/public/test/fakes/test_web_view_content_view.h"
9 #import "ios/web/public/web_state/ui/crw_web_view_content_view.h" 8 #import "ios/web/public/web_state/ui/crw_web_view_content_view.h"
10 #import "ios/web/public/web_state/ui/crw_web_view_scroll_view_proxy.h" 9 #import "ios/web/public/web_state/ui/crw_web_view_scroll_view_proxy.h"
11 #import "ios/web/web_state/ui/crw_web_controller.h" 10 #import "ios/web/web_state/ui/crw_web_controller.h"
12 #import "ios/web/web_state/ui/crw_web_view_proxy_impl.h" 11 #import "ios/web/web_state/ui/crw_web_view_proxy_impl.h"
13 #include "testing/platform_test.h" 12 #include "testing/platform_test.h"
14 #import "third_party/ocmock/OCMock/OCMock.h" 13 #import "third_party/ocmock/OCMock/OCMock.h"
15 #include "third_party/ocmock/ocmock_extensions.h" 14 #include "third_party/ocmock/ocmock_extensions.h"
16 15
16 #if !defined(__has_feature) || !__has_feature(objc_arc)
17 #error "This file requires ARC support."
18 #endif
19
17 namespace { 20 namespace {
18 21
19 CGFloat kContentHeight = 5000.0; 22 CGFloat kContentHeight = 5000.0;
20 CGFloat kHeaderHeight = 42.0; 23 CGFloat kHeaderHeight = 42.0;
21 } 24 }
22 25
23 @interface MockFullScreenControllerDelegate 26 @interface MockFullScreenControllerDelegate
24 : NSObject<FullScreenControllerDelegate> 27 : NSObject<FullScreenControllerDelegate>
25 @property(nonatomic, readonly) float currentPosition; 28 @property(nonatomic, readonly) float currentPosition;
26 @property(nonatomic, assign) BOOL fakeIsTabWithIDCurrentFlag; 29 @property(nonatomic, assign) BOOL fakeIsTabWithIDCurrentFlag;
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 namespace { 73 namespace {
71 74
72 NSString* const kFakeSessionId = @"fake-session-id"; 75 NSString* const kFakeSessionId = @"fake-session-id";
73 76
74 class FullscreenControllerTest : public PlatformTest { 77 class FullscreenControllerTest : public PlatformTest {
75 protected: 78 protected:
76 void SetUp() override { 79 void SetUp() override {
77 CGRect frame = CGRectMake(0.0, 0.0, 300.0, 900.0); 80 CGRect frame = CGRectMake(0.0, 0.0, 300.0, 900.0);
78 PlatformTest::SetUp(); 81 PlatformTest::SetUp();
79 82
80 scrollview_.reset([[UIScrollView alloc] initWithFrame:frame]); 83 scrollview_ = [[UIScrollView alloc] initWithFrame:frame];
81 scrollview_.get().contentInset = UIEdgeInsetsZero; 84 scrollview_.contentInset = UIEdgeInsetsZero;
82 [GetWindow() addSubview:scrollview_]; 85 [GetWindow() addSubview:scrollview_];
83 86
84 CGRect contentSize = CGRectMake(0.0, 0.0, frame.size.width, kContentHeight); 87 CGRect contentSize = CGRectMake(0.0, 0.0, frame.size.width, kContentHeight);
85 scrollview_.get().contentSize = contentSize.size; 88 scrollview_.contentSize = contentSize.size;
86 mockWebController_.reset( 89 mockWebController_ =
87 [[OCMockObject niceMockForClass:[CRWWebController class]] retain]); 90 [OCMockObject niceMockForClass:[CRWWebController class]];
88 mockDelegate_.reset([[MockFullScreenControllerDelegate alloc] init]); 91 mockDelegate_ = [[MockFullScreenControllerDelegate alloc] init];
89 mockWebView_.reset([[UIView alloc] init]); 92 mockWebView_ = [[UIView alloc] init];
90 mockContentView_.reset([[TestWebViewContentView alloc] 93 mockContentView_ =
91 initWithMockWebView:mockWebView_ 94 [[TestWebViewContentView alloc] initWithMockWebView:mockWebView_
92 scrollView:scrollview_]); 95 scrollView:scrollview_];
93 webViewProxy_.reset( 96 webViewProxy_ =
94 [[CRWWebViewProxyImpl alloc] initWithWebController:mockWebController_]); 97 [[CRWWebViewProxyImpl alloc] initWithWebController:mockWebController_];
95 [webViewProxy_ setContentView:mockContentView_]; 98 [webViewProxy_ setContentView:mockContentView_];
96 webViewScrollViewProxy_.reset([[webViewProxy_ scrollViewProxy] retain]); 99 webViewScrollViewProxy_ = [webViewProxy_ scrollViewProxy];
97 controller_.reset([[FullScreenController alloc] 100 controller_ =
98 initWithDelegate:mockDelegate_ 101 [[FullScreenController alloc] initWithDelegate:mockDelegate_
99 navigationManager:NULL 102 navigationManager:NULL
100 sessionID:kFakeSessionId]); 103 sessionID:kFakeSessionId];
101 DCHECK(controller_); 104 DCHECK(controller_);
102 [webViewScrollViewProxy_ addObserver:controller_]; 105 [webViewScrollViewProxy_ addObserver:controller_];
103 // Simulate a CRWWebControllerObserver callback. 106 // Simulate a CRWWebControllerObserver callback.
104 [controller_ setWebViewProxy:webViewProxy_ controller:mockWebController_]; 107 [controller_ setWebViewProxy:webViewProxy_ controller:mockWebController_];
105 [controller_ moveHeaderToRestingPosition:YES]; 108 [controller_ moveHeaderToRestingPosition:YES];
106 109
107 base::scoped_nsobject<UIView> awesome_view( 110 UIView* awesome_view = [[UIView alloc] initWithFrame:contentSize];
108 [[UIView alloc] initWithFrame:contentSize]);
109 [scrollview_ addSubview:awesome_view]; 111 [scrollview_ addSubview:awesome_view];
110 112
111 EXPECT_TRUE(IsHeaderVisible()); 113 EXPECT_TRUE(IsHeaderVisible());
112 EXPECT_EQ(0.0f, webViewScrollViewProxy_.get().contentOffset.y); 114 EXPECT_EQ(0.0f, webViewScrollViewProxy_.contentOffset.y);
113 } 115 }
114 116
115 void TearDown() override { 117 void TearDown() override {
116 [webViewScrollViewProxy_.get() removeObserver:controller_]; 118 [webViewScrollViewProxy_ removeObserver:controller_];
117 [webViewScrollViewProxy_ setScrollView:nil]; 119 [webViewScrollViewProxy_ setScrollView:nil];
118 [scrollview_ removeFromSuperview]; 120 [scrollview_ removeFromSuperview];
119 PlatformTest::TearDown(); 121 PlatformTest::TearDown();
120 } 122 }
121 123
122 void MoveMiddle() { 124 void MoveMiddle() {
123 // Move somewhere in the middle. 125 // Move somewhere in the middle.
124 CGFloat middle_point = kContentHeight / 2.0; 126 CGFloat middle_point = kContentHeight / 2.0;
125 webViewScrollViewProxy_.get().contentOffset = 127 webViewScrollViewProxy_.contentOffset = CGPointMake(0.0, middle_point);
126 CGPointMake(0.0, middle_point);
127 } 128 }
128 129
129 void MoveTop() { 130 void MoveTop() {
130 webViewScrollViewProxy_.get().contentOffset = 131 webViewScrollViewProxy_.contentOffset = CGPointMake(0.0, -kHeaderHeight);
131 CGPointMake(0.0, -kHeaderHeight);
132 } 132 }
133 133
134 void MoveMiddleAndHide() { 134 void MoveMiddleAndHide() {
135 MoveMiddle(); 135 MoveMiddle();
136 [controller_ moveHeaderToRestingPosition:NO]; 136 [controller_ moveHeaderToRestingPosition:NO];
137 EXPECT_TRUE(IsHeaderHidden()); 137 EXPECT_TRUE(IsHeaderHidden());
138 } 138 }
139 139
140 UIWindow* GetWindow() { 140 UIWindow* GetWindow() {
141 UIWindow* window = [[UIApplication sharedApplication] keyWindow]; 141 UIWindow* window = [[UIApplication sharedApplication] keyWindow];
142 if (!window) 142 if (!window)
143 window = [[[UIApplication sharedApplication] windows] lastObject]; 143 window = [[[UIApplication sharedApplication] windows] lastObject];
144 EXPECT_TRUE(window != nil); 144 EXPECT_TRUE(window != nil);
145 return window; 145 return window;
146 } 146 }
147 147
148 bool IsHeaderVisible() { return [mockDelegate_ currentPosition] == 0.0; } 148 bool IsHeaderVisible() { return [mockDelegate_ currentPosition] == 0.0; }
149 149
150 bool IsHeaderHidden() { 150 bool IsHeaderHidden() {
151 return [mockDelegate_ currentPosition] == kHeaderHeight; 151 return [mockDelegate_ currentPosition] == kHeaderHeight;
152 } 152 }
153 153
154 // Adds |view| as a sub view to the underlying |scrollview_|. 154 // Adds |view| as a sub view to the underlying |scrollview_|.
155 void AddSubViewToScrollView(UIView* view) { [scrollview_ addSubview:view]; } 155 void AddSubViewToScrollView(UIView* view) { [scrollview_ addSubview:view]; }
156 156
157 base::scoped_nsobject<FullScreenController> controller_; 157 FullScreenController* controller_;
158 base::scoped_nsobject<MockFullScreenControllerDelegate> mockDelegate_; 158 MockFullScreenControllerDelegate* mockDelegate_;
159 base::scoped_nsobject<CRWWebViewScrollViewProxy> webViewScrollViewProxy_; 159 CRWWebViewScrollViewProxy* webViewScrollViewProxy_;
160 base::scoped_nsobject<id> mockWebView_; 160 id mockWebView_;
161 base::scoped_nsobject<id> mockWebController_; 161 id mockWebController_;
162 base::scoped_nsobject<TestWebViewContentView> mockContentView_; 162 TestWebViewContentView* mockContentView_;
163 base::scoped_nsobject<CRWWebViewProxyImpl> webViewProxy_; 163 CRWWebViewProxyImpl* webViewProxy_;
164 164
165 private: 165 private:
166 base::scoped_nsobject<UIScrollView> scrollview_; 166 UIScrollView* scrollview_;
167 }; 167 };
168 168
169 #pragma mark - Programmatic moves 169 #pragma mark - Programmatic moves
170 170
171 TEST_F(FullscreenControllerTest, ForceHidden) { 171 TEST_F(FullscreenControllerTest, ForceHidden) {
172 [controller_ moveHeaderToRestingPosition:NO]; 172 [controller_ moveHeaderToRestingPosition:NO];
173 EXPECT_TRUE(IsHeaderHidden()); 173 EXPECT_TRUE(IsHeaderHidden());
174 EXPECT_EQ(0.0, webViewScrollViewProxy_.get().contentOffset.y); 174 EXPECT_EQ(0.0, webViewScrollViewProxy_.contentOffset.y);
175 } 175 }
176 176
177 #pragma mark - Simulated user moves. 177 #pragma mark - Simulated user moves.
178 178
179 TEST_F(FullscreenControllerTest, LargeManualScrollUpHides) { 179 TEST_F(FullscreenControllerTest, LargeManualScrollUpHides) {
180 MoveMiddle(); 180 MoveMiddle();
181 181
182 [controller_ webViewScrollViewWillBeginDragging:webViewScrollViewProxy_]; 182 [controller_ webViewScrollViewWillBeginDragging:webViewScrollViewProxy_];
183 183
184 CGFloat middle_point = webViewScrollViewProxy_.get().contentOffset.y; 184 CGFloat middle_point = webViewScrollViewProxy_.contentOffset.y;
185 // Move up a bit, multiple times 185 // Move up a bit, multiple times
186 for (float i = 0.0; i < kHeaderHeight * 2.0; i++) { 186 for (float i = 0.0; i < kHeaderHeight * 2.0; i++) {
187 webViewScrollViewProxy_.get().contentOffset = 187 webViewScrollViewProxy_.contentOffset = CGPointMake(0.0, middle_point + i);
188 CGPointMake(0.0, middle_point + i);
189 } 188 }
190 [controller_ webViewScrollViewDidEndDragging:webViewScrollViewProxy_ 189 [controller_ webViewScrollViewDidEndDragging:webViewScrollViewProxy_
191 willDecelerate:NO]; 190 willDecelerate:NO];
192 EXPECT_TRUE(IsHeaderHidden()); 191 EXPECT_TRUE(IsHeaderHidden());
193 } 192 }
194 193
195 TEST_F(FullscreenControllerTest, PartialManualScrollUpHides) { 194 TEST_F(FullscreenControllerTest, PartialManualScrollUpHides) {
196 MoveMiddle(); 195 MoveMiddle();
197 196
198 [controller_ webViewScrollViewWillBeginDragging:webViewScrollViewProxy_]; 197 [controller_ webViewScrollViewWillBeginDragging:webViewScrollViewProxy_];
199 198
200 CGFloat middle_point = webViewScrollViewProxy_.get().contentOffset.y; 199 CGFloat middle_point = webViewScrollViewProxy_.contentOffset.y;
201 // Move up a bit, multiple times 200 // Move up a bit, multiple times
202 for (float i = 0.0; i < (kHeaderHeight * (2.0 / 3.0)); i++) { 201 for (float i = 0.0; i < (kHeaderHeight * (2.0 / 3.0)); i++) {
203 webViewScrollViewProxy_.get().contentOffset = 202 webViewScrollViewProxy_.contentOffset = CGPointMake(0.0, middle_point + i);
204 CGPointMake(0.0, middle_point + i);
205 } 203 }
206 [controller_ webViewScrollViewDidEndDragging:webViewScrollViewProxy_ 204 [controller_ webViewScrollViewDidEndDragging:webViewScrollViewProxy_
207 willDecelerate:NO]; 205 willDecelerate:NO];
208 EXPECT_TRUE(IsHeaderHidden()); 206 EXPECT_TRUE(IsHeaderHidden());
209 } 207 }
210 208
211 TEST_F(FullscreenControllerTest, SmallPartialManualScrollUpNoEffect) { 209 TEST_F(FullscreenControllerTest, SmallPartialManualScrollUpNoEffect) {
212 MoveMiddle(); 210 MoveMiddle();
213 211
214 [controller_ webViewScrollViewWillBeginDragging:webViewScrollViewProxy_]; 212 [controller_ webViewScrollViewWillBeginDragging:webViewScrollViewProxy_];
215 213
216 CGFloat middle_point = webViewScrollViewProxy_.get().contentOffset.y; 214 CGFloat middle_point = webViewScrollViewProxy_.contentOffset.y;
217 // Move up a bit, multiple times 215 // Move up a bit, multiple times
218 for (float i = 0.0; i < (kHeaderHeight / 3.0); i++) { 216 for (float i = 0.0; i < (kHeaderHeight / 3.0); i++) {
219 webViewScrollViewProxy_.get().contentOffset = 217 webViewScrollViewProxy_.contentOffset = CGPointMake(0.0, middle_point + i);
220 CGPointMake(0.0, middle_point + i);
221 } 218 }
222 [controller_ webViewScrollViewDidEndDragging:webViewScrollViewProxy_ 219 [controller_ webViewScrollViewDidEndDragging:webViewScrollViewProxy_
223 willDecelerate:NO]; 220 willDecelerate:NO];
224 EXPECT_TRUE(IsHeaderVisible()); 221 EXPECT_TRUE(IsHeaderVisible());
225 } 222 }
226 223
227 TEST_F(FullscreenControllerTest, LargeManualScrollDownShows) { 224 TEST_F(FullscreenControllerTest, LargeManualScrollDownShows) {
228 MoveMiddleAndHide(); 225 MoveMiddleAndHide();
229 226
230 [controller_ webViewScrollViewWillBeginDragging:webViewScrollViewProxy_]; 227 [controller_ webViewScrollViewWillBeginDragging:webViewScrollViewProxy_];
231 228
232 CGFloat middle_point = webViewScrollViewProxy_.get().contentOffset.y; 229 CGFloat middle_point = webViewScrollViewProxy_.contentOffset.y;
233 // Move down a bit, multiple times 230 // Move down a bit, multiple times
234 for (float i = 0.0; i < kHeaderHeight * 2.0; i++) { 231 for (float i = 0.0; i < kHeaderHeight * 2.0; i++) {
235 webViewScrollViewProxy_.get().contentOffset = 232 webViewScrollViewProxy_.contentOffset = CGPointMake(0.0, middle_point - i);
236 CGPointMake(0.0, middle_point - i);
237 } 233 }
238 [controller_ webViewScrollViewDidEndDragging:webViewScrollViewProxy_ 234 [controller_ webViewScrollViewDidEndDragging:webViewScrollViewProxy_
239 willDecelerate:NO]; 235 willDecelerate:NO];
240 EXPECT_TRUE(IsHeaderVisible()); 236 EXPECT_TRUE(IsHeaderVisible());
241 } 237 }
242 238
243 TEST_F(FullscreenControllerTest, PartialManualScrollDownShows) { 239 TEST_F(FullscreenControllerTest, PartialManualScrollDownShows) {
244 MoveMiddleAndHide(); 240 MoveMiddleAndHide();
245 241
246 [controller_ webViewScrollViewWillBeginDragging:webViewScrollViewProxy_]; 242 [controller_ webViewScrollViewWillBeginDragging:webViewScrollViewProxy_];
247 243
248 CGFloat middle_point = webViewScrollViewProxy_.get().contentOffset.y; 244 CGFloat middle_point = webViewScrollViewProxy_.contentOffset.y;
249 // Move down a bit, multiple times 245 // Move down a bit, multiple times
250 for (float i = 0.0; i < (kHeaderHeight * (2.0 / 3.0)); i++) { 246 for (float i = 0.0; i < (kHeaderHeight * (2.0 / 3.0)); i++) {
251 webViewScrollViewProxy_.get().contentOffset = 247 webViewScrollViewProxy_.contentOffset = CGPointMake(0.0, middle_point - i);
252 CGPointMake(0.0, middle_point - i);
253 } 248 }
254 [controller_ webViewScrollViewDidEndDragging:webViewScrollViewProxy_ 249 [controller_ webViewScrollViewDidEndDragging:webViewScrollViewProxy_
255 willDecelerate:NO]; 250 willDecelerate:NO];
256 EXPECT_TRUE(IsHeaderVisible()); 251 EXPECT_TRUE(IsHeaderVisible());
257 } 252 }
258 253
259 TEST_F(FullscreenControllerTest, SmallPartialManualScrollDownNoEffect) { 254 TEST_F(FullscreenControllerTest, SmallPartialManualScrollDownNoEffect) {
260 MoveMiddleAndHide(); 255 MoveMiddleAndHide();
261 256
262 [controller_ webViewScrollViewWillBeginDragging:webViewScrollViewProxy_]; 257 [controller_ webViewScrollViewWillBeginDragging:webViewScrollViewProxy_];
263 258
264 CGFloat middle_point = webViewScrollViewProxy_.get().contentOffset.y; 259 CGFloat middle_point = webViewScrollViewProxy_.contentOffset.y;
265 // Move up a bit, multiple times 260 // Move up a bit, multiple times
266 for (float i = 0.0; i < (kHeaderHeight / 3.0); i++) { 261 for (float i = 0.0; i < (kHeaderHeight / 3.0); i++) {
267 webViewScrollViewProxy_.get().contentOffset = 262 webViewScrollViewProxy_.contentOffset = CGPointMake(0.0, middle_point - i);
268 CGPointMake(0.0, middle_point - i);
269 } 263 }
270 [controller_ webViewScrollViewDidEndDragging:webViewScrollViewProxy_ 264 [controller_ webViewScrollViewDidEndDragging:webViewScrollViewProxy_
271 willDecelerate:NO]; 265 willDecelerate:NO];
272 EXPECT_TRUE(IsHeaderHidden()); 266 EXPECT_TRUE(IsHeaderHidden());
273 } 267 }
274 268
275 #pragma mark - Page load. 269 #pragma mark - Page load.
276 270
277 TEST_F(FullscreenControllerTest, NoHideOnEnable) { 271 TEST_F(FullscreenControllerTest, NoHideOnEnable) {
278 [controller_ disableFullScreen]; 272 [controller_ disableFullScreen];
279 webViewScrollViewProxy_.get().contentOffset = CGPointMake(0.0, 10.0); 273 webViewScrollViewProxy_.contentOffset = CGPointMake(0.0, 10.0);
280 EXPECT_TRUE(IsHeaderVisible()); 274 EXPECT_TRUE(IsHeaderVisible());
281 275
282 [controller_ enableFullScreen]; 276 [controller_ enableFullScreen];
283 277
284 EXPECT_TRUE(IsHeaderVisible()); 278 EXPECT_TRUE(IsHeaderVisible());
285 } 279 }
286 280
287 TEST_F(FullscreenControllerTest, NoHideOnEnableDueToManualScroll) { 281 TEST_F(FullscreenControllerTest, NoHideOnEnableDueToManualScroll) {
288 [controller_ disableFullScreen]; 282 [controller_ disableFullScreen];
289 webViewScrollViewProxy_.get().contentOffset = CGPointMake(0.0, 1.0); 283 webViewScrollViewProxy_.contentOffset = CGPointMake(0.0, 1.0);
290 EXPECT_TRUE(IsHeaderVisible()); 284 EXPECT_TRUE(IsHeaderVisible());
291 285
292 [controller_ webViewScrollViewWillBeginDragging:webViewScrollViewProxy_]; 286 [controller_ webViewScrollViewWillBeginDragging:webViewScrollViewProxy_];
293 webViewScrollViewProxy_.get().contentOffset = CGPointMake(0.0, 10.0); 287 webViewScrollViewProxy_.contentOffset = CGPointMake(0.0, 10.0);
294 EXPECT_TRUE(IsHeaderVisible()); 288 EXPECT_TRUE(IsHeaderVisible());
295 [controller_ webViewScrollViewDidEndDragging:webViewScrollViewProxy_ 289 [controller_ webViewScrollViewDidEndDragging:webViewScrollViewProxy_
296 willDecelerate:NO]; 290 willDecelerate:NO];
297 291
298 [controller_ enableFullScreen]; 292 [controller_ enableFullScreen];
299 293
300 EXPECT_TRUE(IsHeaderVisible()); 294 EXPECT_TRUE(IsHeaderVisible());
301 } 295 }
302 296
303 #pragma mark - Keyboard. 297 #pragma mark - Keyboard.
304 298
305 TEST_F(FullscreenControllerTest, KeyboardAppearanceOnNonFullscreenPage) { 299 TEST_F(FullscreenControllerTest, KeyboardAppearanceOnNonFullscreenPage) {
306 // Add a textfield. 300 // Add a textfield.
307 base::scoped_nsobject<UITextField> textField([[UITextField alloc] init]); 301 UITextField* textField = [[UITextField alloc] init];
308 AddSubViewToScrollView(textField); 302 AddSubViewToScrollView(textField);
309 EXPECT_TRUE(IsHeaderVisible()); 303 EXPECT_TRUE(IsHeaderVisible());
310 304
311 // Show the keyboard. 305 // Show the keyboard.
312 [textField becomeFirstResponder]; 306 [textField becomeFirstResponder];
313 EXPECT_TRUE(IsHeaderVisible()); 307 EXPECT_TRUE(IsHeaderVisible());
314 308
315 // Hide the keyboard. 309 // Hide the keyboard.
316 [textField resignFirstResponder]; 310 [textField resignFirstResponder];
317 EXPECT_TRUE(IsHeaderVisible()); 311 EXPECT_TRUE(IsHeaderVisible());
318 } 312 }
319 313
320 // TODO(lliabraa): Fails on Xcode 6 simulator (crbug.com/392433). 314 // TODO(lliabraa): Fails on Xcode 6 simulator (crbug.com/392433).
321 #if TARGET_IPHONE_SIMULATOR 315 #if TARGET_IPHONE_SIMULATOR
322 #define MAYBE_KeyboardAppearanceOnFullscreenPage \ 316 #define MAYBE_KeyboardAppearanceOnFullscreenPage \
323 KeyboardAppearanceOnFullscreenPage 317 KeyboardAppearanceOnFullscreenPage
324 #else 318 #else
325 #define MAYBE_KeyboardAppearanceOnFullscreenPage \ 319 #define MAYBE_KeyboardAppearanceOnFullscreenPage \
326 KeyboardAppearanceOnFullscreenPage 320 KeyboardAppearanceOnFullscreenPage
327 #endif 321 #endif
328 TEST_F(FullscreenControllerTest, MAYBE_KeyboardAppearanceOnFullscreenPage) { 322 TEST_F(FullscreenControllerTest, MAYBE_KeyboardAppearanceOnFullscreenPage) {
329 // Scroll a bit to hide the toolbar. 323 // Scroll a bit to hide the toolbar.
330 MoveMiddleAndHide(); 324 MoveMiddleAndHide();
331 325
332 // Add a textfield. 326 // Add a textfield.
333 base::scoped_nsobject<UITextField> textField([[UITextField alloc] init]); 327 UITextField* textField = [[UITextField alloc] init];
334 AddSubViewToScrollView(textField); 328 AddSubViewToScrollView(textField);
335 EXPECT_TRUE(IsHeaderHidden()); 329 EXPECT_TRUE(IsHeaderHidden());
336 330
337 // Show the keyboard. 331 // Show the keyboard.
338 [textField becomeFirstResponder]; 332 [textField becomeFirstResponder];
339 EXPECT_TRUE(IsHeaderVisible()); 333 EXPECT_TRUE(IsHeaderVisible());
340 334
341 // Hide the keyboard. 335 // Hide the keyboard.
342 [textField resignFirstResponder]; 336 [textField resignFirstResponder];
343 337
344 // Toolbars are never auto-hidden. 338 // Toolbars are never auto-hidden.
345 EXPECT_FALSE(IsHeaderHidden()); 339 EXPECT_FALSE(IsHeaderHidden());
346 } 340 }
347 341
348 // TODO(lliabraa): Fails on Xcode 6 simulator (crbug.com/392433). 342 // TODO(lliabraa): Fails on Xcode 6 simulator (crbug.com/392433).
349 #if TARGET_IPHONE_SIMULATOR 343 #if TARGET_IPHONE_SIMULATOR
350 #define MAYBE_KeyboardStayOnUserScrollOnNonFullscreenPage \ 344 #define MAYBE_KeyboardStayOnUserScrollOnNonFullscreenPage \
351 KeyboardStayOnUserScrollOnNonFullscreenPage 345 KeyboardStayOnUserScrollOnNonFullscreenPage
352 #else 346 #else
353 #define MAYBE_KeyboardStayOnUserScrollOnNonFullscreenPage \ 347 #define MAYBE_KeyboardStayOnUserScrollOnNonFullscreenPage \
354 KeyboardStayOnUserScrollOnNonFullscreenPage 348 KeyboardStayOnUserScrollOnNonFullscreenPage
355 #endif 349 #endif
356 TEST_F(FullscreenControllerTest, 350 TEST_F(FullscreenControllerTest,
357 MAYBE_KeyboardStayOnUserScrollOnNonFullscreenPage) { 351 MAYBE_KeyboardStayOnUserScrollOnNonFullscreenPage) {
358 // Add a textfield. 352 // Add a textfield.
359 base::scoped_nsobject<UITextField> textField([[UITextField alloc] init]); 353 UITextField* textField = [[UITextField alloc] init];
360 AddSubViewToScrollView(textField); 354 AddSubViewToScrollView(textField);
361 EXPECT_TRUE(IsHeaderVisible()); 355 EXPECT_TRUE(IsHeaderVisible());
362 356
363 // Show the keyboard. 357 // Show the keyboard.
364 [textField becomeFirstResponder]; 358 [textField becomeFirstResponder];
365 EXPECT_TRUE(IsHeaderVisible()); 359 EXPECT_TRUE(IsHeaderVisible());
366 360
367 // Scroll. 361 // Scroll.
368 [controller_ webViewScrollViewWillBeginDragging:webViewScrollViewProxy_]; 362 [controller_ webViewScrollViewWillBeginDragging:webViewScrollViewProxy_];
369 webViewScrollViewProxy_.get().contentOffset = CGPointMake(0.0, 100.0); 363 webViewScrollViewProxy_.contentOffset = CGPointMake(0.0, 100.0);
370 [controller_ webViewScrollViewDidEndDragging:webViewScrollViewProxy_ 364 [controller_ webViewScrollViewDidEndDragging:webViewScrollViewProxy_
371 willDecelerate:NO]; 365 willDecelerate:NO];
372 EXPECT_TRUE(IsHeaderVisible()); 366 EXPECT_TRUE(IsHeaderVisible());
373 367
374 // Hide the keyboard. 368 // Hide the keyboard.
375 [textField resignFirstResponder]; 369 [textField resignFirstResponder];
376 EXPECT_TRUE(IsHeaderVisible()); 370 EXPECT_TRUE(IsHeaderVisible());
377 } 371 }
378 372
379 } // namespace 373 } // namespace
OLDNEW
« no previous file with comments | « ios/chrome/browser/ui/file_locations_unittest.mm ('k') | ios/chrome/browser/ui/key_commands_provider_unittest.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698