summaryrefslogtreecommitdiffstats
path: root/chrome/browser/cocoa/bookmark_tree_controller_unittest.mm
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/cocoa/bookmark_tree_controller_unittest.mm')
-rw-r--r--chrome/browser/cocoa/bookmark_tree_controller_unittest.mm360
1 files changed, 0 insertions, 360 deletions
diff --git a/chrome/browser/cocoa/bookmark_tree_controller_unittest.mm b/chrome/browser/cocoa/bookmark_tree_controller_unittest.mm
deleted file mode 100644
index b33fd8e..0000000
--- a/chrome/browser/cocoa/bookmark_tree_controller_unittest.mm
+++ /dev/null
@@ -1,360 +0,0 @@
-// Copyright (c) 2009 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "base/scoped_nsobject.h"
-#import "chrome/browser/cocoa/bookmark_item.h"
-#import "chrome/browser/cocoa/bookmark_manager_controller.h"
-#import "chrome/browser/cocoa/bookmark_tree_controller.h"
-#include "chrome/browser/cocoa/browser_test_helper.h"
-#import "chrome/browser/cocoa/cocoa_test_helper.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "testing/platform_test.h"
-
-// Mac WebKit uses this type, declared in WebKit/mac/History/WebURLsWithTitles.h
-static NSString* const WebURLsWithTitlesPboardType =
- @"WebURLsWithTitlesPboardType";
-
-namespace {
-
-class BookmarkTreeControllerTest : public CocoaTest {
- public:
- void SetUp() {
- CocoaTest::SetUp();
- pasteboard_ = [NSPasteboard pasteboardWithUniqueName];
- manager_ = [BookmarkManagerController showBookmarkManager:
- browser_test_helper_.profile()];
- ASSERT_TRUE(manager_);
- listController_ = [manager_ listController];
- ASSERT_TRUE(listController_);
- groupsController_ = [manager_ groupsController];
- ASSERT_TRUE(groupsController_);
- }
-
- void TearDown() {
- [manager_ close];
- [pasteboard_ releaseGlobally];
- CocoaTest::TearDown();
- }
-
- BookmarkItem* SelectBar() {
- BookmarkItem* bar = [manager_ bookmarkBarItem];
- EXPECT_TRUE(bar);
- [[manager_ groupsController] setSelectedItem:bar];
- return bar;
- }
-
- BookmarkItem* AddToBar(NSString*title, NSString* urlStr) {
- BookmarkItem* bar = [manager_ bookmarkBarItem];
- return [bar addBookmarkWithTitle:title
- URL:urlStr
- atIndex:[bar numberOfChildren]];
- }
-
- BookmarkItem* AddFolderToBar(NSString* title) {
- BookmarkItem* bar = [manager_ bookmarkBarItem];
- return [bar addFolderWithTitle:title
- atIndex:[bar numberOfChildren]];
- }
-
- BrowserTestHelper browser_test_helper_;
- BookmarkManagerController* manager_;
- BookmarkTreeController* listController_;
- BookmarkTreeController* groupsController_;
- NSPasteboard* pasteboard_;
-};
-
-TEST_F(BookmarkTreeControllerTest, Model) {
- // Select nothing in the group list and check tree is empty:
- BookmarkTreeController* groupsController = [manager_ groupsController];
- [groupsController setSelectedItem:nil];
- EXPECT_EQ(nil, [listController_ group]);
-
- // Select the bookmarks bar and check that it's shown in the tree:
- BookmarkItem* bar = SelectBar();
- EXPECT_EQ(bar, [listController_ group]);
-}
-
-TEST_F(BookmarkTreeControllerTest, Selection) {
- SelectBar();
- BookmarkItem* test1 = AddToBar(@"Test 1", @"http://example.com/test1");
- BookmarkItem* test2 = AddToBar(@"Test 2", @"http://example.com/test2");
- BookmarkItem* test3 = AddToBar(@"Test 3", @"http://example.com/test3");
- EXPECT_EQ(0U, [[listController_ selectedItems] count]);
-
- NSArray* sel = [NSArray arrayWithObject:test2];
- [listController_ setSelectedItems:sel];
- EXPECT_TRUE([sel isEqual:[listController_ selectedItems]]);
- sel = [NSArray arrayWithObjects:test1, test3, nil];
- [listController_ setSelectedItems:sel];
- EXPECT_TRUE([sel isEqual:[listController_ selectedItems]]);
- sel = [NSArray arrayWithObjects:test1, test2, test3, nil];
- [listController_ setSelectedItems:sel];
- EXPECT_TRUE([sel isEqual:[listController_ selectedItems]]);
- sel = [NSArray array];
- [listController_ setSelectedItems:sel];
- EXPECT_TRUE([sel isEqual:[listController_ selectedItems]]);
-}
-
-TEST_F(BookmarkTreeControllerTest, NewFolder) {
- // Select Bookmark Bar in tree and create a new folder:
- BookmarkItem* bar = SelectBar();
- EXPECT_EQ(0U, [bar numberOfChildren]);
- BookmarkItem* parent = nil;
- NSUInteger index = 0;
- EXPECT_TRUE([groupsController_ getInsertionParent:&parent index:&index]);
- EXPECT_EQ(bar, parent);
- EXPECT_EQ(0U, index);
- BookmarkItem* newFolder = [groupsController_ newFolderWithTitle:@""];
-
- // Verify the new folder exists and is selected:
- ASSERT_EQ(1U, [bar numberOfChildren]);
- EXPECT_EQ(newFolder, [bar childAtIndex:0]);
- EXPECT_EQ(newFolder, [groupsController_ selectedItem]);
-
- // Do New Folder again:
- EXPECT_TRUE([groupsController_ getInsertionParent:&parent index:&index]);
- EXPECT_EQ(bar, parent);
- EXPECT_EQ(0U, index);
- EXPECT_TRUE([listController_ getInsertionParent:&parent index:&index]);
- EXPECT_EQ(newFolder, parent);
- EXPECT_EQ(0U, index);
- newFolder = [groupsController_ newFolderWithTitle:@""];
-
- // Verify the new folder exists and is selected:
- ASSERT_EQ(2U, [bar numberOfChildren]);
- EXPECT_EQ(newFolder, [bar childAtIndex:0]);
- EXPECT_EQ(newFolder, [groupsController_ selectedItem]);
-
- // Verify it's possible to add to Other Bookmarks:
- [groupsController_ setSelectedItem:[manager_ otherBookmarksItem]];
- EXPECT_TRUE([groupsController_ canInsert]);
- EXPECT_TRUE([listController_ canInsert]);
-
- // Verify it's not possible to add to Recents:
- [groupsController_ setSelectedItem:[manager_ recentGroup]];
- EXPECT_FALSE([groupsController_ canInsert]);
- EXPECT_FALSE([listController_ canInsert]);
-}
-
-TEST_F(BookmarkTreeControllerTest, Deletion) {
- // Create a new folder in the bookmarks bar:
- SelectBar();
- BookmarkItem* newFolder = [groupsController_ newFolderWithTitle:@""];
- ASSERT_TRUE(newFolder);
- ASSERT_EQ(newFolder, [groupsController_ selectedItem]);
-
- // Now delete the folder and make sure it's not still selected/shown:
- [groupsController_ delete:nil];
- ASSERT_EQ(0U, [[manager_ bookmarkBarItem] numberOfChildren]);
- BookmarkItem* newSel = [groupsController_ selectedItem];
- EXPECT_NE(newFolder, newSel);
- EXPECT_EQ(newSel, [listController_ group]);
-}
-
-TEST_F(BookmarkTreeControllerTest, MoveItems) {
- NSOutlineView* outline = [groupsController_ outline];
- ASSERT_TRUE(outline);
-
- // Add three folders and another one we'll drop some into:
- BookmarkItem* bookmarkBar = SelectBar();
- BookmarkItem* test1 = AddFolderToBar(@"Test 1");
- BookmarkItem* test2 = AddFolderToBar(@"Test 2");
- BookmarkItem* folder = AddFolderToBar(@"Folder");
- BookmarkItem* test3 = AddFolderToBar(@"Test 3");
- EXPECT_TRUE([groupsController_ expandItem:bookmarkBar]);
-
- // Verify NSOutlineView hierarchy.
- EXPECT_EQ(0, [outline rowForItem:bookmarkBar]);
- EXPECT_EQ(1, [outline rowForItem:test1]);
- EXPECT_EQ(2, [outline rowForItem:test2]);
- EXPECT_EQ(3, [outline rowForItem:folder]);
- EXPECT_EQ(4, [outline rowForItem:test3]);
- EXPECT_EQ(bookmarkBar, [outline parentForItem:test1]);
- EXPECT_EQ(bookmarkBar, [outline parentForItem:test2]);
- EXPECT_EQ(bookmarkBar, [outline parentForItem:folder]);
- EXPECT_EQ(bookmarkBar, [outline parentForItem:test3]);
-
- // Check where dropped URLs would go:
- NSInteger dropIndex = 0;
- BookmarkItem* target = [groupsController_ itemForDropOnItem:folder
- proposedIndex:&dropIndex];
- EXPECT_EQ(folder, target);
- EXPECT_EQ(0, dropIndex);
-
- dropIndex = NSOutlineViewDropOnItemIndex;
- target = [groupsController_ itemForDropOnItem:folder
- proposedIndex:&dropIndex];
- EXPECT_EQ(folder, target);
- EXPECT_EQ(0, dropIndex);
-
- // Move the first and third item into the folder.
- [groupsController_ moveItems:[NSMutableArray arrayWithObjects:test1, test3, nil]
- toFolder:folder
- atIndex:0];
-
- // Verify bookmark model hierarchy.
- EXPECT_EQ(folder, [test1 parent]);
- EXPECT_EQ(folder, [test3 parent]);
- EXPECT_EQ(bookmarkBar, [folder parent]);
- EXPECT_EQ(bookmarkBar, [test2 parent]);
-
- // Verify NSOutlineView hierarchy. test1 and test3 should be in the folder.
- EXPECT_TRUE([groupsController_ expandItem:folder]);
- EXPECT_TRUE([outline isItemExpanded:folder]);
- EXPECT_EQ(bookmarkBar, [outline parentForItem:test2]);
- EXPECT_EQ(bookmarkBar, [outline parentForItem:folder]);
- EXPECT_EQ(folder, [outline parentForItem:test1]);
- EXPECT_EQ(folder, [outline parentForItem:test3]);
-
- // Verify the folder is selected.
- EXPECT_TRUE([[outline selectedRowIndexes]
- isEqual:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(2, 1)]]);
- NSArray* sel = [groupsController_ selectedItems];
- EXPECT_TRUE([sel isEqual:([NSArray arrayWithObject:folder])]);
-}
-
-TEST_F(BookmarkTreeControllerTest, MoveItemsFlat) {
- // Add three bookmarks and a folder.
- NSOutlineView* outline = [listController_ outline];
- SelectBar();
- BookmarkItem* test1 = AddToBar(@"Test 1", @"http://example.com/test1");
- BookmarkItem* test2 = AddToBar(@"Test 2", @"http://example.com/test2");
- BookmarkItem* folder = AddFolderToBar(@"Folder");
- BookmarkItem* test3 = AddToBar(@"Test 3", @"http://example.com/test3");
-
- BookmarkItem* group = [listController_ group];
-
- // Check where dropped URLs would go:
- NSInteger dropIndex = NSOutlineViewDropOnItemIndex;
- BookmarkItem* target = [listController_ itemForDropOnItem:test1
- proposedIndex:&dropIndex];
- EXPECT_EQ(nil, target);
- dropIndex = 0;
- target = [listController_ itemForDropOnItem:test1
- proposedIndex:&dropIndex];
- EXPECT_EQ(group, target);
- EXPECT_EQ(1, dropIndex);
- dropIndex = 0;
- target = [listController_ itemForDropOnItem:folder
- proposedIndex:&dropIndex];
- EXPECT_EQ(folder, target);
- EXPECT_EQ(0, dropIndex);
- dropIndex = NSOutlineViewDropOnItemIndex;
- target = [listController_ itemForDropOnItem:folder
- proposedIndex:&dropIndex];
- EXPECT_EQ(folder, target);
- EXPECT_EQ(0, dropIndex);
-
- // Move the first and third item into the folder.
- [listController_ moveItems:[NSArray arrayWithObjects:test1, test3, nil]
- toFolder:folder
- atIndex:0];
-
- // Verify bookmark model hierarchy.
- EXPECT_EQ(folder, [test1 parent]);
- EXPECT_EQ(folder, [test3 parent]);
- EXPECT_EQ(group, [folder parent]);
- EXPECT_EQ(group, [test2 parent]);
-
- // Verify NSOutlineView hierarchy. test1 and test3 should be gone now.
- EXPECT_EQ(-1, [outline rowForItem:test1]);
- EXPECT_EQ(-1, [outline rowForItem:test3]);
- EXPECT_EQ(nil, [outline parentForItem:test2]);
- EXPECT_EQ(nil, [outline parentForItem:folder]);
-}
-
-TEST_F(BookmarkTreeControllerTest, CopyURLs) {
- SelectBar();
- AddToBar(@"Test 1", @"http://example.com/test1");
- AddToBar(@"Test 2", @"http://example.com/test2");
- AddToBar(@"Test 3", @"http://example.com/test3");
- [[listController_ outline] selectAll:listController_];
-
- ASSERT_TRUE([listController_ copyToPasteboard:pasteboard_]);
-
- NSArray* contents = [pasteboard_ propertyListForType:
- WebURLsWithTitlesPboardType];
- ASSERT_TRUE([contents isKindOfClass:[NSArray class]]);
- NSArray* urlStrings = [contents objectAtIndex:0];
- EXPECT_TRUE([urlStrings isKindOfClass:[NSArray class]]);
- NSArray* expectedURLStrings = [NSArray arrayWithObjects:
- @"http://example.com/test1",
- @"http://example.com/test2",
- @"http://example.com/test3", nil];
- EXPECT_TRUE([urlStrings isEqual:expectedURLStrings]);
- NSArray* titles = [contents objectAtIndex:1];
- EXPECT_TRUE([titles isKindOfClass:[NSArray class]]);
- NSArray* expectedTitles = [NSArray arrayWithObjects:
- @"Test 1",
- @"Test 2",
- @"Test 3", nil];
- EXPECT_TRUE([titles isEqual:expectedTitles]);
-
- NSString* str = [pasteboard_ stringForType:NSStringPboardType];
- EXPECT_TRUE([str isEqual:
- @"http://example.com/test1\n"
- "http://example.com/test2\n"
- "http://example.com/test3"]);
-
- EXPECT_FALSE([pasteboard_ dataForType:NSURLPboardType]);
-}
-
-TEST_F(BookmarkTreeControllerTest, PasteSingleURL) {
- [pasteboard_ declareTypes:[NSArray arrayWithObjects:
- NSURLPboardType, @"public.url-name", nil]
- owner:nil];
- [[NSURL URLWithString:@"http://google.com/"] writeToPasteboard:pasteboard_];
- [pasteboard_ setString:@"Gooooogle" forType:@"public.url-name"];
-
- SelectBar();
- AddToBar(@"Test 1", @"http://example.com/test1");
- AddToBar(@"Test 2", @"http://example.com/test2");
- AddToBar(@"Test 3", @"http://example.com/test3");
-
- ASSERT_TRUE([listController_ pasteFromPasteboard:pasteboard_]);
- EXPECT_EQ(4, [[listController_ outline] numberOfRows]);
- EXPECT_EQ(3, [[listController_ outline] selectedRow]);
- NSArray* sel = [listController_ selectedItems];
- ASSERT_EQ(1U, [sel count]);
- BookmarkItem* item = [sel objectAtIndex:0];
- EXPECT_TRUE([@"http://google.com/" isEqual:[item URLString]]);
- EXPECT_TRUE([@"Gooooogle" isEqual:[item title]]);
-}
-
-TEST_F(BookmarkTreeControllerTest, PasteMultipleURLs) {
- [pasteboard_ declareTypes:[NSArray arrayWithObjects:
- WebURLsWithTitlesPboardType,
- NSURLPboardType, nil]
- owner:nil];
- NSMutableArray* urls = [NSArray arrayWithObjects:
- @"http://google.com/", @"http://chromium.org/", nil];
- NSMutableArray* titles = [NSArray arrayWithObjects:
- @"Gooooogle", @"Chrooooomium", nil];
- [pasteboard_ setPropertyList:[NSArray arrayWithObjects:urls, titles, nil]
- forType:WebURLsWithTitlesPboardType];
- [[NSURL URLWithString:@"http://example.com"] writeToPasteboard:pasteboard_];
-
- SelectBar();
- AddToBar(@"Test 1", @"http://example.com/test1");
- BookmarkItem* test2 = AddToBar(@"Test 2", @"http://example.com/test2");
- AddToBar(@"Test 3", @"http://example.com/test3");
- [listController_ setSelectedItems:[NSArray arrayWithObject:test2]];
-
- EXPECT_TRUE([listController_ readPropertyListFromPasteboard:pasteboard_]);
- ASSERT_TRUE([listController_ pasteFromPasteboard:pasteboard_]);
- EXPECT_EQ(5, [[listController_ outline] numberOfRows]);
- EXPECT_TRUE([[[listController_ outline] selectedRowIndexes]
- isEqual:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(1, 2)]]);
- NSArray* sel = [listController_ selectedItems];
- ASSERT_EQ(2U, [sel count]);
-
- BookmarkItem* item = [sel objectAtIndex:0];
- EXPECT_TRUE([@"http://google.com/" isEqual:[item URLString]]);
- EXPECT_TRUE([@"Gooooogle" isEqual:[item title]]);
- item = [sel objectAtIndex:1];
- EXPECT_TRUE([@"http://chromium.org/" isEqual:[item URLString]]);
- EXPECT_TRUE([@"Chrooooomium" isEqual:[item title]]);
-}
-
-} // namespace