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

Side by Side Diff: chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_controller_unittest.mm

Issue 17593006: mac: Update clients of scoped_nsobject.h. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: iwyu, scoped_nsprotocol Created 7 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 | Annotate | Revision Log
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 "base/basictypes.h" 5 #include "base/basictypes.h"
6 #include "base/memory/scoped_nsobject.h" 6 #include "base/mac/scoped_nsobject.h"
7 #include "base/strings/utf_string_conversions.h" 7 #include "base/strings/utf_string_conversions.h"
8 #include "chrome/browser/bookmarks/bookmark_model.h" 8 #include "chrome/browser/bookmarks/bookmark_model.h"
9 #include "chrome/browser/bookmarks/bookmark_model_factory.h" 9 #include "chrome/browser/bookmarks/bookmark_model_factory.h"
10 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_constants.h" 10 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_constants.h"
11 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.h" 11 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.h"
12 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_button_cell.h" 12 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_button_cell.h"
13 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_controller.h" 13 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_controller.h"
14 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_unittest_helper.h" 14 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_unittest_helper.h"
15 #include "chrome/browser/ui/cocoa/cocoa_profile_test.h" 15 #include "chrome/browser/ui/cocoa/cocoa_profile_test.h"
16 #import "chrome/browser/ui/cocoa/cocoa_test_helper.h" 16 #import "chrome/browser/ui/cocoa/cocoa_test_helper.h"
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 122
123 - (void)childFolderWillClose:(id<BookmarkButtonControllerProtocol>)child { 123 - (void)childFolderWillClose:(id<BookmarkButtonControllerProtocol>)child {
124 [childFolderDelegate_ childFolderWillClose:child]; 124 [childFolderDelegate_ childFolderWillClose:child];
125 } 125 }
126 126
127 @end 127 @end
128 128
129 129
130 class BookmarkBarFolderControllerTest : public CocoaProfileTest { 130 class BookmarkBarFolderControllerTest : public CocoaProfileTest {
131 public: 131 public:
132 scoped_nsobject<BookmarkBarControllerChildFolderRedirect> bar_; 132 base::scoped_nsobject<BookmarkBarControllerChildFolderRedirect> bar_;
133 const BookmarkNode* folderA_; // Owned by model. 133 const BookmarkNode* folderA_; // Owned by model.
134 const BookmarkNode* longTitleNode_; // Owned by model. 134 const BookmarkNode* longTitleNode_; // Owned by model.
135 135
136 virtual void SetUp() { 136 virtual void SetUp() {
137 CocoaProfileTest::SetUp(); 137 CocoaProfileTest::SetUp();
138 ASSERT_TRUE(profile()); 138 ASSERT_TRUE(profile());
139 139
140 CreateModel(); 140 CreateModel();
141 } 141 }
142 142
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 initWithParentButton:parentButton 210 initWithParentButton:parentButton
211 parentController:nil 211 parentController:nil
212 barController:bar_ 212 barController:bar_
213 profile:profile()]; 213 profile:profile()];
214 [c window]; // Force nib load. 214 [c window]; // Force nib load.
215 return c; 215 return c;
216 } 216 }
217 }; 217 };
218 218
219 TEST_F(BookmarkBarFolderControllerTest, InitCreateAndDelete) { 219 TEST_F(BookmarkBarFolderControllerTest, InitCreateAndDelete) {
220 scoped_nsobject<BookmarkBarFolderController> bbfc; 220 base::scoped_nsobject<BookmarkBarFolderController> bbfc;
221 bbfc.reset(SimpleBookmarkBarFolderController()); 221 bbfc.reset(SimpleBookmarkBarFolderController());
222 222
223 // Make sure none of the buttons overlap, that all are inside 223 // Make sure none of the buttons overlap, that all are inside
224 // the content frame, and their cells are of the proper class. 224 // the content frame, and their cells are of the proper class.
225 NSArray* buttons = [bbfc buttons]; 225 NSArray* buttons = [bbfc buttons];
226 EXPECT_TRUE([buttons count]); 226 EXPECT_TRUE([buttons count]);
227 for (unsigned int i = 0; i < ([buttons count]-1); i++) { 227 for (unsigned int i = 0; i < ([buttons count]-1); i++) {
228 EXPECT_FALSE(NSContainsRect([[buttons objectAtIndex:i] frame], 228 EXPECT_FALSE(NSContainsRect([[buttons objectAtIndex:i] frame],
229 [[buttons objectAtIndex:i+1] frame])); 229 [[buttons objectAtIndex:i+1] frame]));
230 } 230 }
(...skipping 13 matching lines...) Expand all
244 if ([button isFolder]) 244 if ([button isFolder])
245 EXPECT_FALSE([button toolTip]); 245 EXPECT_FALSE([button toolTip]);
246 else 246 else
247 EXPECT_TRUE([button toolTip]); 247 EXPECT_TRUE([button toolTip]);
248 } 248 }
249 } 249 }
250 250
251 // Make sure closing of the window releases the controller. 251 // Make sure closing of the window releases the controller.
252 // (e.g. valgrind shouldn't complain if we do this). 252 // (e.g. valgrind shouldn't complain if we do this).
253 TEST_F(BookmarkBarFolderControllerTest, ReleaseOnClose) { 253 TEST_F(BookmarkBarFolderControllerTest, ReleaseOnClose) {
254 scoped_nsobject<BookmarkBarFolderController> bbfc; 254 base::scoped_nsobject<BookmarkBarFolderController> bbfc;
255 bbfc.reset(SimpleBookmarkBarFolderController()); 255 bbfc.reset(SimpleBookmarkBarFolderController());
256 EXPECT_TRUE(bbfc.get()); 256 EXPECT_TRUE(bbfc.get());
257 257
258 [bbfc retain]; // stop the scoped_nsobject from doing anything 258 [bbfc retain]; // stop the scoped_nsobject from doing anything
259 [[bbfc window] close]; // trigger an autorelease of bbfc.get() 259 [[bbfc window] close]; // trigger an autorelease of bbfc.get()
260 } 260 }
261 261
262 TEST_F(BookmarkBarFolderControllerTest, BasicPosition) { 262 TEST_F(BookmarkBarFolderControllerTest, BasicPosition) {
263 BookmarkButton* parentButton = [[bar_ buttons] objectAtIndex:0]; 263 BookmarkButton* parentButton = [[bar_ buttons] objectAtIndex:0];
264 EXPECT_TRUE(parentButton); 264 EXPECT_TRUE(parentButton);
265 265
266 // If parent is a BookmarkBarController, grow down. 266 // If parent is a BookmarkBarController, grow down.
267 scoped_nsobject<BookmarkBarFolderController> bbfc; 267 base::scoped_nsobject<BookmarkBarFolderController> bbfc;
268 bbfc.reset([[BookmarkBarFolderController alloc] 268 bbfc.reset([[BookmarkBarFolderController alloc]
269 initWithParentButton:parentButton 269 initWithParentButton:parentButton
270 parentController:nil 270 parentController:nil
271 barController:bar_ 271 barController:bar_
272 profile:profile()]); 272 profile:profile()]);
273 [bbfc window]; 273 [bbfc window];
274 NSPoint pt = [bbfc windowTopLeftForWidth:0 height:100]; // screen coords 274 NSPoint pt = [bbfc windowTopLeftForWidth:0 height:100]; // screen coords
275 NSPoint buttonOriginInWindow = 275 NSPoint buttonOriginInWindow =
276 [parentButton convertRect:[parentButton bounds] 276 [parentButton convertRect:[parentButton bounds]
277 toView:nil].origin; 277 toView:nil].origin;
278 NSPoint buttonOriginInScreen = 278 NSPoint buttonOriginInScreen =
279 [[parentButton window] convertBaseToScreen:buttonOriginInWindow]; 279 [[parentButton window] convertBaseToScreen:buttonOriginInWindow];
280 // Within margin 280 // Within margin
281 EXPECT_LE(abs(pt.x - buttonOriginInScreen.x), 281 EXPECT_LE(abs(pt.x - buttonOriginInScreen.x),
282 bookmarks::kBookmarkMenuOverlap + 1); 282 bookmarks::kBookmarkMenuOverlap + 1);
283 EXPECT_LE(abs(pt.y - buttonOriginInScreen.y), 283 EXPECT_LE(abs(pt.y - buttonOriginInScreen.y),
284 bookmarks::kBookmarkMenuOverlap + 1); 284 bookmarks::kBookmarkMenuOverlap + 1);
285 285
286 // Make sure we see the window shift left if it spills off the screen 286 // Make sure we see the window shift left if it spills off the screen
287 pt = [bbfc windowTopLeftForWidth:0 height:100]; 287 pt = [bbfc windowTopLeftForWidth:0 height:100];
288 NSPoint shifted = [bbfc windowTopLeftForWidth:9999999 height:100]; 288 NSPoint shifted = [bbfc windowTopLeftForWidth:9999999 height:100];
289 EXPECT_LT(shifted.x, pt.x); 289 EXPECT_LT(shifted.x, pt.x);
290 290
291 // If parent is a BookmarkBarFolderController, grow right. 291 // If parent is a BookmarkBarFolderController, grow right.
292 scoped_nsobject<BookmarkBarFolderController> bbfc2; 292 base::scoped_nsobject<BookmarkBarFolderController> bbfc2;
293 bbfc2.reset([[BookmarkBarFolderController alloc] 293 bbfc2.reset([[BookmarkBarFolderController alloc]
294 initWithParentButton:[[bbfc buttons] objectAtIndex:0] 294 initWithParentButton:[[bbfc buttons] objectAtIndex:0]
295 parentController:bbfc.get() 295 parentController:bbfc.get()
296 barController:bar_ 296 barController:bar_
297 profile:profile()]); 297 profile:profile()]);
298 [bbfc2 window]; 298 [bbfc2 window];
299 pt = [bbfc2 windowTopLeftForWidth:0 height:100]; 299 pt = [bbfc2 windowTopLeftForWidth:0 height:100];
300 // We're now overlapping the window a bit. 300 // We're now overlapping the window a bit.
301 EXPECT_EQ(pt.x, NSMaxX([[bbfc.get() window] frame]) - 301 EXPECT_EQ(pt.x, NSMaxX([[bbfc.get() window] frame]) -
302 bookmarks::kBookmarkMenuOverlap); 302 bookmarks::kBookmarkMenuOverlap);
(...skipping 13 matching lines...) Expand all
316 folder = model->AddFolder(folder, 0, ASCIIToUTF16("nested folder")); 316 folder = model->AddFolder(folder, 0, ASCIIToUTF16("nested folder"));
317 } 317 }
318 318
319 // Setup initial state for opening all folders. 319 // Setup initial state for opening all folders.
320 folder = parent; 320 folder = parent;
321 BookmarkButton* parentButton = [[bar_ buttons] objectAtIndex:0]; 321 BookmarkButton* parentButton = [[bar_ buttons] objectAtIndex:0];
322 BookmarkBarFolderController* parentController = nil; 322 BookmarkBarFolderController* parentController = nil;
323 EXPECT_TRUE(parentButton); 323 EXPECT_TRUE(parentButton);
324 324
325 // Open them all. 325 // Open them all.
326 scoped_nsobject<NSMutableArray> folder_controller_array; 326 base::scoped_nsobject<NSMutableArray> folder_controller_array;
327 folder_controller_array.reset([[NSMutableArray array] retain]); 327 folder_controller_array.reset([[NSMutableArray array] retain]);
328 for (i=0; i<count; i++) { 328 for (i=0; i<count; i++) {
329 BookmarkBarFolderControllerNoLevel* bbfcl = 329 BookmarkBarFolderControllerNoLevel* bbfcl =
330 [[BookmarkBarFolderControllerNoLevel alloc] 330 [[BookmarkBarFolderControllerNoLevel alloc]
331 initWithParentButton:parentButton 331 initWithParentButton:parentButton
332 parentController:parentController 332 parentController:parentController
333 barController:bar_ 333 barController:bar_
334 profile:profile()]; 334 profile:profile()];
335 [folder_controller_array addObject:bbfcl]; 335 [folder_controller_array addObject:bbfcl];
336 [bbfcl autorelease]; 336 [bbfcl autorelease];
(...skipping 24 matching lines...) Expand all
361 i = j; 361 i = j;
362 362
363 // Finally, confirm we see a "grow right" once more. 363 // Finally, confirm we see a "grow right" once more.
364 while (leftPositions[i] < leftPositions[i-1]) 364 while (leftPositions[i] < leftPositions[i-1])
365 i++; 365 i++;
366 // (No need to EXPECT a final "grow right"; if we didn't find one 366 // (No need to EXPECT a final "grow right"; if we didn't find one
367 // we'd get a C++ array bounds exception). 367 // we'd get a C++ array bounds exception).
368 } 368 }
369 369
370 TEST_F(BookmarkBarFolderControllerTest, DropDestination) { 370 TEST_F(BookmarkBarFolderControllerTest, DropDestination) {
371 scoped_nsobject<BookmarkBarFolderController> bbfc; 371 base::scoped_nsobject<BookmarkBarFolderController> bbfc;
372 bbfc.reset(SimpleBookmarkBarFolderController()); 372 bbfc.reset(SimpleBookmarkBarFolderController());
373 EXPECT_TRUE(bbfc.get()); 373 EXPECT_TRUE(bbfc.get());
374 374
375 // Confirm "off the top" and "off the bottom" match no buttons. 375 // Confirm "off the top" and "off the bottom" match no buttons.
376 NSPoint p = NSMakePoint(NSMidX([[bbfc folderView] frame]), 10000); 376 NSPoint p = NSMakePoint(NSMidX([[bbfc folderView] frame]), 10000);
377 EXPECT_FALSE([bbfc buttonForDroppingOnAtPoint:p]); 377 EXPECT_FALSE([bbfc buttonForDroppingOnAtPoint:p]);
378 EXPECT_TRUE([bbfc shouldShowIndicatorShownForPoint:p]); 378 EXPECT_TRUE([bbfc shouldShowIndicatorShownForPoint:p]);
379 p = NSMakePoint(NSMidX([[bbfc folderView] frame]), -1); 379 p = NSMakePoint(NSMidX([[bbfc folderView] frame]), -1);
380 EXPECT_FALSE([bbfc buttonForDroppingOnAtPoint:p]); 380 EXPECT_FALSE([bbfc buttonForDroppingOnAtPoint:p]);
381 EXPECT_TRUE([bbfc shouldShowIndicatorShownForPoint:p]); 381 EXPECT_TRUE([bbfc shouldShowIndicatorShownForPoint:p]);
(...skipping 15 matching lines...) Expand all
397 } else { 397 } else {
398 // If not a folder we don't drop into it. 398 // If not a folder we don't drop into it.
399 EXPECT_FALSE([bbfc buttonForDroppingOnAtPoint:NSMakePoint(x-1, y+1)]); 399 EXPECT_FALSE([bbfc buttonForDroppingOnAtPoint:NSMakePoint(x-1, y+1)]);
400 EXPECT_FALSE([bbfc buttonForDroppingOnAtPoint:NSMakePoint(x+1, y-1)]); 400 EXPECT_FALSE([bbfc buttonForDroppingOnAtPoint:NSMakePoint(x+1, y-1)]);
401 EXPECT_TRUE([bbfc shouldShowIndicatorShownForPoint:NSMakePoint(x, y)]);; 401 EXPECT_TRUE([bbfc shouldShowIndicatorShownForPoint:NSMakePoint(x, y)]);;
402 } 402 }
403 } 403 }
404 } 404 }
405 405
406 TEST_F(BookmarkBarFolderControllerTest, OpenFolder) { 406 TEST_F(BookmarkBarFolderControllerTest, OpenFolder) {
407 scoped_nsobject<BookmarkBarFolderController> bbfc; 407 base::scoped_nsobject<BookmarkBarFolderController> bbfc;
408 bbfc.reset(SimpleBookmarkBarFolderController()); 408 bbfc.reset(SimpleBookmarkBarFolderController());
409 EXPECT_TRUE(bbfc.get()); 409 EXPECT_TRUE(bbfc.get());
410 410
411 EXPECT_FALSE([bbfc folderController]); 411 EXPECT_FALSE([bbfc folderController]);
412 BookmarkButton* button = [[bbfc buttons] objectAtIndex:0]; 412 BookmarkButton* button = [[bbfc buttons] objectAtIndex:0];
413 [bbfc openBookmarkFolderFromButton:button]; 413 [bbfc openBookmarkFolderFromButton:button];
414 id controller = [bbfc folderController]; 414 id controller = [bbfc folderController];
415 EXPECT_TRUE(controller); 415 EXPECT_TRUE(controller);
416 EXPECT_EQ([controller parentButton], button); 416 EXPECT_EQ([controller parentButton], button);
417 417
418 // Click the same one --> it gets closed. 418 // Click the same one --> it gets closed.
419 [bbfc openBookmarkFolderFromButton:[[bbfc buttons] objectAtIndex:0]]; 419 [bbfc openBookmarkFolderFromButton:[[bbfc buttons] objectAtIndex:0]];
420 EXPECT_FALSE([bbfc folderController]); 420 EXPECT_FALSE([bbfc folderController]);
421 421
422 // Open a new one --> change. 422 // Open a new one --> change.
423 [bbfc openBookmarkFolderFromButton:[[bbfc buttons] objectAtIndex:1]]; 423 [bbfc openBookmarkFolderFromButton:[[bbfc buttons] objectAtIndex:1]];
424 EXPECT_NE(controller, [bbfc folderController]); 424 EXPECT_NE(controller, [bbfc folderController]);
425 EXPECT_NE([[bbfc folderController] parentButton], button); 425 EXPECT_NE([[bbfc folderController] parentButton], button);
426 426
427 // Close it --> all gone! 427 // Close it --> all gone!
428 [bbfc closeBookmarkFolder:nil]; 428 [bbfc closeBookmarkFolder:nil];
429 EXPECT_FALSE([bbfc folderController]); 429 EXPECT_FALSE([bbfc folderController]);
430 } 430 }
431 431
432 TEST_F(BookmarkBarFolderControllerTest, DeleteOpenFolder) { 432 TEST_F(BookmarkBarFolderControllerTest, DeleteOpenFolder) {
433 scoped_nsobject<BookmarkBarFolderController> parent_controller( 433 base::scoped_nsobject<BookmarkBarFolderController> parent_controller(
434 SimpleBookmarkBarFolderController()); 434 SimpleBookmarkBarFolderController());
435 435
436 // Open a folder. 436 // Open a folder.
437 EXPECT_FALSE([parent_controller folderController]); 437 EXPECT_FALSE([parent_controller folderController]);
438 BookmarkButton* button = [[parent_controller buttons] objectAtIndex:0]; 438 BookmarkButton* button = [[parent_controller buttons] objectAtIndex:0];
439 [parent_controller openBookmarkFolderFromButton:button]; 439 [parent_controller openBookmarkFolderFromButton:button];
440 EXPECT_EQ([[parent_controller folderController] parentButton], button); 440 EXPECT_EQ([[parent_controller folderController] parentButton], button);
441 441
442 // Delete the folder's button - the folder should close. 442 // Delete the folder's button - the folder should close.
443 [parent_controller removeButton:0 animate:NO]; 443 [parent_controller removeButton:0 animate:NO];
444 EXPECT_FALSE([parent_controller folderController]); 444 EXPECT_FALSE([parent_controller folderController]);
445 } 445 }
446 446
447 TEST_F(BookmarkBarFolderControllerTest, ChildFolderCallbacks) { 447 TEST_F(BookmarkBarFolderControllerTest, ChildFolderCallbacks) {
448 scoped_nsobject<BookmarkBarFolderControllerPong> bbfc; 448 base::scoped_nsobject<BookmarkBarFolderControllerPong> bbfc;
449 bbfc.reset(SimpleBookmarkBarFolderController()); 449 bbfc.reset(SimpleBookmarkBarFolderController());
450 EXPECT_TRUE(bbfc.get()); 450 EXPECT_TRUE(bbfc.get());
451 [bar_ setChildFolderDelegate:bbfc.get()]; 451 [bar_ setChildFolderDelegate:bbfc.get()];
452 452
453 EXPECT_FALSE([bbfc childFolderWillShow]); 453 EXPECT_FALSE([bbfc childFolderWillShow]);
454 [bbfc openBookmarkFolderFromButton:[[bbfc buttons] objectAtIndex:0]]; 454 [bbfc openBookmarkFolderFromButton:[[bbfc buttons] objectAtIndex:0]];
455 EXPECT_TRUE([bbfc childFolderWillShow]); 455 EXPECT_TRUE([bbfc childFolderWillShow]);
456 456
457 EXPECT_FALSE([bbfc childFolderWillClose]); 457 EXPECT_FALSE([bbfc childFolderWillClose]);
458 [bbfc closeBookmarkFolder:nil]; 458 [bbfc closeBookmarkFolder:nil];
459 EXPECT_TRUE([bbfc childFolderWillClose]); 459 EXPECT_TRUE([bbfc childFolderWillClose]);
460 460
461 [bar_ setChildFolderDelegate:nil]; 461 [bar_ setChildFolderDelegate:nil];
462 } 462 }
463 463
464 // Make sure bookmark folders have variable widths. 464 // Make sure bookmark folders have variable widths.
465 TEST_F(BookmarkBarFolderControllerTest, ChildFolderWidth) { 465 TEST_F(BookmarkBarFolderControllerTest, ChildFolderWidth) {
466 scoped_nsobject<BookmarkBarFolderController> bbfc; 466 base::scoped_nsobject<BookmarkBarFolderController> bbfc;
467 467
468 bbfc.reset(SimpleBookmarkBarFolderController()); 468 bbfc.reset(SimpleBookmarkBarFolderController());
469 EXPECT_TRUE(bbfc.get()); 469 EXPECT_TRUE(bbfc.get());
470 [bbfc showWindow:bbfc.get()]; 470 [bbfc showWindow:bbfc.get()];
471 CGFloat wideWidth = NSWidth([[bbfc window] frame]); 471 CGFloat wideWidth = NSWidth([[bbfc window] frame]);
472 472
473 RemoveLongTitleNode(); 473 RemoveLongTitleNode();
474 bbfc.reset(SimpleBookmarkBarFolderController()); 474 bbfc.reset(SimpleBookmarkBarFolderController());
475 EXPECT_TRUE(bbfc.get()); 475 EXPECT_TRUE(bbfc.get());
476 CGFloat thinWidth = NSWidth([[bbfc window] frame]); 476 CGFloat thinWidth = NSWidth([[bbfc window] frame]);
477 477
478 // Make sure window size changed as expected. 478 // Make sure window size changed as expected.
479 EXPECT_GT(wideWidth, thinWidth); 479 EXPECT_GT(wideWidth, thinWidth);
480 } 480 }
481 481
482 // Simple scrolling tests. 482 // Simple scrolling tests.
483 // Currently flaky due to a changed definition of the correct menu boundaries. 483 // Currently flaky due to a changed definition of the correct menu boundaries.
484 TEST_F(BookmarkBarFolderControllerTest, DISABLED_SimpleScroll) { 484 TEST_F(BookmarkBarFolderControllerTest, DISABLED_SimpleScroll) {
485 scoped_nsobject<BookmarkBarFolderController> bbfc; 485 base::scoped_nsobject<BookmarkBarFolderController> bbfc;
486 NSRect screenFrame = [[NSScreen mainScreen] visibleFrame]; 486 NSRect screenFrame = [[NSScreen mainScreen] visibleFrame];
487 CGFloat screenHeight = NSHeight(screenFrame); 487 CGFloat screenHeight = NSHeight(screenFrame);
488 int nodecount = AddLotsOfNodes(); 488 int nodecount = AddLotsOfNodes();
489 bbfc.reset(SimpleBookmarkBarFolderController()); 489 bbfc.reset(SimpleBookmarkBarFolderController());
490 EXPECT_TRUE(bbfc.get()); 490 EXPECT_TRUE(bbfc.get());
491 [bbfc showWindow:bbfc.get()]; 491 [bbfc showWindow:bbfc.get()];
492 NSWindow* window = [bbfc window]; 492 NSWindow* window = [bbfc window];
493 493
494 // The window should be shorter than the screen but reach exactly to the 494 // The window should be shorter than the screen but reach exactly to the
495 // bottom of the screen since it's scrollable. 495 // bottom of the screen since it's scrollable.
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
565 EXPECT_TRUE(NSContainsRect(wholeScreenRect, [window frame])); 565 EXPECT_TRUE(NSContainsRect(wholeScreenRect, [window frame]));
566 } 566 }
567 567
568 EXPECT_GT(NSHeight(wholeScreenRect), NSHeight([window frame])); 568 EXPECT_GT(NSHeight(wholeScreenRect), NSHeight([window frame]));
569 EXPECT_TRUE(NSContainsRect(wholeScreenRect, [window frame])); 569 EXPECT_TRUE(NSContainsRect(wholeScreenRect, [window frame]));
570 } 570 }
571 571
572 // Folder menu sizing and placement while deleting bookmarks 572 // Folder menu sizing and placement while deleting bookmarks
573 // and scrolling tests. 573 // and scrolling tests.
574 TEST_F(BookmarkBarFolderControllerTest, MenuPlacementWhileScrollingDeleting) { 574 TEST_F(BookmarkBarFolderControllerTest, MenuPlacementWhileScrollingDeleting) {
575 scoped_nsobject<BookmarkBarFolderController> bbfc; 575 base::scoped_nsobject<BookmarkBarFolderController> bbfc;
576 AddLotsOfNodes(); 576 AddLotsOfNodes();
577 bbfc.reset(SimpleBookmarkBarFolderController()); 577 bbfc.reset(SimpleBookmarkBarFolderController());
578 [bbfc showWindow:bbfc.get()]; 578 [bbfc showWindow:bbfc.get()];
579 NSWindow* menuWindow = [bbfc window]; 579 NSWindow* menuWindow = [bbfc window];
580 BookmarkBarFolderController* folder = [bar_ folderController]; 580 BookmarkBarFolderController* folder = [bar_ folderController];
581 NSArray* buttons = [folder buttons]; 581 NSArray* buttons = [folder buttons];
582 582
583 // Before scrolling any, delete a bookmark and make sure the window top has 583 // Before scrolling any, delete a bookmark and make sure the window top has
584 // not moved. Pick a button which is near the top and visible. 584 // not moved. Pick a button which is near the top and visible.
585 CGFloat oldTop = [menuWindow frame].origin.y + NSHeight([menuWindow frame]); 585 CGFloat oldTop = [menuWindow frame].origin.y + NSHeight([menuWindow frame]);
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
618 --buttonCounter; 618 --buttonCounter;
619 } 619 }
620 button = [buttons objectAtIndex:buttonCounter + 3]; 620 button = [buttons objectAtIndex:buttonCounter + 3];
621 DeleteBookmark(button, profile()); 621 DeleteBookmark(button, profile());
622 newTop = [menuWindow frame].origin.y + NSHeight([menuWindow frame]); 622 newTop = [menuWindow frame].origin.y + NSHeight([menuWindow frame]);
623 EXPECT_CGFLOAT_EQ(oldTop - bookmarks::kScrollWindowVerticalMargin, newTop); 623 EXPECT_CGFLOAT_EQ(oldTop - bookmarks::kScrollWindowVerticalMargin, newTop);
624 } 624 }
625 625
626 // Make sure that we return the correct browser window. 626 // Make sure that we return the correct browser window.
627 TEST_F(BookmarkBarFolderControllerTest, BrowserWindow) { 627 TEST_F(BookmarkBarFolderControllerTest, BrowserWindow) {
628 scoped_nsobject<BookmarkBarFolderController> controller( 628 base::scoped_nsobject<BookmarkBarFolderController> controller(
629 SimpleBookmarkBarFolderController()); 629 SimpleBookmarkBarFolderController());
630 EXPECT_EQ([bar_ browserWindow], [controller browserWindow]); 630 EXPECT_EQ([bar_ browserWindow], [controller browserWindow]);
631 } 631 }
632 632
633 @interface FakedDragInfo : NSObject { 633 @interface FakedDragInfo : NSObject {
634 @public 634 @public
635 NSPoint dropLocation_; 635 NSPoint dropLocation_;
636 NSDragOperation sourceMask_; 636 NSDragOperation sourceMask_;
637 } 637 }
638 @property (nonatomic, assign) NSPoint dropLocation; 638 @property (nonatomic, assign) NSPoint dropLocation;
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
673 673
674 - (void)setDraggingSourceOperationMask:(NSDragOperation)mask { 674 - (void)setDraggingSourceOperationMask:(NSDragOperation)mask {
675 sourceMask_ = mask; 675 sourceMask_ = mask;
676 } 676 }
677 677
678 @end 678 @end
679 679
680 680
681 class BookmarkBarFolderControllerMenuTest : public CocoaProfileTest { 681 class BookmarkBarFolderControllerMenuTest : public CocoaProfileTest {
682 public: 682 public:
683 scoped_nsobject<NSView> parent_view_; 683 base::scoped_nsobject<NSView> parent_view_;
684 scoped_nsobject<ViewResizerPong> resizeDelegate_; 684 base::scoped_nsobject<ViewResizerPong> resizeDelegate_;
685 scoped_nsobject<BookmarkBarController> bar_; 685 base::scoped_nsobject<BookmarkBarController> bar_;
686 686
687 virtual void SetUp() { 687 virtual void SetUp() {
688 CocoaProfileTest::SetUp(); 688 CocoaProfileTest::SetUp();
689 ASSERT_TRUE(browser()); 689 ASSERT_TRUE(browser());
690 690
691 resizeDelegate_.reset([[ViewResizerPong alloc] init]); 691 resizeDelegate_.reset([[ViewResizerPong alloc] init]);
692 NSRect parent_frame = NSMakeRect(0, 0, 800, 50); 692 NSRect parent_frame = NSMakeRect(0, 0, 800, 50);
693 parent_view_.reset([[NSView alloc] initWithFrame:parent_frame]); 693 parent_view_.reset([[NSView alloc] initWithFrame:parent_frame]);
694 [parent_view_ setHidden:YES]; 694 [parent_view_ setHidden:YES];
695 bar_.reset([[BookmarkBarController alloc] 695 bar_.reset([[BookmarkBarController alloc]
(...skipping 676 matching lines...) Expand 10 before | Expand all | Expand 10 after
1372 model_test_utils::AddNodesFromModelString(model, other, other_string); 1372 model_test_utils::AddNodesFromModelString(model, other, other_string);
1373 1373
1374 // Validate initial model. 1374 // Validate initial model.
1375 std::string actual = model_test_utils::ModelStringFromNode(root); 1375 std::string actual = model_test_utils::ModelStringFromNode(root);
1376 EXPECT_EQ(model_string, actual); 1376 EXPECT_EQ(model_string, actual);
1377 actual = model_test_utils::ModelStringFromNode(other); 1377 actual = model_test_utils::ModelStringFromNode(other);
1378 EXPECT_EQ(other_string, actual); 1378 EXPECT_EQ(other_string, actual);
1379 1379
1380 // Pop open a folder. 1380 // Pop open a folder.
1381 BookmarkButton* button = [bar_ buttonWithTitleEqualTo:@"2f"]; 1381 BookmarkButton* button = [bar_ buttonWithTitleEqualTo:@"2f"];
1382 scoped_nsobject<BookmarkBarFolderControllerDragData> folderController; 1382 base::scoped_nsobject<BookmarkBarFolderControllerDragData> folderController;
1383 folderController.reset([[BookmarkBarFolderControllerDragData alloc] 1383 folderController.reset([[BookmarkBarFolderControllerDragData alloc]
1384 initWithParentButton:button 1384 initWithParentButton:button
1385 parentController:nil 1385 parentController:nil
1386 barController:bar_ 1386 barController:bar_
1387 profile:profile()]); 1387 profile:profile()]);
1388 BookmarkButton* targetButton = 1388 BookmarkButton* targetButton =
1389 [folderController buttonWithTitleEqualTo:@"2f1b"]; 1389 [folderController buttonWithTitleEqualTo:@"2f1b"];
1390 ASSERT_TRUE(targetButton); 1390 ASSERT_TRUE(targetButton);
1391 1391
1392 // Gen up some dragging data. 1392 // Gen up some dragging data.
1393 const BookmarkNode* newNode = other->GetChild(2); 1393 const BookmarkNode* newNode = other->GetChild(2);
1394 [folderController setDragDataNode:newNode]; 1394 [folderController setDragDataNode:newNode];
1395 scoped_nsobject<FakedDragInfo> dragInfo([[FakedDragInfo alloc] init]); 1395 base::scoped_nsobject<FakedDragInfo> dragInfo([[FakedDragInfo alloc] init]);
1396 [dragInfo setDropLocation:[targetButton top]]; 1396 [dragInfo setDropLocation:[targetButton top]];
1397 [folderController dragBookmarkData:(id<NSDraggingInfo>)dragInfo.get()]; 1397 [folderController dragBookmarkData:(id<NSDraggingInfo>)dragInfo.get()];
1398 1398
1399 // Verify the model. 1399 // Verify the model.
1400 const std::string expected("1b 2f:[ O3f:[ O3f1b O3f2f ] 2f1b 2f2f:[ 2f2f1b " 1400 const std::string expected("1b 2f:[ O3f:[ O3f1b O3f2f ] 2f1b 2f2f:[ 2f2f1b "
1401 "2f2f2b 2f2f3b ] 2f3b ] 3b 4b "); 1401 "2f2f2b 2f2f3b ] 2f3b ] 3b 4b ");
1402 actual = model_test_utils::ModelStringFromNode(root); 1402 actual = model_test_utils::ModelStringFromNode(root);
1403 EXPECT_EQ(expected, actual); 1403 EXPECT_EQ(expected, actual);
1404 1404
1405 // Now drag over a folder button. 1405 // Now drag over a folder button.
(...skipping 25 matching lines...) Expand all
1431 1431
1432 // Validate initial model. 1432 // Validate initial model.
1433 std::string actual = model_test_utils::ModelStringFromNode(root); 1433 std::string actual = model_test_utils::ModelStringFromNode(root);
1434 EXPECT_EQ(model_string, actual); 1434 EXPECT_EQ(model_string, actual);
1435 1435
1436 const BookmarkNode* folderNode = root->GetChild(1); 1436 const BookmarkNode* folderNode = root->GetChild(1);
1437 int oldFolderChildCount = folderNode->child_count(); 1437 int oldFolderChildCount = folderNode->child_count();
1438 1438
1439 // Pop open a folder. 1439 // Pop open a folder.
1440 BookmarkButton* button = [bar_ buttonWithTitleEqualTo:@"2f"]; 1440 BookmarkButton* button = [bar_ buttonWithTitleEqualTo:@"2f"];
1441 scoped_nsobject<BookmarkBarFolderControllerDragData> folderController; 1441 base::scoped_nsobject<BookmarkBarFolderControllerDragData> folderController;
1442 folderController.reset([[BookmarkBarFolderControllerDragData alloc] 1442 folderController.reset([[BookmarkBarFolderControllerDragData alloc]
1443 initWithParentButton:button 1443 initWithParentButton:button
1444 parentController:nil 1444 parentController:nil
1445 barController:bar_ 1445 barController:bar_
1446 profile:profile()]); 1446 profile:profile()]);
1447 1447
1448 // Drag a button to the trash. 1448 // Drag a button to the trash.
1449 BookmarkButton* buttonToDelete = 1449 BookmarkButton* buttonToDelete =
1450 [folderController buttonWithTitleEqualTo:@"2f1b"]; 1450 [folderController buttonWithTitleEqualTo:@"2f1b"];
1451 ASSERT_TRUE(buttonToDelete); 1451 ASSERT_TRUE(buttonToDelete);
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
1599 DeleteBookmark([folder parentButton], profile()); 1599 DeleteBookmark([folder parentButton], profile());
1600 EXPECT_FALSE([folder folderController]); 1600 EXPECT_FALSE([folder folderController]);
1601 } 1601 }
1602 1602
1603 // TODO(jrg): draggingEntered: and draggingExited: trigger timers so 1603 // TODO(jrg): draggingEntered: and draggingExited: trigger timers so
1604 // they are hard to test. Factor out "fire timers" into routines 1604 // they are hard to test. Factor out "fire timers" into routines
1605 // which can be overridden to fire immediately to make behavior 1605 // which can be overridden to fire immediately to make behavior
1606 // confirmable. 1606 // confirmable.
1607 // There is a similar problem with mouseEnteredButton: and 1607 // There is a similar problem with mouseEnteredButton: and
1608 // mouseExitedButton:. 1608 // mouseExitedButton:.
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698