blob: 1f2f6bfd7e78dd2d62234096afdd94e72dfea60d [file] [log] [blame]
// Copyright (c) 2012 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/strings/sys_string_conversions.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/bookmarks/bookmark_model.h"
#include "chrome/browser/bookmarks/bookmark_model_factory.h"
#import "chrome/browser/ui/cocoa/bookmarks/bookmark_all_tabs_controller.h"
#include "chrome/browser/ui/cocoa/cocoa_profile_test.h"
#include "chrome/test/base/testing_profile.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "testing/platform_test.h"
@interface BookmarkAllTabsControllerOverride : BookmarkAllTabsController
@end
@implementation BookmarkAllTabsControllerOverride
- (void)UpdateActiveTabPairs {
ActiveTabsNameURLPairVector* activeTabPairsVector =
[self activeTabPairsVector];
activeTabPairsVector->clear();
activeTabPairsVector->push_back(
ActiveTabNameURLPair(ASCIIToUTF16("at-0"), GURL("http://at-0.com")));
activeTabPairsVector->push_back(
ActiveTabNameURLPair(ASCIIToUTF16("at-1"), GURL("http://at-1.com")));
activeTabPairsVector->push_back(
ActiveTabNameURLPair(ASCIIToUTF16("at-2"), GURL("http://at-2.com")));
}
@end
class BookmarkAllTabsControllerTest : public CocoaProfileTest {
public:
const BookmarkNode* parent_node_;
BookmarkAllTabsControllerOverride* controller_;
const BookmarkNode* folder_a_;
void CreateModel() {
BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
const BookmarkNode* root = model->bookmark_bar_node();
folder_a_ = model->AddFolder(root, 0, ASCIIToUTF16("a"));
model->AddURL(folder_a_, 0, ASCIIToUTF16("a-0"), GURL("http://a-0.com"));
model->AddURL(folder_a_, 1, ASCIIToUTF16("a-1"), GURL("http://a-1.com"));
model->AddURL(folder_a_, 2, ASCIIToUTF16("a-2"), GURL("http://a-2.com"));
}
virtual BookmarkAllTabsControllerOverride* CreateController() {
return [[BookmarkAllTabsControllerOverride alloc]
initWithParentWindow:test_window()
profile:profile()
parent:folder_a_
url:GURL()
title:string16()
configuration:BookmarkEditor::SHOW_TREE];
}
virtual void SetUp() {
CocoaProfileTest::SetUp();
ASSERT_TRUE(profile());
CreateModel();
controller_ = CreateController();
[controller_ runAsModalSheet];
}
virtual void TearDown() {
controller_ = NULL;
CocoaProfileTest::TearDown();
}
};
TEST_F(BookmarkAllTabsControllerTest, BookmarkAllTabs) {
// OK button should always be enabled.
EXPECT_TRUE([controller_ okButtonEnabled]);
[controller_ selectTestNodeInBrowser:folder_a_];
[controller_ setDisplayName:@"ALL MY TABS"];
[controller_ ok:nil];
EXPECT_EQ(4, folder_a_->child_count());
const BookmarkNode* folderChild = folder_a_->GetChild(3);
EXPECT_EQ(folderChild->GetTitle(), ASCIIToUTF16("ALL MY TABS"));
EXPECT_EQ(3, folderChild->child_count());
}