| // Copyright 2013 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #import "chrome/browser/ui/cocoa/autofill/autofill_notification_container.h" |
| |
| #include "base/mac/scoped_nsobject.h" |
| #include "base/strings/utf_string_conversions.h" |
| #include "chrome/browser/ui/autofill/autofill_dialog_types.h" |
| #include "chrome/browser/ui/autofill/mock_autofill_dialog_view_delegate.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| #import "ui/base/test/ui_cocoa_test_helper.h" |
| |
| namespace { |
| |
| class AutofillNotificationContainerTest : public ui::CocoaTest { |
| public: |
| virtual void SetUp() { |
| CocoaTest::SetUp(); |
| container_.reset([[AutofillNotificationContainer alloc] initWithDelegate: |
| &delegate_]); |
| [[test_window() contentView] addSubview:[container_ view]]; |
| } |
| |
| protected: |
| base::scoped_nsobject<AutofillNotificationContainer> container_; |
| testing::NiceMock<autofill::MockAutofillDialogViewDelegate> delegate_; |
| }; |
| |
| } // namespace |
| |
| TEST_VIEW(AutofillNotificationContainerTest, [container_ view]) |
| |
| TEST_F(AutofillNotificationContainerTest, Subviews) { |
| // No subviews if there are no notifications. |
| EXPECT_EQ(0U, [[[container_ view] subviews] count]); |
| |
| // Single notification adds one subview. |
| std::vector<autofill::DialogNotification> notifications; |
| notifications.push_back( |
| autofill::DialogNotification( |
| autofill::DialogNotification::REQUIRED_ACTION, |
| ASCIIToUTF16("test"))); |
| ASSERT_FALSE(notifications[0].HasArrow()); |
| [container_ setNotifications:notifications]; |
| |
| EXPECT_EQ(1U, [[[container_ view] subviews] count]); |
| |
| // 2 notifications, one with arrow - 2 views. |
| notifications.push_back( |
| autofill::DialogNotification( |
| autofill::DialogNotification::REQUIRED_ACTION, |
| ASCIIToUTF16("test"))); |
| ASSERT_FALSE(notifications[1].HasArrow()); |
| [container_ setNotifications:notifications]; |
| |
| EXPECT_EQ(2U, [[[container_ view] subviews] count]); |
| |
| // Just to exercise code path. |
| [container_ performLayout]; |
| } |