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

Unified Diff: chrome/browser/ui/cocoa/location_bar/autocomplete_text_field_editor_unittest.mm

Issue 10915069: Add Copy URL option to Omnibox context menu when URL is replaced by Instant Extended. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 8 years, 3 months 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/location_bar/autocomplete_text_field_editor_unittest.mm
diff --git a/chrome/browser/ui/cocoa/location_bar/autocomplete_text_field_editor_unittest.mm b/chrome/browser/ui/cocoa/location_bar/autocomplete_text_field_editor_unittest.mm
index fefc8a0ac491e1558d4674c50f6b5c5570510c00..f3b50ce39d9f13c9feeb815d8b67cfd6dd72455b 100644
--- a/chrome/browser/ui/cocoa/location_bar/autocomplete_text_field_editor_unittest.mm
+++ b/chrome/browser/ui/cocoa/location_bar/autocomplete_text_field_editor_unittest.mm
@@ -202,6 +202,14 @@ TEST_F(AutocompleteTextFieldEditorObserverTest, Copy) {
[editor_ copy:nil];
}
+// Test that -copyURL: is correctly delegated to the observer.
+TEST_F(AutocompleteTextFieldEditorObserverTest, CopyURL) {
+ EXPECT_CALL(field_observer_, CanCopy()).WillOnce(Return(true));
+ EXPECT_CALL(field_observer_,
+ CopyURLToPasteboard(A<NSPasteboard*>())).Times(1);
+ [editor_ copyURL:nil];
+}
+
// Test that -cut: is correctly delegated to the observer and clears
// the text field.
TEST_F(AutocompleteTextFieldEditorObserverTest, Cut) {
@@ -234,18 +242,17 @@ TEST_F(AutocompleteTextFieldEditorObserverTest, PasteAndGo) {
// Test that the menu is constructed correctly when CanPasteAndGo().
TEST_F(AutocompleteTextFieldEditorObserverTest, CanPasteAndGoMenu) {
- EXPECT_CALL(field_observer_, CanPasteAndGo())
- .WillOnce(Return(true));
- EXPECT_CALL(field_observer_, GetPasteActionStringId())
- .WillOnce(Return(IDS_PASTE_AND_GO));
+ EXPECT_CALL(field_observer_, GetPasteActionStringId()).
+ WillOnce(Return(IDS_PASTE_AND_GO));
NSMenu* menu = [editor_ menuForEvent:nil];
NSArray* items = [menu itemArray];
- ASSERT_EQ([items count], 6U);
+ ASSERT_EQ([items count], 7U);
// TODO(shess): Check the titles, too?
NSUInteger i = 0; // Use an index to make future changes easier.
EXPECT_EQ([[items objectAtIndex:i++] action], @selector(cut:));
EXPECT_EQ([[items objectAtIndex:i++] action], @selector(copy:));
+ EXPECT_EQ([[items objectAtIndex:i++] action], @selector(copyURL:));
EXPECT_EQ([[items objectAtIndex:i++] action], @selector(paste:));
EXPECT_EQ([[items objectAtIndex:i++] action], @selector(pasteAndGo:));
EXPECT_TRUE([[items objectAtIndex:i++] isSeparatorItem]);
@@ -257,17 +264,19 @@ TEST_F(AutocompleteTextFieldEditorObserverTest, CanPasteAndGoMenu) {
// Test that the menu is constructed correctly when !CanPasteAndGo().
TEST_F(AutocompleteTextFieldEditorObserverTest, CannotPasteAndGoMenu) {
- EXPECT_CALL(field_observer_, CanPasteAndGo())
- .WillOnce(Return(false));
+ EXPECT_CALL(field_observer_, GetPasteActionStringId()).
+ WillOnce(Return(IDS_PASTE_AND_GO));
NSMenu* menu = [editor_ menuForEvent:nil];
NSArray* items = [menu itemArray];
- ASSERT_EQ([items count], 5U);
+ ASSERT_EQ([items count], 7U);
// TODO(shess): Check the titles, too?
NSUInteger i = 0; // Use an index to make future changes easier.
EXPECT_EQ([[items objectAtIndex:i++] action], @selector(cut:));
EXPECT_EQ([[items objectAtIndex:i++] action], @selector(copy:));
+ EXPECT_EQ([[items objectAtIndex:i++] action], @selector(copyURL:));
EXPECT_EQ([[items objectAtIndex:i++] action], @selector(paste:));
+ EXPECT_EQ([[items objectAtIndex:i++] action], @selector(pasteAndGo:));
EXPECT_TRUE([[items objectAtIndex:i++] isSeparatorItem]);
EXPECT_EQ([[items objectAtIndex:i] action], @selector(commandDispatch:));
@@ -281,11 +290,8 @@ TEST_F(AutocompleteTextFieldEditorObserverTest, CanPasteAndGoMenuNotEditable) {
[field_ setEditable:NO];
[editor_ setEditable:NO];
- // Never call these when not editable.
- EXPECT_CALL(field_observer_, CanPasteAndGo())
- .Times(0);
- EXPECT_CALL(field_observer_, GetPasteActionStringId())
- .Times(0);
+ // Never call this when not editable.
+ EXPECT_CALL(field_observer_, GetPasteActionStringId()).Times(0);
NSMenu* menu = [editor_ menuForEvent:nil];
NSArray* items = [menu itemArray];
@@ -297,4 +303,99 @@ TEST_F(AutocompleteTextFieldEditorObserverTest, CanPasteAndGoMenuNotEditable) {
EXPECT_EQ([[items objectAtIndex:i++] action], @selector(paste:));
}
+// Test that the menu is constructed correctly when ShouldEnableCopyURL()
+// returns true.
+TEST_F(AutocompleteTextFieldEditorObserverTest, ShouldEnableCopyURLMenu) {
+ EXPECT_CALL(field_observer_, GetPasteActionStringId()).
+ WillOnce(Return(IDS_PASTE_AND_GO));
+
+ NSMenu* menu = [editor_ menuForEvent:nil];
+ NSArray* items = [menu itemArray];
+ ASSERT_EQ([items count], 7U);
+ // TODO(shess): Check the titles, too?
+ NSUInteger i = 0; // Use an index to make future changes easier.
+ EXPECT_EQ([[items objectAtIndex:i++] action], @selector(cut:));
+ EXPECT_EQ([[items objectAtIndex:i++] action], @selector(copy:));
+ EXPECT_EQ([[items objectAtIndex:i++] action], @selector(copyURL:));
+ EXPECT_EQ([[items objectAtIndex:i++] action], @selector(paste:));
+ EXPECT_EQ([[items objectAtIndex:i++] action], @selector(pasteAndGo:));
+ EXPECT_TRUE([[items objectAtIndex:i++] isSeparatorItem]);
+
+ EXPECT_EQ([[items objectAtIndex:i] action], @selector(commandDispatch:));
+ EXPECT_EQ([[items objectAtIndex:i] tag], IDC_EDIT_SEARCH_ENGINES);
+}
+
+// Test that the menu validation works as expected when CanPasteAndGo().
+TEST_F(AutocompleteTextFieldEditorObserverTest, CanPasteAndGoValidate) {
+ EXPECT_CALL(field_observer_, GetPasteActionStringId())
+ .WillOnce(Return(IDS_PASTE_AND_GO));
+ EXPECT_CALL(field_observer_, CanPasteAndGo()).WillOnce(Return(true));
+
+ NSMenu* menu = [editor_ menuForEvent:nil];
+ NSArray* items = [menu itemArray];
+ ASSERT_EQ([items count], 7U);
+ for (NSUInteger i = 0; i < [items count]; ++i) {
+ NSMenuItem* item = [items objectAtIndex:i];
+ if ([item action] == @selector(pasteAndGo:)) {
+ EXPECT_TRUE([editor_ validateMenuItem:item]);
+ break;
+ }
+ }
+}
+
+// Test that the menu validation works as expected when !CanPasteAndGo().
+TEST_F(AutocompleteTextFieldEditorObserverTest, CannotPasteAndGoValidate) {
+ EXPECT_CALL(field_observer_, GetPasteActionStringId())
+ .WillOnce(Return(IDS_PASTE_AND_GO));
+ EXPECT_CALL(field_observer_, CanPasteAndGo()).WillOnce(Return(false));
+
+ NSMenu* menu = [editor_ menuForEvent:nil];
+ NSArray* items = [menu itemArray];
+ ASSERT_EQ([items count], 7U);
+ for (NSUInteger i = 0; i < [items count]; ++i) {
+ NSMenuItem* item = [items objectAtIndex:i];
+ if ([item action] == @selector(pasteAndGo:)) {
+ EXPECT_FALSE([editor_ validateMenuItem:item]);
+ break;
+ }
+ }
+}
+
+// Test that the menu validation works as expected when ShouldEnableCopyURL().
+TEST_F(AutocompleteTextFieldEditorObserverTest, ShouldEnableCopyURLValidate) {
+ EXPECT_CALL(field_observer_, GetPasteActionStringId())
+ .WillOnce(Return(IDS_PASTE_AND_GO));
+ EXPECT_CALL(field_observer_, ShouldEnableCopyURL()).WillOnce(Return(true));
+
+ NSMenu* menu = [editor_ menuForEvent:nil];
+ NSArray* items = [menu itemArray];
+ ASSERT_EQ([items count], 7U);
+ for (NSUInteger i = 0; i < [items count]; ++i) {
+ NSMenuItem* item = [items objectAtIndex:i];
+ if ([item action] == @selector(copyURL:)) {
+ EXPECT_TRUE([editor_ validateMenuItem:item]);
+ break;
+ }
+ }
+}
+
+// Test that the menu validation works as expected when !ShouldEnableCopyURL().
+TEST_F(AutocompleteTextFieldEditorObserverTest,
+ ShouldNotEnableCopyURLValidate) {
+ EXPECT_CALL(field_observer_, GetPasteActionStringId())
+ .WillOnce(Return(IDS_PASTE_AND_GO));
+ EXPECT_CALL(field_observer_, ShouldEnableCopyURL()).WillOnce(Return(false));
+
+ NSMenu* menu = [editor_ menuForEvent:nil];
+ NSArray* items = [menu itemArray];
+ ASSERT_EQ([items count], 7U);
+ for (NSUInteger i = 0; i < [items count]; ++i) {
+ NSMenuItem* item = [items objectAtIndex:i];
+ if ([item action] == @selector(copyURL:)) {
+ EXPECT_FALSE([editor_ validateMenuItem:item]);
+ break;
+ }
+ }
+}
+
} // namespace

Powered by Google App Engine
This is Rietveld 408576698