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

Unified Diff: chrome/browser/cocoa/autocomplete_text_field_unittest.mm

Issue 159105: [Mac] Detect control-key changes in autocomplete field. (Closed)
Patch Set: More comments about Control handling. Created 11 years, 5 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
« no previous file with comments | « chrome/browser/cocoa/autocomplete_text_field.mm ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « chrome/browser/cocoa/autocomplete_text_field.mm ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698