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

Unified Diff: chrome/browser/ui/cocoa/wrench_menu/wrench_menu_controller_unittest.mm

Issue 11316127: Alternate NTP: Limit width of tab titles in recent tabs menu (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: address review comments Created 8 years, 1 month 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/wrench_menu/wrench_menu_controller_unittest.mm
diff --git a/chrome/browser/ui/cocoa/wrench_menu/wrench_menu_controller_unittest.mm b/chrome/browser/ui/cocoa/wrench_menu/wrench_menu_controller_unittest.mm
index 327684a861cc7ed58a3ab5fc3ed6d683f0a73c13..394e157157e57f356d089f4e66bde47c68ff09b4 100644
--- a/chrome/browser/ui/cocoa/wrench_menu/wrench_menu_controller_unittest.mm
+++ b/chrome/browser/ui/cocoa/wrench_menu/wrench_menu_controller_unittest.mm
@@ -3,6 +3,7 @@
// found in the LICENSE file.
#include "base/memory/scoped_nsobject.h"
+#include "base/sys_string_conversions.h"
#include "chrome/app/chrome_command_ids.h"
#include "chrome/browser/sync/glue/session_model_associator.h"
#include "chrome/browser/sync/profile_sync_service_factory.h"
@@ -75,7 +76,7 @@ TEST_F(WrenchMenuControllerTest, DispatchSimple) {
chrome::testing::NSRunLoopRunAllPending();
}
-TEST_F(WrenchMenuControllerTest, RecentTabs) {
+TEST_F(WrenchMenuControllerTest, RecentTabsFavIcon) {
ProfileSyncService* sync_service =
ProfileSyncServiceFactory::GetInstance()->GetForProfile(profile());
browser_sync::SessionModelAssociator associator_(sync_service, true);
@@ -115,4 +116,68 @@ TEST_F(WrenchMenuControllerTest, RecentTabs) {
fake_model_.reset();
}
+TEST_F(WrenchMenuControllerTest, RecentTabsElideTitle) {
+ ProfileSyncService* sync_service =
+ ProfileSyncServiceFactory::GetInstance()->GetForProfile(profile());
+ browser_sync::SessionModelAssociator associator_(sync_service, true);
+ associator_.SetCurrentMachineTagForTesting("WrenchMenuControllerTest");
+
+ // Add 1 session with 1 window and 2 tabs.
+ RecentTabsBuilderTestHelper recent_tabs_builder;
+ recent_tabs_builder.AddSession();
+ recent_tabs_builder.AddWindow(0);
+ string16 tab1_short_title = ASCIIToUTF16("Short");
+ recent_tabs_builder.AddTabWithInfo(0, 0, base::Time::Now(), tab1_short_title);
+ string16 tab2_long_title = ASCIIToUTF16("Very very very very very very "
+ "very very very very very very long");
+ recent_tabs_builder.AddTabWithInfo(0, 0,
+ base::Time::Now() - base::TimeDelta::FromMinutes(10), tab2_long_title);
+ recent_tabs_builder.RegisterRecentTabs(&associator_);
+
+ RecentTabsSubMenuModel recent_tabs_sub_menu_model(
+ NULL, browser(), &associator_);
+ fake_model_->AddSubMenuWithStringId(
+ IDC_RECENT_TABS_MENU, IDS_RECENT_TABS_MENU,
+ &recent_tabs_sub_menu_model);
+
+ [controller() setModel:fake_model_.get()];
+ NSMenu* menu = [controller() menu];
+ [controller() updateRecentTabsSubmenu];
+
+ NSString* title = l10n_util::GetNSStringWithFixup(IDS_RECENT_TABS_MENU);
+ NSMenu* recent_tabs_menu = [[menu itemWithTitle:title] submenu];
+ EXPECT_TRUE(recent_tabs_menu);
+ EXPECT_EQ(5, [recent_tabs_menu numberOfItems]);
+
+ // Index 0: restore tabs menu item.
+ NSString* restore_tab_label = l10n_util::FixUpWindowsStyleLabel(
+ recent_tabs_sub_menu_model.GetLabelAt(0));
+ EXPECT_NSEQ(restore_tab_label, [[recent_tabs_menu itemAtIndex:0] title]);
+
+ // Item 1: separator.
+ EXPECT_TRUE([[recent_tabs_menu itemAtIndex:1] isSeparatorItem]);
+
+ // Item 2: window title.
+ EXPECT_NSEQ(
+ base::SysUTF16ToNSString(recent_tabs_sub_menu_model.GetLabelAt(2)),
+ [[recent_tabs_menu itemAtIndex:2] title]);
+
+ // Item 3: short tab title.
+ EXPECT_NSEQ(base::SysUTF16ToNSString(tab1_short_title),
+ [[recent_tabs_menu itemAtIndex:3] title]);
+
+ // Item 4: long tab title.
+ NSString* tab2_actual_title = [[recent_tabs_menu itemAtIndex:4] title];
+ NSUInteger title_length = [tab2_actual_title length];
+ EXPECT_GT(tab2_long_title.size(), title_length);
+ NSString* actual_substring =
+ [tab2_actual_title substringToIndex:title_length - 1];
+ NSString* expected_substring = [base::SysUTF16ToNSString(tab2_long_title)
+ substringToIndex:title_length - 1];
+ EXPECT_NSEQ(expected_substring, actual_substring);
+
+ controller_.reset();
+ fake_model_.reset();
+}
+
} // namespace

Powered by Google App Engine
This is Rietveld 408576698