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 be255c8f7a45a5489da22b3b218f0e5e437fd9cb..5d017bce29e0575c0c29e2a0b5f59e3ad9d6f3f6 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,96 +2,101 @@ |
// 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 DidToggleGallery(const MediaGalleryPrefInfo* pref_info, |
- bool enabled) OVERRIDE { |
- toggles_++; |
- MediaGalleriesDialogController::DidToggleGallery(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)); |
- EXPECT_EQ(2U, dialog_->checkbox_map_.size()); |
+ MediaGalleriesDialogGtk dialog(&controller); |
+ 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)); |
- EXPECT_EQ(1U, dialog_->checkbox_map_.size()); |
+ MediaGalleriesDialogGtk dialog(&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) { |
- scoped_ptr<MediaGalleriesDialogGtk> |
- dialog_(new MediaGalleriesDialogGtk(this)); |
+ NiceMock<MediaGalleriesDialogControllerMock> controller; |
+ |
+ MediaGalleriesDialogController::KnownGalleryPermissions permissions; |
+ EXPECT_CALL(controller, permissions()). |
+ WillRepeatedly(ReturnRef(permissions)); |
+ |
+ MediaGalleriesDialogGtk dialog(&controller); |
- EXPECT_TRUE(dialog_->checkbox_map_.empty()); |
+ EXPECT_TRUE(dialog.checkbox_map_.empty()); |
MediaGalleryPrefInfo gallery1; |
- dialog_->UpdateGallery(&gallery1, true); |
- EXPECT_EQ(1U, dialog_->checkbox_map_.size()); |
+ dialog.UpdateGallery(&gallery1, true); |
+ EXPECT_EQ(1U, dialog.checkbox_map_.size()); |
MediaGalleryPrefInfo gallery2; |
- dialog_->UpdateGallery(&gallery2, true); |
- EXPECT_EQ(2U, dialog_->checkbox_map_.size()); |
+ dialog.UpdateGallery(&gallery2, true); |
+ EXPECT_EQ(2U, dialog.checkbox_map_.size()); |
- dialog_->UpdateGallery(&gallery2, false); |
- EXPECT_EQ(2U, dialog_->checkbox_map_.size()); |
+ dialog.UpdateGallery(&gallery2, false); |
+ EXPECT_EQ(2U, dialog.checkbox_map_.size()); |
} |
} // namespace chrome |