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

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

Issue 10834161: Removing instances of profile_->GetBookmarkModel() as part of converting BookmarkModel to a PKS. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 4 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 #import <Cocoa/Cocoa.h> 5 #import <Cocoa/Cocoa.h>
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/memory/scoped_nsobject.h" 9 #include "base/memory/scoped_nsobject.h"
10 #include "base/string16.h" 10 #include "base/string16.h"
11 #include "base/string_util.h" 11 #include "base/string_util.h"
12 #include "base/sys_string_conversions.h" 12 #include "base/sys_string_conversions.h"
13 #include "base/utf_string_conversions.h" 13 #include "base/utf_string_conversions.h"
14 #include "chrome/browser/bookmarks/bookmark_model.h" 14 #include "chrome/browser/bookmarks/bookmark_model.h"
15 #include "chrome/browser/bookmarks/bookmark_model_factory.h"
15 #include "chrome/browser/bookmarks/bookmark_utils.h" 16 #include "chrome/browser/bookmarks/bookmark_utils.h"
16 #include "chrome/browser/extensions/test_extension_system.h" 17 #include "chrome/browser/extensions/test_extension_system.h"
17 #import "chrome/browser/ui/cocoa/animation_utils.h" 18 #import "chrome/browser/ui/cocoa/animation_utils.h"
18 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_constants.h" 19 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_constants.h"
19 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.h" 20 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.h"
20 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_window.h" 21 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_window.h"
21 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_unittest_helper.h" 22 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_unittest_helper.h"
22 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_view.h" 23 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_view.h"
23 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_button.h" 24 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_button.h"
24 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_button_cell.h" 25 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_button_cell.h"
(...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after
334 menu_item_.reset([[NSMenuItem alloc] 335 menu_item_.reset([[NSMenuItem alloc]
335 initWithTitle:@"still_dont_care" 336 initWithTitle:@"still_dont_care"
336 action:NULL 337 action:NULL
337 keyEquivalent:@""]); 338 keyEquivalent:@""]);
338 cell_.reset([[NSButtonCell alloc] init]); 339 cell_.reset([[NSButtonCell alloc] init]);
339 [menu_item_ setMenu:menu_.get()]; 340 [menu_item_ setMenu:menu_.get()];
340 } 341 }
341 342
342 // Return a menu item that points to the given URL. 343 // Return a menu item that points to the given URL.
343 NSMenuItem* ItemForBookmarkBarMenu(GURL& gurl) { 344 NSMenuItem* ItemForBookmarkBarMenu(GURL& gurl) {
344 BookmarkModel* model = profile()->GetBookmarkModel(); 345 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
345 const BookmarkNode* parent = model->bookmark_bar_node(); 346 const BookmarkNode* parent = model->bookmark_bar_node();
346 const BookmarkNode* node = model->AddURL(parent, parent->child_count(), 347 const BookmarkNode* node = model->AddURL(parent, parent->child_count(),
347 ASCIIToUTF16("A title"), gurl); 348 ASCIIToUTF16("A title"), gurl);
348 [menu_ setRepresentedObject:[NSNumber numberWithLongLong:node->id()]]; 349 [menu_ setRepresentedObject:[NSNumber numberWithLongLong:node->id()]];
349 return menu_item_; 350 return menu_item_;
350 } 351 }
351 352
352 // Does NOT take ownership of node. 353 // Does NOT take ownership of node.
353 NSMenuItem* ItemForBookmarkBarMenu(const BookmarkNode* node) { 354 NSMenuItem* ItemForBookmarkBarMenu(const BookmarkNode* node) {
354 [menu_ setRepresentedObject:[NSNumber numberWithLongLong:node->id()]]; 355 [menu_ setRepresentedObject:[NSNumber numberWithLongLong:node->id()]];
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
522 [[NSNotificationCenter defaultCenter] 523 [[NSNotificationCenter defaultCenter]
523 postNotificationName:NSViewFrameDidChangeNotification 524 postNotificationName:NSViewFrameDidChangeNotification
524 object:[bar view]]; 525 object:[bar view]];
525 526
526 EXPECT_GT([bar toggles], 0); 527 EXPECT_GT([bar toggles], 0);
527 } 528 }
528 529
529 // Confirm our "no items" container goes away when we add the 1st 530 // Confirm our "no items" container goes away when we add the 1st
530 // bookmark, and comes back when we delete the bookmark. 531 // bookmark, and comes back when we delete the bookmark.
531 TEST_F(BookmarkBarControllerTest, NoItemContainerGoesAway) { 532 TEST_F(BookmarkBarControllerTest, NoItemContainerGoesAway) {
532 BookmarkModel* model = profile()->GetBookmarkModel(); 533 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
533 const BookmarkNode* bar = model->bookmark_bar_node(); 534 const BookmarkNode* bar = model->bookmark_bar_node();
534 535
535 [bar_ loaded:model]; 536 [bar_ loaded:model];
536 BookmarkBarView* view = [bar_ buttonView]; 537 BookmarkBarView* view = [bar_ buttonView];
537 DCHECK(view); 538 DCHECK(view);
538 NSView* noItemContainer = [view noItemContainer]; 539 NSView* noItemContainer = [view noItemContainer];
539 DCHECK(noItemContainer); 540 DCHECK(noItemContainer);
540 541
541 EXPECT_FALSE([noItemContainer isHidden]); 542 EXPECT_FALSE([noItemContainer isHidden]);
542 const BookmarkNode* node = model->AddURL(bar, bar->child_count(), 543 const BookmarkNode* node = model->AddURL(bar, bar->child_count(),
(...skipping 12 matching lines...) Expand all
555 // Move it from Other Bookmarks to the bar. 556 // Move it from Other Bookmarks to the bar.
556 model->Move(node, bar, 0); 557 model->Move(node, bar, 0);
557 EXPECT_TRUE([noItemContainer isHidden]); 558 EXPECT_TRUE([noItemContainer isHidden]);
558 // Move it back to Other Bookmarks from the bar. 559 // Move it back to Other Bookmarks from the bar.
559 model->Move(node, otherBookmarks, 0); 560 model->Move(node, otherBookmarks, 0);
560 EXPECT_FALSE([noItemContainer isHidden]); 561 EXPECT_FALSE([noItemContainer isHidden]);
561 } 562 }
562 563
563 // Confirm off the side button only enabled when reasonable. 564 // Confirm off the side button only enabled when reasonable.
564 TEST_F(BookmarkBarControllerTest, OffTheSideButtonHidden) { 565 TEST_F(BookmarkBarControllerTest, OffTheSideButtonHidden) {
565 BookmarkModel* model = profile()->GetBookmarkModel(); 566 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
566 [bar_ setIgnoreAnimations:YES]; 567 [bar_ setIgnoreAnimations:YES];
567 568
568 [bar_ loaded:model]; 569 [bar_ loaded:model];
569 EXPECT_TRUE([bar_ offTheSideButtonIsHidden]); 570 EXPECT_TRUE([bar_ offTheSideButtonIsHidden]);
570 571
571 for (int i = 0; i < 2; i++) { 572 for (int i = 0; i < 2; i++) {
572 bookmark_utils::AddIfNotBookmarked( 573 bookmark_utils::AddIfNotBookmarked(
573 model, GURL("http://www.foo.com"), ASCIIToUTF16("small")); 574 model, GURL("http://www.foo.com"), ASCIIToUTF16("small"));
574 EXPECT_TRUE([bar_ offTheSideButtonIsHidden]); 575 EXPECT_TRUE([bar_ offTheSideButtonIsHidden]);
575 } 576 }
(...skipping 29 matching lines...) Expand all
605 } else { 606 } else {
606 EXPECT_TRUE([bar_ folderController]); 607 EXPECT_TRUE([bar_ folderController]);
607 } 608 }
608 } 609 }
609 } 610 }
610 611
611 // http://crbug.com/46175 is a crash when deleting bookmarks from the 612 // http://crbug.com/46175 is a crash when deleting bookmarks from the
612 // off-the-side menu while it is open. This test tries to bang hard 613 // off-the-side menu while it is open. This test tries to bang hard
613 // in this area to reproduce the crash. 614 // in this area to reproduce the crash.
614 TEST_F(BookmarkBarControllerTest, DeleteFromOffTheSideWhileItIsOpen) { 615 TEST_F(BookmarkBarControllerTest, DeleteFromOffTheSideWhileItIsOpen) {
615 BookmarkModel* model = profile()->GetBookmarkModel(); 616 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
616 [bar_ setIgnoreAnimations:YES]; 617 [bar_ setIgnoreAnimations:YES];
617 [bar_ loaded:model]; 618 [bar_ loaded:model];
618 619
619 // Add a lot of bookmarks (per the bug). 620 // Add a lot of bookmarks (per the bug).
620 const BookmarkNode* parent = model->bookmark_bar_node(); 621 const BookmarkNode* parent = model->bookmark_bar_node();
621 for (int i = 0; i < 100; i++) { 622 for (int i = 0; i < 100; i++) {
622 std::ostringstream title; 623 std::ostringstream title;
623 title << "super duper wide title " << i; 624 title << "super duper wide title " << i;
624 model->AddURL(parent, parent->child_count(), ASCIIToUTF16(title.str()), 625 model->AddURL(parent, parent->child_count(), ASCIIToUTF16(title.str()),
625 GURL("http://superfriends.hall-of-justice.edu")); 626 GURL("http://superfriends.hall-of-justice.edu"));
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
696 } 697 }
697 698
698 // Confirm uniqueness. 699 // Confirm uniqueness.
699 std::sort(tags.begin(), tags.end()); 700 std::sort(tags.begin(), tags.end());
700 for (unsigned int i=0; i<(tags.size()-1); i++) { 701 for (unsigned int i=0; i<(tags.size()-1); i++) {
701 EXPECT_NE(tags[i], tags[i+1]); 702 EXPECT_NE(tags[i], tags[i+1]);
702 } 703 }
703 } 704 }
704 705
705 TEST_F(BookmarkBarControllerTest, MenuForFolderNode) { 706 TEST_F(BookmarkBarControllerTest, MenuForFolderNode) {
706 BookmarkModel* model = profile()->GetBookmarkModel(); 707 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
707 708
708 // First make sure something (e.g. "(empty)" string) is always present. 709 // First make sure something (e.g. "(empty)" string) is always present.
709 NSMenu* menu = [bar_ menuForFolderNode:model->bookmark_bar_node()]; 710 NSMenu* menu = [bar_ menuForFolderNode:model->bookmark_bar_node()];
710 EXPECT_GT([menu numberOfItems], 0); 711 EXPECT_GT([menu numberOfItems], 0);
711 712
712 // Test two bookmarks. 713 // Test two bookmarks.
713 GURL gurl("http://www.foo.com"); 714 GURL gurl("http://www.foo.com");
714 bookmark_utils::AddIfNotBookmarked(model, gurl, ASCIIToUTF16("small")); 715 bookmark_utils::AddIfNotBookmarked(model, gurl, ASCIIToUTF16("small"));
715 bookmark_utils::AddIfNotBookmarked( 716 bookmark_utils::AddIfNotBookmarked(
716 model, GURL("http://www.cnn.com"), ASCIIToUTF16("bigger title")); 717 model, GURL("http://www.cnn.com"), ASCIIToUTF16("bigger title"));
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
781 GURL gurl(urls[i]); 782 GURL gurl(urls[i]);
782 [bar_ performSelector:selectors[i] 783 [bar_ performSelector:selectors[i]
783 withObject:ItemForBookmarkBarMenu(gurl)]; 784 withObject:ItemForBookmarkBarMenu(gurl)];
784 EXPECT_EQ(noOpenBar()->urls_[0], gurl); 785 EXPECT_EQ(noOpenBar()->urls_[0], gurl);
785 EXPECT_EQ(noOpenBar()->dispositions_[0], dispositions[i]); 786 EXPECT_EQ(noOpenBar()->dispositions_[0], dispositions[i]);
786 [bar_ clear]; 787 [bar_ clear];
787 } 788 }
788 } 789 }
789 790
790 TEST_F(BookmarkBarControllerTest, TestAddRemoveAndClear) { 791 TEST_F(BookmarkBarControllerTest, TestAddRemoveAndClear) {
791 BookmarkModel* model = profile()->GetBookmarkModel(); 792 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
792 NSView* buttonView = [bar_ buttonView]; 793 NSView* buttonView = [bar_ buttonView];
793 EXPECT_EQ(0U, [[bar_ buttons] count]); 794 EXPECT_EQ(0U, [[bar_ buttons] count]);
794 unsigned int initial_subview_count = [[buttonView subviews] count]; 795 unsigned int initial_subview_count = [[buttonView subviews] count];
795 796
796 // Make sure a redundant call doesn't choke 797 // Make sure a redundant call doesn't choke
797 [bar_ clearBookmarkBar]; 798 [bar_ clearBookmarkBar];
798 EXPECT_EQ(0U, [[bar_ buttons] count]); 799 EXPECT_EQ(0U, [[bar_ buttons] count]);
799 EXPECT_EQ(initial_subview_count, [[buttonView subviews] count]); 800 EXPECT_EQ(initial_subview_count, [[buttonView subviews] count]);
800 801
801 GURL gurl1("http://superfriends.hall-of-justice.edu"); 802 GURL gurl1("http://superfriends.hall-of-justice.edu");
(...skipping 29 matching lines...) Expand all
831 832
832 // Explicit test of loaded: since this is a convenient spot 833 // Explicit test of loaded: since this is a convenient spot
833 [bar_ loaded:model]; 834 [bar_ loaded:model];
834 EXPECT_EQ(2U, [[bar_ buttons] count]); 835 EXPECT_EQ(2U, [[bar_ buttons] count]);
835 EXPECT_EQ(2+initial_subview_count, [[buttonView subviews] count]); 836 EXPECT_EQ(2+initial_subview_count, [[buttonView subviews] count]);
836 } 837 }
837 838
838 // Make sure we don't create too many buttons; we only really need 839 // Make sure we don't create too many buttons; we only really need
839 // ones that will be visible. 840 // ones that will be visible.
840 TEST_F(BookmarkBarControllerTest, TestButtonLimits) { 841 TEST_F(BookmarkBarControllerTest, TestButtonLimits) {
841 BookmarkModel* model = profile()->GetBookmarkModel(); 842 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
842 EXPECT_EQ(0U, [[bar_ buttons] count]); 843 EXPECT_EQ(0U, [[bar_ buttons] count]);
843 // Add one; make sure we see it. 844 // Add one; make sure we see it.
844 const BookmarkNode* parent = model->bookmark_bar_node(); 845 const BookmarkNode* parent = model->bookmark_bar_node();
845 model->AddURL(parent, parent->child_count(), 846 model->AddURL(parent, parent->child_count(),
846 ASCIIToUTF16("title"), GURL("http://www.google.com")); 847 ASCIIToUTF16("title"), GURL("http://www.google.com"));
847 EXPECT_EQ(1U, [[bar_ buttons] count]); 848 EXPECT_EQ(1U, [[bar_ buttons] count]);
848 849
849 // Add 30 which we expect to be 'too many'. Make sure we don't see 850 // Add 30 which we expect to be 'too many'. Make sure we don't see
850 // 30 buttons. 851 // 30 buttons.
851 model->Remove(parent, 0); 852 model->Remove(parent, 0);
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
891 for (unsigned int i = 0; i < arraysize(widths); i++) { 892 for (unsigned int i = 0; i < arraysize(widths); i++) {
892 NSRect r = [bar_ frameForBookmarkButtonFromCell:[cells objectAtIndex:i] 893 NSRect r = [bar_ frameForBookmarkButtonFromCell:[cells objectAtIndex:i]
893 xOffset:&x_offset]; 894 xOffset:&x_offset];
894 EXPECT_GE(r.origin.x, x_end); 895 EXPECT_GE(r.origin.x, x_end);
895 x_end = NSMaxX(r); 896 x_end = NSMaxX(r);
896 } 897 }
897 } 898 }
898 899
899 TEST_F(BookmarkBarControllerTest, CheckForGrowth) { 900 TEST_F(BookmarkBarControllerTest, CheckForGrowth) {
900 WithNoAnimation at_all; // Turn off Cocoa auto animation in this scope. 901 WithNoAnimation at_all; // Turn off Cocoa auto animation in this scope.
901 BookmarkModel* model = profile()->GetBookmarkModel(); 902 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
902 GURL gurl1("http://www.google.com"); 903 GURL gurl1("http://www.google.com");
903 string16 title1(ASCIIToUTF16("x")); 904 string16 title1(ASCIIToUTF16("x"));
904 bookmark_utils::AddIfNotBookmarked(model, gurl1, title1); 905 bookmark_utils::AddIfNotBookmarked(model, gurl1, title1);
905 906
906 GURL gurl2("http://www.google.com/blah"); 907 GURL gurl2("http://www.google.com/blah");
907 string16 title2(ASCIIToUTF16("y")); 908 string16 title2(ASCIIToUTF16("y"));
908 bookmark_utils::AddIfNotBookmarked(model, gurl2, title2); 909 bookmark_utils::AddIfNotBookmarked(model, gurl2, title2);
909 910
910 EXPECT_EQ(2U, [[bar_ buttons] count]); 911 EXPECT_EQ(2U, [[bar_ buttons] count]);
911 CGFloat width_1 = [[[bar_ buttons] objectAtIndex:0] frame].size.width; 912 CGFloat width_1 = [[[bar_ buttons] objectAtIndex:0] frame].size.width;
912 CGFloat x_2 = [[[bar_ buttons] objectAtIndex:1] frame].origin.x; 913 CGFloat x_2 = [[[bar_ buttons] objectAtIndex:1] frame].origin.x;
913 914
914 NSButton* first = [[bar_ buttons] objectAtIndex:0]; 915 NSButton* first = [[bar_ buttons] objectAtIndex:0];
915 [[first cell] setTitle:@"This is a really big title; watch out mom!"]; 916 [[first cell] setTitle:@"This is a really big title; watch out mom!"];
916 [bar_ checkForBookmarkButtonGrowth:first]; 917 [bar_ checkForBookmarkButtonGrowth:first];
917 918
918 // Make sure the 1st button is now wider, the 2nd one is moved over, 919 // Make sure the 1st button is now wider, the 2nd one is moved over,
919 // and they don't overlap. 920 // and they don't overlap.
920 NSRect frame_1 = [[[bar_ buttons] objectAtIndex:0] frame]; 921 NSRect frame_1 = [[[bar_ buttons] objectAtIndex:0] frame];
921 NSRect frame_2 = [[[bar_ buttons] objectAtIndex:1] frame]; 922 NSRect frame_2 = [[[bar_ buttons] objectAtIndex:1] frame];
922 EXPECT_GT(frame_1.size.width, width_1); 923 EXPECT_GT(frame_1.size.width, width_1);
923 EXPECT_GT(frame_2.origin.x, x_2); 924 EXPECT_GT(frame_2.origin.x, x_2);
924 EXPECT_GE(frame_2.origin.x, frame_1.origin.x + frame_1.size.width); 925 EXPECT_GE(frame_2.origin.x, frame_1.origin.x + frame_1.size.width);
925 } 926 }
926 927
927 TEST_F(BookmarkBarControllerTest, DeleteBookmark) { 928 TEST_F(BookmarkBarControllerTest, DeleteBookmark) {
928 BookmarkModel* model = profile()->GetBookmarkModel(); 929 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
929 930
930 const char* urls[] = { "https://secret.url.com", 931 const char* urls[] = { "https://secret.url.com",
931 "http://super.duper.web.site.for.doodz.gov", 932 "http://super.duper.web.site.for.doodz.gov",
932 "http://www.foo-bar-baz.com/" }; 933 "http://www.foo-bar-baz.com/" };
933 const BookmarkNode* parent = model->bookmark_bar_node(); 934 const BookmarkNode* parent = model->bookmark_bar_node();
934 for (unsigned int i = 0; i < arraysize(urls); i++) { 935 for (unsigned int i = 0; i < arraysize(urls); i++) {
935 model->AddURL(parent, parent->child_count(), 936 model->AddURL(parent, parent->child_count(),
936 ASCIIToUTF16("title"), GURL(urls[i])); 937 ASCIIToUTF16("title"), GURL(urls[i]));
937 } 938 }
938 EXPECT_EQ(3, parent->child_count()); 939 EXPECT_EQ(3, parent->child_count());
939 const BookmarkNode* middle_node = parent->GetChild(1); 940 const BookmarkNode* middle_node = parent->GetChild(1);
940 941
941 NSMenuItem* item = ItemForBookmarkBarMenu(middle_node); 942 NSMenuItem* item = ItemForBookmarkBarMenu(middle_node);
942 [bar_ deleteBookmark:item]; 943 [bar_ deleteBookmark:item];
943 EXPECT_EQ(2, parent->child_count()); 944 EXPECT_EQ(2, parent->child_count());
944 EXPECT_EQ(parent->GetChild(0)->url(), GURL(urls[0])); 945 EXPECT_EQ(parent->GetChild(0)->url(), GURL(urls[0]));
945 // node 2 moved into spot 1 946 // node 2 moved into spot 1
946 EXPECT_EQ(parent->GetChild(1)->url(), GURL(urls[2])); 947 EXPECT_EQ(parent->GetChild(1)->url(), GURL(urls[2]));
947 } 948 }
948 949
949 // TODO(jrg): write a test to confirm that nodeFaviconLoaded calls 950 // TODO(jrg): write a test to confirm that nodeFaviconLoaded calls
950 // checkForBookmarkButtonGrowth:. 951 // checkForBookmarkButtonGrowth:.
951 952
952 TEST_F(BookmarkBarControllerTest, Cell) { 953 TEST_F(BookmarkBarControllerTest, Cell) {
953 BookmarkModel* model = profile()->GetBookmarkModel(); 954 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
954 [bar_ loaded:model]; 955 [bar_ loaded:model];
955 956
956 const BookmarkNode* parent = model->bookmark_bar_node(); 957 const BookmarkNode* parent = model->bookmark_bar_node();
957 model->AddURL(parent, parent->child_count(), 958 model->AddURL(parent, parent->child_count(),
958 ASCIIToUTF16("supertitle"), 959 ASCIIToUTF16("supertitle"),
959 GURL("http://superfriends.hall-of-justice.edu")); 960 GURL("http://superfriends.hall-of-justice.edu"));
960 const BookmarkNode* node = parent->GetChild(0); 961 const BookmarkNode* node = parent->GetChild(0);
961 962
962 NSCell* cell = [bar_ cellForBookmarkNode:node]; 963 NSCell* cell = [bar_ cellForBookmarkNode:node];
963 EXPECT_TRUE(cell); 964 EXPECT_TRUE(cell);
(...skipping 10 matching lines...) Expand all
974 // cell is autoreleased; no need to release here 975 // cell is autoreleased; no need to release here
975 } 976 }
976 977
977 // Test drawing, mostly to ensure nothing leaks or crashes. 978 // Test drawing, mostly to ensure nothing leaks or crashes.
978 TEST_F(BookmarkBarControllerTest, Display) { 979 TEST_F(BookmarkBarControllerTest, Display) {
979 [[bar_ view] display]; 980 [[bar_ view] display];
980 } 981 }
981 982
982 // Test that middle clicking on a bookmark button results in an open action. 983 // Test that middle clicking on a bookmark button results in an open action.
983 TEST_F(BookmarkBarControllerTest, MiddleClick) { 984 TEST_F(BookmarkBarControllerTest, MiddleClick) {
984 BookmarkModel* model = profile()->GetBookmarkModel(); 985 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
985 GURL gurl1("http://www.google.com/"); 986 GURL gurl1("http://www.google.com/");
986 string16 title1(ASCIIToUTF16("x")); 987 string16 title1(ASCIIToUTF16("x"));
987 bookmark_utils::AddIfNotBookmarked(model, gurl1, title1); 988 bookmark_utils::AddIfNotBookmarked(model, gurl1, title1);
988 989
989 EXPECT_EQ(1U, [[bar_ buttons] count]); 990 EXPECT_EQ(1U, [[bar_ buttons] count]);
990 NSButton* first = [[bar_ buttons] objectAtIndex:0]; 991 NSButton* first = [[bar_ buttons] objectAtIndex:0];
991 EXPECT_TRUE(first); 992 EXPECT_TRUE(first);
992 993
993 [first otherMouseUp: 994 [first otherMouseUp:
994 cocoa_test_event_utils::MouseEventWithType(NSOtherMouseUp, 0)]; 995 cocoa_test_event_utils::MouseEventWithType(NSOtherMouseUp, 0)];
995 EXPECT_EQ(noOpenBar()->urls_.size(), 1U); 996 EXPECT_EQ(noOpenBar()->urls_.size(), 1U);
996 } 997 }
997 998
998 TEST_F(BookmarkBarControllerTest, DisplaysHelpMessageOnEmpty) { 999 TEST_F(BookmarkBarControllerTest, DisplaysHelpMessageOnEmpty) {
999 BookmarkModel* model = profile()->GetBookmarkModel(); 1000 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
1000 [bar_ loaded:model]; 1001 [bar_ loaded:model];
1001 EXPECT_FALSE([[[bar_ buttonView] noItemContainer] isHidden]); 1002 EXPECT_FALSE([[[bar_ buttonView] noItemContainer] isHidden]);
1002 } 1003 }
1003 1004
1004 TEST_F(BookmarkBarControllerTest, HidesHelpMessageWithBookmark) { 1005 TEST_F(BookmarkBarControllerTest, HidesHelpMessageWithBookmark) {
1005 BookmarkModel* model = profile()->GetBookmarkModel(); 1006 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
1006 1007
1007 const BookmarkNode* parent = model->bookmark_bar_node(); 1008 const BookmarkNode* parent = model->bookmark_bar_node();
1008 model->AddURL(parent, parent->child_count(), 1009 model->AddURL(parent, parent->child_count(),
1009 ASCIIToUTF16("title"), GURL("http://one.com")); 1010 ASCIIToUTF16("title"), GURL("http://one.com"));
1010 1011
1011 [bar_ loaded:model]; 1012 [bar_ loaded:model];
1012 EXPECT_TRUE([[[bar_ buttonView] noItemContainer] isHidden]); 1013 EXPECT_TRUE([[[bar_ buttonView] noItemContainer] isHidden]);
1013 } 1014 }
1014 1015
1015 TEST_F(BookmarkBarControllerTest, BookmarkButtonSizing) { 1016 TEST_F(BookmarkBarControllerTest, BookmarkButtonSizing) {
1016 BookmarkModel* model = profile()->GetBookmarkModel(); 1017 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
1017 1018
1018 const BookmarkNode* parent = model->bookmark_bar_node(); 1019 const BookmarkNode* parent = model->bookmark_bar_node();
1019 model->AddURL(parent, parent->child_count(), 1020 model->AddURL(parent, parent->child_count(),
1020 ASCIIToUTF16("title"), GURL("http://one.com")); 1021 ASCIIToUTF16("title"), GURL("http://one.com"));
1021 1022
1022 [bar_ loaded:model]; 1023 [bar_ loaded:model];
1023 1024
1024 // Make sure the internal bookmark button also is the correct height. 1025 // Make sure the internal bookmark button also is the correct height.
1025 NSArray* buttons = [bar_ buttons]; 1026 NSArray* buttons = [bar_ buttons];
1026 EXPECT_GT([buttons count], 0u); 1027 EXPECT_GT([buttons count], 0u);
(...skipping 20 matching lines...) Expand all
1047 }; 1048 };
1048 EXPECT_EQ(arraysize(urls), arraysize(titles)); 1049 EXPECT_EQ(arraysize(urls), arraysize(titles));
1049 1050
1050 NSMutableArray* nsurls = [NSMutableArray array]; 1051 NSMutableArray* nsurls = [NSMutableArray array];
1051 NSMutableArray* nstitles = [NSMutableArray array]; 1052 NSMutableArray* nstitles = [NSMutableArray array];
1052 for (size_t i = 0; i < arraysize(urls); ++i) { 1053 for (size_t i = 0; i < arraysize(urls); ++i) {
1053 [nsurls addObject:base::SysUTF8ToNSString(urls[i])]; 1054 [nsurls addObject:base::SysUTF8ToNSString(urls[i])];
1054 [nstitles addObject:base::SysUTF8ToNSString(titles[i])]; 1055 [nstitles addObject:base::SysUTF8ToNSString(titles[i])];
1055 } 1056 }
1056 1057
1057 BookmarkModel* model = profile()->GetBookmarkModel(); 1058 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
1058 const BookmarkNode* parent = model->bookmark_bar_node(); 1059 const BookmarkNode* parent = model->bookmark_bar_node();
1059 [bar_ addURLs:nsurls withTitles:nstitles at:NSZeroPoint]; 1060 [bar_ addURLs:nsurls withTitles:nstitles at:NSZeroPoint];
1060 EXPECT_EQ(4, parent->child_count()); 1061 EXPECT_EQ(4, parent->child_count());
1061 for (int i = 0; i < parent->child_count(); ++i) { 1062 for (int i = 0; i < parent->child_count(); ++i) {
1062 GURL gurl = parent->GetChild(i)->url(); 1063 GURL gurl = parent->GetChild(i)->url();
1063 if (gurl.scheme() == "http" || 1064 if (gurl.scheme() == "http" ||
1064 gurl.scheme() == "javascript") { 1065 gurl.scheme() == "javascript") {
1065 EXPECT_EQ(parent->GetChild(i)->url(), GURL(urls[i])); 1066 EXPECT_EQ(parent->GetChild(i)->url(), GURL(urls[i]));
1066 } else { 1067 } else {
1067 // Be flexible if the scheme needed to be added. 1068 // Be flexible if the scheme needed to be added.
1068 std::string gurl_string = gurl.spec(); 1069 std::string gurl_string = gurl.spec();
1069 std::string my_string = parent->GetChild(i)->url().spec(); 1070 std::string my_string = parent->GetChild(i)->url().spec();
1070 EXPECT_NE(gurl_string.find(my_string), std::string::npos); 1071 EXPECT_NE(gurl_string.find(my_string), std::string::npos);
1071 } 1072 }
1072 EXPECT_EQ(parent->GetChild(i)->GetTitle(), ASCIIToUTF16(titles[i])); 1073 EXPECT_EQ(parent->GetChild(i)->GetTitle(), ASCIIToUTF16(titles[i]));
1073 } 1074 }
1074 } 1075 }
1075 1076
1076 TEST_F(BookmarkBarControllerTest, TestButtonOrBar) { 1077 TEST_F(BookmarkBarControllerTest, TestButtonOrBar) {
1077 BookmarkModel* model = profile()->GetBookmarkModel(); 1078 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
1078 GURL gurl1("http://www.google.com"); 1079 GURL gurl1("http://www.google.com");
1079 string16 title1(ASCIIToUTF16("x")); 1080 string16 title1(ASCIIToUTF16("x"));
1080 bookmark_utils::AddIfNotBookmarked(model, gurl1, title1); 1081 bookmark_utils::AddIfNotBookmarked(model, gurl1, title1);
1081 1082
1082 GURL gurl2("http://www.google.com/gurl_power"); 1083 GURL gurl2("http://www.google.com/gurl_power");
1083 string16 title2(ASCIIToUTF16("gurl power")); 1084 string16 title2(ASCIIToUTF16("gurl power"));
1084 bookmark_utils::AddIfNotBookmarked(model, gurl2, title2); 1085 bookmark_utils::AddIfNotBookmarked(model, gurl2, title2);
1085 1086
1086 NSButton* first = [[bar_ buttons] objectAtIndex:0]; 1087 NSButton* first = [[bar_ buttons] objectAtIndex:0];
1087 NSButton* second = [[bar_ buttons] objectAtIndex:1]; 1088 NSButton* second = [[bar_ buttons] objectAtIndex:1];
1088 EXPECT_TRUE(first && second); 1089 EXPECT_TRUE(first && second);
1089 1090
1090 NSMenuItem* menuItem = [[[first cell] menu] itemAtIndex:0]; 1091 NSMenuItem* menuItem = [[[first cell] menu] itemAtIndex:0];
1091 const BookmarkNode* node = [bar_ nodeFromMenuItem:menuItem]; 1092 const BookmarkNode* node = [bar_ nodeFromMenuItem:menuItem];
1092 EXPECT_TRUE(node); 1093 EXPECT_TRUE(node);
1093 EXPECT_EQ(node, model->bookmark_bar_node()->GetChild(0)); 1094 EXPECT_EQ(node, model->bookmark_bar_node()->GetChild(0));
1094 1095
1095 menuItem = [[[second cell] menu] itemAtIndex:0]; 1096 menuItem = [[[second cell] menu] itemAtIndex:0];
1096 node = [bar_ nodeFromMenuItem:menuItem]; 1097 node = [bar_ nodeFromMenuItem:menuItem];
1097 EXPECT_TRUE(node); 1098 EXPECT_TRUE(node);
1098 EXPECT_EQ(node, model->bookmark_bar_node()->GetChild(1)); 1099 EXPECT_EQ(node, model->bookmark_bar_node()->GetChild(1));
1099 1100
1100 menuItem = [[[bar_ view] menu] itemAtIndex:0]; 1101 menuItem = [[[bar_ view] menu] itemAtIndex:0];
1101 node = [bar_ nodeFromMenuItem:menuItem]; 1102 node = [bar_ nodeFromMenuItem:menuItem];
1102 EXPECT_TRUE(node); 1103 EXPECT_TRUE(node);
1103 EXPECT_EQ(node, model->bookmark_bar_node()); 1104 EXPECT_EQ(node, model->bookmark_bar_node());
1104 } 1105 }
1105 1106
1106 TEST_F(BookmarkBarControllerTest, TestMenuNodeAndDisable) { 1107 TEST_F(BookmarkBarControllerTest, TestMenuNodeAndDisable) {
1107 BookmarkModel* model = profile()->GetBookmarkModel(); 1108 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
1108 const BookmarkNode* parent = model->bookmark_bar_node(); 1109 const BookmarkNode* parent = model->bookmark_bar_node();
1109 const BookmarkNode* folder = model->AddFolder(parent, 1110 const BookmarkNode* folder = model->AddFolder(parent,
1110 parent->child_count(), 1111 parent->child_count(),
1111 ASCIIToUTF16("folder")); 1112 ASCIIToUTF16("folder"));
1112 NSButton* button = [[bar_ buttons] objectAtIndex:0]; 1113 NSButton* button = [[bar_ buttons] objectAtIndex:0];
1113 EXPECT_TRUE(button); 1114 EXPECT_TRUE(button);
1114 1115
1115 // Confirm the menu knows which node it is talking about 1116 // Confirm the menu knows which node it is talking about
1116 BookmarkMenu* menu = static_cast<BookmarkMenu*>([[button cell] menu]); 1117 BookmarkMenu* menu = static_cast<BookmarkMenu*>([[button cell] menu]);
1117 EXPECT_TRUE(menu); 1118 EXPECT_TRUE(menu);
1118 EXPECT_TRUE([menu isKindOfClass:[BookmarkMenu class]]); 1119 EXPECT_TRUE([menu isKindOfClass:[BookmarkMenu class]]);
1119 EXPECT_EQ(folder->id(), [menu id]); 1120 EXPECT_EQ(folder->id(), [menu id]);
1120 1121
1121 // Make sure "Open All" is disabled (nothing to open -- no children!) 1122 // Make sure "Open All" is disabled (nothing to open -- no children!)
1122 // (Assumes "Open All" is the 1st item) 1123 // (Assumes "Open All" is the 1st item)
1123 NSMenuItem* item = [menu itemAtIndex:0]; 1124 NSMenuItem* item = [menu itemAtIndex:0];
1124 EXPECT_FALSE([bar_ validateUserInterfaceItem:item]); 1125 EXPECT_FALSE([bar_ validateUserInterfaceItem:item]);
1125 1126
1126 // Now add a child and make sure the item would be enabled. 1127 // Now add a child and make sure the item would be enabled.
1127 model->AddURL(folder, folder->child_count(), 1128 model->AddURL(folder, folder->child_count(),
1128 ASCIIToUTF16("super duper wide title"), 1129 ASCIIToUTF16("super duper wide title"),
1129 GURL("http://superfriends.hall-of-justice.edu")); 1130 GURL("http://superfriends.hall-of-justice.edu"));
1130 EXPECT_TRUE([bar_ validateUserInterfaceItem:item]); 1131 EXPECT_TRUE([bar_ validateUserInterfaceItem:item]);
1131 } 1132 }
1132 1133
1133 TEST_F(BookmarkBarControllerTest, TestDragButton) { 1134 TEST_F(BookmarkBarControllerTest, TestDragButton) {
1134 WithNoAnimation at_all; 1135 WithNoAnimation at_all;
1135 BookmarkModel* model = profile()->GetBookmarkModel(); 1136 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
1136 1137
1137 GURL gurls[] = { GURL("http://www.google.com/a"), 1138 GURL gurls[] = { GURL("http://www.google.com/a"),
1138 GURL("http://www.google.com/b"), 1139 GURL("http://www.google.com/b"),
1139 GURL("http://www.google.com/c") }; 1140 GURL("http://www.google.com/c") };
1140 string16 titles[] = { ASCIIToUTF16("a"), 1141 string16 titles[] = { ASCIIToUTF16("a"),
1141 ASCIIToUTF16("b"), 1142 ASCIIToUTF16("b"),
1142 ASCIIToUTF16("c") }; 1143 ASCIIToUTF16("c") };
1143 for (unsigned i = 0; i < arraysize(titles); i++) 1144 for (unsigned i = 0; i < arraysize(titles); i++)
1144 bookmark_utils::AddIfNotBookmarked(model, gurls[i], titles[i]); 1145 bookmark_utils::AddIfNotBookmarked(model, gurls[i], titles[i]);
1145 1146
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
1196 copy:NO]; 1197 copy:NO];
1197 // Gone from the bar 1198 // Gone from the bar
1198 EXPECT_EQ(arraysize(titles), [[bar_ buttons] count]); 1199 EXPECT_EQ(arraysize(titles), [[bar_ buttons] count]);
1199 // In the folder 1200 // In the folder
1200 EXPECT_EQ(2, folder->child_count()); 1201 EXPECT_EQ(2, folder->child_count());
1201 // At the end 1202 // At the end
1202 EXPECT_EQ(title, folder->GetChild(1)->GetTitle()); 1203 EXPECT_EQ(title, folder->GetChild(1)->GetTitle());
1203 } 1204 }
1204 1205
1205 TEST_F(BookmarkBarControllerTest, TestCopyButton) { 1206 TEST_F(BookmarkBarControllerTest, TestCopyButton) {
1206 BookmarkModel* model = profile()->GetBookmarkModel(); 1207 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
1207 1208
1208 GURL gurls[] = { GURL("http://www.google.com/a"), 1209 GURL gurls[] = { GURL("http://www.google.com/a"),
1209 GURL("http://www.google.com/b"), 1210 GURL("http://www.google.com/b"),
1210 GURL("http://www.google.com/c") }; 1211 GURL("http://www.google.com/c") };
1211 string16 titles[] = { ASCIIToUTF16("a"), 1212 string16 titles[] = { ASCIIToUTF16("a"),
1212 ASCIIToUTF16("b"), 1213 ASCIIToUTF16("b"),
1213 ASCIIToUTF16("c") }; 1214 ASCIIToUTF16("c") };
1214 for (unsigned i = 0; i < arraysize(titles); i++) 1215 for (unsigned i = 0; i < arraysize(titles); i++)
1215 bookmark_utils::AddIfNotBookmarked(model, gurls[i], titles[i]); 1216 bookmark_utils::AddIfNotBookmarked(model, gurls[i], titles[i]);
1216 1217
1217 EXPECT_EQ([[bar_ buttons] count], arraysize(titles)); 1218 EXPECT_EQ([[bar_ buttons] count], arraysize(titles));
1218 EXPECT_NSEQ(@"a", [[[bar_ buttons] objectAtIndex:0] title]); 1219 EXPECT_NSEQ(@"a", [[[bar_ buttons] objectAtIndex:0] title]);
1219 1220
1220 // Drag 'a' between 'b' and 'c'. 1221 // Drag 'a' between 'b' and 'c'.
1221 CGFloat x = NSMinX([[[bar_ buttons] objectAtIndex:2] frame]); 1222 CGFloat x = NSMinX([[[bar_ buttons] objectAtIndex:2] frame]);
1222 x += [[bar_ view] frame].origin.x; 1223 x += [[bar_ view] frame].origin.x;
1223 [bar_ dragButton:[[bar_ buttons] objectAtIndex:0] 1224 [bar_ dragButton:[[bar_ buttons] objectAtIndex:0]
1224 to:NSMakePoint(x, 0) 1225 to:NSMakePoint(x, 0)
1225 copy:YES]; 1226 copy:YES];
1226 EXPECT_NSEQ(@"a", [[[bar_ buttons] objectAtIndex:0] title]); 1227 EXPECT_NSEQ(@"a", [[[bar_ buttons] objectAtIndex:0] title]);
1227 EXPECT_NSEQ(@"b", [[[bar_ buttons] objectAtIndex:1] title]); 1228 EXPECT_NSEQ(@"b", [[[bar_ buttons] objectAtIndex:1] title]);
1228 EXPECT_NSEQ(@"a", [[[bar_ buttons] objectAtIndex:2] title]); 1229 EXPECT_NSEQ(@"a", [[[bar_ buttons] objectAtIndex:2] title]);
1229 EXPECT_NSEQ(@"c", [[[bar_ buttons] objectAtIndex:3] title]); 1230 EXPECT_NSEQ(@"c", [[[bar_ buttons] objectAtIndex:3] title]);
1230 EXPECT_EQ([[bar_ buttons] count], 4U); 1231 EXPECT_EQ([[bar_ buttons] count], 4U);
1231 } 1232 }
1232 1233
1233 // Fake a theme with colored text. Apply it and make sure bookmark 1234 // Fake a theme with colored text. Apply it and make sure bookmark
1234 // buttons have the same colored text. Repeat more than once. 1235 // buttons have the same colored text. Repeat more than once.
1235 TEST_F(BookmarkBarControllerTest, TestThemedButton) { 1236 TEST_F(BookmarkBarControllerTest, TestThemedButton) {
1236 BookmarkModel* model = profile()->GetBookmarkModel(); 1237 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
1237 bookmark_utils::AddIfNotBookmarked( 1238 bookmark_utils::AddIfNotBookmarked(
1238 model, GURL("http://www.foo.com"), ASCIIToUTF16("small")); 1239 model, GURL("http://www.foo.com"), ASCIIToUTF16("small"));
1239 BookmarkButton* button = [[bar_ buttons] objectAtIndex:0]; 1240 BookmarkButton* button = [[bar_ buttons] objectAtIndex:0];
1240 EXPECT_TRUE(button); 1241 EXPECT_TRUE(button);
1241 1242
1242 NSArray* colors = [NSArray arrayWithObjects:[NSColor redColor], 1243 NSArray* colors = [NSArray arrayWithObjects:[NSColor redColor],
1243 [NSColor blueColor], 1244 [NSColor blueColor],
1244 nil]; 1245 nil];
1245 for (NSColor* color in colors) { 1246 for (NSColor* color in colors) {
1246 FakeTheme theme(color); 1247 FakeTheme theme(color);
1247 [bar_ updateTheme:&theme]; 1248 [bar_ updateTheme:&theme];
1248 NSAttributedString* astr = [button attributedTitle]; 1249 NSAttributedString* astr = [button attributedTitle];
1249 EXPECT_TRUE(astr); 1250 EXPECT_TRUE(astr);
1250 EXPECT_NSEQ(@"small", [astr string]); 1251 EXPECT_NSEQ(@"small", [astr string]);
1251 // Pick a char in the middle to test (index 3) 1252 // Pick a char in the middle to test (index 3)
1252 NSDictionary* attributes = [astr attributesAtIndex:3 effectiveRange:NULL]; 1253 NSDictionary* attributes = [astr attributesAtIndex:3 effectiveRange:NULL];
1253 NSColor* newColor = 1254 NSColor* newColor =
1254 [attributes objectForKey:NSForegroundColorAttributeName]; 1255 [attributes objectForKey:NSForegroundColorAttributeName];
1255 EXPECT_NSEQ(newColor, color); 1256 EXPECT_NSEQ(newColor, color);
1256 } 1257 }
1257 } 1258 }
1258 1259
1259 // Test that delegates and targets of buttons are cleared on dealloc. 1260 // Test that delegates and targets of buttons are cleared on dealloc.
1260 TEST_F(BookmarkBarControllerTest, TestClearOnDealloc) { 1261 TEST_F(BookmarkBarControllerTest, TestClearOnDealloc) {
1261 // Make some bookmark buttons. 1262 // Make some bookmark buttons.
1262 BookmarkModel* model = profile()->GetBookmarkModel(); 1263 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
1263 GURL gurls[] = { GURL("http://www.foo.com/"), 1264 GURL gurls[] = { GURL("http://www.foo.com/"),
1264 GURL("http://www.bar.com/"), 1265 GURL("http://www.bar.com/"),
1265 GURL("http://www.baz.com/") }; 1266 GURL("http://www.baz.com/") };
1266 string16 titles[] = { ASCIIToUTF16("a"), 1267 string16 titles[] = { ASCIIToUTF16("a"),
1267 ASCIIToUTF16("b"), 1268 ASCIIToUTF16("b"),
1268 ASCIIToUTF16("c") }; 1269 ASCIIToUTF16("c") };
1269 for (size_t i = 0; i < arraysize(titles); i++) 1270 for (size_t i = 0; i < arraysize(titles); i++)
1270 bookmark_utils::AddIfNotBookmarked(model, gurls[i], titles[i]); 1271 bookmark_utils::AddIfNotBookmarked(model, gurls[i], titles[i]);
1271 1272
1272 // Get and retain the buttons so we can examine them after dealloc. 1273 // Get and retain the buttons so we can examine them after dealloc.
(...skipping 13 matching lines...) Expand all
1286 1287
1287 // Make sure that everything is cleared. 1288 // Make sure that everything is cleared.
1288 for (BookmarkButton* button in buttons.get()) { 1289 for (BookmarkButton* button in buttons.get()) {
1289 EXPECT_FALSE([button delegate]); 1290 EXPECT_FALSE([button delegate]);
1290 EXPECT_FALSE([button target]); 1291 EXPECT_FALSE([button target]);
1291 EXPECT_FALSE([button action]); 1292 EXPECT_FALSE([button action]);
1292 } 1293 }
1293 } 1294 }
1294 1295
1295 TEST_F(BookmarkBarControllerTest, TestFolders) { 1296 TEST_F(BookmarkBarControllerTest, TestFolders) {
1296 BookmarkModel* model = profile()->GetBookmarkModel(); 1297 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
1297 1298
1298 // Create some folder buttons. 1299 // Create some folder buttons.
1299 const BookmarkNode* parent = model->bookmark_bar_node(); 1300 const BookmarkNode* parent = model->bookmark_bar_node();
1300 const BookmarkNode* folder = model->AddFolder(parent, 1301 const BookmarkNode* folder = model->AddFolder(parent,
1301 parent->child_count(), 1302 parent->child_count(),
1302 ASCIIToUTF16("folder")); 1303 ASCIIToUTF16("folder"));
1303 model->AddURL(folder, folder->child_count(), 1304 model->AddURL(folder, folder->child_count(),
1304 ASCIIToUTF16("f1"), GURL("http://framma-lamma.com")); 1305 ASCIIToUTF16("f1"), GURL("http://framma-lamma.com"));
1305 folder = model->AddFolder(parent, parent->child_count(), 1306 folder = model->AddFolder(parent, parent->child_count(),
1306 ASCIIToUTF16("empty")); 1307 ASCIIToUTF16("empty"));
(...skipping 23 matching lines...) Expand all
1330 1331
1331 // Clean up. 1332 // Clean up.
1332 [bar_ closeBookmarkFolder:nil]; 1333 [bar_ closeBookmarkFolder:nil];
1333 } 1334 }
1334 1335
1335 // Verify that the folder menu presentation properly tracks mouse movements 1336 // Verify that the folder menu presentation properly tracks mouse movements
1336 // over the bar. Until there is a click no folder menus should show. After a 1337 // over the bar. Until there is a click no folder menus should show. After a
1337 // click on a folder folder menus should show until another click on a folder 1338 // click on a folder folder menus should show until another click on a folder
1338 // button, and a click outside the bar and its folder menus. 1339 // button, and a click outside the bar and its folder menus.
1339 TEST_F(BookmarkBarControllerTest, TestFolderButtons) { 1340 TEST_F(BookmarkBarControllerTest, TestFolderButtons) {
1340 BookmarkModel& model(*profile()->GetBookmarkModel()); 1341 BookmarkModel& model(*BookmarkModelFactory::GetForProfile(profile()));
1341 const BookmarkNode* root = model.bookmark_bar_node(); 1342 const BookmarkNode* root = model.bookmark_bar_node();
1342 const std::string model_string("1b 2f:[ 2f1b 2f2b ] 3b 4f:[ 4f1b 4f2b ] "); 1343 const std::string model_string("1b 2f:[ 2f1b 2f2b ] 3b 4f:[ 4f1b 4f2b ] ");
1343 model_test_utils::AddNodesFromModelString(model, root, model_string); 1344 model_test_utils::AddNodesFromModelString(model, root, model_string);
1344 1345
1345 // Validate initial model and that we do not have a folder controller. 1346 // Validate initial model and that we do not have a folder controller.
1346 std::string actualModelString = model_test_utils::ModelStringFromNode(root); 1347 std::string actualModelString = model_test_utils::ModelStringFromNode(root);
1347 EXPECT_EQ(model_string, actualModelString); 1348 EXPECT_EQ(model_string, actualModelString);
1348 EXPECT_FALSE([bar_ folderController]); 1349 EXPECT_FALSE([bar_ folderController]);
1349 1350
1350 // Add a real bookmark so we can click on it. 1351 // Add a real bookmark so we can click on it.
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
1394 } 1395 }
1395 1396
1396 // Make sure the "off the side" folder looks like a bookmark folder 1397 // Make sure the "off the side" folder looks like a bookmark folder
1397 // but only contains "off the side" items. 1398 // but only contains "off the side" items.
1398 TEST_F(BookmarkBarControllerTest, OffTheSideFolder) { 1399 TEST_F(BookmarkBarControllerTest, OffTheSideFolder) {
1399 1400
1400 // It starts hidden. 1401 // It starts hidden.
1401 EXPECT_TRUE([bar_ offTheSideButtonIsHidden]); 1402 EXPECT_TRUE([bar_ offTheSideButtonIsHidden]);
1402 1403
1403 // Create some buttons. 1404 // Create some buttons.
1404 BookmarkModel* model = profile()->GetBookmarkModel(); 1405 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
1405 const BookmarkNode* parent = model->bookmark_bar_node(); 1406 const BookmarkNode* parent = model->bookmark_bar_node();
1406 for (int x = 0; x < 30; x++) { 1407 for (int x = 0; x < 30; x++) {
1407 model->AddURL(parent, parent->child_count(), 1408 model->AddURL(parent, parent->child_count(),
1408 ASCIIToUTF16("medium-size-title"), 1409 ASCIIToUTF16("medium-size-title"),
1409 GURL("http://framma-lamma.com")); 1410 GURL("http://framma-lamma.com"));
1410 } 1411 }
1411 // Add a couple more so we can delete one and make sure its button goes away. 1412 // Add a couple more so we can delete one and make sure its button goes away.
1412 model->AddURL(parent, parent->child_count(), 1413 model->AddURL(parent, parent->child_count(),
1413 ASCIIToUTF16("DELETE_ME"), GURL("http://ashton-tate.com")); 1414 ASCIIToUTF16("DELETE_ME"), GURL("http://ashton-tate.com"));
1414 model->AddURL(parent, parent->child_count(), 1415 model->AddURL(parent, parent->child_count(),
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
1473 charactersIgnoringModifiers:@"x" 1474 charactersIgnoringModifiers:@"x"
1474 isARepeat:NO 1475 isARepeat:NO
1475 keyCode:87]; 1476 keyCode:87];
1476 EXPECT_FALSE([bar_ isEventAnExitEvent:event]); 1477 EXPECT_FALSE([bar_ isEventAnExitEvent:event]);
1477 1478
1478 [[[bar_ view] window] removeChildWindow:folderWindow]; 1479 [[[bar_ view] window] removeChildWindow:folderWindow];
1479 } 1480 }
1480 1481
1481 TEST_F(BookmarkBarControllerTest, DropDestination) { 1482 TEST_F(BookmarkBarControllerTest, DropDestination) {
1482 // Make some buttons. 1483 // Make some buttons.
1483 BookmarkModel* model = profile()->GetBookmarkModel(); 1484 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
1484 const BookmarkNode* parent = model->bookmark_bar_node(); 1485 const BookmarkNode* parent = model->bookmark_bar_node();
1485 model->AddFolder(parent, parent->child_count(), ASCIIToUTF16("folder 1")); 1486 model->AddFolder(parent, parent->child_count(), ASCIIToUTF16("folder 1"));
1486 model->AddFolder(parent, parent->child_count(), ASCIIToUTF16("folder 2")); 1487 model->AddFolder(parent, parent->child_count(), ASCIIToUTF16("folder 2"));
1487 EXPECT_EQ([[bar_ buttons] count], 2U); 1488 EXPECT_EQ([[bar_ buttons] count], 2U);
1488 1489
1489 // Confirm "off to left" and "off to right" match nothing. 1490 // Confirm "off to left" and "off to right" match nothing.
1490 NSPoint p = NSMakePoint(-1, 2); 1491 NSPoint p = NSMakePoint(-1, 2);
1491 EXPECT_FALSE([bar_ buttonForDroppingOnAtPoint:p]); 1492 EXPECT_FALSE([bar_ buttonForDroppingOnAtPoint:p]);
1492 EXPECT_TRUE([bar_ shouldShowIndicatorShownForPoint:p]); 1493 EXPECT_TRUE([bar_ shouldShowIndicatorShownForPoint:p]);
1493 p = NSMakePoint(50000, 10); 1494 p = NSMakePoint(50000, 10);
(...skipping 17 matching lines...) Expand all
1511 x = NSMinX([button frame]) + viewFrameXOffset; 1512 x = NSMinX([button frame]) + viewFrameXOffset;
1512 EXPECT_NE(button, 1513 EXPECT_NE(button,
1513 [bar_ buttonForDroppingOnAtPoint:NSMakePoint(x, 9)]); 1514 [bar_ buttonForDroppingOnAtPoint:NSMakePoint(x, 9)]);
1514 x = NSMaxX([button frame]) + viewFrameXOffset; 1515 x = NSMaxX([button frame]) + viewFrameXOffset;
1515 EXPECT_NE(button, 1516 EXPECT_NE(button,
1516 [bar_ buttonForDroppingOnAtPoint:NSMakePoint(x, 11)]); 1517 [bar_ buttonForDroppingOnAtPoint:NSMakePoint(x, 11)]);
1517 } 1518 }
1518 } 1519 }
1519 1520
1520 TEST_F(BookmarkBarControllerTest, NodeDeletedWhileMenuIsOpen) { 1521 TEST_F(BookmarkBarControllerTest, NodeDeletedWhileMenuIsOpen) {
1521 BookmarkModel* model = profile()->GetBookmarkModel(); 1522 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
1522 [bar_ loaded:model]; 1523 [bar_ loaded:model];
1523 1524
1524 const BookmarkNode* parent = model->bookmark_bar_node(); 1525 const BookmarkNode* parent = model->bookmark_bar_node();
1525 const BookmarkNode* initialNode = model->AddURL( 1526 const BookmarkNode* initialNode = model->AddURL(
1526 parent, parent->child_count(), 1527 parent, parent->child_count(),
1527 ASCIIToUTF16("initial"), 1528 ASCIIToUTF16("initial"),
1528 GURL("http://www.google.com")); 1529 GURL("http://www.google.com"));
1529 1530
1530 NSMenuItem* item = ItemForBookmarkBarMenu(initialNode); 1531 NSMenuItem* item = ItemForBookmarkBarMenu(initialNode);
1531 EXPECT_EQ(0U, noOpenBar()->urls_.size()); 1532 EXPECT_EQ(0U, noOpenBar()->urls_.size());
(...skipping 18 matching lines...) Expand all
1550 [bar_ openBookmarkInIncognitoWindow:item]; 1551 [bar_ openBookmarkInIncognitoWindow:item];
1551 [bar_ editBookmark:item]; 1552 [bar_ editBookmark:item];
1552 [bar_ copyBookmark:item]; 1553 [bar_ copyBookmark:item];
1553 [bar_ deleteBookmark:item]; 1554 [bar_ deleteBookmark:item];
1554 [bar_ openAllBookmarks:item]; 1555 [bar_ openAllBookmarks:item];
1555 [bar_ openAllBookmarksNewWindow:item]; 1556 [bar_ openAllBookmarksNewWindow:item];
1556 [bar_ openAllBookmarksIncognitoWindow:item]; 1557 [bar_ openAllBookmarksIncognitoWindow:item];
1557 } 1558 }
1558 1559
1559 TEST_F(BookmarkBarControllerTest, NodeDeletedWhileContextMenuIsOpen) { 1560 TEST_F(BookmarkBarControllerTest, NodeDeletedWhileContextMenuIsOpen) {
1560 BookmarkModel* model = profile()->GetBookmarkModel(); 1561 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
1561 [bar_ loaded:model]; 1562 [bar_ loaded:model];
1562 1563
1563 const BookmarkNode* parent = model->bookmark_bar_node(); 1564 const BookmarkNode* parent = model->bookmark_bar_node();
1564 const BookmarkNode* folder = model->AddFolder(parent, 1565 const BookmarkNode* folder = model->AddFolder(parent,
1565 parent->child_count(), 1566 parent->child_count(),
1566 ASCIIToUTF16("folder")); 1567 ASCIIToUTF16("folder"));
1567 const BookmarkNode* framma = model->AddURL(folder, folder->child_count(), 1568 const BookmarkNode* framma = model->AddURL(folder, folder->child_count(),
1568 ASCIIToUTF16("f1"), 1569 ASCIIToUTF16("f1"),
1569 GURL("http://framma-lamma.com")); 1570 GURL("http://framma-lamma.com"));
1570 1571
1571 // Mock in a menu 1572 // Mock in a menu
1572 id origMenu = [bar_ buttonContextMenu]; 1573 id origMenu = [bar_ buttonContextMenu];
1573 id fakeMenu = [OCMockObject partialMockForObject:origMenu]; 1574 id fakeMenu = [OCMockObject partialMockForObject:origMenu];
1574 [[fakeMenu expect] cancelTracking]; 1575 [[fakeMenu expect] cancelTracking];
1575 [bar_ setButtonContextMenu:fakeMenu]; 1576 [bar_ setButtonContextMenu:fakeMenu];
1576 1577
1577 // Force a delete which should cancelTracking on the menu. 1578 // Force a delete which should cancelTracking on the menu.
1578 model->Remove(framma->parent(), framma->parent()->GetIndexOf(framma)); 1579 model->Remove(framma->parent(), framma->parent()->GetIndexOf(framma));
1579 1580
1580 // Restore, then confirm cancelTracking was called. 1581 // Restore, then confirm cancelTracking was called.
1581 [bar_ setButtonContextMenu:origMenu]; 1582 [bar_ setButtonContextMenu:origMenu];
1582 EXPECT_OCMOCK_VERIFY(fakeMenu); 1583 EXPECT_OCMOCK_VERIFY(fakeMenu);
1583 } 1584 }
1584 1585
1585 TEST_F(BookmarkBarControllerTest, CloseFolderOnAnimate) { 1586 TEST_F(BookmarkBarControllerTest, CloseFolderOnAnimate) {
1586 BookmarkModel* model = profile()->GetBookmarkModel(); 1587 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
1587 const BookmarkNode* parent = model->bookmark_bar_node(); 1588 const BookmarkNode* parent = model->bookmark_bar_node();
1588 const BookmarkNode* folder = model->AddFolder(parent, 1589 const BookmarkNode* folder = model->AddFolder(parent,
1589 parent->child_count(), 1590 parent->child_count(),
1590 ASCIIToUTF16("folder")); 1591 ASCIIToUTF16("folder"));
1591 model->AddFolder(parent, parent->child_count(), 1592 model->AddFolder(parent, parent->child_count(),
1592 ASCIIToUTF16("sibbling folder")); 1593 ASCIIToUTF16("sibbling folder"));
1593 model->AddURL(folder, folder->child_count(), ASCIIToUTF16("title a"), 1594 model->AddURL(folder, folder->child_count(), ASCIIToUTF16("title a"),
1594 GURL("http://www.google.com/a")); 1595 GURL("http://www.google.com/a"));
1595 model->AddURL(folder, folder->child_count(), 1596 model->AddURL(folder, folder->child_count(),
1596 ASCIIToUTF16("title super duper long long whoa momma title you betcha"), 1597 ASCIIToUTF16("title super duper long long whoa momma title you betcha"),
(...skipping 12 matching lines...) Expand all
1609 showDetachedBar:YES 1610 showDetachedBar:YES
1610 withAnimation:YES]; 1611 withAnimation:YES];
1611 EXPECT_TRUE([bar_ isAnimationRunning]); 1612 EXPECT_TRUE([bar_ isAnimationRunning]);
1612 1613
1613 // Now that we've closed the bookmark bar (with animation) the folder menu 1614 // Now that we've closed the bookmark bar (with animation) the folder menu
1614 // should have been closed thus releasing the folderController. 1615 // should have been closed thus releasing the folderController.
1615 EXPECT_FALSE([bar_ folderController]); 1616 EXPECT_FALSE([bar_ folderController]);
1616 } 1617 }
1617 1618
1618 TEST_F(BookmarkBarControllerTest, MoveRemoveAddButtons) { 1619 TEST_F(BookmarkBarControllerTest, MoveRemoveAddButtons) {
1619 BookmarkModel& model(*profile()->GetBookmarkModel()); 1620 BookmarkModel& model(*BookmarkModelFactory::GetForProfile(profile()));
1620 const BookmarkNode* root = model.bookmark_bar_node(); 1621 const BookmarkNode* root = model.bookmark_bar_node();
1621 const std::string model_string("1b 2f:[ 2f1b 2f2b ] 3b "); 1622 const std::string model_string("1b 2f:[ 2f1b 2f2b ] 3b ");
1622 model_test_utils::AddNodesFromModelString(model, root, model_string); 1623 model_test_utils::AddNodesFromModelString(model, root, model_string);
1623 1624
1624 // Validate initial model. 1625 // Validate initial model.
1625 std::string actualModelString = model_test_utils::ModelStringFromNode(root); 1626 std::string actualModelString = model_test_utils::ModelStringFromNode(root);
1626 EXPECT_EQ(model_string, actualModelString); 1627 EXPECT_EQ(model_string, actualModelString);
1627 1628
1628 // Remember how many buttons are showing. 1629 // Remember how many buttons are showing.
1629 int oldDisplayedButtons = [bar_ displayedButtonCount]; 1630 int oldDisplayedButtons = [bar_ displayedButtonCount];
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
1702 initialWidth:NSWidth(parent_frame) 1703 initialWidth:NSWidth(parent_frame)
1703 delegate:nil 1704 delegate:nil
1704 resizeDelegate:resizeDelegate_.get()]); 1705 resizeDelegate:resizeDelegate_.get()]);
1705 [bar_ view]; 1706 [bar_ view];
1706 // Awkwardness to look like we've been installed. 1707 // Awkwardness to look like we've been installed.
1707 [parent_view_ addSubview:[bar_ view]]; 1708 [parent_view_ addSubview:[bar_ view]];
1708 NSRect frame = [[[bar_ view] superview] frame]; 1709 NSRect frame = [[[bar_ view] superview] frame];
1709 frame.origin.y = 100; 1710 frame.origin.y = 100;
1710 [[[bar_ view] superview] setFrame:frame]; 1711 [[[bar_ view] superview] setFrame:frame];
1711 1712
1712 BookmarkModel* model = profile()->GetBookmarkModel(); 1713 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
1713 parent_ = model->bookmark_bar_node(); 1714 parent_ = model->bookmark_bar_node();
1714 // { one, { two-one, two-two }, three } 1715 // { one, { two-one, two-two }, three }
1715 model->AddURL(parent_, parent_->child_count(), ASCIIToUTF16("title"), 1716 model->AddURL(parent_, parent_->child_count(), ASCIIToUTF16("title"),
1716 GURL("http://one.com")); 1717 GURL("http://one.com"));
1717 folder_ = model->AddFolder(parent_, parent_->child_count(), 1718 folder_ = model->AddFolder(parent_, parent_->child_count(),
1718 ASCIIToUTF16("folder")); 1719 ASCIIToUTF16("folder"));
1719 model->AddURL(folder_, folder_->child_count(), 1720 model->AddURL(folder_, folder_->child_count(),
1720 ASCIIToUTF16("title"), GURL("http://two-one.com")); 1721 ASCIIToUTF16("title"), GURL("http://two-one.com"));
1721 model->AddURL(folder_, folder_->child_count(), 1722 model->AddURL(folder_, folder_->child_count(),
1722 ASCIIToUTF16("title"), GURL("http://two-two.com")); 1723 ASCIIToUTF16("title"), GURL("http://two-two.com"));
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
1870 [[BookmarkBarControllerDragData alloc] 1871 [[BookmarkBarControllerDragData alloc]
1871 initWithBrowser:browser() 1872 initWithBrowser:browser()
1872 initialWidth:NSWidth([parent_view_ frame]) 1873 initialWidth:NSWidth([parent_view_ frame])
1873 delegate:nil 1874 delegate:nil
1874 resizeDelegate:resizeDelegate_.get()]); 1875 resizeDelegate:resizeDelegate_.get()]);
1875 InstallAndToggleBar(bar_.get()); 1876 InstallAndToggleBar(bar_.get());
1876 } 1877 }
1877 }; 1878 };
1878 1879
1879 TEST_F(BookmarkBarControllerDragDropTest, DragMoveBarBookmarkToOffTheSide) { 1880 TEST_F(BookmarkBarControllerDragDropTest, DragMoveBarBookmarkToOffTheSide) {
1880 BookmarkModel& model(*profile()->GetBookmarkModel()); 1881 BookmarkModel& model(*BookmarkModelFactory::GetForProfile(profile()));
1881 const BookmarkNode* root = model.bookmark_bar_node(); 1882 const BookmarkNode* root = model.bookmark_bar_node();
1882 const std::string model_string("1bWithLongName 2fWithLongName:[ " 1883 const std::string model_string("1bWithLongName 2fWithLongName:[ "
1883 "2f1bWithLongName 2f2fWithLongName:[ 2f2f1bWithLongName " 1884 "2f1bWithLongName 2f2fWithLongName:[ 2f2f1bWithLongName "
1884 "2f2f2bWithLongName 2f2f3bWithLongName 2f4b ] 2f3bWithLongName ] " 1885 "2f2f2bWithLongName 2f2f3bWithLongName 2f4b ] 2f3bWithLongName ] "
1885 "3bWithLongName 4bWithLongName 5bWithLongName 6bWithLongName " 1886 "3bWithLongName 4bWithLongName 5bWithLongName 6bWithLongName "
1886 "7bWithLongName 8bWithLongName 9bWithLongName 10bWithLongName " 1887 "7bWithLongName 8bWithLongName 9bWithLongName 10bWithLongName "
1887 "11bWithLongName 12bWithLongName 13b "); 1888 "11bWithLongName 12bWithLongName 13b ");
1888 model_test_utils::AddNodesFromModelString(model, root, model_string); 1889 model_test_utils::AddNodesFromModelString(model, root, model_string);
1889 1890
1890 // Validate initial model. 1891 // Validate initial model.
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
1922 int newDisplayedButtons = [bar_ displayedButtonCount]; 1923 int newDisplayedButtons = [bar_ displayedButtonCount];
1923 int newChildCount = root->child_count(); 1924 int newChildCount = root->child_count();
1924 int newOTSCount = (int)[[otsController buttons] count]; 1925 int newOTSCount = (int)[[otsController buttons] count];
1925 EXPECT_EQ(oldDisplayedButtons, newDisplayedButtons); 1926 EXPECT_EQ(oldDisplayedButtons, newDisplayedButtons);
1926 EXPECT_EQ(oldChildCount + 1, newChildCount); 1927 EXPECT_EQ(oldChildCount + 1, newChildCount);
1927 EXPECT_EQ(oldOTSCount + 1, newOTSCount); 1928 EXPECT_EQ(oldOTSCount + 1, newOTSCount);
1928 EXPECT_EQ(newOTSCount, newChildCount - newDisplayedButtons); 1929 EXPECT_EQ(newOTSCount, newChildCount - newDisplayedButtons);
1929 } 1930 }
1930 1931
1931 TEST_F(BookmarkBarControllerDragDropTest, DragOffTheSideToOther) { 1932 TEST_F(BookmarkBarControllerDragDropTest, DragOffTheSideToOther) {
1932 BookmarkModel& model(*profile()->GetBookmarkModel()); 1933 BookmarkModel& model(*BookmarkModelFactory::GetForProfile(profile()));
1933 const BookmarkNode* root = model.bookmark_bar_node(); 1934 const BookmarkNode* root = model.bookmark_bar_node();
1934 const std::string model_string("1bWithLongName 2bWithLongName " 1935 const std::string model_string("1bWithLongName 2bWithLongName "
1935 "3bWithLongName 4bWithLongName 5bWithLongName 6bWithLongName " 1936 "3bWithLongName 4bWithLongName 5bWithLongName 6bWithLongName "
1936 "7bWithLongName 8bWithLongName 9bWithLongName 10bWithLongName " 1937 "7bWithLongName 8bWithLongName 9bWithLongName 10bWithLongName "
1937 "11bWithLongName 12bWithLongName 13bWithLongName 14bWithLongName " 1938 "11bWithLongName 12bWithLongName 13bWithLongName 14bWithLongName "
1938 "15bWithLongName 16bWithLongName 17bWithLongName 18bWithLongName " 1939 "15bWithLongName 16bWithLongName 17bWithLongName 18bWithLongName "
1939 "19bWithLongName 20bWithLongName "); 1940 "19bWithLongName 20bWithLongName ");
1940 model_test_utils::AddNodesFromModelString(model, root, model_string); 1941 model_test_utils::AddNodesFromModelString(model, root, model_string);
1941 1942
1942 const BookmarkNode* other = model.other_node(); 1943 const BookmarkNode* other = model.other_node();
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
1979 // and one more in other bookmarks. 1980 // and one more in other bookmarks.
1980 int newRootCount = root->child_count(); 1981 int newRootCount = root->child_count();
1981 int newOTSCount = (int)[[otsController buttons] count]; 1982 int newOTSCount = (int)[[otsController buttons] count];
1982 int newOtherCount = other->child_count(); 1983 int newOtherCount = other->child_count();
1983 EXPECT_EQ(oldRootCount - 1, newRootCount); 1984 EXPECT_EQ(oldRootCount - 1, newRootCount);
1984 EXPECT_EQ(oldOTSCount - 1, newOTSCount); 1985 EXPECT_EQ(oldOTSCount - 1, newOTSCount);
1985 EXPECT_EQ(oldOtherCount + 1, newOtherCount); 1986 EXPECT_EQ(oldOtherCount + 1, newOtherCount);
1986 } 1987 }
1987 1988
1988 TEST_F(BookmarkBarControllerDragDropTest, DragBookmarkData) { 1989 TEST_F(BookmarkBarControllerDragDropTest, DragBookmarkData) {
1989 BookmarkModel& model(*profile()->GetBookmarkModel()); 1990 BookmarkModel& model(*BookmarkModelFactory::GetForProfile(profile()));
1990 const BookmarkNode* root = model.bookmark_bar_node(); 1991 const BookmarkNode* root = model.bookmark_bar_node();
1991 const std::string model_string("1b 2f:[ 2f1b 2f2f:[ 2f2f1b 2f2f2b 2f2f3b ] " 1992 const std::string model_string("1b 2f:[ 2f1b 2f2f:[ 2f2f1b 2f2f2b 2f2f3b ] "
1992 "2f3b ] 3b 4b "); 1993 "2f3b ] 3b 4b ");
1993 model_test_utils::AddNodesFromModelString(model, root, model_string); 1994 model_test_utils::AddNodesFromModelString(model, root, model_string);
1994 const BookmarkNode* other = model.other_node(); 1995 const BookmarkNode* other = model.other_node();
1995 const std::string other_string("O1b O2b O3f:[ O3f1b O3f2f ] " 1996 const std::string other_string("O1b O2b O3f:[ O3f1b O3f2f ] "
1996 "O4f:[ O4f1b O4f2f ] 05b "); 1997 "O4f:[ O4f1b O4f2f ] 05b ");
1997 model_test_utils::AddNodesFromModelString(model, other, other_string); 1998 model_test_utils::AddNodesFromModelString(model, other, other_string);
1998 1999
1999 // Validate initial model. 2000 // Validate initial model.
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
2039 EXPECT_EQ(oldChildCount, newChildCount); 2040 EXPECT_EQ(oldChildCount, newChildCount);
2040 // Verify the model. 2041 // Verify the model.
2041 const std::string expected1("1b 2f:[ 2f1b 2f2f:[ 2f2f1b 2f2f2b 2f2f3b ] " 2042 const std::string expected1("1b 2f:[ 2f1b 2f2f:[ 2f2f1b 2f2f2b 2f2f3b ] "
2042 "2f3b O4f:[ O4f1b O4f2f ] ] O3f:[ O3f1b O3f2f ] " 2043 "2f3b O4f:[ O4f1b O4f2f ] ] O3f:[ O3f1b O3f2f ] "
2043 "3b 4b "); 2044 "3b 4b ");
2044 actual = model_test_utils::ModelStringFromNode(root); 2045 actual = model_test_utils::ModelStringFromNode(root);
2045 EXPECT_EQ(expected1, actual); 2046 EXPECT_EQ(expected1, actual);
2046 } 2047 }
2047 2048
2048 TEST_F(BookmarkBarControllerDragDropTest, AddURLs) { 2049 TEST_F(BookmarkBarControllerDragDropTest, AddURLs) {
2049 BookmarkModel& model(*profile()->GetBookmarkModel()); 2050 BookmarkModel& model(*BookmarkModelFactory::GetForProfile(profile()));
2050 const BookmarkNode* root = model.bookmark_bar_node(); 2051 const BookmarkNode* root = model.bookmark_bar_node();
2051 const std::string model_string("1b 2f:[ 2f1b 2f2f:[ 2f2f1b 2f2f2b 2f2f3b ] " 2052 const std::string model_string("1b 2f:[ 2f1b 2f2f:[ 2f2f1b 2f2f2b 2f2f3b ] "
2052 "2f3b ] 3b 4b "); 2053 "2f3b ] 3b 4b ");
2053 model_test_utils::AddNodesFromModelString(model, root, model_string); 2054 model_test_utils::AddNodesFromModelString(model, root, model_string);
2054 2055
2055 // Validate initial model. 2056 // Validate initial model.
2056 std::string actual = model_test_utils::ModelStringFromNode(root); 2057 std::string actual = model_test_utils::ModelStringFromNode(root);
2057 EXPECT_EQ(model_string, actual); 2058 EXPECT_EQ(model_string, actual);
2058 2059
2059 // Remember the children. 2060 // Remember the children.
(...skipping 11 matching lines...) Expand all
2071 int newChildCount = root->child_count(); 2072 int newChildCount = root->child_count();
2072 EXPECT_EQ(oldChildCount + 2, newChildCount); 2073 EXPECT_EQ(oldChildCount + 2, newChildCount);
2073 // Verify the model. 2074 // Verify the model.
2074 const std::string expected("1b 2f:[ 2f1b 2f2f:[ 2f2f1b 2f2f2b 2f2f3b ] " 2075 const std::string expected("1b 2f:[ 2f1b 2f2f:[ 2f2f1b 2f2f2b 2f2f3b ] "
2075 "2f3b ] SiteA SiteB 3b 4b "); 2076 "2f3b ] SiteA SiteB 3b 4b ");
2076 actual = model_test_utils::ModelStringFromNode(root); 2077 actual = model_test_utils::ModelStringFromNode(root);
2077 EXPECT_EQ(expected, actual); 2078 EXPECT_EQ(expected, actual);
2078 } 2079 }
2079 2080
2080 TEST_F(BookmarkBarControllerDragDropTest, ControllerForNode) { 2081 TEST_F(BookmarkBarControllerDragDropTest, ControllerForNode) {
2081 BookmarkModel& model(*profile()->GetBookmarkModel()); 2082 BookmarkModel& model(*BookmarkModelFactory::GetForProfile(profile()));
2082 const BookmarkNode* root = model.bookmark_bar_node(); 2083 const BookmarkNode* root = model.bookmark_bar_node();
2083 const std::string model_string("1b 2f:[ 2f1b 2f2b ] 3b "); 2084 const std::string model_string("1b 2f:[ 2f1b 2f2b ] 3b ");
2084 model_test_utils::AddNodesFromModelString(model, root, model_string); 2085 model_test_utils::AddNodesFromModelString(model, root, model_string);
2085 2086
2086 // Validate initial model. 2087 // Validate initial model.
2087 std::string actualModelString = model_test_utils::ModelStringFromNode(root); 2088 std::string actualModelString = model_test_utils::ModelStringFromNode(root);
2088 EXPECT_EQ(model_string, actualModelString); 2089 EXPECT_EQ(model_string, actualModelString);
2089 2090
2090 // Find the main bar controller. 2091 // Find the main bar controller.
2091 const void* expectedController = bar_; 2092 const void* expectedController = bar_;
2092 const void* actualController = [bar_ controllerForNode:root]; 2093 const void* actualController = [bar_ controllerForNode:root];
2093 EXPECT_EQ(expectedController, actualController); 2094 EXPECT_EQ(expectedController, actualController);
2094 } 2095 }
2095 2096
2096 TEST_F(BookmarkBarControllerDragDropTest, DropPositionIndicator) { 2097 TEST_F(BookmarkBarControllerDragDropTest, DropPositionIndicator) {
2097 BookmarkModel& model(*profile()->GetBookmarkModel()); 2098 BookmarkModel& model(*BookmarkModelFactory::GetForProfile(profile()));
2098 const BookmarkNode* root = model.bookmark_bar_node(); 2099 const BookmarkNode* root = model.bookmark_bar_node();
2099 const std::string model_string("1b 2f:[ 2f1b 2f2b 2f3b ] 3b 4b "); 2100 const std::string model_string("1b 2f:[ 2f1b 2f2b 2f3b ] 3b 4b ");
2100 model_test_utils::AddNodesFromModelString(model, root, model_string); 2101 model_test_utils::AddNodesFromModelString(model, root, model_string);
2101 2102
2102 // Validate initial model. 2103 // Validate initial model.
2103 std::string actualModel = model_test_utils::ModelStringFromNode(root); 2104 std::string actualModel = model_test_utils::ModelStringFromNode(root);
2104 EXPECT_EQ(model_string, actualModel); 2105 EXPECT_EQ(model_string, actualModel);
2105 2106
2106 // Test a series of points starting at the right edge of the bar. 2107 // Test a series of points starting at the right edge of the bar.
2107 BookmarkButton* targetButton = [bar_ buttonWithTitleEqualTo:@"1b"]; 2108 BookmarkButton* targetButton = [bar_ buttonWithTitleEqualTo:@"1b"];
(...skipping 11 matching lines...) Expand all
2119 EXPECT_CGFLOAT_EQ(expected, actual); 2120 EXPECT_CGFLOAT_EQ(expected, actual);
2120 targetButton = [bar_ buttonWithTitleEqualTo:@"4b"]; 2121 targetButton = [bar_ buttonWithTitleEqualTo:@"4b"];
2121 targetPoint = [targetButton right]; 2122 targetPoint = [targetButton right];
2122 targetPoint.x += 100; // Somewhere off to the right. 2123 targetPoint.x += 100; // Somewhere off to the right.
2123 expected = NSMaxX([targetButton frame]) + xDelta; 2124 expected = NSMaxX([targetButton frame]) + xDelta;
2124 actual = [bar_ indicatorPosForDragToPoint:targetPoint]; 2125 actual = [bar_ indicatorPosForDragToPoint:targetPoint];
2125 EXPECT_CGFLOAT_EQ(expected, actual); 2126 EXPECT_CGFLOAT_EQ(expected, actual);
2126 } 2127 }
2127 2128
2128 TEST_F(BookmarkBarControllerDragDropTest, PulseButton) { 2129 TEST_F(BookmarkBarControllerDragDropTest, PulseButton) {
2129 BookmarkModel* model = profile()->GetBookmarkModel(); 2130 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
2130 const BookmarkNode* root = model->bookmark_bar_node(); 2131 const BookmarkNode* root = model->bookmark_bar_node();
2131 GURL gurl("http://www.google.com"); 2132 GURL gurl("http://www.google.com");
2132 const BookmarkNode* node = model->AddURL(root, root->child_count(), 2133 const BookmarkNode* node = model->AddURL(root, root->child_count(),
2133 ASCIIToUTF16("title"), gurl); 2134 ASCIIToUTF16("title"), gurl);
2134 2135
2135 BookmarkButton* button = [[bar_ buttons] objectAtIndex:0]; 2136 BookmarkButton* button = [[bar_ buttons] objectAtIndex:0];
2136 EXPECT_FALSE([button isContinuousPulsing]); 2137 EXPECT_FALSE([button isContinuousPulsing]);
2137 2138
2138 NSValue *value = [NSValue valueWithPointer:node]; 2139 NSValue *value = [NSValue valueWithPointer:node];
2139 NSDictionary *dict = [NSDictionary 2140 NSDictionary *dict = [NSDictionary
(...skipping 14 matching lines...) Expand all
2154 bookmark_button::kBookmarkPulseFlagKey, 2155 bookmark_button::kBookmarkPulseFlagKey,
2155 nil]; 2156 nil];
2156 [[NSNotificationCenter defaultCenter] 2157 [[NSNotificationCenter defaultCenter]
2157 postNotificationName:bookmark_button::kPulseBookmarkButtonNotification 2158 postNotificationName:bookmark_button::kPulseBookmarkButtonNotification
2158 object:nil 2159 object:nil
2159 userInfo:dict]; 2160 userInfo:dict];
2160 EXPECT_FALSE([button isContinuousPulsing]); 2161 EXPECT_FALSE([button isContinuousPulsing]);
2161 } 2162 }
2162 2163
2163 TEST_F(BookmarkBarControllerDragDropTest, DragBookmarkDataToTrash) { 2164 TEST_F(BookmarkBarControllerDragDropTest, DragBookmarkDataToTrash) {
2164 BookmarkModel& model(*profile()->GetBookmarkModel()); 2165 BookmarkModel& model(*BookmarkModelFactory::GetForProfile(profile()));
2165 const BookmarkNode* root = model.bookmark_bar_node(); 2166 const BookmarkNode* root = model.bookmark_bar_node();
2166 const std::string model_string("1b 2f:[ 2f1b 2f2f:[ 2f2f1b 2f2f2b 2f2f3b ] " 2167 const std::string model_string("1b 2f:[ 2f1b 2f2f:[ 2f2f1b 2f2f2b 2f2f3b ] "
2167 "2f3b ] 3b 4b "); 2168 "2f3b ] 3b 4b ");
2168 model_test_utils::AddNodesFromModelString(model, root, model_string); 2169 model_test_utils::AddNodesFromModelString(model, root, model_string);
2169 2170
2170 // Validate initial model. 2171 // Validate initial model.
2171 std::string actual = model_test_utils::ModelStringFromNode(root); 2172 std::string actual = model_test_utils::ModelStringFromNode(root);
2172 EXPECT_EQ(model_string, actual); 2173 EXPECT_EQ(model_string, actual);
2173 2174
2174 int oldChildCount = root->child_count(); 2175 int oldChildCount = root->child_count();
(...skipping 12 matching lines...) Expand all
2187 "2f3b ] 4b "); 2188 "2f3b ] 4b ");
2188 actual = model_test_utils::ModelStringFromNode(root); 2189 actual = model_test_utils::ModelStringFromNode(root);
2189 EXPECT_EQ(expected, actual); 2190 EXPECT_EQ(expected, actual);
2190 2191
2191 // Verify that the other bookmark folder can't be deleted. 2192 // Verify that the other bookmark folder can't be deleted.
2192 BookmarkButton *otherButton = [bar_ otherBookmarksButton]; 2193 BookmarkButton *otherButton = [bar_ otherBookmarksButton];
2193 EXPECT_FALSE([bar_ canDragBookmarkButtonToTrash:otherButton]); 2194 EXPECT_FALSE([bar_ canDragBookmarkButtonToTrash:otherButton]);
2194 } 2195 }
2195 2196
2196 } // namespace 2197 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698