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

Unified Diff: webkit/fileapi/syncable/syncable_file_system_unittest.cc

Issue 15806012: Move webkit/fileapi/syncable/* code to webkit/browser/fileapi (final!) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 7 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: webkit/fileapi/syncable/syncable_file_system_unittest.cc
diff --git a/webkit/fileapi/syncable/syncable_file_system_unittest.cc b/webkit/fileapi/syncable/syncable_file_system_unittest.cc
deleted file mode 100644
index 35cb29ff717f4cb13f110f95b6d8719403d6a5d6..0000000000000000000000000000000000000000
--- a/webkit/fileapi/syncable/syncable_file_system_unittest.cc
+++ /dev/null
@@ -1,284 +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 "base/stl_util.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "webkit/browser/fileapi/file_system_context.h"
-#include "webkit/browser/fileapi/file_system_file_util.h"
-#include "webkit/browser/fileapi/file_system_operation_context.h"
-#include "webkit/browser/fileapi/file_system_task_runners.h"
-#include "webkit/browser/fileapi/isolated_context.h"
-#include "webkit/browser/fileapi/local_file_system_operation.h"
-#include "webkit/browser/fileapi/sandbox_file_system_test_helper.h"
-#include "webkit/common/fileapi/file_system_types.h"
-#include "webkit/fileapi/syncable/canned_syncable_file_system.h"
-#include "webkit/fileapi/syncable/local_file_change_tracker.h"
-#include "webkit/fileapi/syncable/local_file_sync_context.h"
-#include "webkit/fileapi/syncable/syncable_file_system_util.h"
-#include "webkit/quota/quota_manager.h"
-#include "webkit/quota/quota_types.h"
-
-using base::PlatformFileError;
-using fileapi::FileSystemContext;
-using fileapi::FileSystemOperationContext;
-using fileapi::FileSystemURL;
-using fileapi::FileSystemURLSet;
-using fileapi::SandboxFileSystemTestHelper;
-using quota::QuotaManager;
-using quota::QuotaStatusCode;
-
-namespace sync_file_system {
-
-class SyncableFileSystemTest : public testing::Test {
- public:
- SyncableFileSystemTest()
- : file_system_(GURL("http://example.com/"), "test",
- base::MessageLoopProxy::current(),
- base::MessageLoopProxy::current()),
- weak_factory_(this) {}
-
- virtual void SetUp() {
- file_system_.SetUp();
-
- sync_context_ = new LocalFileSyncContext(base::MessageLoopProxy::current(),
- base::MessageLoopProxy::current());
- ASSERT_EQ(sync_file_system::SYNC_STATUS_OK,
- file_system_.MaybeInitializeFileSystemContext(sync_context_));
- }
-
- virtual void TearDown() {
- if (sync_context_)
- sync_context_->ShutdownOnUIThread();
- sync_context_ = NULL;
-
- file_system_.TearDown();
-
- // Make sure we don't leave the external filesystem.
- // (CannedSyncableFileSystem::TearDown does not do this as there may be
- // multiple syncable file systems registered for the name)
- RevokeSyncableFileSystem("test");
- }
-
- protected:
- void VerifyAndClearChange(const FileSystemURL& url,
- const FileChange& expected_change) {
- SCOPED_TRACE(testing::Message() << url.DebugString() <<
- " expecting:" << expected_change.DebugString());
- // Get the changes for URL and verify.
- FileChangeList changes;
- change_tracker()->GetChangesForURL(url, &changes);
- ASSERT_EQ(1U, changes.size());
- SCOPED_TRACE(testing::Message() << url.DebugString() <<
- " actual:" << changes.DebugString());
- EXPECT_EQ(expected_change, changes.front());
-
- // Clear the URL from the change tracker.
- change_tracker()->ClearChangesForURL(url);
- }
-
- FileSystemURL URL(const std::string& path) {
- return file_system_.URL(path);
- }
-
- FileSystemContext* file_system_context() {
- return file_system_.file_system_context();
- }
-
- LocalFileChangeTracker* change_tracker() {
- return file_system_context()->change_tracker();
- }
-
- base::ScopedTempDir data_dir_;
- base::MessageLoop message_loop_;
-
- CannedSyncableFileSystem file_system_;
- scoped_refptr<LocalFileSyncContext> sync_context_;
-
- base::WeakPtrFactory<SyncableFileSystemTest> weak_factory_;
-
- DISALLOW_COPY_AND_ASSIGN(SyncableFileSystemTest);
-};
-
-// Brief combined testing. Just see if all the sandbox feature works.
-TEST_F(SyncableFileSystemTest, SyncableLocalSandboxCombined) {
- // Opens a syncable file system.
- EXPECT_EQ(base::PLATFORM_FILE_OK,
- file_system_.OpenFileSystem());
-
- // Do some operations.
- EXPECT_EQ(base::PLATFORM_FILE_OK,
- file_system_.CreateDirectory(URL("dir")));
- EXPECT_EQ(base::PLATFORM_FILE_OK,
- file_system_.CreateFile(URL("dir/foo")));
-
- const int64 kOriginalQuota = QuotaManager::kSyncableStorageDefaultHostQuota;
-
- const int64 kQuota = 12345 * 1024;
- QuotaManager::kSyncableStorageDefaultHostQuota = kQuota;
- int64 usage, quota;
- EXPECT_EQ(quota::kQuotaStatusOk,
- file_system_.GetUsageAndQuota(&usage, &quota));
-
- // Returned quota must be what we overrode. Usage must be greater than 0
- // as creating a file or directory consumes some space.
- EXPECT_EQ(kQuota, quota);
- EXPECT_GT(usage, 0);
-
- // Truncate to extend an existing file and see if the usage reflects it.
- const int64 kFileSizeToExtend = 333;
- EXPECT_EQ(base::PLATFORM_FILE_OK,
- file_system_.CreateFile(URL("dir/foo")));
-
- EXPECT_EQ(base::PLATFORM_FILE_OK,
- file_system_.TruncateFile(URL("dir/foo"), kFileSizeToExtend));
-
- int64 new_usage;
- EXPECT_EQ(quota::kQuotaStatusOk,
- file_system_.GetUsageAndQuota(&new_usage, &quota));
- EXPECT_EQ(kFileSizeToExtend, new_usage - usage);
-
- // Shrink the quota to the current usage, try to extend the file further
- // and see if it fails.
- QuotaManager::kSyncableStorageDefaultHostQuota = new_usage;
- EXPECT_EQ(base::PLATFORM_FILE_ERROR_NO_SPACE,
- file_system_.TruncateFile(URL("dir/foo"), kFileSizeToExtend + 1));
-
- usage = new_usage;
- EXPECT_EQ(quota::kQuotaStatusOk,
- file_system_.GetUsageAndQuota(&new_usage, &quota));
- EXPECT_EQ(usage, new_usage);
-
- // Deletes the file system.
- EXPECT_EQ(base::PLATFORM_FILE_OK,
- file_system_.DeleteFileSystem());
-
- // Now the usage must be zero.
- EXPECT_EQ(quota::kQuotaStatusOk,
- file_system_.GetUsageAndQuota(&usage, &quota));
- EXPECT_EQ(0, usage);
-
- // Restore the system default quota.
- QuotaManager::kSyncableStorageDefaultHostQuota = kOriginalQuota;
-}
-
-// Combined testing with LocalFileChangeTracker.
-TEST_F(SyncableFileSystemTest, ChangeTrackerSimple) {
- EXPECT_EQ(base::PLATFORM_FILE_OK,
- file_system_.OpenFileSystem());
-
- const char kPath0[] = "dir a";
- const char kPath1[] = "dir a/dir"; // child of kPath0
- const char kPath2[] = "dir a/file"; // child of kPath0
- const char kPath3[] = "dir b";
-
- // Do some operations.
- EXPECT_EQ(base::PLATFORM_FILE_OK,
- file_system_.CreateDirectory(URL(kPath0))); // Creates a dir.
- EXPECT_EQ(base::PLATFORM_FILE_OK,
- file_system_.CreateDirectory(URL(kPath1))); // Creates another.
- EXPECT_EQ(base::PLATFORM_FILE_OK,
- file_system_.CreateFile(URL(kPath2))); // Creates a file.
- EXPECT_EQ(base::PLATFORM_FILE_OK,
- file_system_.TruncateFile(URL(kPath2), 1)); // Modifies the file.
- EXPECT_EQ(base::PLATFORM_FILE_OK,
- file_system_.TruncateFile(URL(kPath2), 2)); // Modifies it again.
-
- FileSystemURLSet urls;
- file_system_.GetChangedURLsInTracker(&urls);
-
- EXPECT_EQ(3U, urls.size());
- EXPECT_TRUE(ContainsKey(urls, URL(kPath0)));
- EXPECT_TRUE(ContainsKey(urls, URL(kPath1)));
- EXPECT_TRUE(ContainsKey(urls, URL(kPath2)));
-
- VerifyAndClearChange(URL(kPath0),
- FileChange(FileChange::FILE_CHANGE_ADD_OR_UPDATE,
- sync_file_system::SYNC_FILE_TYPE_DIRECTORY));
- VerifyAndClearChange(URL(kPath1),
- FileChange(FileChange::FILE_CHANGE_ADD_OR_UPDATE,
- sync_file_system::SYNC_FILE_TYPE_DIRECTORY));
- VerifyAndClearChange(URL(kPath2),
- FileChange(FileChange::FILE_CHANGE_ADD_OR_UPDATE,
- sync_file_system::SYNC_FILE_TYPE_FILE));
-
- // Creates and removes a same directory.
- EXPECT_EQ(base::PLATFORM_FILE_OK,
- file_system_.CreateDirectory(URL(kPath3)));
- EXPECT_EQ(base::PLATFORM_FILE_OK,
- file_system_.Remove(URL(kPath3), false /* recursive */));
-
- // The changes will be offset.
- urls.clear();
- file_system_.GetChangedURLsInTracker(&urls);
- EXPECT_TRUE(urls.empty());
-
- // Recursively removes the kPath0 directory.
- EXPECT_EQ(base::PLATFORM_FILE_OK,
- file_system_.Remove(URL(kPath0), true /* recursive */));
-
- urls.clear();
- file_system_.GetChangedURLsInTracker(&urls);
-
- // kPath0 and its all chidren (kPath1 and kPath2) must have been deleted.
- EXPECT_EQ(3U, urls.size());
- EXPECT_TRUE(ContainsKey(urls, URL(kPath0)));
- EXPECT_TRUE(ContainsKey(urls, URL(kPath1)));
- EXPECT_TRUE(ContainsKey(urls, URL(kPath2)));
-
- VerifyAndClearChange(URL(kPath0),
- FileChange(FileChange::FILE_CHANGE_DELETE,
- sync_file_system::SYNC_FILE_TYPE_DIRECTORY));
- VerifyAndClearChange(URL(kPath1),
- FileChange(FileChange::FILE_CHANGE_DELETE,
- sync_file_system::SYNC_FILE_TYPE_DIRECTORY));
- VerifyAndClearChange(URL(kPath2),
- FileChange(FileChange::FILE_CHANGE_DELETE,
- sync_file_system::SYNC_FILE_TYPE_FILE));
-}
-
-// Make sure directory operation is disabled (when it's configured so).
-TEST_F(SyncableFileSystemTest, DisableDirectoryOperations) {
- SetEnableSyncFSDirectoryOperation(false);
- EXPECT_EQ(base::PLATFORM_FILE_OK,
- file_system_.OpenFileSystem());
-
- // Try some directory operations (which should fail).
- EXPECT_EQ(base::PLATFORM_FILE_ERROR_INVALID_OPERATION,
- file_system_.CreateDirectory(URL("dir")));
-
- // Set up another (non-syncable) local file system.
- SandboxFileSystemTestHelper other_file_system_(
- GURL("http://foo.com/"), fileapi::kFileSystemTypeTemporary);
- other_file_system_.SetUp(file_system_.file_system_context());
-
- // Create directory '/a' and file '/a/b' in the other file system.
- const FileSystemURL kSrcDir = other_file_system_.CreateURLFromUTF8("/a");
- const FileSystemURL kSrcChild = other_file_system_.CreateURLFromUTF8("/a/b");
-
- bool created = false;
- scoped_ptr<FileSystemOperationContext> operation_context;
-
- operation_context.reset(other_file_system_.NewOperationContext());
- operation_context->set_allowed_bytes_growth(1024);
- EXPECT_EQ(base::PLATFORM_FILE_OK,
- other_file_system_.file_util()->CreateDirectory(
- operation_context.get(),
- kSrcDir, false /* exclusive */, false /* recursive */));
-
- operation_context.reset(other_file_system_.NewOperationContext());
- operation_context->set_allowed_bytes_growth(1024);
- EXPECT_EQ(base::PLATFORM_FILE_OK,
- other_file_system_.file_util()->EnsureFileExists(
- operation_context.get(), kSrcChild, &created));
- EXPECT_TRUE(created);
-
- // Now try copying the directory into the syncable file system, which should
- // fail if directory operation is disabled. (http://crbug.com/161442)
- EXPECT_NE(base::PLATFORM_FILE_OK,
- file_system_.Copy(kSrcDir, URL("dest")));
-
- other_file_system_.TearDown();
-}
-
-} // namespace sync_file_system
« no previous file with comments | « webkit/fileapi/syncable/syncable_file_system_operation.cc ('k') | webkit/fileapi/syncable/syncable_file_system_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698