summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsgk@google.com <sgk@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-14 18:14:46 +0000
committersgk@google.com <sgk@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-14 18:14:46 +0000
commit288bfcd3e84eb6747f697578e13b1ad4c81fd727 (patch)
tree6341947b46c8ec5d9ddfa18c65635ffef45fe92c
parent3d39b825dbb27bfd842db44c0fac521e0d06febb (diff)
downloadchromium_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.mm27
-rw-r--r--chrome/browser/app_controller_mac_unittest.mm26
-rw-r--r--chrome/chrome.gyp1
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',