| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/command_line.h" | 5 #include "base/command_line.h" |
| 6 #include "base/mac/scoped_nsobject.h" | 6 #include "base/mac/scoped_nsobject.h" |
| 7 #include "base/strings/sys_string_conversions.h" | 7 #include "base/strings/sys_string_conversions.h" |
| 8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
| 9 #include "chrome/app/chrome_command_ids.h" | 9 #include "chrome/app/chrome_command_ids.h" |
| 10 #include "chrome/browser/sync/profile_sync_service_factory.h" | 10 #include "chrome/browser/sync/profile_sync_service_factory.h" |
| (...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 191 | 191 |
| 192 [controller() setModel:fake_model_.get()]; | 192 [controller() setModel:fake_model_.get()]; |
| 193 NSMenu* menu = [controller() menu]; | 193 NSMenu* menu = [controller() menu]; |
| 194 [controller() updateRecentTabsSubmenu]; | 194 [controller() updateRecentTabsSubmenu]; |
| 195 | 195 |
| 196 NSString* title = l10n_util::GetNSStringWithFixup(IDS_RECENT_TABS_MENU); | 196 NSString* title = l10n_util::GetNSStringWithFixup(IDS_RECENT_TABS_MENU); |
| 197 NSMenu* recent_tabs_menu = [[menu itemWithTitle:title] submenu]; | 197 NSMenu* recent_tabs_menu = [[menu itemWithTitle:title] submenu]; |
| 198 EXPECT_TRUE(recent_tabs_menu); | 198 EXPECT_TRUE(recent_tabs_menu); |
| 199 EXPECT_EQ(7, [recent_tabs_menu numberOfItems]); | 199 EXPECT_EQ(7, [recent_tabs_menu numberOfItems]); |
| 200 | 200 |
| 201 // Index 0: restore tabs menu item. | |
| 202 NSString* restore_tab_label = l10n_util::FixUpWindowsStyleLabel( | |
| 203 recent_tabs_sub_menu_model.GetLabelAt(0)); | |
| 204 EXPECT_NSEQ(restore_tab_label, [[recent_tabs_menu itemAtIndex:0] title]); | |
| 205 | |
| 206 // Item 1: separator. | 201 // Item 1: separator. |
| 207 EXPECT_TRUE([[recent_tabs_menu itemAtIndex:1] isSeparatorItem]); | 202 EXPECT_TRUE([[recent_tabs_menu itemAtIndex:1] isSeparatorItem]); |
| 208 | 203 |
| 209 // Item 2: window title. | 204 // Index 2: restore tabs menu item. |
| 205 NSString* restore_tab_label = l10n_util::FixUpWindowsStyleLabel( |
| 206 recent_tabs_sub_menu_model.GetLabelAt(2)); |
| 207 EXPECT_NSEQ(restore_tab_label, [[recent_tabs_menu itemAtIndex:2] title]); |
| 208 |
| 209 // Item 3: separator. |
| 210 EXPECT_TRUE([[recent_tabs_menu itemAtIndex:3] isSeparatorItem]); |
| 211 |
| 212 // Item 4: window title. |
| 210 EXPECT_NSEQ( | 213 EXPECT_NSEQ( |
| 211 base::SysUTF16ToNSString(recent_tabs_sub_menu_model.GetLabelAt(2)), | 214 base::SysUTF16ToNSString(recent_tabs_sub_menu_model.GetLabelAt(4)), |
| 212 [[recent_tabs_menu itemAtIndex:2] title]); | 215 [[recent_tabs_menu itemAtIndex:4] title]); |
| 213 | 216 |
| 214 // Item 3: short tab title. | 217 // Item 5: short tab title. |
| 215 EXPECT_NSEQ(base::SysUTF16ToNSString(tab1_short_title), | 218 EXPECT_NSEQ(base::SysUTF16ToNSString(tab1_short_title), |
| 216 [[recent_tabs_menu itemAtIndex:3] title]); | 219 [[recent_tabs_menu itemAtIndex:5] title]); |
| 217 | 220 |
| 218 // Item 4: long tab title. | 221 // Item 6: long tab title. |
| 219 NSString* tab2_actual_title = [[recent_tabs_menu itemAtIndex:4] title]; | 222 NSString* tab2_actual_title = [[recent_tabs_menu itemAtIndex:6] title]; |
| 220 NSUInteger title_length = [tab2_actual_title length]; | 223 NSUInteger title_length = [tab2_actual_title length]; |
| 221 EXPECT_GT(tab2_long_title.size(), title_length); | 224 EXPECT_GT(tab2_long_title.size(), title_length); |
| 222 NSString* actual_substring = | 225 NSString* actual_substring = |
| 223 [tab2_actual_title substringToIndex:title_length - 1]; | 226 [tab2_actual_title substringToIndex:title_length - 1]; |
| 224 NSString* expected_substring = [base::SysUTF16ToNSString(tab2_long_title) | 227 NSString* expected_substring = [base::SysUTF16ToNSString(tab2_long_title) |
| 225 substringToIndex:title_length - 1]; | 228 substringToIndex:title_length - 1]; |
| 226 EXPECT_NSEQ(expected_substring, actual_substring); | 229 EXPECT_NSEQ(expected_substring, actual_substring); |
| 227 | 230 |
| 228 controller_.reset(); | 231 controller_.reset(); |
| 229 fake_model_.reset(); | 232 fake_model_.reset(); |
| 230 } | 233 } |
| 231 | 234 |
| 232 // Verify that |RecentTabsMenuModelDelegate| is deleted before the model | 235 // Verify that |RecentTabsMenuModelDelegate| is deleted before the model |
| 233 // it's observing. | 236 // it's observing. |
| 234 TEST_F(WrenchMenuControllerTest, RecentTabDeleteOrder) { | 237 TEST_F(WrenchMenuControllerTest, RecentTabDeleteOrder) { |
| 235 [controller_ menuNeedsUpdate:[controller_ menu]]; | 238 [controller_ menuNeedsUpdate:[controller_ menu]]; |
| 236 // If the delete order is wrong then the test will crash on exit. | 239 // If the delete order is wrong then the test will crash on exit. |
| 237 } | 240 } |
| 238 | 241 |
| 239 } // namespace | 242 } // namespace |
| OLD | NEW |