diff options
author | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-21 23:55:19 +0000 |
---|---|---|
committer | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-21 23:55:19 +0000 |
commit | 4c136c6a49b15a2e5824682d858a21d8becb4259 (patch) | |
tree | ab2d0907cc59d6a4ee06facc11759685ea372fd2 /chrome/browser/extensions/extension_file_browser_private_apitest.cc | |
parent | 5e67ec8ab14c4ba8d9ee426f4be90d6b53262c2f (diff) | |
download | chromium_src-4c136c6a49b15a2e5824682d858a21d8becb4259.zip chromium_src-4c136c6a49b15a2e5824682d858a21d8becb4259.tar.gz chromium_src-4c136c6a49b15a2e5824682d858a21d8becb4259.tar.bz2 |
Revert "Move a bunch of ChromeOS APIs out of chrome/browser/extensions."
BUG=
TEST=
Review URL: http://codereview.chromium.org/8619007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@111042 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/extension_file_browser_private_apitest.cc')
-rw-r--r-- | chrome/browser/extensions/extension_file_browser_private_apitest.cc | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/chrome/browser/extensions/extension_file_browser_private_apitest.cc b/chrome/browser/extensions/extension_file_browser_private_apitest.cc new file mode 100644 index 0000000..51be874 --- /dev/null +++ b/chrome/browser/extensions/extension_file_browser_private_apitest.cc @@ -0,0 +1,139 @@ +// Copyright (c) 2011 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 <stdio.h> + +#include "base/stl_util.h" +#include "chrome/browser/chromeos/disks/mock_disk_mount_manager.h" +#include "chrome/browser/extensions/extension_apitest.h" +#include "chrome/browser/profiles/profile.h" +#include "chrome/browser/ui/browser.h" +#include "webkit/fileapi/file_system_context.h" +#include "webkit/fileapi/file_system_mount_point_provider.h" +#include "webkit/fileapi/file_system_path_manager.h" + +using ::testing::_; +using ::testing::ReturnRef; +using ::testing::StrEq; + +class ExtensionFileBrowserPrivateApiTest : public ExtensionApiTest { + public: + ExtensionFileBrowserPrivateApiTest() + : disk_mount_manager_mock_(NULL), + test_mount_point_("/tmp") { + CreateVolumeMap(); + } + + virtual ~ExtensionFileBrowserPrivateApiTest() { + DCHECK(!disk_mount_manager_mock_); + STLDeleteValues(&volumes_); + } + + // ExtensionApiTest override + virtual void SetUpInProcessBrowserTestFixture() OVERRIDE { + ExtensionApiTest::SetUpInProcessBrowserTestFixture(); + + disk_mount_manager_mock_ = new chromeos::disks::MockDiskMountManager; + chromeos::disks::DiskMountManager::InitializeForTesting( + disk_mount_manager_mock_); + disk_mount_manager_mock_->SetupDefaultReplies(); + } + + // ExtensionApiTest override + virtual void TearDownInProcessBrowserTestFixture() OVERRIDE { + chromeos::disks::DiskMountManager::Shutdown(); + disk_mount_manager_mock_ = NULL; + + ExtensionApiTest::TearDownInProcessBrowserTestFixture(); + } + + void AddTmpMountPoint() { + fileapi::FileSystemPathManager* path_manager = + browser()->profile()->GetFileSystemContext()->path_manager(); + fileapi::ExternalFileSystemMountPointProvider* provider = + path_manager->external_provider(); + provider->AddMountPoint(test_mount_point_); + } + + private: + void CreateVolumeMap() { + // These have to be sync'd with values in filebrowser_mount extension. + volumes_.insert( + std::pair<std::string, chromeos::disks::DiskMountManager::Disk*>( + "device_path1", + new chromeos::disks::DiskMountManager::Disk( + "device_path1", + "/media/removable/mount_path1", + "system_path1", + "file_path1", + "device_label1", + "drive_label1", + "system_path_prefix1", + chromeos::FLASH, + 1073741824, + false, + false, + false, + false, + false))); + volumes_.insert( + std::pair<std::string, chromeos::disks::DiskMountManager::Disk*>( + "device_path2", + new chromeos::disks::DiskMountManager::Disk( + "device_path2", + "/media/removable/mount_path2", + "system_path2", + "file_path2", + "device_label2", + "drive_label2", + "system_path_prefix2", + chromeos::HDD, + 47723, + true, + true, + true, + true, + false))); + volumes_.insert( + std::pair<std::string, chromeos::disks::DiskMountManager::Disk*>( + "device_path3", + new chromeos::disks::DiskMountManager::Disk( + "device_path3", + "/media/removable/mount_path3", + "system_path3", + "file_path3", + "device_label3", + "drive_label3", + "system_path_prefix3", + chromeos::OPTICAL, + 0, + true, + false, + false, + true, + false))); + } + + protected: + chromeos::disks::MockDiskMountManager* disk_mount_manager_mock_; + chromeos::disks::DiskMountManager::DiskMap volumes_; + + private: + FilePath test_mount_point_; +}; + +IN_PROC_BROWSER_TEST_F(ExtensionFileBrowserPrivateApiTest, FileBrowserMount) { + // We will call fileBrowserPrivate.unmountVolume once. To test that method, we + // check that UnmountPath is really called with the same value. + AddTmpMountPoint(); + EXPECT_CALL(*disk_mount_manager_mock_, UnmountPath(_)) + .Times(0); + EXPECT_CALL(*disk_mount_manager_mock_, + UnmountPath(StrEq("/tmp/test_file.zip"))).Times(1); + + EXPECT_CALL(*disk_mount_manager_mock_, disks()) + .WillRepeatedly(ReturnRef(volumes_)); + + ASSERT_TRUE(RunComponentExtensionTest("filebrowser_mount")) << message_; +} |