| Index: chrome/browser/chromeos/drive/fileapi_worker_unittest.cc
|
| diff --git a/chrome/browser/chromeos/drive/fileapi_worker_unittest.cc b/chrome/browser/chromeos/drive/fileapi_worker_unittest.cc
|
| deleted file mode 100644
|
| index fea892d836b03e4a5c7a684df0d8923882b0a88d..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/chromeos/drive/fileapi_worker_unittest.cc
|
| +++ /dev/null
|
| @@ -1,273 +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 "chrome/browser/chromeos/drive/fileapi_worker.h"
|
| -
|
| -#include "base/bind.h"
|
| -#include "base/bind_helpers.h"
|
| -#include "base/file_util.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "chrome/browser/chromeos/drive/dummy_file_system.h"
|
| -#include "chrome/browser/chromeos/drive/test_util.h"
|
| -#include "content/public/test/test_browser_thread_bundle.h"
|
| -#include "google_apis/drive/test_util.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -
|
| -namespace drive {
|
| -namespace fileapi_internal {
|
| -namespace {
|
| -
|
| -// Increments |num_called| for checking how many times the closure is called.
|
| -void Increment(int* num_called) {
|
| - ++*num_called;
|
| -}
|
| -
|
| -// Returns the |instance| as is.
|
| -FileSystemInterface* GetFileSystem(FileSystemInterface* instance) {
|
| - return instance;
|
| -}
|
| -
|
| -// A test file system that always returns |local_file_path|. For testing
|
| -// purpose, it checks if |open_mode| is the expected value, and record if the
|
| -// close callback is called.
|
| -class TestFileSystemForOpenFile : public DummyFileSystem {
|
| - public:
|
| - TestFileSystemForOpenFile(const base::FilePath& local_file_path,
|
| - OpenMode expected_open_mode)
|
| - : local_file_path_(local_file_path),
|
| - expected_open_mode_(expected_open_mode),
|
| - closed_(false) {
|
| - }
|
| -
|
| - virtual void OpenFile(const base::FilePath& file_path,
|
| - OpenMode open_mode,
|
| - const std::string& mime_type,
|
| - const drive::OpenFileCallback& callback) OVERRIDE {
|
| - EXPECT_EQ(expected_open_mode_, open_mode);
|
| -
|
| - callback.Run(
|
| - FILE_ERROR_OK,
|
| - local_file_path_,
|
| - base::Bind(&TestFileSystemForOpenFile::Close, base::Unretained(this)));
|
| - }
|
| -
|
| - void Close() {
|
| - closed_ = true;
|
| - }
|
| -
|
| - bool closed() const { return closed_; }
|
| -
|
| - private:
|
| - const base::FilePath local_file_path_;
|
| - const OpenMode expected_open_mode_;
|
| - bool closed_;
|
| -};
|
| -
|
| -// Helper function of testing OpenFile() for write access. It checks that the
|
| -// file handle correctly writes to the expected file.
|
| -void VerifyWrite(
|
| - int64 expected_size,
|
| - const base::FilePath& expected_written_path,
|
| - const std::string& write_data,
|
| - base::File::Error result,
|
| - base::PlatformFile platform_file,
|
| - const base::Closure& close_callback) {
|
| - // Check that the file is properly opened.
|
| - EXPECT_EQ(base::File::FILE_OK, result);
|
| - EXPECT_NE(base::kInvalidPlatformFileValue, platform_file);
|
| - EXPECT_FALSE(close_callback.is_null());
|
| -
|
| - // Check that the file has the expected length (i.e., truncated or not)
|
| - base::PlatformFileInfo info;
|
| - EXPECT_TRUE(base::GetPlatformFileInfo(platform_file, &info));
|
| - EXPECT_EQ(expected_size, info.size);
|
| -
|
| - // Write some data.
|
| - const int data_size = static_cast<int>(write_data.size());
|
| - EXPECT_EQ(data_size,
|
| - base::WritePlatformFile(platform_file, 0, write_data.c_str(),
|
| - data_size));
|
| - EXPECT_TRUE(base::TruncatePlatformFile(platform_file, data_size));
|
| -
|
| - // Close.
|
| - base::ClosePlatformFile(platform_file);
|
| - close_callback.Run();
|
| -
|
| - // Checks that the written content goes to |expected_written_path|. I.e.,
|
| - // the |platform_file| handle is pointing to the file.
|
| - std::string written;
|
| - EXPECT_TRUE(base::ReadFileToString(expected_written_path, &written));
|
| - EXPECT_EQ(write_data, written);
|
| -}
|
| -
|
| -// Helper function of testing OpenFile() for read access. It checks that the
|
| -// file is readable and contains |expected_data|.
|
| -void VerifyRead(const std::string& expected_data,
|
| - base::File::Error result,
|
| - base::PlatformFile platform_file,
|
| - const base::Closure& close_callback) {
|
| - // Check that the file is properly opened.
|
| - EXPECT_EQ(base::File::FILE_OK, result);
|
| - EXPECT_NE(base::kInvalidPlatformFileValue, platform_file);
|
| - EXPECT_FALSE(close_callback.is_null());
|
| -
|
| - // Check that the file has the expected content.
|
| - const int data_size = static_cast<int>(expected_data.size());
|
| - base::PlatformFileInfo info;
|
| - EXPECT_TRUE(base::GetPlatformFileInfo(platform_file, &info));
|
| - EXPECT_EQ(data_size, info.size);
|
| -
|
| - std::vector<char> buffer(data_size);
|
| - EXPECT_EQ(data_size,
|
| - base::ReadPlatformFile(platform_file, 0, buffer.data(), data_size));
|
| - EXPECT_EQ(expected_data, std::string(buffer.begin(), buffer.end()));
|
| -
|
| - // Close.
|
| - base::ClosePlatformFile(platform_file);
|
| - close_callback.Run();
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -class FileApiWorkerTest : public testing::Test {
|
| - private:
|
| - content::TestBrowserThreadBundle thread_bundle_;
|
| -};
|
| -
|
| -TEST_F(FileApiWorkerTest, RunFileSystemCallbackSuccess) {
|
| - DummyFileSystem dummy_file_system;
|
| -
|
| - FileSystemInterface* file_system = NULL;
|
| - RunFileSystemCallback(
|
| - base::Bind(&GetFileSystem, &dummy_file_system),
|
| - google_apis::test_util::CreateCopyResultCallback(&file_system),
|
| - base::Closure());
|
| -
|
| - EXPECT_EQ(&dummy_file_system, file_system);
|
| -}
|
| -
|
| -TEST_F(FileApiWorkerTest, RunFileSystemCallbackFail) {
|
| - FileSystemInterface* file_system = NULL;
|
| -
|
| - // Make sure on_error_callback is called if file_system_getter returns NULL.
|
| - int num_called = 0;
|
| - RunFileSystemCallback(
|
| - base::Bind(&GetFileSystem, static_cast<FileSystemInterface*>(NULL)),
|
| - google_apis::test_util::CreateCopyResultCallback(&file_system),
|
| - base::Bind(&Increment, &num_called));
|
| - EXPECT_EQ(1, num_called);
|
| -
|
| - // Just make sure this null |on_error_callback| doesn't cause a crash.
|
| - RunFileSystemCallback(
|
| - base::Bind(&GetFileSystem, static_cast<FileSystemInterface*>(NULL)),
|
| - google_apis::test_util::CreateCopyResultCallback(&file_system),
|
| - base::Closure());
|
| -}
|
| -
|
| -TEST_F(FileApiWorkerTest, OpenFileForCreateWrite) {
|
| - const base::FilePath kDummyPath = base::FilePath::FromUTF8Unsafe("whatever");
|
| - const std::string kWriteData = "byebye";
|
| -
|
| - base::FilePath temp_path;
|
| - base::CreateTemporaryFile(&temp_path);
|
| -
|
| - // CREATE => CREATE (fails if file existed.)
|
| - TestFileSystemForOpenFile file_system(temp_path, CREATE_FILE);
|
| - const int64 kExpectedSize = 0;
|
| -
|
| - OpenFile(kDummyPath,
|
| - base::PLATFORM_FILE_CREATE | base::PLATFORM_FILE_WRITE,
|
| - base::Bind(&VerifyWrite, kExpectedSize, temp_path, kWriteData),
|
| - &file_system);
|
| - test_util::RunBlockingPoolTask();
|
| - EXPECT_TRUE(file_system.closed());
|
| -}
|
| -
|
| -TEST_F(FileApiWorkerTest, OpenFileForOpenAlwaysWrite) {
|
| - const base::FilePath kDummyPath = base::FilePath::FromUTF8Unsafe("whatever");
|
| - const std::string kWriteData = "byebye";
|
| - const std::string kInitialData = "hello";
|
| -
|
| - base::FilePath temp_path;
|
| - base::CreateTemporaryFile(&temp_path);
|
| - google_apis::test_util::WriteStringToFile(temp_path, kInitialData);
|
| -
|
| - // OPEN_ALWAYS => OPEN_OR_CREATE (success whether file exists or not.)
|
| - // No truncation should take place.
|
| - TestFileSystemForOpenFile file_system(temp_path, OPEN_OR_CREATE_FILE);
|
| - const int64 kExpectedSize = static_cast<int64>(kInitialData.size());
|
| -
|
| - OpenFile(kDummyPath,
|
| - base::PLATFORM_FILE_OPEN_ALWAYS | base::PLATFORM_FILE_WRITE,
|
| - base::Bind(&VerifyWrite, kExpectedSize, temp_path, kWriteData),
|
| - &file_system);
|
| - test_util::RunBlockingPoolTask();
|
| - EXPECT_TRUE(file_system.closed());
|
| -}
|
| -
|
| -TEST_F(FileApiWorkerTest, OpenFileForOpenTruncatedWrite) {
|
| - const base::FilePath kDummyPath = base::FilePath::FromUTF8Unsafe("whatever");
|
| - const std::string kInitialData = "hello";
|
| - const std::string kWriteData = "byebye";
|
| -
|
| - base::FilePath temp_path;
|
| - base::CreateTemporaryFile(&temp_path);
|
| - google_apis::test_util::WriteStringToFile(temp_path, kInitialData);
|
| -
|
| - // OPEN_TRUNCATED => OPEN (failure when the file did not exist.)
|
| - // It should truncate the file before passing to the callback.
|
| - TestFileSystemForOpenFile file_system(temp_path, OPEN_FILE);
|
| - const int64 kExpectedSize = 0;
|
| -
|
| - OpenFile(kDummyPath,
|
| - base::PLATFORM_FILE_OPEN_TRUNCATED | base::PLATFORM_FILE_WRITE,
|
| - base::Bind(&VerifyWrite, kExpectedSize, temp_path, kWriteData),
|
| - &file_system);
|
| - test_util::RunBlockingPoolTask();
|
| - EXPECT_TRUE(file_system.closed());
|
| -}
|
| -
|
| -TEST_F(FileApiWorkerTest, OpenFileForOpenCreateAlwaysWrite) {
|
| - const base::FilePath kDummyPath = base::FilePath::FromUTF8Unsafe("whatever");
|
| - const std::string kInitialData = "hello";
|
| - const std::string kWriteData = "byebye";
|
| -
|
| - base::FilePath temp_path;
|
| - base::CreateTemporaryFile(&temp_path);
|
| - google_apis::test_util::WriteStringToFile(temp_path, kInitialData);
|
| -
|
| - // CREATE_ALWAYS => OPEN_OR_CREATE (success whether file exists or not.)
|
| - // It should truncate the file before passing to the callback.
|
| - TestFileSystemForOpenFile file_system(temp_path, OPEN_OR_CREATE_FILE);
|
| - const int64 kExpectedSize = 0;
|
| -
|
| - OpenFile(kDummyPath,
|
| - base::PLATFORM_FILE_CREATE_ALWAYS | base::PLATFORM_FILE_WRITE,
|
| - base::Bind(&VerifyWrite, kExpectedSize, temp_path, kWriteData),
|
| - &file_system);
|
| - test_util::RunBlockingPoolTask();
|
| - EXPECT_TRUE(file_system.closed());
|
| -}
|
| -
|
| -TEST_F(FileApiWorkerTest, OpenFileForOpenRead) {
|
| - const base::FilePath kDummyPath = base::FilePath::FromUTF8Unsafe("whatever");
|
| - const std::string kInitialData = "hello";
|
| -
|
| - base::FilePath temp_path;
|
| - base::CreateTemporaryFile(&temp_path);
|
| - google_apis::test_util::WriteStringToFile(temp_path, kInitialData);
|
| -
|
| - // OPEN => OPEN (failure when the file did not exist.)
|
| - TestFileSystemForOpenFile file_system(temp_path, OPEN_FILE);
|
| -
|
| - OpenFile(kDummyPath,
|
| - base::PLATFORM_FILE_OPEN | base::PLATFORM_FILE_READ,
|
| - base::Bind(&VerifyRead, kInitialData),
|
| - &file_system);
|
| - test_util::RunBlockingPoolTask();
|
| - EXPECT_TRUE(file_system.closed());
|
| -}
|
| -
|
| -} // namespace fileapi_internal
|
| -} // namespace drive
|
|
|