diff options
Diffstat (limited to 'chrome/browser/cocoa/bookmark_editor_base_controller_unittest.mm')
-rw-r--r-- | chrome/browser/cocoa/bookmark_editor_base_controller_unittest.mm | 149 |
1 files changed, 149 insertions, 0 deletions
diff --git a/chrome/browser/cocoa/bookmark_editor_base_controller_unittest.mm b/chrome/browser/cocoa/bookmark_editor_base_controller_unittest.mm new file mode 100644 index 0000000..908fe25 --- /dev/null +++ b/chrome/browser/cocoa/bookmark_editor_base_controller_unittest.mm @@ -0,0 +1,149 @@ +// 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. + +#import <Cocoa/Cocoa.h> + +#include "base/scoped_nsobject.h" +#include "base/sys_string_conversions.h" +#import "chrome/browser/cocoa/bookmark_editor_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" + +class BookmarkEditorBaseControllerTest : public CocoaTest { + public: + CocoaTestHelper cocoa_helper_; // Inits Cocoa, creates window, etc... + BrowserTestHelper helper_; + BookmarkEditorBaseController* controller_; + const BookmarkNode* group_a_; + const BookmarkNode* group_b_; + const BookmarkNode* group_b_0_; + const BookmarkNode* group_b_3_; + const BookmarkNode* group_c_; + + BookmarkEditorBaseControllerTest() { + // Set up a small bookmark hierarchy, which will look as follows: + // a b c d + // a-0 b-0 c-0 + // a-1 b-00 c-1 + // a-2 b-1 c-2 + // b-2 c-3 + // b-3 + // b-30 + // b-31 + // b-4 + BookmarkModel& model(*(helper_.profile()->GetBookmarkModel())); + const BookmarkNode* root = model.GetBookmarkBarNode(); + group_a_ = model.AddGroup(root, 0, L"a"); + model.AddURL(group_a_, 0, L"a-0", GURL("http://a-0.com")); + model.AddURL(group_a_, 1, L"a-1", GURL("http://a-1.com")); + model.AddURL(group_a_, 2, L"a-2", GURL("http://a-2.com")); + + group_b_ = model.AddGroup(root, 1, L"b"); + group_b_0_ = model.AddGroup(group_b_, 0, L"b-0"); + model.AddURL(group_b_0_, 0, L"bb-0", GURL("http://bb-0.com")); + model.AddURL(group_b_, 1, L"b-1", GURL("http://b-1.com")); + model.AddURL(group_b_, 2, L"b-2", GURL("http://b-2.com")); + group_b_3_ = model.AddGroup(group_b_, 3, L"b-3"); + model.AddURL(group_b_3_, 0, L"b-30", GURL("http://b-30.com")); + model.AddURL(group_b_3_, 1, L"b-31", GURL("http://b-31.com")); + model.AddURL(group_b_, 4, L"b-4", GURL("http://b-4.com")); + + group_c_ = model.AddGroup(root, 2, L"c"); + model.AddURL(group_c_, 0, L"c-0", GURL("http://c-0.com")); + model.AddURL(group_c_, 1, L"c-1", GURL("http://c-1.com")); + model.AddURL(group_c_, 2, L"c-2", GURL("http://c-2.com")); + model.AddURL(group_c_, 3, L"c-3", GURL("http://c-3.com")); + + model.AddURL(root, 3, L"d", GURL("http://d-0.com")); + } + + virtual BookmarkEditorBaseController* CreateController() { + return [[BookmarkEditorBaseController alloc] + initWithParentWindow:test_window() + nibName:@"BookmarkAllTabs" + profile:helper_.profile() + parent:group_b_0_ + configuration:BookmarkEditor::SHOW_TREE + handler:nil]; + } + + virtual void SetUp() { + CocoaTest::SetUp(); + controller_ = CreateController(); + EXPECT_TRUE([controller_ window]); + } + + virtual void TearDown() { + [controller_ close]; + CocoaTest::TearDown(); + } +}; + +TEST_F(BookmarkEditorBaseControllerTest, VerifyBookmarkTestModel) { + BookmarkModel& model(*(helper_.profile()->GetBookmarkModel())); + const BookmarkNode& root(*model.GetBookmarkBarNode()); + EXPECT_EQ(4, root.GetChildCount()); + // a + const BookmarkNode* child = root.GetChild(0); + EXPECT_EQ(3, child->GetChildCount()); + const BookmarkNode* subchild = child->GetChild(0); + EXPECT_EQ(0, subchild->GetChildCount()); + subchild = child->GetChild(1); + EXPECT_EQ(0, subchild->GetChildCount()); + subchild = child->GetChild(2); + EXPECT_EQ(0, subchild->GetChildCount()); + // b + child = root.GetChild(1); + EXPECT_EQ(5, child->GetChildCount()); + subchild = child->GetChild(0); + EXPECT_EQ(1, subchild->GetChildCount()); + const BookmarkNode* subsubchild = subchild->GetChild(0); + EXPECT_EQ(0, subsubchild->GetChildCount()); + subchild = child->GetChild(1); + EXPECT_EQ(0, subchild->GetChildCount()); + subchild = child->GetChild(2); + EXPECT_EQ(0, subchild->GetChildCount()); + subchild = child->GetChild(3); + EXPECT_EQ(2, subchild->GetChildCount()); + subsubchild = subchild->GetChild(0); + EXPECT_EQ(0, subsubchild->GetChildCount()); + subsubchild = subchild->GetChild(1); + EXPECT_EQ(0, subsubchild->GetChildCount()); + subchild = child->GetChild(4); + EXPECT_EQ(0, subchild->GetChildCount()); + // c + child = root.GetChild(2); + EXPECT_EQ(4, child->GetChildCount()); + subchild = child->GetChild(0); + EXPECT_EQ(0, subchild->GetChildCount()); + subchild = child->GetChild(1); + EXPECT_EQ(0, subchild->GetChildCount()); + subchild = child->GetChild(2); + EXPECT_EQ(0, subchild->GetChildCount()); + subchild = child->GetChild(3); + EXPECT_EQ(0, subchild->GetChildCount()); + // d + child = root.GetChild(3); + EXPECT_EQ(0, child->GetChildCount()); +} + +TEST_F(BookmarkEditorBaseControllerTest, FolderChildForParent) { + const BookmarkNode* child = + [BookmarkEditorBaseController folderChildForParent:group_b_ + withFolderIndex:1]; + EXPECT_EQ(child, group_b_3_); +} + +TEST_F(BookmarkEditorBaseControllerTest, IndexOfFolderChild) { + int index = [BookmarkEditorBaseController indexOfFolderChild:group_b_3_]; + EXPECT_EQ(index, 1); +} + +TEST_F(BookmarkEditorBaseControllerTest, NodeSelection) { + [controller_ selectNodeInBrowser:group_b_3_]; + const BookmarkNode* node = [controller_ selectedNode]; + EXPECT_EQ(node, group_b_3_); +} |