diff options
author | shess@chromium.org <shess@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-23 21:31:39 +0000 |
---|---|---|
committer | shess@chromium.org <shess@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-23 21:31:39 +0000 |
commit | 599ea9fd7f5f029661916c191ff89b7358719f81 (patch) | |
tree | c72cab547f6dee71007cad75402a774e8bce735f /chrome/browser/cocoa/autocomplete_text_field_editor_unittest.mm | |
parent | 4e78ee1663d14ef7a087cefbd644652e53b9bdcb (diff) | |
download | chromium_src-599ea9fd7f5f029661916c191ff89b7358719f81.zip chromium_src-599ea9fd7f5f029661916c191ff89b7358719f81.tar.gz chromium_src-599ea9fd7f5f029661916c191ff89b7358719f81.tar.bz2 |
[Mac] Convert Omnibox paste-and-go to use AutocompleteTextFieldObserver.
Obvious result of Rohit's addition of paste-and-go and my refactor to
add AutocompleteTextFieldObserver. Bonus prize of unit tests for
cocoa/ part of Rohit's change.
Review URL: http://codereview.chromium.org/207047
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26993 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/cocoa/autocomplete_text_field_editor_unittest.mm')
-rw-r--r-- | chrome/browser/cocoa/autocomplete_text_field_editor_unittest.mm | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/chrome/browser/cocoa/autocomplete_text_field_editor_unittest.mm b/chrome/browser/cocoa/autocomplete_text_field_editor_unittest.mm index bdb4962..c4ec346 100644 --- a/chrome/browser/cocoa/autocomplete_text_field_editor_unittest.mm +++ b/chrome/browser/cocoa/autocomplete_text_field_editor_unittest.mm @@ -9,9 +9,12 @@ #include "base/string_util.h" #import "chrome/browser/cocoa/autocomplete_text_field_unittest_helper.h" #import "chrome/browser/cocoa/cocoa_test_helper.h" +#include "grit/generated_resources.h" #include "testing/gtest/include/gtest/gtest.h" #include "testing/platform_test.h" +using ::testing::Return; + namespace { int NumTypesOnPasteboard(NSPasteboard* pb) { @@ -156,4 +159,43 @@ TEST_F(AutocompleteTextFieldEditorTest, Paste) { [editor_.get() paste:nil]; } +// Test that -pasteAndGo: is correctly delegated to the observer. +TEST_F(AutocompleteTextFieldEditorTest, PasteAndGo) { + EXPECT_CALL(field_observer_, OnPasteAndGo()); + [editor_.get() pasteAndGo:nil]; +} + +// Test that the menu is constructed correctly when CanPasteAndGo(). +TEST_F(AutocompleteTextFieldEditorTest, CanPasteAndGoMenu) { + EXPECT_CALL(field_observer_, CanPasteAndGo()) + .WillOnce(Return(true)); + EXPECT_CALL(field_observer_, GetPasteActionStringId()) + .WillOnce(Return(IDS_PASTE_AND_GO)); + + NSMenu* menu = [editor_.get() menuForEvent:nil]; + NSArray* items = [menu itemArray]; + ASSERT_EQ([items count], 4U); + // 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(paste:)); + EXPECT_EQ([[items objectAtIndex:i++] action], @selector(pasteAndGo:)); +} + +// Test that the menu is constructed correctly when !CanPasteAndGo(). +TEST_F(AutocompleteTextFieldEditorTest, CannotPasteAndGoMenu) { + EXPECT_CALL(field_observer_, CanPasteAndGo()) + .WillOnce(Return(false)); + + NSMenu* menu = [editor_.get() menuForEvent:nil]; + NSArray* items = [menu itemArray]; + ASSERT_EQ([items count], 3U); + // 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(paste:)); +} + } // namespace |