Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(505)

Unified Diff: chrome/browser/ui/cocoa/profile_menu_controller_unittest.mm

Issue 229163004: [Mac] Move profile related UI from cocoa/browser to cocoa/profiles (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: oops forgot a comment Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/cocoa/profile_menu_controller_unittest.mm
diff --git a/chrome/browser/ui/cocoa/profile_menu_controller_unittest.mm b/chrome/browser/ui/cocoa/profile_menu_controller_unittest.mm
deleted file mode 100644
index f669b60c8bd449c991b6fc569eba7b95dbad1f67..0000000000000000000000000000000000000000
--- a/chrome/browser/ui/cocoa/profile_menu_controller_unittest.mm
+++ /dev/null
@@ -1,290 +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/profile_menu_controller.h"
-
-#include "base/mac/scoped_nsobject.h"
-#include "base/strings/utf_string_conversions.h"
-#include "base/threading/thread_restrictions.h"
-#include "chrome/browser/browser_process.h"
-#include "chrome/browser/prefs/pref_service_syncable.h"
-#include "chrome/browser/profiles/profile_manager.h"
-#include "chrome/browser/ui/browser_list.h"
-#include "chrome/browser/ui/cocoa/cocoa_profile_test.h"
-#include "chrome/browser/ui/cocoa/run_loop_testing.h"
-#include "chrome/common/pref_names.h"
-#include "chrome/test/base/testing_profile.h"
-#include "chrome/test/base/test_browser_window.h"
-#include "grit/generated_resources.h"
-#include "testing/gtest_mac.h"
-#include "ui/base/l10n/l10n_util_mac.h"
-
-class ProfileMenuControllerTest : public CocoaProfileTest {
- public:
- ProfileMenuControllerTest() {
- item_.reset([[NSMenuItem alloc] initWithTitle:@"Users"
- action:nil
- keyEquivalent:@""]);
- controller_.reset(
- [[ProfileMenuController alloc] initWithMainMenuItem:item_]);
- }
-
- virtual void SetUp() {
- CocoaProfileTest::SetUp();
- ASSERT_TRUE(profile());
-
- // Spin the runloop so |-initializeMenu| gets called.
- chrome::testing::NSRunLoopRunAllPending();
- }
-
- void TestBottomItems() {
- NSMenu* menu = [controller() menu];
- NSInteger count = [menu numberOfItems];
-
- ASSERT_GE(count, 4);
-
- NSMenuItem* item = [menu itemAtIndex:count - 4];
- EXPECT_TRUE([item isSeparatorItem]);
-
- item = [menu itemAtIndex:count - 3];
- EXPECT_EQ(@selector(editProfile:), [item action]);
-
- item = [menu itemAtIndex:count - 2];
- EXPECT_TRUE([item isSeparatorItem]);
-
- item = [menu itemAtIndex:count - 1];
- EXPECT_EQ(@selector(newProfile:), [item action]);
- }
-
- void VerifyProfileNamedIsActive(NSString* title, int line) {
- for (NSMenuItem* item in [[controller() menu] itemArray]) {
- if ([[item title] isEqualToString:title]) {
- EXPECT_EQ(NSOnState, [item state]) << [[item title] UTF8String]
- << " (from line " << line << ")";
- } else {
- EXPECT_EQ(NSOffState, [item state]) << [[item title] UTF8String]
- << " (from line " << line << ")";
- }
- }
- }
-
- ProfileMenuController* controller() { return controller_.get(); }
-
- NSMenuItem* menu_item() { return item_.get(); }
-
- private:
- base::scoped_nsobject<NSMenuItem> item_;
- base::scoped_nsobject<ProfileMenuController> controller_;
-};
-
-TEST_F(ProfileMenuControllerTest, InitializeMenu) {
- NSMenu* menu = [controller() menu];
- // <sep>, Edit, <sep>, New.
- ASSERT_EQ(4, [menu numberOfItems]);
-
- TestBottomItems();
-
- EXPECT_TRUE([menu_item() isHidden]);
-}
-
-TEST_F(ProfileMenuControllerTest, CreateItemWithTitle) {
- NSMenuItem* item =
- [controller() createItemWithTitle:@"Title"
- action:@selector(someSelector:)];
- EXPECT_NSEQ(@"Title", [item title]);
- EXPECT_EQ(controller(), [item target]);
- EXPECT_EQ(@selector(someSelector:), [item action]);
- EXPECT_NSEQ(@"", [item keyEquivalent]);
-}
-
-TEST_F(ProfileMenuControllerTest, RebuildMenu) {
- NSMenu* menu = [controller() menu];
- EXPECT_EQ(4, [menu numberOfItems]);
-
- EXPECT_TRUE([menu_item() isHidden]);
-
- // Create some more profiles on the manager.
- TestingProfileManager* manager = testing_profile_manager();
- manager->CreateTestingProfile("Profile 2");
- manager->CreateTestingProfile("Profile 3");
-
- // Verify that the menu got rebuilt.
- ASSERT_EQ(7, [menu numberOfItems]);
-
- NSMenuItem* item = [menu itemAtIndex:0];
- EXPECT_EQ(@selector(switchToProfileFromMenu:), [item action]);
-
- item = [menu itemAtIndex:1];
- EXPECT_EQ(@selector(switchToProfileFromMenu:), [item action]);
-
- item = [menu itemAtIndex:2];
- EXPECT_EQ(@selector(switchToProfileFromMenu:), [item action]);
-
- TestBottomItems();
-
- EXPECT_FALSE([menu_item() isHidden]);
-}
-
-TEST_F(ProfileMenuControllerTest, InsertItems) {
- base::scoped_nsobject<NSMenu> menu([[NSMenu alloc] initWithTitle:@""]);
- ASSERT_EQ(0, [menu numberOfItems]);
-
- // With only one profile, insertItems should be a no-op.
- BOOL result = [controller() insertItemsIntoMenu:menu
- atOffset:0
- fromDock:NO];
- EXPECT_FALSE(result);
- EXPECT_EQ(0, [menu numberOfItems]);
- [menu removeAllItems];
-
- // Same for use in building the dock menu.
- result = [controller() insertItemsIntoMenu:menu
- atOffset:0
- fromDock:YES];
- EXPECT_FALSE(result);
- EXPECT_EQ(0, [menu numberOfItems]);
- [menu removeAllItems];
-
- // Create one more profile on the manager.
- TestingProfileManager* manager = testing_profile_manager();
- manager->CreateTestingProfile("Profile 2");
-
- // With more than one profile, insertItems should return YES.
- result = [controller() insertItemsIntoMenu:menu
- atOffset:0
- fromDock:NO];
- EXPECT_TRUE(result);
- ASSERT_EQ(2, [menu numberOfItems]);
-
- NSMenuItem* item = [menu itemAtIndex:0];
- EXPECT_EQ(@selector(switchToProfileFromMenu:), [item action]);
-
- item = [menu itemAtIndex:1];
- EXPECT_EQ(@selector(switchToProfileFromMenu:), [item action]);
- [menu removeAllItems];
-
- // And for the dock, the selector should be different and there should be a
- // header item.
- result = [controller() insertItemsIntoMenu:menu
- atOffset:0
- fromDock:YES];
- EXPECT_TRUE(result);
- ASSERT_EQ(3, [menu numberOfItems]);
-
- // First item is a label item.
- item = [menu itemAtIndex:0];
- EXPECT_FALSE([item isEnabled]);
-
- item = [menu itemAtIndex:1];
- EXPECT_EQ(@selector(switchToProfileFromDock:), [item action]);
-
- item = [menu itemAtIndex:2];
- EXPECT_EQ(@selector(switchToProfileFromDock:), [item action]);
-}
-
-TEST_F(ProfileMenuControllerTest, InitialActiveBrowser) {
- [controller() activeBrowserChangedTo:NULL];
- VerifyProfileNamedIsActive(l10n_util::GetNSString(IDS_DEFAULT_PROFILE_NAME),
- __LINE__);
-}
-
-// Note: BrowserList::SetLastActive() is typically called as part of
-// BrowserWindow::Show() and when a Browser becomes active. We don't need a full
-// BrowserWindow, so it is called manually.
-TEST_F(ProfileMenuControllerTest, SetActiveAndRemove) {
- NSMenu* menu = [controller() menu];
- TestingProfileManager* manager = testing_profile_manager();
- TestingProfile* profile2 = manager->CreateTestingProfile("Profile 2");
- TestingProfile* profile3 = manager->CreateTestingProfile("Profile 3");
- ASSERT_EQ(7, [menu numberOfItems]);
-
- // Create a browser and "show" it.
- Browser::CreateParams profile2_params(profile2, chrome::GetActiveDesktop());
- scoped_ptr<Browser> p2_browser(
- chrome::CreateBrowserWithTestWindowForParams(&profile2_params));
- BrowserList::SetLastActive(p2_browser.get());
- VerifyProfileNamedIsActive(@"Profile 2", __LINE__);
-
- // Close the browser and make sure it's still active.
- p2_browser.reset();
- VerifyProfileNamedIsActive(@"Profile 2", __LINE__);
-
- // Open a new browser and make sure it takes effect.
- Browser::CreateParams profile3_params(profile3, chrome::GetActiveDesktop());
- scoped_ptr<Browser> p3_browser(
- chrome::CreateBrowserWithTestWindowForParams(&profile3_params));
- BrowserList::SetLastActive(p3_browser.get());
- VerifyProfileNamedIsActive(@"Profile 3", __LINE__);
-
- p3_browser.reset();
- VerifyProfileNamedIsActive(@"Profile 3", __LINE__);
-}
-
-TEST_F(ProfileMenuControllerTest, DeleteActiveProfile) {
- TestingProfileManager* manager = testing_profile_manager();
-
- manager->CreateTestingProfile("Profile 2");
- TestingProfile* profile3 = manager->CreateTestingProfile("Profile 3");
- ASSERT_EQ(3U, manager->profile_manager()->GetNumberOfProfiles());
-
- const base::FilePath profile3_path = profile3->GetPath();
- manager->DeleteTestingProfile("Profile 3");
-
- // Simulate an unloaded profile by setting the "last used" local state pref
- // the profile that was just deleted.
- PrefService* local_state = g_browser_process->local_state();
- local_state->SetString(prefs::kProfileLastUsed,
- profile3_path.BaseName().MaybeAsASCII());
-
- // Simulate the active browser changing to NULL and ensure a profile doesn't
- // get created by disallowing IO operations temporarily.
- const bool io_was_allowed = base::ThreadRestrictions::SetIOAllowed(false);
- [controller() activeBrowserChangedTo:NULL];
- base::ThreadRestrictions::SetIOAllowed(io_was_allowed);
-}
-
-TEST_F(ProfileMenuControllerTest, ManagedProfile) {
- TestingProfileManager* manager = testing_profile_manager();
- TestingProfile* managed_profile =
- manager->CreateTestingProfile("test1",
- scoped_ptr<PrefServiceSyncable>(),
- base::ASCIIToUTF16("Supervised User"),
- 0,
- "TEST_ID",
- TestingProfile::TestingFactories());
- BrowserList::SetLastActive(browser());
-
- NSMenu* menu = [controller() menu];
- ASSERT_EQ(6, [menu numberOfItems]);
- NSMenuItem* item = [menu itemAtIndex:0];
- ASSERT_EQ(@selector(switchToProfileFromMenu:), [item action]);
- EXPECT_TRUE([controller() validateMenuItem:item]);
-
- item = [menu itemAtIndex:1];
- ASSERT_EQ(@selector(switchToProfileFromMenu:), [item action]);
- EXPECT_TRUE([controller() validateMenuItem:item]);
-
- item = [menu itemAtIndex:5];
- ASSERT_EQ(@selector(newProfile:), [item action]);
- EXPECT_TRUE([controller() validateMenuItem:item]);
-
- // Open a new browser for the managed user and switch to it.
- Browser::CreateParams managed_profile_params(
- managed_profile, chrome::HOST_DESKTOP_TYPE_NATIVE);
- scoped_ptr<Browser> managed_browser(
- chrome::CreateBrowserWithTestWindowForParams(&managed_profile_params));
- BrowserList::SetLastActive(managed_browser.get());
-
- item = [menu itemAtIndex:0];
- ASSERT_EQ(@selector(switchToProfileFromMenu:), [item action]);
- EXPECT_FALSE([controller() validateMenuItem:item]);
-
- item = [menu itemAtIndex:1];
- ASSERT_EQ(@selector(switchToProfileFromMenu:), [item action]);
- EXPECT_TRUE([controller() validateMenuItem:item]);
-
- item = [menu itemAtIndex:5];
- ASSERT_EQ(@selector(newProfile:), [item action]);
- EXPECT_FALSE([controller() validateMenuItem:item]);
-}
« no previous file with comments | « chrome/browser/ui/cocoa/profile_menu_controller.mm ('k') | chrome/browser/ui/cocoa/profile_signin_confirmation_dialog_cocoa.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698