Index: chrome/browser/ui/cocoa/autofill/autofill_notification_controller_unittest.mm |
diff --git a/chrome/browser/ui/cocoa/autofill/autofill_notification_controller_unittest.mm b/chrome/browser/ui/cocoa/autofill/autofill_notification_controller_unittest.mm |
index f353b03a54f524a5740ede72fc0ce7dfa9386549..f38a1e116f2dc38f35694766918727bf1cb4e2ef 100644 |
--- a/chrome/browser/ui/cocoa/autofill/autofill_notification_controller_unittest.mm |
+++ b/chrome/browser/ui/cocoa/autofill/autofill_notification_controller_unittest.mm |
@@ -5,6 +5,8 @@ |
#import "chrome/browser/ui/cocoa/autofill/autofill_notification_controller.h" |
#include "base/mac/scoped_nsobject.h" |
+#include "base/strings/utf_string_conversions.h" |
+#include "chrome/browser/ui/autofill/autofill_dialog_types.h" |
#include "testing/gtest_mac.h" |
#import "ui/base/test/ui_cocoa_test_helper.h" |
@@ -14,8 +16,17 @@ class AutofillNotificationControllerTest : public ui::CocoaTest { |
public: |
virtual void SetUp() { |
CocoaTest::SetUp(); |
- controller_.reset([[AutofillNotificationController alloc] init]); |
- [[test_window() contentView] addSubview:[controller_ view]]; |
+ InitControllerWithNotification( |
+ autofill::DialogNotification(autofill::DialogNotification::NONE, |
+ ASCIIToUTF16("A notification title"))); |
+ } |
+ |
+ void InitControllerWithNotification( |
+ const autofill::DialogNotification& notification) { |
+ controller_.reset( |
+ [[AutofillNotificationController alloc] |
+ initWithNotification:¬ification]); |
+ [[test_window() contentView] setSubviews:@[[controller_ view]]]; |
} |
protected: |
@@ -28,16 +39,72 @@ TEST_VIEW(AutofillNotificationControllerTest, [controller_ view]) |
TEST_F(AutofillNotificationControllerTest, Subviews) { |
NSView* view = [controller_ view]; |
- ASSERT_EQ(2U, [[view subviews] count]); |
+ ASSERT_EQ(3U, [[view subviews] count]); |
EXPECT_TRUE([[[view subviews] objectAtIndex:0] isKindOfClass: |
[NSTextField class]]); |
EXPECT_TRUE([[[view subviews] objectAtIndex:1] isKindOfClass: |
[NSButton class]]); |
+ EXPECT_TRUE([[[view subviews] objectAtIndex:2] isKindOfClass: |
+ [NSImageView class]]); |
EXPECT_NSEQ([controller_ textfield], |
[[view subviews] objectAtIndex:0]); |
EXPECT_NSEQ([controller_ checkbox], |
[[view subviews] objectAtIndex:1]); |
+ EXPECT_NSEQ([controller_ tooltipIcon], |
+ [[view subviews] objectAtIndex:2]); |
// Just to exercise the code path. |
[controller_ performLayout]; |
} |
+ |
+TEST_F(AutofillNotificationControllerTest, TextLabelOnly) { |
+ InitControllerWithNotification( |
+ autofill::DialogNotification( |
+ autofill::DialogNotification::DEVELOPER_WARNING, |
+ ASCIIToUTF16("A notification title"))); |
+ |
+ EXPECT_FALSE([[controller_ textfield] isHidden]); |
+ EXPECT_TRUE([[controller_ checkbox] isHidden]); |
+ EXPECT_TRUE([[controller_ tooltipIcon] isHidden]); |
+} |
+ |
+TEST_F(AutofillNotificationControllerTest, CheckboxOnly) { |
+ autofill::DialogNotification notification( |
+ autofill::DialogNotification::WALLET_USAGE_CONFIRMATION, |
+ ASCIIToUTF16("A notification title")); |
+ ASSERT_TRUE(notification.HasCheckbox()); |
+ InitControllerWithNotification(notification); |
+ |
+ EXPECT_TRUE([[controller_ textfield] isHidden]); |
+ EXPECT_FALSE([[controller_ checkbox] isHidden]); |
+ EXPECT_TRUE([[controller_ tooltipIcon] isHidden]); |
+} |
+ |
+TEST_F(AutofillNotificationControllerTest, TextLabelAndTooltip) { |
+ autofill::DialogNotification notification( |
+ autofill::DialogNotification::DEVELOPER_WARNING, |
+ ASCIIToUTF16("A notification title")); |
+ notification.set_tooltip_text(ASCIIToUTF16("My very informative tooltip.")); |
+ InitControllerWithNotification(notification); |
+ |
+ EXPECT_FALSE([[controller_ textfield] isHidden]); |
+ EXPECT_TRUE([[controller_ checkbox] isHidden]); |
+ EXPECT_FALSE([[controller_ tooltipIcon] isHidden]); |
+ EXPECT_NSEQ(@"My very informative tooltip.", |
+ [[controller_ tooltipIcon] toolTip]); |
+} |
+ |
+TEST_F(AutofillNotificationControllerTest, CheckboxAndTooltip) { |
+ autofill::DialogNotification notification( |
+ autofill::DialogNotification::WALLET_USAGE_CONFIRMATION, |
+ ASCIIToUTF16("A notification title")); |
+ ASSERT_TRUE(notification.HasCheckbox()); |
+ notification.set_tooltip_text(ASCIIToUTF16("My very informative tooltip.")); |
+ InitControllerWithNotification(notification); |
+ |
+ EXPECT_TRUE([[controller_ textfield] isHidden]); |
+ EXPECT_FALSE([[controller_ checkbox] isHidden]); |
+ EXPECT_FALSE([[controller_ tooltipIcon] isHidden]); |
+ EXPECT_NSEQ(@"My very informative tooltip.", |
+ [[controller_ tooltipIcon] toolTip]); |
+} |