diff options
author | sgk@google.com <sgk@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-14 18:14:46 +0000 |
---|---|---|
committer | sgk@google.com <sgk@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-14 18:14:46 +0000 |
commit | 288bfcd3e84eb6747f697578e13b1ad4c81fd727 (patch) | |
tree | 6341947b46c8ec5d9ddfa18c65635ffef45fe92c | |
parent | 3d39b825dbb27bfd842db44c0fac521e0d06febb (diff) | |
download | chromium_src-288bfcd3e84eb6747f697578e13b1ad4c81fd727.zip chromium_src-288bfcd3e84eb6747f697578e13b1ad4c81fd727.tar.gz chromium_src-288bfcd3e84eb6747f697578e13b1ad4c81fd727.tar.bz2 |
Add "New Window" and "New Incognito Window" items to the Dock Menu.
Add a unit test module for AppController with a simple DockMenu test.
BUG=21175
TEST=AppControllerTest.DockMenu
Review URL: http://codereview.chromium.org/196103
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26124 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/app_controller_mac.mm | 27 | ||||
-rw-r--r-- | chrome/browser/app_controller_mac_unittest.mm | 26 | ||||
-rw-r--r-- | chrome/chrome.gyp | 1 |
3 files changed, 53 insertions, 1 deletions
diff --git a/chrome/browser/app_controller_mac.mm b/chrome/browser/app_controller_mac.mm index e3f88e9..90439e5 100644 --- a/chrome/browser/app_controller_mac.mm +++ b/chrome/browser/app_controller_mac.mm @@ -4,7 +4,7 @@ #import "chrome/browser/app_controller_mac.h" -#include "app/l10n_util.h" +#include "app/l10n_util_mac.h" #include "base/command_line.h" #include "base/mac_util.h" #include "base/message_loop.h" @@ -48,6 +48,7 @@ - (void)windowLayeringDidChange:(NSNotification*)inNotification; - (BOOL)userWillWaitForInProgressDownloads:(int)downloadCount; - (BOOL)shouldQuitWithInProgressDownloads; +- (NSMenu*)applicationDockMenu:(NSApplication*)sender; @end @implementation AppController @@ -666,4 +667,28 @@ [aboutController_ showWindow:self]; } +- (NSMenu*)applicationDockMenu:(id)sender { + NSMenu* result = [[[NSMenu alloc] initWithTitle: @""] autorelease]; + NSString* titleStr; + id item; + + titleStr = l10n_util::GetNSStringWithFixup(IDS_NEW_WINDOW_MAC); + item = [[[NSMenuItem alloc] initWithTitle:titleStr + action:@selector(commandDispatch:) + keyEquivalent:@""] autorelease]; + [item setTarget:self]; + [item setTag:IDC_NEW_WINDOW]; + [result addItem:item]; + + titleStr = l10n_util::GetNSStringWithFixup(IDS_NEW_INCOGNITO_WINDOW_MAC); + item = [[[NSMenuItem alloc] initWithTitle:titleStr + action:@selector(commandDispatch:) + keyEquivalent:@""] autorelease]; + [item setTarget:self]; + [item setTag:IDC_NEW_INCOGNITO_WINDOW]; + [result addItem:item]; + + return result; +} + @end diff --git a/chrome/browser/app_controller_mac_unittest.mm b/chrome/browser/app_controller_mac_unittest.mm new file mode 100644 index 0000000..399e44f --- /dev/null +++ b/chrome/browser/app_controller_mac_unittest.mm @@ -0,0 +1,26 @@ +// 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 "chrome/app/chrome_dll_resource.h" +#import "chrome/browser/app_controller_mac.h" +#include "testing/platform_test.h" + +class AppControllerTest : public PlatformTest { +}; + +TEST_F(AppControllerTest, DockMenu) { + AppController* ac = [[[AppController alloc] init] autorelease]; + NSMenu* menu = [ac applicationDockMenu:NSApp]; + NSMenuItem* item; + + EXPECT_TRUE(menu); + EXPECT_NE(-1, [menu indexOfItemWithTag:IDC_NEW_WINDOW]); + EXPECT_NE(-1, [menu indexOfItemWithTag:IDC_NEW_INCOGNITO_WINDOW]); + for (item in [menu itemArray]) { + EXPECT_EQ(ac, [item target]); + EXPECT_EQ(@selector(commandDispatch:), [item action]); + } +} diff --git a/chrome/chrome.gyp b/chrome/chrome.gyp index ff4671e..cc40b41 100644 --- a/chrome/chrome.gyp +++ b/chrome/chrome.gyp @@ -3952,6 +3952,7 @@ 'app/keystone_glue.m', 'app/keystone_glue_unittest.mm', # All unittests in browser, common, and renderer. + 'browser/app_controller_mac_unittest.mm', 'browser/autocomplete/autocomplete_edit_view_mac_unittest.mm', 'browser/autocomplete/autocomplete_unittest.cc', 'browser/autocomplete/autocomplete_popup_view_mac_unittest.mm', |