diff options
author | akalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-06 22:01:09 +0000 |
---|---|---|
committer | akalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-06 22:01:09 +0000 |
commit | 49f95e9eccbb3d1c9ce7b6a46adff337ef831fe2 (patch) | |
tree | 69883d8bb25c97a9a1f8f0598322a3e947d4a5cf /chrome/browser/cocoa/browser_window_controller_unittest.mm | |
parent | c0d43029bbd23a2648589896ec1257f6a7c32b62 (diff) | |
download | chromium_src-49f95e9eccbb3d1c9ce7b6a46adff337ef831fe2.zip chromium_src-49f95e9eccbb3d1c9ce7b6a46adff337ef831fe2.tar.gz chromium_src-49f95e9eccbb3d1c9ce7b6a46adff337ef831fe2.tar.bz2 |
Added menu item for sync to wrench menu.
Wrench menu item is right above "Preferences...". Chrome menu item will be added in a future CL right above "Clear Browsing Data...". Sync menu items are hidden if bookmark sync is disabled (the current default for OS X). UI decisions were made after consulting with Cole.
Added code in browser_window_controller.mm to update sync menu item dynamically.
Added unit tests.
BUG=23073
TEST=manual testing, trybots, unittests
Review URL: http://codereview.chromium.org/363017
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31309 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/cocoa/browser_window_controller_unittest.mm')
-rw-r--r-- | chrome/browser/cocoa/browser_window_controller_unittest.mm | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/chrome/browser/cocoa/browser_window_controller_unittest.mm b/chrome/browser/cocoa/browser_window_controller_unittest.mm index b5f504e..e2b7451 100644 --- a/chrome/browser/cocoa/browser_window_controller_unittest.mm +++ b/chrome/browser/cocoa/browser_window_controller_unittest.mm @@ -2,19 +2,23 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +#include "app/l10n_util_mac.h" #include "base/scoped_nsobject.h" #include "base/scoped_nsautorelease_pool.h" #include "base/scoped_ptr.h" +#include "chrome/app/chrome_dll_resource.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/browser_window.h" #include "chrome/browser/cocoa/browser_test_helper.h" #include "chrome/browser/cocoa/browser_window_controller.h" #include "chrome/browser/cocoa/cocoa_test_helper.h" #include "chrome/browser/cocoa/find_bar_bridge.h" +#include "chrome/browser/sync/sync_status_ui_helper.h" #include "chrome/common/pref_names.h" #include "chrome/common/pref_service.h" #include "chrome/test/testing_browser_process.h" #include "chrome/test/testing_profile.h" +#include "grit/generated_resources.h" @interface BrowserWindowController (JustForTesting) // Already defined in BWC. @@ -429,6 +433,77 @@ TEST_F(BrowserWindowControllerTest, TestFindBarOnTop) { EXPECT_GT(findBar_index, bookmark_index); } +TEST_F(BrowserWindowControllerTest, TestSyncMenuItem) { + scoped_nsobject<NSMenuItem> syncMenuItem( + [[NSMenuItem alloc] initWithTitle:@"" + action:@selector(commandDispatch) + keyEquivalent:@""]); + [syncMenuItem setTag:IDC_SYNC_BOOKMARKS]; + + NSString* bookmarksSynced = + l10n_util::GetNSStringWithFixup(IDS_SYNC_MENU_BOOKMARKS_SYNCED_LABEL); + NSString* bookmarkSyncError = + l10n_util::GetNSStringWithFixup(IDS_SYNC_MENU_BOOKMARK_SYNC_ERROR_LABEL); + NSString* startSync = + l10n_util::GetNSStringWithFixup(IDS_SYNC_START_SYNC_BUTTON_LABEL); + + [syncMenuItem setTitle:@""]; + [syncMenuItem setHidden:NO]; + [controller_ updateSyncItem:syncMenuItem + syncEnabled:NO + status:SyncStatusUIHelper::PRE_SYNCED]; + EXPECT_TRUE([[syncMenuItem title] isEqualTo:startSync]); + EXPECT_TRUE([syncMenuItem isHidden]); + + [syncMenuItem setTitle:@""]; + [syncMenuItem setHidden:YES]; + [controller_ updateSyncItem:syncMenuItem + syncEnabled:YES + status:SyncStatusUIHelper::SYNC_ERROR]; + EXPECT_TRUE([[syncMenuItem title] isEqualTo:bookmarkSyncError]); + EXPECT_FALSE([syncMenuItem isHidden]); + + [syncMenuItem setTitle:@""]; + [syncMenuItem setHidden:NO]; + [controller_ updateSyncItem:syncMenuItem + syncEnabled:NO + status:SyncStatusUIHelper::SYNCED]; + EXPECT_TRUE([[syncMenuItem title] isEqualTo:bookmarksSynced]); + EXPECT_TRUE([syncMenuItem isHidden]); +} + +TEST_F(BrowserWindowControllerTest, TestSyncMenuItemWithSeparator) { + scoped_nsobject<NSMenu> menu([[NSMenu alloc] initWithTitle:@""]); + NSMenuItem* syncMenuItem = + [menu addItemWithTitle:@"" + action:@selector(commandDispatch) + keyEquivalent:@""]; + [syncMenuItem setTag:IDC_SYNC_BOOKMARKS]; + NSMenuItem* following_separator = [NSMenuItem separatorItem]; + [menu addItem:following_separator]; + + const SyncStatusUIHelper::MessageType kStatus = + SyncStatusUIHelper::PRE_SYNCED; + + [syncMenuItem setHidden:NO]; + [following_separator setHidden:NO]; + [controller_ updateSyncItem:syncMenuItem + syncEnabled:NO + status:kStatus]; + EXPECT_FALSE([following_separator isEnabled]); + EXPECT_TRUE([syncMenuItem isHidden]); + EXPECT_TRUE([following_separator isHidden]); + + [syncMenuItem setHidden:YES]; + [following_separator setHidden:YES]; + [controller_ updateSyncItem:syncMenuItem + syncEnabled:YES + status:kStatus]; + EXPECT_FALSE([following_separator isEnabled]); + EXPECT_FALSE([syncMenuItem isHidden]); + EXPECT_FALSE([following_separator isHidden]); +} + @interface BrowserWindowControllerFakeFullscreen : BrowserWindowController { @private // We release the window ourselves, so we don't have to rely on the unittest |