| Index: chrome/browser/cocoa/autocomplete_text_field_unittest.mm
|
| diff --git a/chrome/browser/cocoa/autocomplete_text_field_unittest.mm b/chrome/browser/cocoa/autocomplete_text_field_unittest.mm
|
| index 03a786f66f2072b88028b876ddbb4d825936229b..e8a8fb8c833c7af016c9f69199d7645487a34894 100644
|
| --- a/chrome/browser/cocoa/autocomplete_text_field_unittest.mm
|
| +++ b/chrome/browser/cocoa/autocomplete_text_field_unittest.mm
|
| @@ -7,15 +7,18 @@
|
| #include "base/scoped_nsobject.h"
|
| #import "chrome/browser/cocoa/autocomplete_text_field.h"
|
| #import "chrome/browser/cocoa/autocomplete_text_field_cell.h"
|
| +#import "chrome/browser/cocoa/autocomplete_text_field_editor.h"
|
| #import "chrome/browser/cocoa/cocoa_test_helper.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| @interface AutocompleteTextFieldTestDelegate : NSObject {
|
| BOOL textShouldPaste_;
|
| BOOL receivedTextShouldPaste_;
|
| + BOOL receivedFlagsChanged_;
|
| }
|
| - initWithTextShouldPaste:(BOOL)flag;
|
| - (BOOL)receivedTextShouldPaste;
|
| +- (BOOL)receivedFlagsChanged;
|
| @end
|
|
|
| namespace {
|
| @@ -71,6 +74,47 @@ TEST_F(AutocompleteTextFieldTest, TextShouldPaste) {
|
| EXPECT_TRUE([shouldNotPaste receivedTextShouldPaste]);
|
| }
|
|
|
| +// Test that -control:flagsChanged: properly reaches the delegate.
|
| +TEST_F(AutocompleteTextFieldTest, FlagsChanged) {
|
| + EXPECT_TRUE(![field_ delegate]);
|
| +
|
| + // This shouldn't crash, at least.
|
| + [field_ flagsChanged:nil];
|
| +
|
| + scoped_nsobject<AutocompleteTextFieldTestDelegate> delegate(
|
| + [[AutocompleteTextFieldTestDelegate alloc] initWithTextShouldPaste:NO]);
|
| + [field_ setDelegate:delegate];
|
| + EXPECT_FALSE([delegate receivedFlagsChanged]);
|
| + [field_ flagsChanged:nil];
|
| + EXPECT_TRUE([delegate receivedFlagsChanged]);
|
| +}
|
| +
|
| +// Test that -control:flagsChanged: properly reaches the delegate when
|
| +// the -flagsChanged: message goes to the editor. In that case it is
|
| +// forwarded via the responder chain.
|
| +TEST_F(AutocompleteTextFieldTest, FieldEditorFlagsChanged) {
|
| + EXPECT_TRUE(![field_ delegate]);
|
| +
|
| + scoped_nsobject<AutocompleteTextFieldTestDelegate> delegate(
|
| + [[AutocompleteTextFieldTestDelegate alloc] initWithTextShouldPaste:NO]);
|
| +
|
| + // Setup a field editor for |field_|.
|
| + scoped_nsobject<AutocompleteTextFieldEditor> editor(
|
| + [[AutocompleteTextFieldEditor alloc] init]);
|
| + [field_ setDelegate:delegate];
|
| +
|
| + [editor setFieldEditor:YES];
|
| + [[field_ cell] setUpFieldEditorAttributes:editor];
|
| + [[field_ cell] editWithFrame:[field_ bounds]
|
| + inView:field_
|
| + editor:editor
|
| + delegate:[field_ delegate]
|
| + event:nil];
|
| + EXPECT_FALSE([delegate receivedFlagsChanged]);
|
| + [editor flagsChanged:nil];
|
| + EXPECT_TRUE([delegate receivedFlagsChanged]);
|
| +}
|
| +
|
| } // namespace
|
|
|
| @implementation AutocompleteTextFieldTestDelegate
|
| @@ -80,6 +124,7 @@ TEST_F(AutocompleteTextFieldTest, TextShouldPaste) {
|
| if (self) {
|
| textShouldPaste_ = flag;
|
| receivedTextShouldPaste_ = NO;
|
| + receivedFlagsChanged_ = NO;
|
| }
|
| return self;
|
| }
|
| @@ -88,9 +133,17 @@ TEST_F(AutocompleteTextFieldTest, TextShouldPaste) {
|
| return receivedTextShouldPaste_;
|
| }
|
|
|
| +- (BOOL)receivedFlagsChanged {
|
| + return receivedFlagsChanged_;
|
| +}
|
| +
|
| - (BOOL)control:(NSControl*)control textShouldPaste:(NSText*)fieldEditor {
|
| receivedTextShouldPaste_ = YES;
|
| return textShouldPaste_;
|
| }
|
|
|
| +- (void)control:(id)control flagsChanged:(NSEvent*)theEvent {
|
| + receivedFlagsChanged_ = YES;
|
| +}
|
| +
|
| @end
|
|
|