Chromium Code Reviews| Index: chrome/browser/ui/gtk/extensions/media_galleries_dialog_gtk_unittest.cc |
| diff --git a/chrome/browser/ui/gtk/extensions/media_galleries_dialog_gtk_unittest.cc b/chrome/browser/ui/gtk/extensions/media_galleries_dialog_gtk_unittest.cc |
| index 78822faef443f286e8850b09e1e75c60f42d7072..1c561e89ad1c64c9724c70890d186654179cbf59 100644 |
| --- a/chrome/browser/ui/gtk/extensions/media_galleries_dialog_gtk_unittest.cc |
| +++ b/chrome/browser/ui/gtk/extensions/media_galleries_dialog_gtk_unittest.cc |
| @@ -2,83 +2,91 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| -#include "chrome/browser/media_gallery/media_galleries_dialog_controller.h" |
| +#include "chrome/browser/media_gallery/media_galleries_dialog_controller_mock.h" |
| #include "chrome/browser/ui/gtk/extensions/media_galleries_dialog_gtk.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| +using ::testing::_; |
| +using ::testing::NiceMock; |
| +using ::testing::ReturnRef; |
| + |
| namespace chrome { |
| -class MediaGalleriesDialogTest : public testing::Test, |
| - public MediaGalleriesDialogController { |
| - public: |
| - MediaGalleriesDialogTest() : toggles_(0) {} |
| - virtual ~MediaGalleriesDialogTest() {} |
| - |
| - virtual void DialogFinished(bool accepted) OVERRIDE {} |
| - virtual void GalleryToggled(const MediaGalleryPrefInfo* pref_info, |
| - bool enabled) OVERRIDE { |
| - toggles_++; |
| - MediaGalleriesDialogController::GalleryToggled(pref_info, enabled); |
| - } |
| - |
| - protected: |
| - // Counter that tracks the number of times a checkbox has been toggled. |
| - size_t toggles_; |
| +class MediaGalleriesDialogTest : public testing::Test { |
| }; |
| // Tests that checkboxes are initialized according to the contents of |
| -// |known_galleries|. |
| +// permissions(). |
| TEST_F(MediaGalleriesDialogTest, InitializeCheckboxes) { |
| + NiceMock<MediaGalleriesDialogControllerMock> controller; |
| + |
| + MediaGalleriesDialogController::KnownGalleryPermissions permissions; |
| MediaGalleryPrefInfo gallery1; |
| gallery1.pref_id = 1; |
| - known_galleries_[1] = GalleryPermission(gallery1, true); |
| + permissions[1] = |
| + MediaGalleriesDialogController::GalleryPermission(gallery1, true); |
| MediaGalleryPrefInfo gallery2; |
| gallery2.pref_id = 2; |
| - known_galleries_[2] = GalleryPermission(gallery2, false); |
| + permissions[2] = |
| + MediaGalleriesDialogController::GalleryPermission(gallery2, false); |
| + EXPECT_CALL(controller, permissions()). |
| + WillRepeatedly(ReturnRef(permissions)); |
| + |
| + // Initializing checkboxes should not cause them to be toggled. |
| + EXPECT_CALL(controller, DidToggleGallery(_, _)). |
| + Times(0); |
| scoped_ptr<MediaGalleriesDialogGtk> |
| - dialog_(new MediaGalleriesDialogGtk(this)); |
| + dialog_(new MediaGalleriesDialogGtk(&controller)); |
|
Evan Stade
2012/08/15 23:01:00
it strikes me that this doesn't need to be a scope
sail
2012/08/15 23:07:31
Done.
|
| EXPECT_EQ(2U, dialog_->checkbox_map_.size()); |
| - GtkWidget* checkbox1 = dialog_->checkbox_map_[&known_galleries_[1].pref_info]; |
| + GtkWidget* checkbox1 = dialog_->checkbox_map_[&permissions[1].pref_info]; |
| ASSERT_TRUE(GTK_IS_TOGGLE_BUTTON(checkbox1)); |
| EXPECT_TRUE(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(checkbox1))); |
| - GtkWidget* checkbox2 = dialog_->checkbox_map_[&known_galleries_[2].pref_info]; |
| + GtkWidget* checkbox2 = dialog_->checkbox_map_[&permissions[2].pref_info]; |
| ASSERT_TRUE(GTK_IS_TOGGLE_BUTTON(checkbox2)); |
| EXPECT_FALSE(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(checkbox2))); |
| - |
| - // Initializing checkboxes should not cause them to be toggled. |
| - EXPECT_EQ(0U, toggles_); |
| } |
| // Tests that toggling checkboxes updates the controller. |
| TEST_F(MediaGalleriesDialogTest, ToggleCheckboxes) { |
| + NiceMock<MediaGalleriesDialogControllerMock> controller; |
| + |
| + MediaGalleriesDialogController::KnownGalleryPermissions permissions; |
| MediaGalleryPrefInfo gallery1; |
| gallery1.pref_id = 1; |
| - known_galleries_[1] = GalleryPermission(gallery1, true); |
| + permissions[1] = |
| + MediaGalleriesDialogController::GalleryPermission(gallery1, true); |
| + EXPECT_CALL(controller, permissions()). |
| + WillRepeatedly(ReturnRef(permissions)); |
| scoped_ptr<MediaGalleriesDialogGtk> |
| - dialog_(new MediaGalleriesDialogGtk(this)); |
| + dialog_(new MediaGalleriesDialogGtk(&controller)); |
| EXPECT_EQ(1U, dialog_->checkbox_map_.size()); |
| GtkWidget* checkbox = |
| - dialog_->checkbox_map_[&known_galleries_[1].pref_info]; |
| + dialog_->checkbox_map_[&permissions[1].pref_info]; |
| ASSERT_TRUE(GTK_IS_TOGGLE_BUTTON(checkbox)); |
| EXPECT_TRUE(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(checkbox))); |
| + EXPECT_CALL(controller, DidToggleGallery(_, false)); |
| gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbox), FALSE); |
| - EXPECT_FALSE(known_galleries_[1].allowed); |
| - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbox), TRUE); |
| - EXPECT_TRUE(known_galleries_[1].allowed); |
| - EXPECT_EQ(2U, toggles_); |
| + EXPECT_CALL(controller, DidToggleGallery(_, true)); |
| + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbox), TRUE); |
| } |
| // Tests that UpdateGallery 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; |
| + |
| + MediaGalleriesDialogController::KnownGalleryPermissions permissions; |
| + EXPECT_CALL(controller, permissions()). |
| + WillRepeatedly(ReturnRef(permissions)); |
| + |
| scoped_ptr<MediaGalleriesDialogGtk> |
| - dialog_(new MediaGalleriesDialogGtk(this)); |
| + dialog_(new MediaGalleriesDialogGtk(&controller)); |
| EXPECT_TRUE(dialog_->checkbox_map_.empty()); |