OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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:. |
OLD | NEW |