OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |