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

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

Issue 3141033: Remove wstrings from bookmarks, part 13. (Closed)
Patch Set: macoops3 Created 10 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
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/scoped_nsobject.h" 8 #include "base/scoped_nsobject.h"
9 #include "base/utf_string_conversions.h" 9 #include "base/utf_string_conversions.h"
10 #include "chrome/browser/bookmarks/bookmark_model.h" 10 #include "chrome/browser/bookmarks/bookmark_model.h"
(...skipping 630 matching lines...) Expand 10 before | Expand all | Expand 10 after
641 // Make sure it's open so certain things aren't no-ops. 641 // Make sure it's open so certain things aren't no-ops.
642 [bar updateAndShowNormalBar:YES 642 [bar updateAndShowNormalBar:YES
643 showDetachedBar:NO 643 showDetachedBar:NO
644 withAnimation:NO]; 644 withAnimation:NO];
645 } 645 }
646 }; 646 };
647 647
648 TEST_F(BookmarkBarFolderControllerMenuTest, DragMoveBarBookmarkToFolder) { 648 TEST_F(BookmarkBarFolderControllerMenuTest, DragMoveBarBookmarkToFolder) {
649 BookmarkModel& model(*helper_.profile()->GetBookmarkModel()); 649 BookmarkModel& model(*helper_.profile()->GetBookmarkModel());
650 const BookmarkNode* root = model.GetBookmarkBarNode(); 650 const BookmarkNode* root = model.GetBookmarkBarNode();
651 const std::wstring model_string(L"1b 2f:[ 2f1b 2f2f:[ 2f2f1b 2f2f2b " 651 const std::string model_string("1b 2f:[ 2f1b 2f2f:[ 2f2f1b 2f2f2b "
652 "2f2f3b ] 2f3b ] 3b 4f:[ 4f1f:[ 4f1f1b 4f1f2b 4f1f3b ] 4f2f:[ 4f2f1b " 652 "2f2f3b ] 2f3b ] 3b 4f:[ 4f1f:[ 4f1f1b 4f1f2b 4f1f3b ] 4f2f:[ 4f2f1b "
653 "4f2f2b 4f2f3b ] 4f3f:[ 4f3f1b 4f3f2b 4f3f3b ] ] 5b "); 653 "4f2f2b 4f2f3b ] 4f3f:[ 4f3f1b 4f3f2b 4f3f3b ] ] 5b ");
654 model_test_utils::AddNodesFromModelString(model, root, model_string); 654 model_test_utils::AddNodesFromModelString(model, root, model_string);
655 655
656 // Validate initial model. 656 // Validate initial model.
657 std::wstring actualModelString = model_test_utils::ModelStringFromNode(root); 657 std::string actualModelString = model_test_utils::ModelStringFromNode(root);
658 EXPECT_EQ(model_string, actualModelString); 658 EXPECT_EQ(model_string, actualModelString);
659 659
660 // Pop up a folder menu and drag in a button from the bar. 660 // Pop up a folder menu and drag in a button from the bar.
661 BookmarkButton* toFolder = [bar_ buttonWithTitleEqualTo:@"2f"]; 661 BookmarkButton* toFolder = [bar_ buttonWithTitleEqualTo:@"2f"];
662 NSRect oldToFolderFrame = [toFolder frame]; 662 NSRect oldToFolderFrame = [toFolder frame];
663 [[toFolder target] performSelector:@selector(openBookmarkFolderFromButton:) 663 [[toFolder target] performSelector:@selector(openBookmarkFolderFromButton:)
664 withObject:toFolder]; 664 withObject:toFolder];
665 BookmarkBarFolderController* folderController = [bar_ folderController]; 665 BookmarkBarFolderController* folderController = [bar_ folderController];
666 EXPECT_TRUE(folderController); 666 EXPECT_TRUE(folderController);
667 NSWindow* toWindow = [folderController window]; 667 NSWindow* toWindow = [folderController window];
668 EXPECT_TRUE(toWindow); 668 EXPECT_TRUE(toWindow);
669 NSRect oldToWindowFrame = [toWindow frame]; 669 NSRect oldToWindowFrame = [toWindow frame];
670 // Drag a bar button onto a bookmark (i.e. not a folder) in a folder 670 // Drag a bar button onto a bookmark (i.e. not a folder) in a folder
671 // so it should end up below the target bookmark. 671 // so it should end up below the target bookmark.
672 BookmarkButton* draggedButton = [bar_ buttonWithTitleEqualTo:@"1b"]; 672 BookmarkButton* draggedButton = [bar_ buttonWithTitleEqualTo:@"1b"];
673 ASSERT_TRUE(draggedButton); 673 ASSERT_TRUE(draggedButton);
674 CGFloat horizontalShift = 674 CGFloat horizontalShift =
675 NSWidth([draggedButton frame]) + bookmarks::kBookmarkHorizontalPadding; 675 NSWidth([draggedButton frame]) + bookmarks::kBookmarkHorizontalPadding;
676 BookmarkButton* targetButton = 676 BookmarkButton* targetButton =
677 [folderController buttonWithTitleEqualTo:@"2f1b"]; 677 [folderController buttonWithTitleEqualTo:@"2f1b"];
678 ASSERT_TRUE(targetButton); 678 ASSERT_TRUE(targetButton);
679 [folderController dragButton:draggedButton 679 [folderController dragButton:draggedButton
680 to:[targetButton center] 680 to:[targetButton center]
681 copy:NO]; 681 copy:NO];
682 // The button should have landed just after "2f1b". 682 // The button should have landed just after "2f1b".
683 const std::wstring expected_string(L"2f:[ 2f1b 1b 2f2f:[ 2f2f1b " 683 const std::string expected_string("2f:[ 2f1b 1b 2f2f:[ 2f2f1b "
684 "2f2f2b 2f2f3b ] 2f3b ] 3b 4f:[ 4f1f:[ 4f1f1b 4f1f2b 4f1f3b ] 4f2f:[ " 684 "2f2f2b 2f2f3b ] 2f3b ] 3b 4f:[ 4f1f:[ 4f1f1b 4f1f2b 4f1f3b ] 4f2f:[ "
685 "4f2f1b 4f2f2b 4f2f3b ] 4f3f:[ 4f3f1b 4f3f2b 4f3f3b ] ] 5b "); 685 "4f2f1b 4f2f2b 4f2f3b ] 4f3f:[ 4f3f1b 4f3f2b 4f3f3b ] ] 5b ");
686 EXPECT_EQ(expected_string, model_test_utils::ModelStringFromNode(root)); 686 EXPECT_EQ(expected_string, model_test_utils::ModelStringFromNode(root));
687 687
688 // Verify the window still appears by looking for its controller. 688 // Verify the window still appears by looking for its controller.
689 EXPECT_TRUE([bar_ folderController]); 689 EXPECT_TRUE([bar_ folderController]);
690 690
691 // Gather the new frames. 691 // Gather the new frames.
692 NSRect newToFolderFrame = [toFolder frame]; 692 NSRect newToFolderFrame = [toFolder frame];
693 NSRect newToWindowFrame = [toWindow frame]; 693 NSRect newToWindowFrame = [toWindow frame];
(...skipping 19 matching lines...) Expand all
713 [bar_ dragButton:draggedButton 713 [bar_ dragButton:draggedButton
714 to:[targetButton left] 714 to:[targetButton left]
715 copy:NO]; 715 copy:NO];
716 EXPECT_EQ(model_string, model_test_utils::ModelStringFromNode(root)); 716 EXPECT_EQ(model_string, model_test_utils::ModelStringFromNode(root));
717 // Don't check the folder window since it's not supposed to be showing. 717 // Don't check the folder window since it's not supposed to be showing.
718 } 718 }
719 719
720 TEST_F(BookmarkBarFolderControllerMenuTest, DragCopyBarBookmarkToFolder) { 720 TEST_F(BookmarkBarFolderControllerMenuTest, DragCopyBarBookmarkToFolder) {
721 BookmarkModel& model(*helper_.profile()->GetBookmarkModel()); 721 BookmarkModel& model(*helper_.profile()->GetBookmarkModel());
722 const BookmarkNode* root = model.GetBookmarkBarNode(); 722 const BookmarkNode* root = model.GetBookmarkBarNode();
723 const std::wstring model_string(L"1b 2f:[ 2f1b 2f2f:[ 2f2f1b 2f2f2b " 723 const std::string model_string("1b 2f:[ 2f1b 2f2f:[ 2f2f1b 2f2f2b "
724 "2f2f3b ] 2f3b ] 3b 4f:[ 4f1f:[ 4f1f1b 4f1f2b 4f1f3b ] 4f2f:[ 4f2f1b " 724 "2f2f3b ] 2f3b ] 3b 4f:[ 4f1f:[ 4f1f1b 4f1f2b 4f1f3b ] 4f2f:[ 4f2f1b "
725 "4f2f2b 4f2f3b ] 4f3f:[ 4f3f1b 4f3f2b 4f3f3b ] ] 5b "); 725 "4f2f2b 4f2f3b ] 4f3f:[ 4f3f1b 4f3f2b 4f3f3b ] ] 5b ");
726 model_test_utils::AddNodesFromModelString(model, root, model_string); 726 model_test_utils::AddNodesFromModelString(model, root, model_string);
727 727
728 // Validate initial model. 728 // Validate initial model.
729 std::wstring actualModelString = model_test_utils::ModelStringFromNode(root); 729 std::string actualModelString = model_test_utils::ModelStringFromNode(root);
730 EXPECT_EQ(model_string, actualModelString); 730 EXPECT_EQ(model_string, actualModelString);
731 731
732 // Pop up a folder menu and copy in a button from the bar. 732 // Pop up a folder menu and copy in a button from the bar.
733 BookmarkButton* toFolder = [bar_ buttonWithTitleEqualTo:@"2f"]; 733 BookmarkButton* toFolder = [bar_ buttonWithTitleEqualTo:@"2f"];
734 ASSERT_TRUE(toFolder); 734 ASSERT_TRUE(toFolder);
735 NSRect oldToFolderFrame = [toFolder frame]; 735 NSRect oldToFolderFrame = [toFolder frame];
736 [[toFolder target] performSelector:@selector(openBookmarkFolderFromButton:) 736 [[toFolder target] performSelector:@selector(openBookmarkFolderFromButton:)
737 withObject:toFolder]; 737 withObject:toFolder];
738 BookmarkBarFolderController* folderController = [bar_ folderController]; 738 BookmarkBarFolderController* folderController = [bar_ folderController];
739 EXPECT_TRUE(folderController); 739 EXPECT_TRUE(folderController);
740 NSWindow* toWindow = [folderController window]; 740 NSWindow* toWindow = [folderController window];
741 EXPECT_TRUE(toWindow); 741 EXPECT_TRUE(toWindow);
742 NSRect oldToWindowFrame = [toWindow frame]; 742 NSRect oldToWindowFrame = [toWindow frame];
743 // Drag a bar button onto a bookmark (i.e. not a folder) in a folder 743 // Drag a bar button onto a bookmark (i.e. not a folder) in a folder
744 // so it should end up below the target bookmark. 744 // so it should end up below the target bookmark.
745 BookmarkButton* draggedButton = [bar_ buttonWithTitleEqualTo:@"1b"]; 745 BookmarkButton* draggedButton = [bar_ buttonWithTitleEqualTo:@"1b"];
746 ASSERT_TRUE(draggedButton); 746 ASSERT_TRUE(draggedButton);
747 BookmarkButton* targetButton = 747 BookmarkButton* targetButton =
748 [folderController buttonWithTitleEqualTo:@"2f1b"]; 748 [folderController buttonWithTitleEqualTo:@"2f1b"];
749 ASSERT_TRUE(targetButton); 749 ASSERT_TRUE(targetButton);
750 [folderController dragButton:draggedButton 750 [folderController dragButton:draggedButton
751 to:[targetButton center] 751 to:[targetButton center]
752 copy:YES]; 752 copy:YES];
753 // The button should have landed just after "2f1b". 753 // The button should have landed just after "2f1b".
754 const std::wstring expected_1(L"1b 2f:[ 2f1b 1b 2f2f:[ 2f2f1b " 754 const std::string expected_1("1b 2f:[ 2f1b 1b 2f2f:[ 2f2f1b "
755 "2f2f2b 2f2f3b ] 2f3b ] 3b 4f:[ 4f1f:[ 4f1f1b 4f1f2b 4f1f3b ] 4f2f:[ " 755 "2f2f2b 2f2f3b ] 2f3b ] 3b 4f:[ 4f1f:[ 4f1f1b 4f1f2b 4f1f3b ] 4f2f:[ "
756 "4f2f1b 4f2f2b 4f2f3b ] 4f3f:[ 4f3f1b 4f3f2b 4f3f3b ] ] 5b "); 756 "4f2f1b 4f2f2b 4f2f3b ] 4f3f:[ 4f3f1b 4f3f2b 4f3f3b ] ] 5b ");
757 EXPECT_EQ(expected_1, model_test_utils::ModelStringFromNode(root)); 757 EXPECT_EQ(expected_1, model_test_utils::ModelStringFromNode(root));
758 758
759 // Gather the new frames. 759 // Gather the new frames.
760 NSRect newToFolderFrame = [toFolder frame]; 760 NSRect newToFolderFrame = [toFolder frame];
761 NSRect newToWindowFrame = [toWindow frame]; 761 NSRect newToWindowFrame = [toWindow frame];
762 // The toFolder should have shifted. 762 // The toFolder should have shifted.
763 EXPECT_NSRECT_EQ(oldToFolderFrame, newToFolderFrame); 763 EXPECT_NSRECT_EQ(oldToFolderFrame, newToFolderFrame);
764 // The toWindow should have shifted down vertically and grown vertically. 764 // The toWindow should have shifted down vertically and grown vertically.
765 NSRect expectedToWindowFrame = oldToWindowFrame; 765 NSRect expectedToWindowFrame = oldToWindowFrame;
766 expectedToWindowFrame.origin.y -= 766 expectedToWindowFrame.origin.y -=
767 bookmarks::kBookmarkBarHeight + bookmarks::kVisualHeightOffset; 767 bookmarks::kBookmarkBarHeight + bookmarks::kVisualHeightOffset;
768 expectedToWindowFrame.size.height += 768 expectedToWindowFrame.size.height +=
769 bookmarks::kBookmarkBarHeight + bookmarks::kVisualHeightOffset; 769 bookmarks::kBookmarkBarHeight + bookmarks::kVisualHeightOffset;
770 EXPECT_NSRECT_EQ(expectedToWindowFrame, newToWindowFrame); 770 EXPECT_NSRECT_EQ(expectedToWindowFrame, newToWindowFrame);
771 771
772 // Copy the button back to the bar after "3b". 772 // Copy the button back to the bar after "3b".
773 draggedButton = [folderController buttonWithTitleEqualTo:@"1b"]; 773 draggedButton = [folderController buttonWithTitleEqualTo:@"1b"];
774 ASSERT_TRUE(draggedButton); 774 ASSERT_TRUE(draggedButton);
775 targetButton = [bar_ buttonWithTitleEqualTo:@"4f"]; 775 targetButton = [bar_ buttonWithTitleEqualTo:@"4f"];
776 ASSERT_TRUE(targetButton); 776 ASSERT_TRUE(targetButton);
777 [bar_ dragButton:draggedButton 777 [bar_ dragButton:draggedButton
778 to:[targetButton left] 778 to:[targetButton left]
779 copy:YES]; 779 copy:YES];
780 const std::wstring expected_2(L"1b 2f:[ 2f1b 1b 2f2f:[ 2f2f1b " 780 const std::string expected_2("1b 2f:[ 2f1b 1b 2f2f:[ 2f2f1b "
781 "2f2f2b 2f2f3b ] 2f3b ] 3b 1b 4f:[ 4f1f:[ 4f1f1b 4f1f2b 4f1f3b ] 4f2f:[ " 781 "2f2f2b 2f2f3b ] 2f3b ] 3b 1b 4f:[ 4f1f:[ 4f1f1b 4f1f2b 4f1f3b ] 4f2f:[ "
782 "4f2f1b 4f2f2b 4f2f3b ] 4f3f:[ 4f3f1b 4f3f2b 4f3f3b ] ] 5b "); 782 "4f2f1b 4f2f2b 4f2f3b ] 4f3f:[ 4f3f1b 4f3f2b 4f3f3b ] ] 5b ");
783 EXPECT_EQ(expected_2, model_test_utils::ModelStringFromNode(root)); 783 EXPECT_EQ(expected_2, model_test_utils::ModelStringFromNode(root));
784 } 784 }
785 785
786 TEST_F(BookmarkBarFolderControllerMenuTest, DragMoveBarBookmarkToSubfolder) { 786 TEST_F(BookmarkBarFolderControllerMenuTest, DragMoveBarBookmarkToSubfolder) {
787 BookmarkModel& model(*helper_.profile()->GetBookmarkModel()); 787 BookmarkModel& model(*helper_.profile()->GetBookmarkModel());
788 const BookmarkNode* root = model.GetBookmarkBarNode(); 788 const BookmarkNode* root = model.GetBookmarkBarNode();
789 const std::wstring model_string(L"1b 2f:[ 2f1b 2f2f:[ 2f2f1b 2f2f2b " 789 const std::string model_string("1b 2f:[ 2f1b 2f2f:[ 2f2f1b 2f2f2b "
790 "2f2f3b ] 2f3b ] 3b 4f:[ 4f1f:[ 4f1f1b 4f1f2b 4f1f3b ] 4f2f:[ 4f2f1b " 790 "2f2f3b ] 2f3b ] 3b 4f:[ 4f1f:[ 4f1f1b 4f1f2b 4f1f3b ] 4f2f:[ 4f2f1b "
791 "4f2f2b 4f2f3b ] 4f3f:[ 4f3f1b 4f3f2b 4f3f3b ] ] 5b "); 791 "4f2f2b 4f2f3b ] 4f3f:[ 4f3f1b 4f3f2b 4f3f3b ] ] 5b ");
792 model_test_utils::AddNodesFromModelString(model, root, model_string); 792 model_test_utils::AddNodesFromModelString(model, root, model_string);
793 793
794 // Validate initial model. 794 // Validate initial model.
795 std::wstring actualModelString = model_test_utils::ModelStringFromNode(root); 795 std::string actualModelString = model_test_utils::ModelStringFromNode(root);
796 EXPECT_EQ(model_string, actualModelString); 796 EXPECT_EQ(model_string, actualModelString);
797 797
798 // Pop up a folder menu and a subfolder menu. 798 // Pop up a folder menu and a subfolder menu.
799 BookmarkButton* toFolder = [bar_ buttonWithTitleEqualTo:@"4f"]; 799 BookmarkButton* toFolder = [bar_ buttonWithTitleEqualTo:@"4f"];
800 ASSERT_TRUE(toFolder); 800 ASSERT_TRUE(toFolder);
801 [[toFolder target] performSelector:@selector(openBookmarkFolderFromButton:) 801 [[toFolder target] performSelector:@selector(openBookmarkFolderFromButton:)
802 withObject:toFolder]; 802 withObject:toFolder];
803 BookmarkBarFolderController* folderController = [bar_ folderController]; 803 BookmarkBarFolderController* folderController = [bar_ folderController];
804 EXPECT_TRUE(folderController); 804 EXPECT_TRUE(folderController);
805 NSWindow* toWindow = [folderController window]; 805 NSWindow* toWindow = [folderController window];
(...skipping 14 matching lines...) Expand all
820 // so it should end up below the target bookmark. 820 // so it should end up below the target bookmark.
821 BookmarkButton* draggedButton = [bar_ buttonWithTitleEqualTo:@"5b"]; 821 BookmarkButton* draggedButton = [bar_ buttonWithTitleEqualTo:@"5b"];
822 ASSERT_TRUE(draggedButton); 822 ASSERT_TRUE(draggedButton);
823 BookmarkButton* targetButton = 823 BookmarkButton* targetButton =
824 [subfolderController buttonWithTitleEqualTo:@"4f2f3b"]; 824 [subfolderController buttonWithTitleEqualTo:@"4f2f3b"];
825 ASSERT_TRUE(targetButton); 825 ASSERT_TRUE(targetButton);
826 [subfolderController dragButton:draggedButton 826 [subfolderController dragButton:draggedButton
827 to:[targetButton center] 827 to:[targetButton center]
828 copy:NO]; 828 copy:NO];
829 // The button should have landed just after "2f". 829 // The button should have landed just after "2f".
830 const std::wstring expected_string(L"1b 2f:[ 2f1b 2f2f:[ 2f2f1b " 830 const std::string expected_string("1b 2f:[ 2f1b 2f2f:[ 2f2f1b "
831 "2f2f2b 2f2f3b ] 2f3b ] 3b 4f:[ 4f1f:[ 4f1f1b 4f1f2b 4f1f3b ] 4f2f:[ " 831 "2f2f2b 2f2f3b ] 2f3b ] 3b 4f:[ 4f1f:[ 4f1f1b 4f1f2b 4f1f3b ] 4f2f:[ "
832 "4f2f1b 4f2f2b 4f2f3b 5b ] 4f3f:[ 4f3f1b 4f3f2b 4f3f3b ] ] "); 832 "4f2f1b 4f2f2b 4f2f3b 5b ] 4f3f:[ 4f3f1b 4f3f2b 4f3f3b ] ] ");
833 EXPECT_EQ(expected_string, model_test_utils::ModelStringFromNode(root)); 833 EXPECT_EQ(expected_string, model_test_utils::ModelStringFromNode(root));
834 834
835 // Check the window layouts. The folder window should not have changed, 835 // Check the window layouts. The folder window should not have changed,
836 // but the subfolder window should have shifted vertically and grown. 836 // but the subfolder window should have shifted vertically and grown.
837 NSRect newToWindowFrame = [toWindow frame]; 837 NSRect newToWindowFrame = [toWindow frame];
838 EXPECT_NSRECT_EQ(oldToWindowFrame, newToWindowFrame); 838 EXPECT_NSRECT_EQ(oldToWindowFrame, newToWindowFrame);
839 NSRect newToSubwindowFrame = [toSubwindow frame]; 839 NSRect newToSubwindowFrame = [toSubwindow frame];
840 NSRect expectedToSubwindowFrame = oldToSubwindowFrame; 840 NSRect expectedToSubwindowFrame = oldToSubwindowFrame;
841 expectedToSubwindowFrame.origin.y -= 841 expectedToSubwindowFrame.origin.y -=
842 bookmarks::kBookmarkBarHeight + bookmarks::kVisualHeightOffset; 842 bookmarks::kBookmarkBarHeight + bookmarks::kVisualHeightOffset;
843 expectedToSubwindowFrame.size.height += 843 expectedToSubwindowFrame.size.height +=
844 bookmarks::kBookmarkBarHeight + bookmarks::kVisualHeightOffset; 844 bookmarks::kBookmarkBarHeight + bookmarks::kVisualHeightOffset;
845 EXPECT_NSRECT_EQ(expectedToSubwindowFrame, newToSubwindowFrame); 845 EXPECT_NSRECT_EQ(expectedToSubwindowFrame, newToSubwindowFrame);
846 } 846 }
847 847
848 TEST_F(BookmarkBarFolderControllerMenuTest, DragMoveWithinFolder) { 848 TEST_F(BookmarkBarFolderControllerMenuTest, DragMoveWithinFolder) {
849 BookmarkModel& model(*helper_.profile()->GetBookmarkModel()); 849 BookmarkModel& model(*helper_.profile()->GetBookmarkModel());
850 const BookmarkNode* root = model.GetBookmarkBarNode(); 850 const BookmarkNode* root = model.GetBookmarkBarNode();
851 const std::wstring model_string(L"1b 2f:[ 2f1b 2f2f:[ 2f2f1b 2f2f2b " 851 const std::string model_string("1b 2f:[ 2f1b 2f2f:[ 2f2f1b 2f2f2b "
852 "2f2f3b ] 2f3b ] 3b 4f:[ 4f1f:[ 4f1f1b 4f1f2b 4f1f3b ] 4f2f:[ 4f2f1b " 852 "2f2f3b ] 2f3b ] 3b 4f:[ 4f1f:[ 4f1f1b 4f1f2b 4f1f3b ] 4f2f:[ 4f2f1b "
853 "4f2f2b 4f2f3b ] 4f3f:[ 4f3f1b 4f3f2b 4f3f3b ] ] 5b "); 853 "4f2f2b 4f2f3b ] 4f3f:[ 4f3f1b 4f3f2b 4f3f3b ] ] 5b ");
854 model_test_utils::AddNodesFromModelString(model, root, model_string); 854 model_test_utils::AddNodesFromModelString(model, root, model_string);
855 855
856 // Validate initial model. 856 // Validate initial model.
857 std::wstring actualModelString = model_test_utils::ModelStringFromNode(root); 857 std::string actualModelString = model_test_utils::ModelStringFromNode(root);
858 EXPECT_EQ(model_string, actualModelString); 858 EXPECT_EQ(model_string, actualModelString);
859 859
860 // Pop up a folder menu. 860 // Pop up a folder menu.
861 BookmarkButton* toFolder = [bar_ buttonWithTitleEqualTo:@"4f"]; 861 BookmarkButton* toFolder = [bar_ buttonWithTitleEqualTo:@"4f"];
862 ASSERT_TRUE(toFolder); 862 ASSERT_TRUE(toFolder);
863 [[toFolder target] performSelector:@selector(openBookmarkFolderFromButton:) 863 [[toFolder target] performSelector:@selector(openBookmarkFolderFromButton:)
864 withObject:toFolder]; 864 withObject:toFolder];
865 BookmarkBarFolderController* folderController = [bar_ folderController]; 865 BookmarkBarFolderController* folderController = [bar_ folderController];
866 EXPECT_TRUE(folderController); 866 EXPECT_TRUE(folderController);
867 NSWindow* toWindow = [folderController window]; 867 NSWindow* toWindow = [folderController window];
868 EXPECT_TRUE(toWindow); 868 EXPECT_TRUE(toWindow);
869 NSRect oldToWindowFrame = [toWindow frame]; 869 NSRect oldToWindowFrame = [toWindow frame];
870 // Drag a folder button to the top within the same parent. 870 // Drag a folder button to the top within the same parent.
871 BookmarkButton* draggedButton = 871 BookmarkButton* draggedButton =
872 [folderController buttonWithTitleEqualTo:@"4f2f"]; 872 [folderController buttonWithTitleEqualTo:@"4f2f"];
873 ASSERT_TRUE(draggedButton); 873 ASSERT_TRUE(draggedButton);
874 BookmarkButton* targetButton = 874 BookmarkButton* targetButton =
875 [folderController buttonWithTitleEqualTo:@"4f1f"]; 875 [folderController buttonWithTitleEqualTo:@"4f1f"];
876 ASSERT_TRUE(targetButton); 876 ASSERT_TRUE(targetButton);
877 [folderController dragButton:draggedButton 877 [folderController dragButton:draggedButton
878 to:[targetButton top] 878 to:[targetButton top]
879 copy:NO]; 879 copy:NO];
880 // The button should have landed above "4f1f". 880 // The button should have landed above "4f1f".
881 const std::wstring expected_string(L"1b 2f:[ 2f1b 2f2f:[ 2f2f1b " 881 const std::string expected_string("1b 2f:[ 2f1b 2f2f:[ 2f2f1b "
882 "2f2f2b 2f2f3b ] 2f3b ] 3b 4f:[ 4f2f:[ 4f2f1b 4f2f2b 4f2f3b ] " 882 "2f2f2b 2f2f3b ] 2f3b ] 3b 4f:[ 4f2f:[ 4f2f1b 4f2f2b 4f2f3b ] "
883 "4f1f:[ 4f1f1b 4f1f2b 4f1f3b ] 4f3f:[ 4f3f1b 4f3f2b 4f3f3b ] ] 5b "); 883 "4f1f:[ 4f1f1b 4f1f2b 4f1f3b ] 4f3f:[ 4f3f1b 4f3f2b 4f3f3b ] ] 5b ");
884 EXPECT_EQ(expected_string, model_test_utils::ModelStringFromNode(root)); 884 EXPECT_EQ(expected_string, model_test_utils::ModelStringFromNode(root));
885 885
886 // The window should not have gone away. 886 // The window should not have gone away.
887 EXPECT_TRUE([bar_ folderController]); 887 EXPECT_TRUE([bar_ folderController]);
888 888
889 // The folder window should not have changed. 889 // The folder window should not have changed.
890 NSRect newToWindowFrame = [toWindow frame]; 890 NSRect newToWindowFrame = [toWindow frame];
891 EXPECT_NSRECT_EQ(oldToWindowFrame, newToWindowFrame); 891 EXPECT_NSRECT_EQ(oldToWindowFrame, newToWindowFrame);
892 } 892 }
893 893
894 TEST_F(BookmarkBarFolderControllerMenuTest, DragParentOntoChild) { 894 TEST_F(BookmarkBarFolderControllerMenuTest, DragParentOntoChild) {
895 BookmarkModel& model(*helper_.profile()->GetBookmarkModel()); 895 BookmarkModel& model(*helper_.profile()->GetBookmarkModel());
896 const BookmarkNode* root = model.GetBookmarkBarNode(); 896 const BookmarkNode* root = model.GetBookmarkBarNode();
897 const std::wstring model_string(L"1b 2f:[ 2f1b 2f2f:[ 2f2f1b 2f2f2b " 897 const std::string model_string("1b 2f:[ 2f1b 2f2f:[ 2f2f1b 2f2f2b "
898 "2f2f3b ] 2f3b ] 3b 4f:[ 4f1f:[ 4f1f1b 4f1f2b 4f1f3b ] 4f2f:[ 4f2f1b " 898 "2f2f3b ] 2f3b ] 3b 4f:[ 4f1f:[ 4f1f1b 4f1f2b 4f1f3b ] 4f2f:[ 4f2f1b "
899 "4f2f2b 4f2f3b ] 4f3f:[ 4f3f1b 4f3f2b 4f3f3b ] ] 5b "); 899 "4f2f2b 4f2f3b ] 4f3f:[ 4f3f1b 4f3f2b 4f3f3b ] ] 5b ");
900 model_test_utils::AddNodesFromModelString(model, root, model_string); 900 model_test_utils::AddNodesFromModelString(model, root, model_string);
901 901
902 // Validate initial model. 902 // Validate initial model.
903 std::wstring actualModelString = model_test_utils::ModelStringFromNode(root); 903 std::string actualModelString = model_test_utils::ModelStringFromNode(root);
904 EXPECT_EQ(model_string, actualModelString); 904 EXPECT_EQ(model_string, actualModelString);
905 905
906 // Pop up a folder menu. 906 // Pop up a folder menu.
907 BookmarkButton* toFolder = [bar_ buttonWithTitleEqualTo:@"4f"]; 907 BookmarkButton* toFolder = [bar_ buttonWithTitleEqualTo:@"4f"];
908 ASSERT_TRUE(toFolder); 908 ASSERT_TRUE(toFolder);
909 [[toFolder target] performSelector:@selector(openBookmarkFolderFromButton:) 909 [[toFolder target] performSelector:@selector(openBookmarkFolderFromButton:)
910 withObject:toFolder]; 910 withObject:toFolder];
911 BookmarkBarFolderController* folderController = [bar_ folderController]; 911 BookmarkBarFolderController* folderController = [bar_ folderController];
912 EXPECT_TRUE(folderController); 912 EXPECT_TRUE(folderController);
913 NSWindow* toWindow = [folderController window]; 913 NSWindow* toWindow = [folderController window];
914 EXPECT_TRUE(toWindow); 914 EXPECT_TRUE(toWindow);
915 // Drag a folder button to one of its children. 915 // Drag a folder button to one of its children.
916 BookmarkButton* draggedButton = [bar_ buttonWithTitleEqualTo:@"4f"]; 916 BookmarkButton* draggedButton = [bar_ buttonWithTitleEqualTo:@"4f"];
917 ASSERT_TRUE(draggedButton); 917 ASSERT_TRUE(draggedButton);
918 BookmarkButton* targetButton = 918 BookmarkButton* targetButton =
919 [folderController buttonWithTitleEqualTo:@"4f3f"]; 919 [folderController buttonWithTitleEqualTo:@"4f3f"];
920 ASSERT_TRUE(targetButton); 920 ASSERT_TRUE(targetButton);
921 [folderController dragButton:draggedButton 921 [folderController dragButton:draggedButton
922 to:[targetButton top] 922 to:[targetButton top]
923 copy:NO]; 923 copy:NO];
924 // The model should not have changed. 924 // The model should not have changed.
925 EXPECT_EQ(model_string, model_test_utils::ModelStringFromNode(root)); 925 EXPECT_EQ(model_string, model_test_utils::ModelStringFromNode(root));
926 } 926 }
927 927
928 TEST_F(BookmarkBarFolderControllerMenuTest, DragMoveChildToParent) { 928 TEST_F(BookmarkBarFolderControllerMenuTest, DragMoveChildToParent) {
929 BookmarkModel& model(*helper_.profile()->GetBookmarkModel()); 929 BookmarkModel& model(*helper_.profile()->GetBookmarkModel());
930 const BookmarkNode* root = model.GetBookmarkBarNode(); 930 const BookmarkNode* root = model.GetBookmarkBarNode();
931 const std::wstring model_string(L"1b 2f:[ 2f1b 2f2f:[ 2f2f1b 2f2f2b " 931 const std::string model_string("1b 2f:[ 2f1b 2f2f:[ 2f2f1b 2f2f2b "
932 "2f2f3b ] 2f3b ] 3b 4f:[ 4f1f:[ 4f1f1b 4f1f2b 4f1f3b ] 4f2f:[ 4f2f1b " 932 "2f2f3b ] 2f3b ] 3b 4f:[ 4f1f:[ 4f1f1b 4f1f2b 4f1f3b ] 4f2f:[ 4f2f1b "
933 "4f2f2b 4f2f3b ] 4f3f:[ 4f3f1b 4f3f2b 4f3f3b ] ] 5b "); 933 "4f2f2b 4f2f3b ] 4f3f:[ 4f3f1b 4f3f2b 4f3f3b ] ] 5b ");
934 model_test_utils::AddNodesFromModelString(model, root, model_string); 934 model_test_utils::AddNodesFromModelString(model, root, model_string);
935 935
936 // Validate initial model. 936 // Validate initial model.
937 std::wstring actualModelString = model_test_utils::ModelStringFromNode(root); 937 std::string actualModelString = model_test_utils::ModelStringFromNode(root);
938 EXPECT_EQ(model_string, actualModelString); 938 EXPECT_EQ(model_string, actualModelString);
939 939
940 // Pop up a folder menu and a subfolder menu. 940 // Pop up a folder menu and a subfolder menu.
941 BookmarkButton* toFolder = [bar_ buttonWithTitleEqualTo:@"4f"]; 941 BookmarkButton* toFolder = [bar_ buttonWithTitleEqualTo:@"4f"];
942 ASSERT_TRUE(toFolder); 942 ASSERT_TRUE(toFolder);
943 [[toFolder target] performSelector:@selector(openBookmarkFolderFromButton:) 943 [[toFolder target] performSelector:@selector(openBookmarkFolderFromButton:)
944 withObject:toFolder]; 944 withObject:toFolder];
945 BookmarkBarFolderController* folderController = [bar_ folderController]; 945 BookmarkBarFolderController* folderController = [bar_ folderController];
946 EXPECT_TRUE(folderController); 946 EXPECT_TRUE(folderController);
947 BookmarkButton* toSubfolder = 947 BookmarkButton* toSubfolder =
948 [folderController buttonWithTitleEqualTo:@"4f2f"]; 948 [folderController buttonWithTitleEqualTo:@"4f2f"];
949 ASSERT_TRUE(toSubfolder); 949 ASSERT_TRUE(toSubfolder);
950 [[toSubfolder target] performSelector:@selector(openBookmarkFolderFromButton:) 950 [[toSubfolder target] performSelector:@selector(openBookmarkFolderFromButton:)
951 withObject:toSubfolder]; 951 withObject:toSubfolder];
952 BookmarkBarFolderController* subfolderController = 952 BookmarkBarFolderController* subfolderController =
953 [folderController folderController]; 953 [folderController folderController];
954 EXPECT_TRUE(subfolderController); 954 EXPECT_TRUE(subfolderController);
955 955
956 // Drag a subfolder bookmark to the parent folder. 956 // Drag a subfolder bookmark to the parent folder.
957 BookmarkButton* draggedButton = 957 BookmarkButton* draggedButton =
958 [subfolderController buttonWithTitleEqualTo:@"4f2f3b"]; 958 [subfolderController buttonWithTitleEqualTo:@"4f2f3b"];
959 ASSERT_TRUE(draggedButton); 959 ASSERT_TRUE(draggedButton);
960 BookmarkButton* targetButton = 960 BookmarkButton* targetButton =
961 [folderController buttonWithTitleEqualTo:@"4f2f"]; 961 [folderController buttonWithTitleEqualTo:@"4f2f"];
962 ASSERT_TRUE(targetButton); 962 ASSERT_TRUE(targetButton);
963 [folderController dragButton:draggedButton 963 [folderController dragButton:draggedButton
964 to:[targetButton top] 964 to:[targetButton top]
965 copy:NO]; 965 copy:NO];
966 // The button should have landed above "4f2f". 966 // The button should have landed above "4f2f".
967 const std::wstring expected_string(L"1b 2f:[ 2f1b 2f2f:[ 2f2f1b 2f2f2b " 967 const std::string expected_string("1b 2f:[ 2f1b 2f2f:[ 2f2f1b 2f2f2b "
968 "2f2f3b ] 2f3b ] 3b 4f:[ 4f1f:[ 4f1f1b 4f1f2b 4f1f3b ] 4f2f3b 4f2f:[ " 968 "2f2f3b ] 2f3b ] 3b 4f:[ 4f1f:[ 4f1f1b 4f1f2b 4f1f3b ] 4f2f3b 4f2f:[ "
969 "4f2f1b 4f2f2b ] 4f3f:[ 4f3f1b 4f3f2b 4f3f3b ] ] 5b "); 969 "4f2f1b 4f2f2b ] 4f3f:[ 4f3f1b 4f3f2b 4f3f3b ] ] 5b ");
970 EXPECT_EQ(expected_string, model_test_utils::ModelStringFromNode(root)); 970 EXPECT_EQ(expected_string, model_test_utils::ModelStringFromNode(root));
971 971
972 // The window should not have gone away. 972 // The window should not have gone away.
973 EXPECT_TRUE([bar_ folderController]); 973 EXPECT_TRUE([bar_ folderController]);
974 // The subfolder should have gone away. 974 // The subfolder should have gone away.
975 EXPECT_FALSE([folderController folderController]); 975 EXPECT_FALSE([folderController folderController]);
976 } 976 }
977 977
978 TEST_F(BookmarkBarFolderControllerMenuTest, DragWindowResizing) { 978 TEST_F(BookmarkBarFolderControllerMenuTest, DragWindowResizing) {
979 BookmarkModel& model(*helper_.profile()->GetBookmarkModel()); 979 BookmarkModel& model(*helper_.profile()->GetBookmarkModel());
980 const BookmarkNode* root = model.GetBookmarkBarNode(); 980 const BookmarkNode* root = model.GetBookmarkBarNode();
981 const std::wstring 981 const std::string
982 model_string(L"a b:[ b1 b2 b3 ] reallyReallyLongBookmarkName c "); 982 model_string("a b:[ b1 b2 b3 ] reallyReallyLongBookmarkName c ");
983 model_test_utils::AddNodesFromModelString(model, root, model_string); 983 model_test_utils::AddNodesFromModelString(model, root, model_string);
984 984
985 // Validate initial model. 985 // Validate initial model.
986 std::wstring actualModelString = model_test_utils::ModelStringFromNode(root); 986 std::string actualModelString = model_test_utils::ModelStringFromNode(root);
987 EXPECT_EQ(model_string, actualModelString); 987 EXPECT_EQ(model_string, actualModelString);
988 988
989 // Pop up a folder menu. 989 // Pop up a folder menu.
990 BookmarkButton* toFolder = [bar_ buttonWithTitleEqualTo:@"b"]; 990 BookmarkButton* toFolder = [bar_ buttonWithTitleEqualTo:@"b"];
991 ASSERT_TRUE(toFolder); 991 ASSERT_TRUE(toFolder);
992 [[toFolder target] performSelector:@selector(openBookmarkFolderFromButton:) 992 [[toFolder target] performSelector:@selector(openBookmarkFolderFromButton:)
993 withObject:toFolder]; 993 withObject:toFolder];
994 BookmarkBarFolderController* folderController = [bar_ folderController]; 994 BookmarkBarFolderController* folderController = [bar_ folderController];
995 EXPECT_TRUE(folderController); 995 EXPECT_TRUE(folderController);
996 NSWindow* toWindow = [folderController window]; 996 NSWindow* toWindow = [folderController window];
997 EXPECT_TRUE(toWindow); 997 EXPECT_TRUE(toWindow);
998 CGFloat oldWidth = NSWidth([toWindow frame]); 998 CGFloat oldWidth = NSWidth([toWindow frame]);
999 // Drag the bookmark with a long name to the folder. 999 // Drag the bookmark with a long name to the folder.
1000 BookmarkButton* draggedButton = 1000 BookmarkButton* draggedButton =
1001 [bar_ buttonWithTitleEqualTo:@"reallyReallyLongBookmarkName"]; 1001 [bar_ buttonWithTitleEqualTo:@"reallyReallyLongBookmarkName"];
1002 ASSERT_TRUE(draggedButton); 1002 ASSERT_TRUE(draggedButton);
1003 BookmarkButton* targetButton = 1003 BookmarkButton* targetButton =
1004 [folderController buttonWithTitleEqualTo:@"b1"]; 1004 [folderController buttonWithTitleEqualTo:@"b1"];
1005 ASSERT_TRUE(targetButton); 1005 ASSERT_TRUE(targetButton);
1006 [folderController dragButton:draggedButton 1006 [folderController dragButton:draggedButton
1007 to:[targetButton center] 1007 to:[targetButton center]
1008 copy:NO]; 1008 copy:NO];
1009 // Verify the model change. 1009 // Verify the model change.
1010 const std::wstring 1010 const std::string
1011 expected_string(L"a b:[ b1 reallyReallyLongBookmarkName b2 b3 ] c "); 1011 expected_string("a b:[ b1 reallyReallyLongBookmarkName b2 b3 ] c ");
1012 EXPECT_EQ(expected_string, model_test_utils::ModelStringFromNode(root)); 1012 EXPECT_EQ(expected_string, model_test_utils::ModelStringFromNode(root));
1013 // Verify the window grew. Just test a reasonable width gain. 1013 // Verify the window grew. Just test a reasonable width gain.
1014 CGFloat newWidth = NSWidth([toWindow frame]); 1014 CGFloat newWidth = NSWidth([toWindow frame]);
1015 EXPECT_LT(oldWidth + 30.0, newWidth); 1015 EXPECT_LT(oldWidth + 30.0, newWidth);
1016 } 1016 }
1017 1017
1018 TEST_F(BookmarkBarFolderControllerMenuTest, MoveRemoveAddButtons) { 1018 TEST_F(BookmarkBarFolderControllerMenuTest, MoveRemoveAddButtons) {
1019 BookmarkModel& model(*helper_.profile()->GetBookmarkModel()); 1019 BookmarkModel& model(*helper_.profile()->GetBookmarkModel());
1020 const BookmarkNode* root = model.GetBookmarkBarNode(); 1020 const BookmarkNode* root = model.GetBookmarkBarNode();
1021 const std::wstring model_string(L"1b 2f:[ 2f1b 2f2b 2f3b ] 3b 4b "); 1021 const std::string model_string("1b 2f:[ 2f1b 2f2b 2f3b ] 3b 4b ");
1022 model_test_utils::AddNodesFromModelString(model, root, model_string); 1022 model_test_utils::AddNodesFromModelString(model, root, model_string);
1023 1023
1024 // Validate initial model. 1024 // Validate initial model.
1025 std::wstring actualModelString = model_test_utils::ModelStringFromNode(root); 1025 std::string actualModelString = model_test_utils::ModelStringFromNode(root);
1026 EXPECT_EQ(model_string, actualModelString); 1026 EXPECT_EQ(model_string, actualModelString);
1027 1027
1028 // Pop up a folder menu. 1028 // Pop up a folder menu.
1029 BookmarkButton* toFolder = [bar_ buttonWithTitleEqualTo:@"2f"]; 1029 BookmarkButton* toFolder = [bar_ buttonWithTitleEqualTo:@"2f"];
1030 ASSERT_TRUE(toFolder); 1030 ASSERT_TRUE(toFolder);
1031 [[toFolder target] performSelector:@selector(openBookmarkFolderFromButton:) 1031 [[toFolder target] performSelector:@selector(openBookmarkFolderFromButton:)
1032 withObject:toFolder]; 1032 withObject:toFolder];
1033 BookmarkBarFolderController* folder = [bar_ folderController]; 1033 BookmarkBarFolderController* folder = [bar_ folderController];
1034 EXPECT_TRUE(folder); 1034 EXPECT_TRUE(folder);
1035 1035
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
1071 [folder removeButton:1 animate:NO]; 1071 [folder removeButton:1 animate:NO];
1072 EXPECT_NSEQ(@"3b", [[buttons objectAtIndex:0] title]); 1072 EXPECT_NSEQ(@"3b", [[buttons objectAtIndex:0] title]);
1073 EXPECT_NSEQ(@"2f2b", [[buttons objectAtIndex:1] title]); 1073 EXPECT_NSEQ(@"2f2b", [[buttons objectAtIndex:1] title]);
1074 EXPECT_NSEQ(@"2f3b", [[buttons objectAtIndex:2] title]); 1074 EXPECT_NSEQ(@"2f3b", [[buttons objectAtIndex:2] title]);
1075 EXPECT_EQ(oldDisplayedButtons, [buttons count]); 1075 EXPECT_EQ(oldDisplayedButtons, [buttons count]);
1076 } 1076 }
1077 1077
1078 TEST_F(BookmarkBarFolderControllerMenuTest, ControllerForNode) { 1078 TEST_F(BookmarkBarFolderControllerMenuTest, ControllerForNode) {
1079 BookmarkModel& model(*helper_.profile()->GetBookmarkModel()); 1079 BookmarkModel& model(*helper_.profile()->GetBookmarkModel());
1080 const BookmarkNode* root = model.GetBookmarkBarNode(); 1080 const BookmarkNode* root = model.GetBookmarkBarNode();
1081 const std::wstring model_string(L"1b 2f:[ 2f1b 2f2b ] 3b "); 1081 const std::string model_string("1b 2f:[ 2f1b 2f2b ] 3b ");
1082 model_test_utils::AddNodesFromModelString(model, root, model_string); 1082 model_test_utils::AddNodesFromModelString(model, root, model_string);
1083 1083
1084 // Validate initial model. 1084 // Validate initial model.
1085 std::wstring actualModelString = model_test_utils::ModelStringFromNode(root); 1085 std::string actualModelString = model_test_utils::ModelStringFromNode(root);
1086 EXPECT_EQ(model_string, actualModelString); 1086 EXPECT_EQ(model_string, actualModelString);
1087 1087
1088 // Find the main bar controller. 1088 // Find the main bar controller.
1089 const void* expectedController = bar_; 1089 const void* expectedController = bar_;
1090 const void* actualController = [bar_ controllerForNode:root]; 1090 const void* actualController = [bar_ controllerForNode:root];
1091 EXPECT_EQ(expectedController, actualController); 1091 EXPECT_EQ(expectedController, actualController);
1092 1092
1093 // Pop up the folder menu. 1093 // Pop up the folder menu.
1094 BookmarkButton* targetFolder = [bar_ buttonWithTitleEqualTo:@"2f"]; 1094 BookmarkButton* targetFolder = [bar_ buttonWithTitleEqualTo:@"2f"];
1095 ASSERT_TRUE(targetFolder); 1095 ASSERT_TRUE(targetFolder);
(...skipping 10 matching lines...) Expand all
1106 EXPECT_EQ(expectedController, actualController); 1106 EXPECT_EQ(expectedController, actualController);
1107 1107
1108 // Find the folder controller from the bar. 1108 // Find the folder controller from the bar.
1109 actualController = [folder controllerForNode:targetNode]; 1109 actualController = [folder controllerForNode:targetNode];
1110 EXPECT_EQ(expectedController, actualController); 1110 EXPECT_EQ(expectedController, actualController);
1111 } 1111 }
1112 1112
1113 TEST_F(BookmarkBarFolderControllerMenuTest, MenuSizingAndScrollArrows) { 1113 TEST_F(BookmarkBarFolderControllerMenuTest, MenuSizingAndScrollArrows) {
1114 BookmarkModel& model(*helper_.profile()->GetBookmarkModel()); 1114 BookmarkModel& model(*helper_.profile()->GetBookmarkModel());
1115 const BookmarkNode* root = model.GetBookmarkBarNode(); 1115 const BookmarkNode* root = model.GetBookmarkBarNode();
1116 const std::wstring model_string(L"1b 2b 3b "); 1116 const std::string model_string("1b 2b 3b ");
1117 model_test_utils::AddNodesFromModelString(model, root, model_string); 1117 model_test_utils::AddNodesFromModelString(model, root, model_string);
1118 1118
1119 // Validate initial model. 1119 // Validate initial model.
1120 std::wstring actualModelString = model_test_utils::ModelStringFromNode(root); 1120 std::string actualModelString = model_test_utils::ModelStringFromNode(root);
1121 EXPECT_EQ(model_string, actualModelString); 1121 EXPECT_EQ(model_string, actualModelString);
1122 1122
1123 const BookmarkNode* parent = model.GetBookmarkBarNode(); 1123 const BookmarkNode* parent = model.GetBookmarkBarNode();
1124 const BookmarkNode* folder = model.AddGroup(parent, 1124 const BookmarkNode* folder = model.AddGroup(parent,
1125 parent->GetChildCount(), 1125 parent->GetChildCount(),
1126 ASCIIToUTF16("BIG")); 1126 ASCIIToUTF16("BIG"));
1127 1127
1128 // Pop open the new folder window and verify it has one (empty) item. 1128 // Pop open the new folder window and verify it has one (empty) item.
1129 BookmarkButton* button = [bar_ buttonWithTitleEqualTo:@"BIG"]; 1129 BookmarkButton* button = [bar_ buttonWithTitleEqualTo:@"BIG"];
1130 [[button target] performSelector:@selector(openBookmarkFolderFromButton:) 1130 [[button target] performSelector:@selector(openBookmarkFolderFromButton:)
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
1261 dragDataNodes.push_back(dragDataNode_); 1261 dragDataNodes.push_back(dragDataNode_);
1262 } 1262 }
1263 return dragDataNodes; 1263 return dragDataNodes;
1264 } 1264 }
1265 1265
1266 @end 1266 @end
1267 1267
1268 TEST_F(BookmarkBarFolderControllerMenuTest, DragBookmarkData) { 1268 TEST_F(BookmarkBarFolderControllerMenuTest, DragBookmarkData) {
1269 BookmarkModel& model(*helper_.profile()->GetBookmarkModel()); 1269 BookmarkModel& model(*helper_.profile()->GetBookmarkModel());
1270 const BookmarkNode* root = model.GetBookmarkBarNode(); 1270 const BookmarkNode* root = model.GetBookmarkBarNode();
1271 const std::wstring model_string(L"1b 2f:[ 2f1b 2f2f:[ 2f2f1b 2f2f2b 2f2f3b ] " 1271 const std::string model_string("1b 2f:[ 2f1b 2f2f:[ 2f2f1b 2f2f2b 2f2f3b ] "
1272 "2f3b ] 3b 4b "); 1272 "2f3b ] 3b 4b ");
1273 model_test_utils::AddNodesFromModelString(model, root, model_string); 1273 model_test_utils::AddNodesFromModelString(model, root, model_string);
1274 const BookmarkNode* other = model.other_node(); 1274 const BookmarkNode* other = model.other_node();
1275 const std::wstring other_string(L"O1b O2b O3f:[ O3f1b O3f2f ] " 1275 const std::string other_string("O1b O2b O3f:[ O3f1b O3f2f ] "
1276 "O4f:[ O4f1b O4f2f ] 05b "); 1276 "O4f:[ O4f1b O4f2f ] 05b ");
1277 model_test_utils::AddNodesFromModelString(model, other, other_string); 1277 model_test_utils::AddNodesFromModelString(model, other, other_string);
1278 1278
1279 // Validate initial model. 1279 // Validate initial model.
1280 std::wstring actual = model_test_utils::ModelStringFromNode(root); 1280 std::string actual = model_test_utils::ModelStringFromNode(root);
1281 EXPECT_EQ(model_string, actual); 1281 EXPECT_EQ(model_string, actual);
1282 actual = model_test_utils::ModelStringFromNode(other); 1282 actual = model_test_utils::ModelStringFromNode(other);
1283 EXPECT_EQ(other_string, actual); 1283 EXPECT_EQ(other_string, actual);
1284 1284
1285 // Pop open a folder. 1285 // Pop open a folder.
1286 BookmarkButton* button = [bar_ buttonWithTitleEqualTo:@"2f"]; 1286 BookmarkButton* button = [bar_ buttonWithTitleEqualTo:@"2f"];
1287 scoped_nsobject<BookmarkBarFolderControllerDragData> folderController; 1287 scoped_nsobject<BookmarkBarFolderControllerDragData> folderController;
1288 folderController.reset([[BookmarkBarFolderControllerDragData alloc] 1288 folderController.reset([[BookmarkBarFolderControllerDragData alloc]
1289 initWithParentButton:button 1289 initWithParentButton:button
1290 parentController:nil 1290 parentController:nil
1291 barController:bar_]); 1291 barController:bar_]);
1292 [folderController window]; 1292 [folderController window];
1293 BookmarkButton* targetButton = 1293 BookmarkButton* targetButton =
1294 [folderController buttonWithTitleEqualTo:@"2f1b"]; 1294 [folderController buttonWithTitleEqualTo:@"2f1b"];
1295 ASSERT_TRUE(targetButton); 1295 ASSERT_TRUE(targetButton);
1296 1296
1297 // Gen up some dragging data. 1297 // Gen up some dragging data.
1298 const BookmarkNode* newNode = other->GetChild(2); 1298 const BookmarkNode* newNode = other->GetChild(2);
1299 [folderController setDragDataNode:newNode]; 1299 [folderController setDragDataNode:newNode];
1300 scoped_nsobject<FakedDragInfo> dragInfo([[FakedDragInfo alloc] init]); 1300 scoped_nsobject<FakedDragInfo> dragInfo([[FakedDragInfo alloc] init]);
1301 [dragInfo setDropLocation:[targetButton top]]; 1301 [dragInfo setDropLocation:[targetButton top]];
1302 [folderController dragBookmarkData:(id<NSDraggingInfo>)dragInfo.get()]; 1302 [folderController dragBookmarkData:(id<NSDraggingInfo>)dragInfo.get()];
1303 1303
1304 // Verify the model. 1304 // Verify the model.
1305 const std::wstring expected(L"1b 2f:[ O3f:[ O3f1b O3f2f ] 2f1b 2f2f:[ 2f2f1b " 1305 const std::string expected("1b 2f:[ O3f:[ O3f1b O3f2f ] 2f1b 2f2f:[ 2f2f1b "
1306 "2f2f2b 2f2f3b ] 2f3b ] 3b 4b "); 1306 "2f2f2b 2f2f3b ] 2f3b ] 3b 4b ");
1307 actual = model_test_utils::ModelStringFromNode(root); 1307 actual = model_test_utils::ModelStringFromNode(root);
1308 EXPECT_EQ(expected, actual); 1308 EXPECT_EQ(expected, actual);
1309 1309
1310 // Now drag over a folder button. 1310 // Now drag over a folder button.
1311 targetButton = [folderController buttonWithTitleEqualTo:@"2f2f"]; 1311 targetButton = [folderController buttonWithTitleEqualTo:@"2f2f"];
1312 ASSERT_TRUE(targetButton); 1312 ASSERT_TRUE(targetButton);
1313 newNode = other->GetChild(2); // Should be O4f. 1313 newNode = other->GetChild(2); // Should be O4f.
1314 EXPECT_EQ(newNode->GetTitleAsString16(), ASCIIToUTF16("O4f")); 1314 EXPECT_EQ(newNode->GetTitleAsString16(), ASCIIToUTF16("O4f"));
1315 [folderController setDragDataNode:newNode]; 1315 [folderController setDragDataNode:newNode];
1316 [dragInfo setDropLocation:[targetButton center]]; 1316 [dragInfo setDropLocation:[targetButton center]];
1317 [folderController dragBookmarkData:(id<NSDraggingInfo>)dragInfo.get()]; 1317 [folderController dragBookmarkData:(id<NSDraggingInfo>)dragInfo.get()];
1318 1318
1319 // Verify the model. 1319 // Verify the model.
1320 const std::wstring expectedA(L"1b 2f:[ O3f:[ O3f1b O3f2f ] 2f1b 2f2f:[ " 1320 const std::string expectedA("1b 2f:[ O3f:[ O3f1b O3f2f ] 2f1b 2f2f:[ "
1321 "2f2f1b 2f2f2b 2f2f3b O4f:[ O4f1b O4f2f ] ] " 1321 "2f2f1b 2f2f2b 2f2f3b O4f:[ O4f1b O4f2f ] ] "
1322 "2f3b ] 3b 4b "); 1322 "2f3b ] 3b 4b ");
1323 actual = model_test_utils::ModelStringFromNode(root); 1323 actual = model_test_utils::ModelStringFromNode(root);
1324 EXPECT_EQ(expectedA, actual); 1324 EXPECT_EQ(expectedA, actual);
1325 } 1325 }
1326 1326
1327 TEST_F(BookmarkBarFolderControllerMenuTest, AddURLs) { 1327 TEST_F(BookmarkBarFolderControllerMenuTest, AddURLs) {
1328 BookmarkModel& model(*helper_.profile()->GetBookmarkModel()); 1328 BookmarkModel& model(*helper_.profile()->GetBookmarkModel());
1329 const BookmarkNode* root = model.GetBookmarkBarNode(); 1329 const BookmarkNode* root = model.GetBookmarkBarNode();
1330 const std::wstring model_string(L"1b 2f:[ 2f1b 2f2f:[ 2f2f1b 2f2f2b 2f2f3b ] " 1330 const std::string model_string("1b 2f:[ 2f1b 2f2f:[ 2f2f1b 2f2f2b 2f2f3b ] "
1331 "2f3b ] 3b 4b "); 1331 "2f3b ] 3b 4b ");
1332 model_test_utils::AddNodesFromModelString(model, root, model_string); 1332 model_test_utils::AddNodesFromModelString(model, root, model_string);
1333 1333
1334 // Validate initial model. 1334 // Validate initial model.
1335 std::wstring actual = model_test_utils::ModelStringFromNode(root); 1335 std::string actual = model_test_utils::ModelStringFromNode(root);
1336 EXPECT_EQ(model_string, actual); 1336 EXPECT_EQ(model_string, actual);
1337 1337
1338 // Pop open a folder. 1338 // Pop open a folder.
1339 BookmarkButton* button = [bar_ buttonWithTitleEqualTo:@"2f"]; 1339 BookmarkButton* button = [bar_ buttonWithTitleEqualTo:@"2f"];
1340 [[button target] performSelector:@selector(openBookmarkFolderFromButton:) 1340 [[button target] performSelector:@selector(openBookmarkFolderFromButton:)
1341 withObject:button]; 1341 withObject:button];
1342 BookmarkBarFolderController* folderController = [bar_ folderController]; 1342 BookmarkBarFolderController* folderController = [bar_ folderController];
1343 EXPECT_TRUE(folderController); 1343 EXPECT_TRUE(folderController);
1344 NSArray* buttons = [folderController buttons]; 1344 NSArray* buttons = [folderController buttons];
1345 EXPECT_TRUE(buttons); 1345 EXPECT_TRUE(buttons);
1346 1346
1347 // Remember how many buttons are showing. 1347 // Remember how many buttons are showing.
1348 int oldDisplayedButtons = [buttons count]; 1348 int oldDisplayedButtons = [buttons count];
1349 1349
1350 BookmarkButton* targetButton = 1350 BookmarkButton* targetButton =
1351 [folderController buttonWithTitleEqualTo:@"2f1b"]; 1351 [folderController buttonWithTitleEqualTo:@"2f1b"];
1352 ASSERT_TRUE(targetButton); 1352 ASSERT_TRUE(targetButton);
1353 1353
1354 NSArray* urls = [NSArray arrayWithObjects: @"http://www.a.com/", 1354 NSArray* urls = [NSArray arrayWithObjects: @"http://www.a.com/",
1355 @"http://www.b.com/", nil]; 1355 @"http://www.b.com/", nil];
1356 NSArray* titles = [NSArray arrayWithObjects: @"SiteA", @"SiteB", nil]; 1356 NSArray* titles = [NSArray arrayWithObjects: @"SiteA", @"SiteB", nil];
1357 [folderController addURLs:urls withTitles:titles at:[targetButton top]]; 1357 [folderController addURLs:urls withTitles:titles at:[targetButton top]];
1358 1358
1359 // There should two more buttons in the folder. 1359 // There should two more buttons in the folder.
1360 int newDisplayedButtons = [buttons count]; 1360 int newDisplayedButtons = [buttons count];
1361 EXPECT_EQ(oldDisplayedButtons + 2, newDisplayedButtons); 1361 EXPECT_EQ(oldDisplayedButtons + 2, newDisplayedButtons);
1362 // Verify the model. 1362 // Verify the model.
1363 const std::wstring expected(L"1b 2f:[ SiteA SiteB 2f1b 2f2f:[ 2f2f1b 2f2f2b " 1363 const std::string expected("1b 2f:[ SiteA SiteB 2f1b 2f2f:[ 2f2f1b 2f2f2b "
1364 "2f2f3b ] 2f3b ] 3b 4b "); 1364 "2f2f3b ] 2f3b ] 3b 4b ");
1365 actual = model_test_utils::ModelStringFromNode(root); 1365 actual = model_test_utils::ModelStringFromNode(root);
1366 EXPECT_EQ(expected, actual); 1366 EXPECT_EQ(expected, actual);
1367 } 1367 }
1368 1368
1369 TEST_F(BookmarkBarFolderControllerMenuTest, DropPositionIndicator) { 1369 TEST_F(BookmarkBarFolderControllerMenuTest, DropPositionIndicator) {
1370 BookmarkModel& model(*helper_.profile()->GetBookmarkModel()); 1370 BookmarkModel& model(*helper_.profile()->GetBookmarkModel());
1371 const BookmarkNode* root = model.GetBookmarkBarNode(); 1371 const BookmarkNode* root = model.GetBookmarkBarNode();
1372 const std::wstring model_string(L"1b 2f:[ 2f1b 2f2f:[ 2f2f1b 2f2f2b 2f2f3b ] " 1372 const std::string model_string("1b 2f:[ 2f1b 2f2f:[ 2f2f1b 2f2f2b 2f2f3b ] "
1373 "2f3b ] 3b 4b "); 1373 "2f3b ] 3b 4b ");
1374 model_test_utils::AddNodesFromModelString(model, root, model_string); 1374 model_test_utils::AddNodesFromModelString(model, root, model_string);
1375 1375
1376 // Validate initial model. 1376 // Validate initial model.
1377 std::wstring actual = model_test_utils::ModelStringFromNode(root); 1377 std::string actual = model_test_utils::ModelStringFromNode(root);
1378 EXPECT_EQ(model_string, actual); 1378 EXPECT_EQ(model_string, actual);
1379 1379
1380 // Pop open the folder. 1380 // Pop open the folder.
1381 BookmarkButton* button = [bar_ buttonWithTitleEqualTo:@"2f"]; 1381 BookmarkButton* button = [bar_ buttonWithTitleEqualTo:@"2f"];
1382 [[button target] performSelector:@selector(openBookmarkFolderFromButton:) 1382 [[button target] performSelector:@selector(openBookmarkFolderFromButton:)
1383 withObject:button]; 1383 withObject:button];
1384 BookmarkBarFolderController* folder = [bar_ folderController]; 1384 BookmarkBarFolderController* folder = [bar_ folderController];
1385 EXPECT_TRUE(folder); 1385 EXPECT_TRUE(folder);
1386 1386
1387 // Test a series of points starting at the top of the folder. 1387 // Test a series of points starting at the top of the folder.
(...skipping 30 matching lines...) Expand all
1418 initialWidth:NSWidth([parent_view_ frame]) 1418 initialWidth:NSWidth([parent_view_ frame])
1419 delegate:nil 1419 delegate:nil
1420 resizeDelegate:resizeDelegate_.get()]); 1420 resizeDelegate:resizeDelegate_.get()]);
1421 InstallAndToggleBar(bar_.get()); 1421 InstallAndToggleBar(bar_.get());
1422 } 1422 }
1423 }; 1423 };
1424 1424
1425 TEST_F(BookmarkBarFolderControllerClosingTest, DeleteClosesFolder) { 1425 TEST_F(BookmarkBarFolderControllerClosingTest, DeleteClosesFolder) {
1426 BookmarkModel& model(*helper_.profile()->GetBookmarkModel()); 1426 BookmarkModel& model(*helper_.profile()->GetBookmarkModel());
1427 const BookmarkNode* root = model.GetBookmarkBarNode(); 1427 const BookmarkNode* root = model.GetBookmarkBarNode();
1428 const std::wstring model_string(L"1b 2f:[ 2f1b 2f2f:[ 2f2f1b 2f2f2b ] " 1428 const std::string model_string("1b 2f:[ 2f1b 2f2f:[ 2f2f1b 2f2f2b ] "
1429 "2f3b ] 3b "); 1429 "2f3b ] 3b ");
1430 model_test_utils::AddNodesFromModelString(model, root, model_string); 1430 model_test_utils::AddNodesFromModelString(model, root, model_string);
1431 1431
1432 // Validate initial model. 1432 // Validate initial model.
1433 std::wstring actualModelString = model_test_utils::ModelStringFromNode(root); 1433 std::string actualModelString = model_test_utils::ModelStringFromNode(root);
1434 EXPECT_EQ(model_string, actualModelString); 1434 EXPECT_EQ(model_string, actualModelString);
1435 1435
1436 // Open the folder menu and submenu. 1436 // Open the folder menu and submenu.
1437 BookmarkButton* target = [bar_ buttonWithTitleEqualTo:@"2f"]; 1437 BookmarkButton* target = [bar_ buttonWithTitleEqualTo:@"2f"];
1438 ASSERT_TRUE(target); 1438 ASSERT_TRUE(target);
1439 [[target target] performSelector:@selector(openBookmarkFolderFromButton:) 1439 [[target target] performSelector:@selector(openBookmarkFolderFromButton:)
1440 withObject:target]; 1440 withObject:target];
1441 BookmarkBarFolderController* folder = [bar_ folderController]; 1441 BookmarkBarFolderController* folder = [bar_ folderController];
1442 EXPECT_TRUE(folder); 1442 EXPECT_TRUE(folder);
1443 BookmarkButton* subTarget = [folder buttonWithTitleEqualTo:@"2f2f"]; 1443 BookmarkButton* subTarget = [folder buttonWithTitleEqualTo:@"2f2f"];
1444 ASSERT_TRUE(subTarget); 1444 ASSERT_TRUE(subTarget);
1445 [[subTarget target] performSelector:@selector(openBookmarkFolderFromButton:) 1445 [[subTarget target] performSelector:@selector(openBookmarkFolderFromButton:)
1446 withObject:subTarget]; 1446 withObject:subTarget];
1447 BookmarkBarFolderController* subFolder = [folder folderController]; 1447 BookmarkBarFolderController* subFolder = [folder folderController];
1448 EXPECT_TRUE(subFolder); 1448 EXPECT_TRUE(subFolder);
1449 1449
1450 // Delete the folder node and verify the window closed down by looking 1450 // Delete the folder node and verify the window closed down by looking
1451 // for its controller again. 1451 // for its controller again.
1452 [folder deleteBookmark:folder]; 1452 [folder deleteBookmark:folder];
1453 EXPECT_FALSE([folder folderController]); 1453 EXPECT_FALSE([folder folderController]);
1454 } 1454 }
1455 1455
1456 // TODO(jrg): draggingEntered: and draggingExited: trigger timers so 1456 // TODO(jrg): draggingEntered: and draggingExited: trigger timers so
1457 // they are hard to test. Factor out "fire timers" into routines 1457 // they are hard to test. Factor out "fire timers" into routines
1458 // which can be overridden to fire immediately to make behavior 1458 // which can be overridden to fire immediately to make behavior
1459 // confirmable. 1459 // confirmable.
1460 // There is a similar problem with mouseEnteredButton: and 1460 // There is a similar problem with mouseEnteredButton: and
1461 // mouseExitedButton:. 1461 // mouseExitedButton:.
OLDNEW
« no previous file with comments | « chrome/browser/cocoa/bookmark_bar_controller_unittest.mm ('k') | chrome/test/model_test_utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698