Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1156)

Unified Diff: chrome/browser/media_galleries/media_galleries_dialog_controller_unittest.cc

Issue 310383004: Make a controller interface for media galleries dialogs. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/media_galleries/media_galleries_dialog_controller_unittest.cc
diff --git a/chrome/browser/media_galleries/media_galleries_dialog_controller_unittest.cc b/chrome/browser/media_galleries/media_galleries_dialog_controller_unittest.cc
deleted file mode 100644
index a643afae33a2652a74a1d203c6a4a171372f5213..0000000000000000000000000000000000000000
--- a/chrome/browser/media_galleries/media_galleries_dialog_controller_unittest.cc
+++ /dev/null
@@ -1,322 +0,0 @@
-// 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.
-
-#include "base/bind.h"
-#include "base/command_line.h"
-#include "base/files/file_path.h"
-#include "base/run_loop.h"
-#include "base/strings/string16.h"
-#include "base/strings/string_util.h"
-#include "base/strings/utf_string_conversions.h"
-#include "chrome/browser/extensions/test_extension_system.h"
-#include "chrome/browser/media_galleries/media_galleries_dialog_controller.h"
-#include "chrome/browser/media_galleries/media_galleries_preferences.h"
-#include "chrome/browser/media_galleries/media_galleries_test_util.h"
-#include "chrome/test/base/testing_profile.h"
-#include "components/storage_monitor/storage_info.h"
-#include "components/storage_monitor/test_storage_monitor.h"
-#include "content/public/test/test_browser_thread_bundle.h"
-#include "extensions/common/permissions/media_galleries_permission.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-#if defined(OS_CHROMEOS)
-#include "chrome/browser/chromeos/login/users/user_manager.h"
-#include "chrome/browser/chromeos/settings/cros_settings.h"
-#include "chrome/browser/chromeos/settings/device_settings_service.h"
-#endif
-
-using storage_monitor::StorageInfo;
-using storage_monitor::TestStorageMonitor;
-
-namespace {
-
-std::string GalleryName(const MediaGalleryPrefInfo& gallery) {
- base::string16 name = gallery.GetGalleryDisplayName();
- return base::UTF16ToASCII(name);
-}
-
-class MockMediaGalleriesDialog
- : public MediaGalleriesDialog {
- public:
- typedef base::Callback<void(int update_count)> DialogDestroyedCallback;
-
- explicit MockMediaGalleriesDialog(const DialogDestroyedCallback& callback)
- : update_count_(0),
- dialog_destroyed_callback_(callback) {
- }
-
- virtual ~MockMediaGalleriesDialog() {
- dialog_destroyed_callback_.Run(update_count_);
- }
-
- // MockMediaGalleriesDialog implementation.
- virtual void UpdateGalleries() OVERRIDE {
- update_count_++;
- }
-
- // Number of times UpdateResults has been called.
- int update_count() {
- return update_count_;
- }
-
- private:
- int update_count_;
-
- DialogDestroyedCallback dialog_destroyed_callback_;
-
- DISALLOW_COPY_AND_ASSIGN(MockMediaGalleriesDialog);
-};
-
-} // namespace
-
-class MediaGalleriesDialogControllerTest : public ::testing::Test {
- public:
- MediaGalleriesDialogControllerTest()
- : dialog_(NULL),
- dialog_update_count_at_destruction_(0),
- controller_(NULL),
- profile_(new TestingProfile()),
- weak_factory_(this) {
- }
-
- virtual ~MediaGalleriesDialogControllerTest() {
- EXPECT_FALSE(controller_);
- EXPECT_FALSE(dialog_);
- }
-
- virtual void SetUp() OVERRIDE {
- ASSERT_TRUE(TestStorageMonitor::CreateAndInstall());
-
- extensions::TestExtensionSystem* extension_system(
- static_cast<extensions::TestExtensionSystem*>(
- extensions::ExtensionSystem::Get(profile_.get())));
- extension_system->CreateExtensionService(
- CommandLine::ForCurrentProcess(), base::FilePath(), false);
-
- gallery_prefs_.reset(new MediaGalleriesPreferences(profile_.get()));
- base::RunLoop loop;
- gallery_prefs_->EnsureInitialized(loop.QuitClosure());
- loop.Run();
-
- std::vector<std::string> read_permissions;
- read_permissions.push_back(
- extensions::MediaGalleriesPermission::kReadPermission);
- extension_ = AddMediaGalleriesApp("read", read_permissions, profile_.get());
- }
-
- virtual void TearDown() OVERRIDE {
- TestStorageMonitor::Destroy();
- }
-
- void StartDialog() {
- ASSERT_FALSE(controller_);
- controller_ = new MediaGalleriesDialogController(
- *extension_.get(),
- gallery_prefs_.get(),
- base::Bind(&MediaGalleriesDialogControllerTest::CreateMockDialog,
- base::Unretained(this)),
- base::Bind(
- &MediaGalleriesDialogControllerTest::OnControllerDone,
- base::Unretained(this)));
- }
-
- MediaGalleriesDialogController* controller() {
- return controller_;
- }
-
- MockMediaGalleriesDialog* dialog() {
- return dialog_;
- }
-
- int dialog_update_count_at_destruction() {
- EXPECT_FALSE(dialog_);
- return dialog_update_count_at_destruction_;
- }
-
- extensions::Extension* extension() {
- return extension_.get();
- }
-
- MediaGalleriesPreferences* gallery_prefs() {
- return gallery_prefs_.get();
- }
-
- GalleryDialogId GetDialogIdFromPrefId(MediaGalleryPrefId pref_id);
-
- void TestForgottenType(MediaGalleryPrefInfo::Type type);
-
- protected:
- EnsureMediaDirectoriesExists mock_gallery_locations_;
-
- private:
- MediaGalleriesDialog* CreateMockDialog(
- MediaGalleriesDialogController* controller) {
- EXPECT_FALSE(dialog_);
- dialog_update_count_at_destruction_ = 0;
- dialog_ = new MockMediaGalleriesDialog(base::Bind(
- &MediaGalleriesDialogControllerTest::OnDialogDestroyed,
- weak_factory_.GetWeakPtr()));
- return dialog_;
- }
-
- void OnDialogDestroyed(int update_count) {
- EXPECT_TRUE(dialog_);
- dialog_update_count_at_destruction_ = update_count;
- dialog_ = NULL;
- }
-
- void OnControllerDone() {
- controller_ = NULL;
- }
-
- // Needed for extension service & friends to work.
- content::TestBrowserThreadBundle thread_bundle_;
-
- // The dialog is owned by the controller, but this pointer should only be
- // valid while the dialog is live within the controller.
- MockMediaGalleriesDialog* dialog_;
- int dialog_update_count_at_destruction_;
-
- // The controller owns itself.
- MediaGalleriesDialogController* controller_;
-
- scoped_refptr<extensions::Extension> extension_;
-
-#if defined OS_CHROMEOS
- chromeos::ScopedTestDeviceSettingsService test_device_settings_service_;
- chromeos::ScopedTestCrosSettings test_cros_settings_;
- chromeos::ScopedTestUserManager test_user_manager_;
-#endif
-
- TestStorageMonitor monitor_;
- scoped_ptr<TestingProfile> profile_;
- scoped_ptr<MediaGalleriesPreferences> gallery_prefs_;
-
- base::WeakPtrFactory<MediaGalleriesDialogControllerTest>
- weak_factory_;
-
- DISALLOW_COPY_AND_ASSIGN(MediaGalleriesDialogControllerTest);
-};
-
-GalleryDialogId
-MediaGalleriesDialogControllerTest::GetDialogIdFromPrefId(
- MediaGalleryPrefId pref_id) {
- return controller_->GetDialogId(pref_id);
-}
-
-void MediaGalleriesDialogControllerTest::TestForgottenType(
- MediaGalleryPrefInfo::Type type) {
- EXPECT_EQ(0U, gallery_prefs()->GalleriesForExtension(*extension()).size());
-
- MediaGalleryPrefId forgotten1 = gallery_prefs()->AddGalleryByPath(
- MakeMediaGalleriesTestingPath("forgotten1"), type);
- MediaGalleryPrefId forgotten2 = gallery_prefs()->AddGalleryByPath(
- MakeMediaGalleriesTestingPath("forgotten2"), type);
- // Show dialog and accept to verify 2 entries
- StartDialog();
- EXPECT_EQ(mock_gallery_locations_.num_galleries() + 2U,
- controller()->AttachedPermissions().size());
- EXPECT_EQ(0U, controller()->UnattachedPermissions().size());
- controller()->DidToggleGallery(GetDialogIdFromPrefId(forgotten1), true);
- controller()->DidToggleGallery(GetDialogIdFromPrefId(forgotten2), true);
- controller()->DialogFinished(true);
- EXPECT_EQ(2U, gallery_prefs()->GalleriesForExtension(*extension()).size());
-
- // Forget one and cancel to see that it's still there.
- StartDialog();
- controller()->DidForgetGallery(GetDialogIdFromPrefId(forgotten1));
- EXPECT_EQ(mock_gallery_locations_.num_galleries() + 1U,
- controller()->AttachedPermissions().size());
- controller()->DialogFinished(false);
- EXPECT_EQ(2U, gallery_prefs()->GalleriesForExtension(*extension()).size());
-
- // Forget one and confirm to see that it's gone.
- StartDialog();
- controller()->DidForgetGallery(GetDialogIdFromPrefId(forgotten1));
- EXPECT_EQ(mock_gallery_locations_.num_galleries() + 1U,
- controller()->AttachedPermissions().size());
- controller()->DialogFinished(true);
- EXPECT_EQ(1U, gallery_prefs()->GalleriesForExtension(*extension()).size());
-
- // Add a new one and forget it & see that it's gone.
- MediaGalleryPrefId forgotten3 = gallery_prefs()->AddGalleryByPath(
- MakeMediaGalleriesTestingPath("forgotten3"), type);
- StartDialog();
- EXPECT_EQ(mock_gallery_locations_.num_galleries() + 2U,
- controller()->AttachedPermissions().size());
- EXPECT_EQ(0U, controller()->UnattachedPermissions().size());
- controller()->DidToggleGallery(GetDialogIdFromPrefId(forgotten3), true);
- controller()->DidForgetGallery(GetDialogIdFromPrefId(forgotten3));
- EXPECT_EQ(mock_gallery_locations_.num_galleries() + 1U,
- controller()->AttachedPermissions().size());
- controller()->DialogFinished(true);
- EXPECT_EQ(1U, gallery_prefs()->GalleriesForExtension(*extension()).size());
-}
-
-TEST_F(MediaGalleriesDialogControllerTest, TestForgottenUserAdded) {
- TestForgottenType(MediaGalleryPrefInfo::kUserAdded);
-}
-
-TEST_F(MediaGalleriesDialogControllerTest, TestForgottenAutoDetected) {
- TestForgottenType(MediaGalleryPrefInfo::kAutoDetected);
-}
-
-TEST_F(MediaGalleriesDialogControllerTest, TestForgottenScanResult) {
- TestForgottenType(MediaGalleryPrefInfo::kScanResult);
-}
-
-TEST_F(MediaGalleriesDialogControllerTest, TestNameGeneration) {
- MediaGalleryPrefInfo gallery;
- gallery.pref_id = 1;
- gallery.device_id = StorageInfo::MakeDeviceId(
- StorageInfo::FIXED_MASS_STORAGE, "/path/to/gallery");
- gallery.type = MediaGalleryPrefInfo::kAutoDetected;
- std::string galleryName("/path/to/gallery");
-#if defined(OS_CHROMEOS)
- galleryName = "gallery";
-#endif
- EXPECT_EQ(galleryName, GalleryName(gallery));
-
- gallery.display_name = base::ASCIIToUTF16("override");
- EXPECT_EQ("override", GalleryName(gallery));
-
- gallery.display_name = base::string16();
- gallery.volume_label = base::ASCIIToUTF16("label");
- EXPECT_EQ(galleryName, GalleryName(gallery));
-
- gallery.path = base::FilePath(FILE_PATH_LITERAL("sub/gallery2"));
- galleryName = "/path/to/gallery/sub/gallery2";
-#if defined(OS_CHROMEOS)
- galleryName = "gallery2";
-#endif
-#if defined(OS_WIN)
- galleryName = base::FilePath(FILE_PATH_LITERAL("/path/to/gallery"))
- .Append(gallery.path).MaybeAsASCII();
-#endif
- EXPECT_EQ(galleryName, GalleryName(gallery));
-
- gallery.path = base::FilePath();
- gallery.device_id = StorageInfo::MakeDeviceId(
- StorageInfo::REMOVABLE_MASS_STORAGE_WITH_DCIM,
- "/path/to/dcim");
- gallery.display_name = base::ASCIIToUTF16("override");
- EXPECT_EQ("override", GalleryName(gallery));
-
- gallery.volume_label = base::ASCIIToUTF16("volume");
- gallery.vendor_name = base::ASCIIToUTF16("vendor");
- gallery.model_name = base::ASCIIToUTF16("model");
- EXPECT_EQ("override", GalleryName(gallery));
-
- gallery.display_name = base::string16();
- EXPECT_EQ("volume", GalleryName(gallery));
-
- gallery.volume_label = base::string16();
- EXPECT_EQ("vendor, model", GalleryName(gallery));
-
- gallery.total_size_in_bytes = 1000000;
- EXPECT_EQ("977 KB vendor, model", GalleryName(gallery));
-
- gallery.path = base::FilePath(FILE_PATH_LITERAL("sub/path"));
- EXPECT_EQ("path - 977 KB vendor, model", GalleryName(gallery));
-}

Powered by Google App Engine
This is Rietveld 408576698