blob: 60a9f639af9d9a0350cec347bda975ccca95e2d8 [file] [log] [blame]
// Copyright 2014 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.
#ifndef CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_FAKE_PROVIDED_FILE_SYSTEM_H_
#define CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_FAKE_PROVIDED_FILE_SYSTEM_H_
#include <string>
#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
namespace extensions {
class EventRouter;
} // namespace extensions
namespace chromeos {
namespace file_system_provider {
class RequestManager;
// Fake provided file system implementation. Does not communicate with target
// extensions. Used for unit tests.
class FakeProvidedFileSystem : public ProvidedFileSystemInterface {
public:
explicit FakeProvidedFileSystem(
const ProvidedFileSystemInfo& file_system_info);
virtual ~FakeProvidedFileSystem();
// ProvidedFileSystemInterface overrides.
virtual void RequestUnmount(
const fileapi::AsyncFileUtil::StatusCallback& callback) OVERRIDE;
virtual const ProvidedFileSystemInfo& GetFileSystemInfo() const OVERRIDE;
virtual RequestManager* GetRequestManager() OVERRIDE;
// Factory callback, to be used in Service::SetFileSystemFactory(). The
// |event_router| argument can be NULL.
static ProvidedFileSystemInterface* Create(
extensions::EventRouter* event_router,
const ProvidedFileSystemInfo& file_system_info);
private:
ProvidedFileSystemInfo file_system_info_;
DISALLOW_COPY_AND_ASSIGN(FakeProvidedFileSystem);
};
} // namespace file_system_provider
} // namespace chromeos
#endif // CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_FAKE_PROVIDED_FILE_SYSTEM_H_