| 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 |