Index: chrome/browser/ui/cocoa/extensions/media_galleries_dialog_cocoa_unittest.mm |
diff --git a/chrome/browser/ui/cocoa/extensions/media_galleries_dialog_cocoa_unittest.mm b/chrome/browser/ui/cocoa/extensions/media_galleries_dialog_cocoa_unittest.mm |
index a2a312a4405e6d805bfae060845ef29a17f4a46c..d9bc3ca7721df2d5fae8bedda39dcc8172f5d6bb 100644 |
--- a/chrome/browser/ui/cocoa/extensions/media_galleries_dialog_cocoa_unittest.mm |
+++ b/chrome/browser/ui/cocoa/extensions/media_galleries_dialog_cocoa_unittest.mm |
@@ -12,6 +12,8 @@ |
#include "testing/gtest/include/gtest/gtest.h" |
using ::testing::_; |
+using ::testing::AnyNumber; |
+using ::testing::Mock; |
using ::testing::NiceMock; |
using ::testing::Return; |
using ::testing::ReturnPointee; |
@@ -49,19 +51,38 @@ class MediaGalleriesDialogTest : public testing::Test { |
public: |
MediaGalleriesDialogTest() {} |
virtual ~MediaGalleriesDialogTest() {} |
+ |
virtual void SetUp() OVERRIDE { |
- dummy_extension_ = extensions::test_util::CreateExtensionWithID("dummy"); |
+ std::vector<base::string16> headers; |
+ headers.push_back(base::string16()); |
+ headers.push_back(base::ASCIIToUTF16("header2")); |
+ ON_CALL(controller_, GetSectionHeaders()). |
+ WillByDefault(Return(headers)); |
+ EXPECT_CALL(controller_, GetSectionEntries(_)). |
+ Times(AnyNumber()); |
} |
+ |
virtual void TearDown() OVERRIDE { |
- dummy_extension_ = NULL; |
+ Mock::VerifyAndClearExpectations(&controller_); |
+ dialog_.reset(); |
+ } |
+ |
+ NiceMock<MediaGalleriesDialogControllerMock>* controller() { |
+ return &controller_; |
} |
- const extensions::Extension& dummy_extension() const { |
- return *dummy_extension_; |
+ MediaGalleriesDialogCocoa* GetOrCreateDialog() { |
+ if (!dialog_.get()) { |
+ dialog_.reset(static_cast<MediaGalleriesDialogCocoa*>( |
+ MediaGalleriesDialog::Create(&controller_))); |
+ } |
+ return dialog_.get(); |
} |
private: |
- scoped_refptr<extensions::Extension> dummy_extension_; |
+ NiceMock<MediaGalleriesDialogControllerMock> controller_; |
+ |
+ scoped_ptr<MediaGalleriesDialogCocoa> dialog_; |
DISALLOW_COPY_AND_ASSIGN(MediaGalleriesDialogTest); |
}; |
@@ -69,70 +90,48 @@ class MediaGalleriesDialogTest : public testing::Test { |
// Tests that checkboxes are initialized according to the contents of |
// permissions(). |
TEST_F(MediaGalleriesDialogTest, InitializeCheckboxes) { |
- NiceMock<MediaGalleriesDialogControllerMock> controller(dummy_extension()); |
- |
- MediaGalleriesDialogController::GalleryPermissionsVector attached_permissions; |
+ MediaGalleriesDialogController::Entries attached_permissions; |
attached_permissions.push_back( |
- MediaGalleriesDialogController::GalleryPermission( |
- 1, MakePrefInfoForTesting(10), true)); |
+ MediaGalleriesDialogController::Entry(MakePrefInfoForTesting(1), true)); |
attached_permissions.push_back( |
- MediaGalleriesDialogController::GalleryPermission( |
- 2, MakePrefInfoForTesting(20), false)); |
- EXPECT_CALL(controller, AttachedPermissions()). |
+ MediaGalleriesDialogController::Entry(MakePrefInfoForTesting(2), false)); |
+ EXPECT_CALL(*controller(), GetSectionEntries(0)). |
WillRepeatedly(Return(attached_permissions)); |
- MediaGalleriesDialogController::GalleryPermissionsVector |
- unattached_permissions; |
- EXPECT_CALL(controller, UnattachedPermissions()). |
- WillRepeatedly(Return(unattached_permissions)); |
- |
// Initializing checkboxes should not cause them to be toggled. |
- EXPECT_CALL(controller, DidToggleGallery(_, _)). |
+ EXPECT_CALL(*controller(), DidToggleEntry(_, _)). |
Times(0); |
- scoped_ptr<MediaGalleriesDialogCocoa> dialog( |
- static_cast<MediaGalleriesDialogCocoa*>( |
- MediaGalleriesDialog::Create(&controller))); |
- EXPECT_EQ(2U, [[dialog->checkbox_container_ subviews] count]); |
+ EXPECT_EQ(2U, [[GetOrCreateDialog()->checkbox_container_ subviews] count]); |
NSButton* checkbox1 = |
- [[dialog->checkbox_container_ subviews] objectAtIndex:0]; |
+ [[GetOrCreateDialog()->checkbox_container_ subviews] objectAtIndex:0]; |
EXPECT_EQ([checkbox1 state], NSOnState); |
NSButton* checkbox2 = |
- [[dialog->checkbox_container_ subviews] objectAtIndex:1]; |
+ [[GetOrCreateDialog()->checkbox_container_ subviews] objectAtIndex:1]; |
EXPECT_EQ([checkbox2 state], NSOffState); |
} |
// Tests that toggling checkboxes updates the controller. |
TEST_F(MediaGalleriesDialogTest, ToggleCheckboxes) { |
- NiceMock<MediaGalleriesDialogControllerMock> controller(dummy_extension()); |
- |
- MediaGalleriesDialogController::GalleryPermissionsVector attached_permissions; |
+ MediaGalleriesDialogController::Entries attached_permissions; |
attached_permissions.push_back( |
- MediaGalleriesDialogController::GalleryPermission( |
- 1, MakePrefInfoForTesting(10), true)); |
- EXPECT_CALL(controller, AttachedPermissions()). |
+ MediaGalleriesDialogController::Entry(MakePrefInfoForTesting(1), true)); |
+ EXPECT_CALL(*controller(), GetSectionEntries(0)). |
WillRepeatedly(Return(attached_permissions)); |
- MediaGalleriesDialogController::GalleryPermissionsVector |
- unattached_permissions; |
- EXPECT_CALL(controller, UnattachedPermissions()). |
- WillRepeatedly(Return(unattached_permissions)); |
- |
- scoped_ptr<MediaGalleriesDialogCocoa> dialog( |
- static_cast<MediaGalleriesDialogCocoa*>( |
- MediaGalleriesDialog::Create(&controller))); |
- EXPECT_EQ(1U, [[dialog->checkbox_container_ subviews] count]); |
+ EXPECT_EQ(1U, [[GetOrCreateDialog()->checkbox_container_ subviews] count]); |
- NSButton* checkbox = [[dialog->checkbox_container_ subviews] objectAtIndex:0]; |
+ NSButton* checkbox = |
+ [[GetOrCreateDialog()->checkbox_container_ subviews] objectAtIndex:0]; |
EXPECT_EQ([checkbox state], NSOnState); |
- EXPECT_CALL(controller, DidToggleGallery(1, false)); |
+ EXPECT_CALL(*controller(), DidToggleEntry(1, false)); |
[checkbox performClick:nil]; |
EXPECT_EQ([checkbox state], NSOffState); |
- EXPECT_CALL(controller, DidToggleGallery(1, true)); |
+ EXPECT_CALL(*controller(), DidToggleEntry(1, true)); |
[checkbox performClick:nil]; |
EXPECT_EQ([checkbox state], NSOnState); |
} |
@@ -140,89 +139,71 @@ TEST_F(MediaGalleriesDialogTest, ToggleCheckboxes) { |
// Tests that UpdateGalleries will add a new checkbox, but only if it refers to |
// a gallery that the dialog hasn't seen before. |
TEST_F(MediaGalleriesDialogTest, UpdateAdds) { |
- NiceMock<MediaGalleriesDialogControllerMock> controller(dummy_extension()); |
- |
- MediaGalleriesDialogController::GalleryPermissionsVector attached_permissions; |
- EXPECT_CALL(controller, AttachedPermissions()). |
+ MediaGalleriesDialogController::Entries attached_permissions; |
+ EXPECT_CALL(*controller(), GetSectionEntries(0)). |
WillRepeatedly(ReturnPointee(&attached_permissions)); |
- MediaGalleriesDialogController::GalleryPermissionsVector |
- unattached_permissions; |
- EXPECT_CALL(controller, UnattachedPermissions()). |
- WillRepeatedly(Return(unattached_permissions)); |
- |
- scoped_ptr<MediaGalleriesDialogCocoa> dialog( |
- static_cast<MediaGalleriesDialogCocoa*>( |
- MediaGalleriesDialog::Create(&controller))); |
- |
- EXPECT_EQ(0U, [[dialog->checkbox_container_ subviews] count]); |
- CGFloat old_container_height = NSHeight([dialog->checkbox_container_ frame]); |
+ EXPECT_EQ(0U, [[GetOrCreateDialog()->checkbox_container_ subviews] count]); |
+ CGFloat old_container_height = |
+ NSHeight([GetOrCreateDialog()->checkbox_container_ frame]); |
attached_permissions.push_back( |
- MediaGalleriesDialogController::GalleryPermission( |
- 1, MakePrefInfoForTesting(10), true)); |
- dialog->UpdateGalleries(); |
- EXPECT_EQ(1U, [[dialog->checkbox_container_ subviews] count]); |
+ MediaGalleriesDialogController::Entry(MakePrefInfoForTesting(1), true)); |
+ GetOrCreateDialog()->UpdateGalleries(); |
+ EXPECT_EQ(1U, [[GetOrCreateDialog()->checkbox_container_ subviews] count]); |
// The checkbox container should be taller. |
- CGFloat new_container_height = NSHeight([dialog->checkbox_container_ frame]); |
+ CGFloat new_container_height = |
+ NSHeight([GetOrCreateDialog()->checkbox_container_ frame]); |
EXPECT_GT(new_container_height, old_container_height); |
old_container_height = new_container_height; |
attached_permissions.push_back( |
- MediaGalleriesDialogController::GalleryPermission( |
- 2, MakePrefInfoForTesting(20), true)); |
- dialog->UpdateGalleries(); |
- EXPECT_EQ(2U, [[dialog->checkbox_container_ subviews] count]); |
+ MediaGalleriesDialogController::Entry(MakePrefInfoForTesting(2), true)); |
+ GetOrCreateDialog()->UpdateGalleries(); |
+ EXPECT_EQ(2U, [[GetOrCreateDialog()->checkbox_container_ subviews] count]); |
// The checkbox container should be taller. |
- new_container_height = NSHeight([dialog->checkbox_container_ frame]); |
+ new_container_height = |
+ NSHeight([GetOrCreateDialog()->checkbox_container_ frame]); |
EXPECT_GT(new_container_height, old_container_height); |
old_container_height = new_container_height; |
- attached_permissions[1].allowed = false; |
- dialog->UpdateGalleries(); |
- EXPECT_EQ(2U, [[dialog->checkbox_container_ subviews] count]); |
+ attached_permissions[1].selected = false; |
+ GetOrCreateDialog()->UpdateGalleries(); |
+ EXPECT_EQ(2U, [[GetOrCreateDialog()->checkbox_container_ subviews] count]); |
// The checkbox container height should not have changed. |
- new_container_height = NSHeight([dialog->checkbox_container_ frame]); |
+ new_container_height = |
+ NSHeight([GetOrCreateDialog()->checkbox_container_ frame]); |
EXPECT_EQ(new_container_height, old_container_height); |
} |
TEST_F(MediaGalleriesDialogTest, ForgetDeletes) { |
- NiceMock<MediaGalleriesDialogControllerMock> controller(dummy_extension()); |
- |
- MediaGalleriesDialogController::GalleryPermissionsVector attached_permissions; |
- EXPECT_CALL(controller, AttachedPermissions()). |
+ MediaGalleriesDialogController::Entries attached_permissions; |
+ EXPECT_CALL(*controller(), GetSectionEntries(0)). |
WillRepeatedly(ReturnPointee(&attached_permissions)); |
- MediaGalleriesDialogController::GalleryPermissionsVector |
- unattached_permissions; |
- EXPECT_CALL(controller, UnattachedPermissions()). |
- WillRepeatedly(Return(unattached_permissions)); |
- |
- scoped_ptr<MediaGalleriesDialogCocoa> dialog( |
- static_cast<MediaGalleriesDialogCocoa*>( |
- MediaGalleriesDialog::Create(&controller))); |
+ GetOrCreateDialog(); |
// Add a couple of galleries. |
attached_permissions.push_back( |
- MediaGalleriesDialogController::GalleryPermission( |
- 1, MakePrefInfoForTesting(10), true)); |
- dialog->UpdateGalleries(); |
+ MediaGalleriesDialogController::Entry(MakePrefInfoForTesting(1), true)); |
+ GetOrCreateDialog()->UpdateGalleries(); |
attached_permissions.push_back( |
- MediaGalleriesDialogController::GalleryPermission( |
- 2, MakePrefInfoForTesting(20), true)); |
- dialog->UpdateGalleries(); |
- EXPECT_EQ(2U, [[dialog->checkbox_container_ subviews] count]); |
- CGFloat old_container_height = NSHeight([dialog->checkbox_container_ frame]); |
+ MediaGalleriesDialogController::Entry(MakePrefInfoForTesting(2), true)); |
+ GetOrCreateDialog()->UpdateGalleries(); |
+ EXPECT_EQ(2U, [[GetOrCreateDialog()->checkbox_container_ subviews] count]); |
+ CGFloat old_container_height = |
+ NSHeight([GetOrCreateDialog()->checkbox_container_ frame]); |
// Remove a gallery. |
attached_permissions.erase(attached_permissions.begin()); |
- dialog->UpdateGalleries(); |
- EXPECT_EQ(1U, [[dialog->checkbox_container_ subviews] count]); |
+ GetOrCreateDialog()->UpdateGalleries(); |
+ EXPECT_EQ(1U, [[GetOrCreateDialog()->checkbox_container_ subviews] count]); |
// The checkbox container should be shorter. |
- CGFloat new_container_height = NSHeight([dialog->checkbox_container_ frame]); |
+ CGFloat new_container_height = |
+ NSHeight([GetOrCreateDialog()->checkbox_container_ frame]); |
EXPECT_LT(new_container_height, old_container_height); |
} |