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

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

Issue 159018: [Mac] Strip newlines from paste. (Closed)
Patch Set: Test empty clipboard 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
Index: chrome/browser/cocoa/autocomplete_text_field_editor_unittest.mm
diff --git a/chrome/browser/cocoa/autocomplete_text_field_editor_unittest.mm b/chrome/browser/cocoa/autocomplete_text_field_editor_unittest.mm
index 71314cfddb8ddde7ecea061c01b19e8565202de3..7e33bc18c8248883f4efd3fae6ed705486626949 100644
--- a/chrome/browser/cocoa/autocomplete_text_field_editor_unittest.mm
+++ b/chrome/browser/cocoa/autocomplete_text_field_editor_unittest.mm
@@ -7,9 +7,18 @@
#include "base/scoped_nsobject.h"
#include "base/scoped_ptr.h"
#include "base/string_util.h"
+#import "chrome/browser/cocoa/cocoa_test_helper.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "testing/platform_test.h"
+@interface AutocompleteTextFieldEditorTestDelegate : NSObject {
+ BOOL textShouldPaste_;
+ BOOL receivedTextShouldPaste_;
+}
+- initWithTextShouldPaste:(BOOL)flag;
+- (BOOL)receivedTextShouldPaste;
+@end
+
namespace {
int NumTypesOnPasteboard(NSPasteboard* pb) {
return [[pb types] count];
@@ -30,10 +39,15 @@ bool ClipboardContainsText(NSPasteboard* pb, NSString* cmp) {
return [clipboard_text isEqualToString:cmp];
}
-} // namespace
-
class AutocompleteTextFieldEditorTest : public PlatformTest {
public:
+ AutocompleteTextFieldEditorTest() {
+ NSRect frame = NSMakeRect(0, 0, 50, 30);
+ editor_.reset([[AutocompleteTextFieldEditor alloc] initWithFrame:frame]);
+ [editor_ setString:@"Testing"];
+ [cocoa_helper_.contentView() addSubview:editor_.get()];
+ }
+
virtual void SetUp() {
PlatformTest::SetUp();
pb_ = [NSPasteboard pasteboardWithUniqueName];
@@ -50,8 +64,11 @@ class AutocompleteTextFieldEditorTest : public PlatformTest {
return pb_;
}
- private:
- NSPasteboard *pb_;
+ CocoaTestHelper cocoa_helper_; // Inits Cocoa, creates window, etc...
+ scoped_nsobject<AutocompleteTextFieldEditor> editor_;
+
+ private:
+ NSPasteboard *pb_;
};
TEST_F(AutocompleteTextFieldEditorTest, CutCopyTest) {
@@ -61,28 +78,85 @@ TEST_F(AutocompleteTextFieldEditorTest, CutCopyTest) {
NSString* test_string_1 = @"astring";
NSString* test_string_2 = @"another string";
- scoped_nsobject<AutocompleteTextFieldEditor> field_editor(
- [[AutocompleteTextFieldEditor alloc] init]);
- [field_editor.get() setRichText:YES];
+ [editor_.get() setRichText:YES];
// Put some text on the clipboard.
- [field_editor.get() setString:test_string_1];
- [field_editor.get() selectAll:nil];
- [field_editor.get() alignRight:nil]; // Add a rich text attribute.
+ [editor_.get() setString:test_string_1];
+ [editor_.get() selectAll:nil];
+ [editor_.get() alignRight:nil]; // Add a rich text attribute.
ASSERT_TRUE(NoRichTextOnClipboard(clipboard()));
// Check that copying it works and we only get plain text.
NSPasteboard* pb = clipboard();
- [field_editor.get() performCopy:pb];
+ [editor_.get() performCopy:pb];
ASSERT_TRUE(NoRichTextOnClipboard(clipboard()));
ASSERT_TRUE(ClipboardContainsText(clipboard(), test_string_1));
// Check that cutting it works and we only get plain text.
- [field_editor.get() setString:test_string_2];
- [field_editor.get() selectAll:nil];
- [field_editor.get() alignLeft:nil]; // Add a rich text attribute.
- [field_editor.get() performCut:pb];
+ [editor_.get() setString:test_string_2];
+ [editor_.get() selectAll:nil];
+ [editor_.get() alignLeft:nil]; // Add a rich text attribute.
+ [editor_.get() performCut:pb];
ASSERT_TRUE(NoRichTextOnClipboard(clipboard()));
ASSERT_TRUE(ClipboardContainsText(clipboard(), test_string_2));
- ASSERT_EQ([[field_editor.get() textStorage] length], 0U);
+ ASSERT_EQ([[editor_.get() textStorage] length], 0U);
+}
+
+// Test adding/removing from the view hierarchy, mostly to ensure nothing
+// leaks or crashes.
+TEST_F(AutocompleteTextFieldEditorTest, AddRemove) {
+ EXPECT_EQ(cocoa_helper_.contentView(), [editor_ superview]);
+ [editor_.get() removeFromSuperview];
+ EXPECT_FALSE([editor_ superview]);
+}
+
+// Test drawing, mostly to ensure nothing leaks or crashes.
+TEST_F(AutocompleteTextFieldEditorTest, Display) {
+ [editor_ display];
+}
+
+// Test that -shouldPaste properly queries the delegate.
+TEST_F(AutocompleteTextFieldEditorTest, TextShouldPaste) {
+ EXPECT_TRUE(![editor_ delegate]);
+ EXPECT_TRUE([editor_ shouldPaste]);
+
+ scoped_nsobject<AutocompleteTextFieldEditorTestDelegate> shouldPaste(
+ [[AutocompleteTextFieldEditorTestDelegate alloc]
+ initWithTextShouldPaste:YES]);
+ [editor_ setDelegate:shouldPaste];
+ EXPECT_FALSE([shouldPaste receivedTextShouldPaste]);
+ EXPECT_TRUE([editor_ shouldPaste]);
+ EXPECT_TRUE([shouldPaste receivedTextShouldPaste]);
+
+ scoped_nsobject<AutocompleteTextFieldEditorTestDelegate> shouldNotPaste(
+ [[AutocompleteTextFieldEditorTestDelegate alloc]
+ initWithTextShouldPaste:NO]);
+ [editor_ setDelegate:shouldNotPaste];
+ EXPECT_FALSE([shouldNotPaste receivedTextShouldPaste]);
+ EXPECT_FALSE([editor_ shouldPaste]);
+ EXPECT_TRUE([shouldNotPaste receivedTextShouldPaste]);
+}
+
+} // namespace
+
+@implementation AutocompleteTextFieldEditorTestDelegate
+
+- initWithTextShouldPaste:(BOOL)flag {
+ self = [super init];
+ if (self) {
+ textShouldPaste_ = flag;
+ receivedTextShouldPaste_ = NO;
+ }
+ return self;
+}
+
+- (BOOL)receivedTextShouldPaste {
+ return receivedTextShouldPaste_;
}
+
+- (BOOL)textShouldPaste:(NSText*)fieldEditor {
+ receivedTextShouldPaste_ = YES;
+ return textShouldPaste_;
+}
+
+@end
« no previous file with comments | « chrome/browser/cocoa/autocomplete_text_field_editor.mm ('k') | chrome/browser/cocoa/autocomplete_text_field_unittest.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698