diff options
Diffstat (limited to 'chrome/browser/ui/cocoa/options/preferences_window_controller_unittest.mm')
-rw-r--r-- | chrome/browser/ui/cocoa/options/preferences_window_controller_unittest.mm | 244 |
1 files changed, 0 insertions, 244 deletions
diff --git a/chrome/browser/ui/cocoa/options/preferences_window_controller_unittest.mm b/chrome/browser/ui/cocoa/options/preferences_window_controller_unittest.mm deleted file mode 100644 index 6e57e2c..0000000 --- a/chrome/browser/ui/cocoa/options/preferences_window_controller_unittest.mm +++ /dev/null @@ -1,244 +0,0 @@ -// Copyright (c) 2011 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 "chrome/browser/ui/cocoa/options/preferences_window_controller.h" - -#import <Cocoa/Cocoa.h> - -#import "base/scoped_nsobject.h" -#include "chrome/browser/prefs/browser_prefs.h" -#include "chrome/browser/ui/cocoa/browser_test_helper.h" -#include "chrome/browser/ui/cocoa/cocoa_test_helper.h" -#import "chrome/browser/ui/cocoa/options/custom_home_pages_model.h" -#include "chrome/browser/ui/options/options_window.h" -#include "chrome/common/pref_names.h" -#include "chrome/test/testing_browser_process.h" -#include "chrome/test/testing_pref_service.h" -#include "testing/gtest/include/gtest/gtest.h" -#import "testing/gtest_mac.h" -#include "testing/platform_test.h" - -// Helper Objective-C object that sets a BOOL when we get a particular -// callback from the prefs window. -@interface PrefsClosedObserver : NSObject { - @public - BOOL gotNotification_; -} -- (void)prefsWindowClosed:(NSNotification*)notify; -@end - -@implementation PrefsClosedObserver -- (void)prefsWindowClosed:(NSNotification*)notify { - gotNotification_ = YES; -} -@end - -namespace { - -class PrefsControllerTest : public CocoaTest { - public: - virtual void SetUp() { - CocoaTest::SetUp(); - browser::RegisterLocalState(&local_state_); - local_state_.RegisterBooleanPref(prefs::kMetricsReportingEnabled, false); - browser_process_.get()->SetPrefService(&local_state_); - - pref_controller_ = [[PreferencesWindowController alloc] - initWithProfile:browser_helper_.profile() - initialPage:OPTIONS_PAGE_DEFAULT]; - EXPECT_TRUE(pref_controller_); - } - - virtual void TearDown() { - [pref_controller_ close]; - CocoaTest::TearDown(); - } - - ScopedTestingBrowserProcess browser_process_; - TestingPrefService local_state_; - BrowserTestHelper browser_helper_; - PreferencesWindowController* pref_controller_; -}; - -// Test showing the preferences window and making sure it's visible, then -// making sure we get the notification when it's closed. -TEST_F(PrefsControllerTest, ShowAndClose) { - [pref_controller_ showPreferences:nil]; - EXPECT_TRUE([[pref_controller_ window] isVisible]); - - scoped_nsobject<PrefsClosedObserver> observer( - [[PrefsClosedObserver alloc] init]); - NSNotificationCenter* defaultCenter = [NSNotificationCenter defaultCenter]; - [defaultCenter addObserver:observer.get() - selector:@selector(prefsWindowClosed:) - name:NSWindowWillCloseNotification - object:[pref_controller_ window]]; - [[pref_controller_ window] performClose:observer]; - EXPECT_TRUE(observer.get()->gotNotification_); - [defaultCenter removeObserver:observer.get()]; - - // Prevent pref_controller_ from being closed again in TearDown() - pref_controller_ = nil; -} - -TEST_F(PrefsControllerTest, ValidateCustomHomePagesTable) { - // First, insert two valid URLs into the CustomHomePagesModel. - GURL url1("http://www.google.com/"); - GURL url2("http://maps.google.com/"); - std::vector<GURL> urls; - urls.push_back(url1); - urls.push_back(url2); - [[pref_controller_ customPagesSource] setURLs:urls]; - EXPECT_EQ(2U, [[pref_controller_ customPagesSource] countOfCustomHomePages]); - - // Now insert a bad (empty) URL into the model. - [[pref_controller_ customPagesSource] setURLStringEmptyAt:1]; - - // Send a notification to simulate the end of editing on a cell in the table - // which should trigger validation. - [pref_controller_ controlTextDidEndEditing:[NSNotification - notificationWithName:NSControlTextDidEndEditingNotification - object:nil]]; - EXPECT_EQ(1U, [[pref_controller_ customPagesSource] countOfCustomHomePages]); -} - -TEST_F(PrefsControllerTest, NormalizePage) { - EXPECT_EQ(OPTIONS_PAGE_GENERAL, - [pref_controller_ normalizePage:OPTIONS_PAGE_GENERAL]); - EXPECT_EQ(OPTIONS_PAGE_CONTENT, - [pref_controller_ normalizePage:OPTIONS_PAGE_CONTENT]); - EXPECT_EQ(OPTIONS_PAGE_ADVANCED, - [pref_controller_ normalizePage:OPTIONS_PAGE_ADVANCED]); - - [pref_controller_ lastSelectedPage]->SetValue(OPTIONS_PAGE_ADVANCED); - EXPECT_EQ(OPTIONS_PAGE_ADVANCED, - [pref_controller_ normalizePage:OPTIONS_PAGE_DEFAULT]); - - [pref_controller_ lastSelectedPage]->SetValue(OPTIONS_PAGE_DEFAULT); - EXPECT_EQ(OPTIONS_PAGE_GENERAL, - [pref_controller_ normalizePage:OPTIONS_PAGE_DEFAULT]); -} - -TEST_F(PrefsControllerTest, GetToolbarItemForPage) { - // Trigger awakeFromNib. - [pref_controller_ window]; - - NSArray* toolbarItems = [[pref_controller_ toolbar] items]; - EXPECT_EQ([toolbarItems objectAtIndex:0], - [pref_controller_ getToolbarItemForPage:OPTIONS_PAGE_GENERAL]); - EXPECT_EQ([toolbarItems objectAtIndex:1], - [pref_controller_ getToolbarItemForPage:OPTIONS_PAGE_CONTENT]); - EXPECT_EQ([toolbarItems objectAtIndex:2], - [pref_controller_ getToolbarItemForPage:OPTIONS_PAGE_ADVANCED]); - - [pref_controller_ lastSelectedPage]->SetValue(OPTIONS_PAGE_ADVANCED); - EXPECT_EQ([toolbarItems objectAtIndex:2], - [pref_controller_ getToolbarItemForPage:OPTIONS_PAGE_DEFAULT]); - - // Out-of-range argument. - EXPECT_EQ([toolbarItems objectAtIndex:0], - [pref_controller_ getToolbarItemForPage:OPTIONS_PAGE_COUNT]); -} - -TEST_F(PrefsControllerTest, GetPageForToolbarItem) { - scoped_nsobject<NSToolbarItem> toolbarItem( - [[NSToolbarItem alloc] initWithItemIdentifier:@""]); - [toolbarItem setTag:0]; - EXPECT_EQ(OPTIONS_PAGE_GENERAL, - [pref_controller_ getPageForToolbarItem:toolbarItem]); - [toolbarItem setTag:1]; - EXPECT_EQ(OPTIONS_PAGE_CONTENT, - [pref_controller_ getPageForToolbarItem:toolbarItem]); - [toolbarItem setTag:2]; - EXPECT_EQ(OPTIONS_PAGE_ADVANCED, - [pref_controller_ getPageForToolbarItem:toolbarItem]); - - // Out-of-range argument. - [toolbarItem setTag:3]; - EXPECT_EQ(OPTIONS_PAGE_GENERAL, - [pref_controller_ getPageForToolbarItem:toolbarItem]); -} - -TEST_F(PrefsControllerTest, GetPrefsViewForPage) { - // Trigger awakeFromNib. - [pref_controller_ window]; - - EXPECT_EQ([pref_controller_ basicsView], - [pref_controller_ getPrefsViewForPage:OPTIONS_PAGE_GENERAL]); - EXPECT_EQ([pref_controller_ personalStuffView], - [pref_controller_ getPrefsViewForPage:OPTIONS_PAGE_CONTENT]); - EXPECT_EQ([pref_controller_ underTheHoodView], - [pref_controller_ getPrefsViewForPage:OPTIONS_PAGE_ADVANCED]); - - [pref_controller_ lastSelectedPage]->SetValue(OPTIONS_PAGE_ADVANCED); - EXPECT_EQ([pref_controller_ underTheHoodView], - [pref_controller_ getPrefsViewForPage:OPTIONS_PAGE_DEFAULT]); -} - -TEST_F(PrefsControllerTest, SwitchToPage) { - // Trigger awakeFromNib. - NSWindow* window = [pref_controller_ window]; - - NSView* contentView = [window contentView]; - NSView* basicsView = [pref_controller_ basicsView]; - NSView* personalStuffView = [pref_controller_ personalStuffView]; - NSView* underTheHoodView = [pref_controller_ underTheHoodView]; - NSToolbar* toolbar = [pref_controller_ toolbar]; - NSToolbarItem* basicsToolbarItem = - [pref_controller_ getToolbarItemForPage:OPTIONS_PAGE_GENERAL]; - NSToolbarItem* personalStuffToolbarItem = - [pref_controller_ getToolbarItemForPage:OPTIONS_PAGE_CONTENT]; - NSToolbarItem* underTheHoodToolbarItem = - [pref_controller_ getToolbarItemForPage:OPTIONS_PAGE_ADVANCED]; - NSString* basicsIdentifier = [basicsToolbarItem itemIdentifier]; - NSString* personalStuffIdentifier = [personalStuffToolbarItem itemIdentifier]; - NSString* underTheHoodIdentifier = [underTheHoodToolbarItem itemIdentifier]; - IntegerPrefMember* lastSelectedPage = [pref_controller_ lastSelectedPage]; - - // Test without animation. - - [pref_controller_ switchToPage:OPTIONS_PAGE_GENERAL animate:NO]; - EXPECT_TRUE([basicsView isDescendantOf:contentView]); - EXPECT_FALSE([personalStuffView isDescendantOf:contentView]); - EXPECT_FALSE([underTheHoodView isDescendantOf:contentView]); - EXPECT_NSEQ(basicsIdentifier, [toolbar selectedItemIdentifier]); - EXPECT_EQ(OPTIONS_PAGE_GENERAL, lastSelectedPage->GetValue()); - EXPECT_NSEQ([basicsToolbarItem label], [window title]); - - [pref_controller_ switchToPage:OPTIONS_PAGE_CONTENT animate:NO]; - EXPECT_FALSE([basicsView isDescendantOf:contentView]); - EXPECT_TRUE([personalStuffView isDescendantOf:contentView]); - EXPECT_FALSE([underTheHoodView isDescendantOf:contentView]); - EXPECT_NSEQ([toolbar selectedItemIdentifier], personalStuffIdentifier); - EXPECT_EQ(OPTIONS_PAGE_CONTENT, lastSelectedPage->GetValue()); - EXPECT_NSEQ([personalStuffToolbarItem label], [window title]); - - [pref_controller_ switchToPage:OPTIONS_PAGE_ADVANCED animate:NO]; - EXPECT_FALSE([basicsView isDescendantOf:contentView]); - EXPECT_FALSE([personalStuffView isDescendantOf:contentView]); - EXPECT_TRUE([underTheHoodView isDescendantOf:contentView]); - EXPECT_NSEQ([toolbar selectedItemIdentifier], underTheHoodIdentifier); - EXPECT_EQ(OPTIONS_PAGE_ADVANCED, lastSelectedPage->GetValue()); - EXPECT_NSEQ([underTheHoodToolbarItem label], [window title]); - - // Test OPTIONS_PAGE_DEFAULT. - - lastSelectedPage->SetValue(OPTIONS_PAGE_CONTENT); - [pref_controller_ switchToPage:OPTIONS_PAGE_DEFAULT animate:NO]; - EXPECT_FALSE([basicsView isDescendantOf:contentView]); - EXPECT_TRUE([personalStuffView isDescendantOf:contentView]); - EXPECT_FALSE([underTheHoodView isDescendantOf:contentView]); - EXPECT_NSEQ(personalStuffIdentifier, [toolbar selectedItemIdentifier]); - EXPECT_EQ(OPTIONS_PAGE_CONTENT, lastSelectedPage->GetValue()); - EXPECT_NSEQ([personalStuffToolbarItem label], [window title]); - - // TODO(akalin): Figure out how to test animation; we'll need everything - // to stick around until the animation finishes. -} - -// TODO(akalin): Figure out how to test sync controls. -// TODO(akalin): Figure out how to test that sync controls are not shown -// when there isn't a sync service. - -} // namespace |