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

Unified Diff: chrome/browser/browsing_data_file_system_helper_unittest.cc

Issue 10805015: Move browsing_data_helper files into a separate directory. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix chrome_frame build Created 8 years, 5 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
« no previous file with comments | « chrome/browser/browsing_data_file_system_helper.cc ('k') | chrome/browser/browsing_data_helper.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/browsing_data_file_system_helper_unittest.cc
diff --git a/chrome/browser/browsing_data_file_system_helper_unittest.cc b/chrome/browser/browsing_data_file_system_helper_unittest.cc
deleted file mode 100644
index 3ffcb3b7a92b362bcbcb9784ab88c9d71e0ab7bb..0000000000000000000000000000000000000000
--- a/chrome/browser/browsing_data_file_system_helper_unittest.cc
+++ /dev/null
@@ -1,318 +0,0 @@
-// Copyright (c) 2012 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 "testing/gtest/include/gtest/gtest.h"
-
-#include "base/bind.h"
-#include "base/bind_helpers.h"
-#include "base/file_util.h"
-#include "base/platform_file.h"
-#include "base/message_loop.h"
-#include "base/utf_string_conversions.h"
-#include "chrome/browser/browsing_data_file_system_helper.h"
-#include "chrome/test/base/testing_profile.h"
-#include "content/public/test/test_browser_thread.h"
-#include "webkit/fileapi/file_system_context.h"
-#include "webkit/fileapi/file_system_types.h"
-#include "webkit/fileapi/file_system_usage_cache.h"
-#include "webkit/fileapi/sandbox_mount_point_provider.h"
-
-using content::BrowserContext;
-using content::BrowserThread;
-
-namespace {
-
-// Shorter names for fileapi::* constants.
-const fileapi::FileSystemType kTemporary = fileapi::kFileSystemTypeTemporary;
-const fileapi::FileSystemType kPersistent = fileapi::kFileSystemTypePersistent;
-
-// We'll use these three distinct origins for testing, both as strings and as
-// GURLs in appropriate contexts.
-const char kTestOrigin1[] = "http://host1:1/";
-const char kTestOrigin2[] = "http://host2:2/";
-const char kTestOrigin3[] = "http://host3:3/";
-
-// Extensions and Devtools should be ignored.
-const char kTestOriginExt[] = "chrome-extension://abcdefghijklmnopqrstuvwxyz/";
-const char kTestOriginDevTools[] = "chrome-devtools://abcdefghijklmnopqrstuvw/";
-
-const GURL kOrigin1(kTestOrigin1);
-const GURL kOrigin2(kTestOrigin2);
-const GURL kOrigin3(kTestOrigin3);
-const GURL kOriginExt(kTestOriginExt);
-const GURL kOriginDevTools(kTestOriginDevTools);
-
-// TODO(mkwst): Update this size once the discussion in http://crbug.com/86114
-// is concluded.
-const int kEmptyFileSystemSize = 0;
-
-typedef std::list<BrowsingDataFileSystemHelper::FileSystemInfo>
- FileSystemInfoList;
-typedef scoped_ptr<FileSystemInfoList> ScopedFileSystemInfoList;
-
-// The FileSystem APIs are all asynchronous; this testing class wraps up the
-// boilerplate code necessary to deal with waiting for responses. In a nutshell,
-// any async call whose response we want to test ought to be followed by a call
-// to BlockUntilNotified(), which will (shockingly!) block until Notify() is
-// called. For this to work, you'll need to ensure that each async call is
-// implemented as a class method that that calls Notify() at an appropriate
-// point.
-class BrowsingDataFileSystemHelperTest : public testing::Test {
- public:
- BrowsingDataFileSystemHelperTest()
- : ui_thread_(BrowserThread::UI, &message_loop_),
- db_thread_(BrowserThread::DB, &message_loop_),
- webkit_thread_(BrowserThread::WEBKIT_DEPRECATED, &message_loop_),
- file_thread_(BrowserThread::FILE, &message_loop_),
- file_user_blocking_thread_(
- BrowserThread::FILE_USER_BLOCKING, &message_loop_),
- io_thread_(BrowserThread::IO, &message_loop_) {
- profile_.reset(new TestingProfile());
- helper_ = BrowsingDataFileSystemHelper::Create(profile_.get());
- message_loop_.RunAllPending();
- canned_helper_ = new CannedBrowsingDataFileSystemHelper(profile_.get());
- }
- virtual ~BrowsingDataFileSystemHelperTest() {
- // Avoid memory leaks.
- profile_.reset();
- message_loop_.RunAllPending();
- }
-
- TestingProfile* GetProfile() {
- return profile_.get();
- }
-
- // Blocks on the current MessageLoop until Notify() is called.
- void BlockUntilNotified() {
- MessageLoop::current()->Run();
- }
-
- // Unblocks the current MessageLoop. Should be called in response to some sort
- // of async activity in a callback method.
- void Notify() {
- MessageLoop::current()->Quit();
- }
-
- // Callback that should be executed in response to
- // fileapi::SandboxMountPointProvider::ValidateFileSystemRoot
- void ValidateFileSystemCallback(base::PlatformFileError error) {
- validate_file_system_result_ = error;
- Notify();
- }
-
- // Calls fileapi::SandboxMountPointProvider::ValidateFileSystemRootAndGetURL
- // to verify the existence of a file system for a specified type and origin,
- // blocks until a response is available, then returns the result
- // synchronously to it's caller.
- bool FileSystemContainsOriginAndType(const GURL& origin,
- fileapi::FileSystemType type) {
- sandbox_->ValidateFileSystemRoot(
- origin, type, false,
- base::Bind(
- &BrowsingDataFileSystemHelperTest::ValidateFileSystemCallback,
- base::Unretained(this)));
- BlockUntilNotified();
- return validate_file_system_result_ == base::PLATFORM_FILE_OK;
- }
-
- // Callback that should be executed in response to StartFetching(), and stores
- // found file systems locally so that they are available via GetFileSystems().
- void CallbackStartFetching(
- const std::list<BrowsingDataFileSystemHelper::FileSystemInfo>&
- file_system_info_list) {
- file_system_info_list_.reset(
- new std::list<BrowsingDataFileSystemHelper::FileSystemInfo>(
- file_system_info_list));
- Notify();
- }
-
- // Calls StartFetching() on the test's BrowsingDataFileSystemHelper
- // object, then blocks until the callback is executed.
- void FetchFileSystems() {
- helper_->StartFetching(
- base::Bind(&BrowsingDataFileSystemHelperTest::CallbackStartFetching,
- base::Unretained(this)));
- BlockUntilNotified();
- }
-
- // Calls StartFetching() on the test's CannedBrowsingDataFileSystemHelper
- // object, then blocks until the callback is executed.
- void FetchCannedFileSystems() {
- canned_helper_->StartFetching(
- base::Bind(&BrowsingDataFileSystemHelperTest::CallbackStartFetching,
- base::Unretained(this)));
- BlockUntilNotified();
- }
-
- // Sets up kOrigin1 with a temporary file system, kOrigin2 with a persistent
- // file system, and kOrigin3 with both.
- virtual void PopulateTestFileSystemData() {
- sandbox_ = BrowserContext::GetFileSystemContext(profile_.get())->
- sandbox_provider();
-
- CreateDirectoryForOriginAndType(kOrigin1, kTemporary);
- CreateDirectoryForOriginAndType(kOrigin2, kPersistent);
- CreateDirectoryForOriginAndType(kOrigin3, kTemporary);
- CreateDirectoryForOriginAndType(kOrigin3, kPersistent);
-
- EXPECT_FALSE(FileSystemContainsOriginAndType(kOrigin1, kPersistent));
- EXPECT_TRUE(FileSystemContainsOriginAndType(kOrigin1, kTemporary));
- EXPECT_TRUE(FileSystemContainsOriginAndType(kOrigin2, kPersistent));
- EXPECT_FALSE(FileSystemContainsOriginAndType(kOrigin2, kTemporary));
- EXPECT_TRUE(FileSystemContainsOriginAndType(kOrigin3, kPersistent));
- EXPECT_TRUE(FileSystemContainsOriginAndType(kOrigin3, kTemporary));
- }
-
- // Uses the fileapi methods to create a filesystem of a given type for a
- // specified origin.
- void CreateDirectoryForOriginAndType(const GURL& origin,
- fileapi::FileSystemType type) {
- FilePath target = sandbox_->GetFileSystemRootPathOnFileThread(
- origin, type, FilePath(), true);
- EXPECT_TRUE(file_util::DirectoryExists(target));
- }
-
- // Returns a list of the FileSystemInfo objects gathered in the most recent
- // call to StartFetching().
- FileSystemInfoList* GetFileSystems() {
- return file_system_info_list_.get();
- }
-
-
- // Temporary storage to pass information back from callbacks.
- base::PlatformFileError validate_file_system_result_;
- ScopedFileSystemInfoList file_system_info_list_;
-
- scoped_refptr<BrowsingDataFileSystemHelper> helper_;
- scoped_refptr<CannedBrowsingDataFileSystemHelper> canned_helper_;
-
- private:
- // message_loop_, as well as all the threads associated with it must be
- // defined before profile_ to prevent explosions. The threads also must be
- // defined in the order they're listed here. Oh how I love C++.
- MessageLoopForUI message_loop_;
- content::TestBrowserThread ui_thread_;
- content::TestBrowserThread db_thread_;
- content::TestBrowserThread webkit_thread_;
- content::TestBrowserThread file_thread_;
- content::TestBrowserThread file_user_blocking_thread_;
- content::TestBrowserThread io_thread_;
- scoped_ptr<TestingProfile> profile_;
-
- // We don't own this pointer: don't delete it.
- fileapi::SandboxMountPointProvider* sandbox_;
-
- DISALLOW_COPY_AND_ASSIGN(BrowsingDataFileSystemHelperTest);
-};
-
-// Verifies that the BrowsingDataFileSystemHelper correctly finds the test file
-// system data, and that each file system returned contains the expected data.
-TEST_F(BrowsingDataFileSystemHelperTest, FetchData) {
- PopulateTestFileSystemData();
-
- FetchFileSystems();
-
- EXPECT_EQ(3UL, file_system_info_list_->size());
-
- // Order is arbitrary, verify all three origins.
- bool test_hosts_found[3] = {false, false, false};
- for (std::list<BrowsingDataFileSystemHelper::FileSystemInfo>::iterator info =
- file_system_info_list_->begin(); info != file_system_info_list_->end();
- ++info) {
- if (info->origin == kOrigin1) {
- EXPECT_FALSE(test_hosts_found[0]);
- test_hosts_found[0] = true;
- EXPECT_FALSE(info->has_persistent);
- EXPECT_TRUE(info->has_temporary);
- EXPECT_EQ(0, info->usage_persistent);
- EXPECT_EQ(kEmptyFileSystemSize, info->usage_temporary);
- } else if (info->origin == kOrigin2) {
- EXPECT_FALSE(test_hosts_found[1]);
- test_hosts_found[1] = true;
- EXPECT_TRUE(info->has_persistent);
- EXPECT_FALSE(info->has_temporary);
- EXPECT_EQ(kEmptyFileSystemSize, info->usage_persistent);
- EXPECT_EQ(0, info->usage_temporary);
- } else if (info->origin == kOrigin3) {
- EXPECT_FALSE(test_hosts_found[2]);
- test_hosts_found[2] = true;
- EXPECT_TRUE(info->has_persistent);
- EXPECT_TRUE(info->has_temporary);
- EXPECT_EQ(kEmptyFileSystemSize, info->usage_persistent);
- EXPECT_EQ(kEmptyFileSystemSize, info->usage_temporary);
- } else {
- ADD_FAILURE() << info->origin.spec() << " isn't an origin we added.";
- }
- }
- for (size_t i = 0; i < arraysize(test_hosts_found); i++) {
- EXPECT_TRUE(test_hosts_found[i]);
- }
-}
-
-// Verifies that the BrowsingDataFileSystemHelper correctly deletes file
-// systems via DeleteFileSystemOrigin().
-TEST_F(BrowsingDataFileSystemHelperTest, DeleteData) {
- PopulateTestFileSystemData();
-
- helper_->DeleteFileSystemOrigin(kOrigin1);
- helper_->DeleteFileSystemOrigin(kOrigin2);
-
- FetchFileSystems();
-
- EXPECT_EQ(1UL, file_system_info_list_->size());
- BrowsingDataFileSystemHelper::FileSystemInfo info =
- *(file_system_info_list_->begin());
- EXPECT_EQ(kOrigin3, info.origin);
- EXPECT_TRUE(info.has_persistent);
- EXPECT_TRUE(info.has_temporary);
- EXPECT_EQ(kEmptyFileSystemSize, info.usage_persistent);
- EXPECT_EQ(kEmptyFileSystemSize, info.usage_temporary);
-}
-
-// Verifies that the CannedBrowsingDataFileSystemHelper correctly reports
-// whether or not it currently contains file systems.
-TEST_F(BrowsingDataFileSystemHelperTest, Empty) {
- ASSERT_TRUE(canned_helper_->empty());
- canned_helper_->AddFileSystem(kOrigin1, kTemporary, 0);
- ASSERT_FALSE(canned_helper_->empty());
- canned_helper_->Reset();
- ASSERT_TRUE(canned_helper_->empty());
-}
-
-// Verifies that AddFileSystem correctly adds file systems, and that both
-// the type and usage metadata are reported as provided.
-TEST_F(BrowsingDataFileSystemHelperTest, CannedAddFileSystem) {
- canned_helper_->AddFileSystem(kOrigin1, kPersistent, 200);
- canned_helper_->AddFileSystem(kOrigin2, kTemporary, 100);
-
- FetchCannedFileSystems();
-
- EXPECT_EQ(2U, file_system_info_list_->size());
- std::list<BrowsingDataFileSystemHelper::FileSystemInfo>::iterator info =
- file_system_info_list_->begin();
- EXPECT_EQ(kOrigin1, info->origin);
- EXPECT_TRUE(info->has_persistent);
- EXPECT_FALSE(info->has_temporary);
- EXPECT_EQ(200, info->usage_persistent);
- EXPECT_EQ(0, info->usage_temporary);
-
- info++;
- EXPECT_EQ(kOrigin2, info->origin);
- EXPECT_FALSE(info->has_persistent);
- EXPECT_TRUE(info->has_temporary);
- EXPECT_EQ(0, info->usage_persistent);
- EXPECT_EQ(100, info->usage_temporary);
-}
-
-// Verifies that the CannedBrowsingDataFileSystemHelper correctly ignores
-// extension and devtools schemes.
-TEST_F(BrowsingDataFileSystemHelperTest, IgnoreExtensionsAndDevTools) {
- ASSERT_TRUE(canned_helper_->empty());
- canned_helper_->AddFileSystem(kOriginExt, kTemporary, 0);
- ASSERT_TRUE(canned_helper_->empty());
- canned_helper_->AddFileSystem(kOriginDevTools, kTemporary, 0);
- ASSERT_TRUE(canned_helper_->empty());
-}
-
-} // namespace
« no previous file with comments | « chrome/browser/browsing_data_file_system_helper.cc ('k') | chrome/browser/browsing_data_helper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698