14e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
2c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// found in the LICENSE file.
4c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
54e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#ifndef CONTENT_PUBLIC_TEST_TEST_FILE_SYSTEM_CONTEXT_H_
64e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#define CONTENT_PUBLIC_TEST_TEST_FILE_SYSTEM_CONTEXT_H_
7c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
8c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "base/files/file_path.h"
9868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/memory/scoped_vector.h"
101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "storage/browser/fileapi/file_system_context.h"
11c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
1203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)namespace storage {
13c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)class QuotaManagerProxy;
14c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)class SpecialStoragePolicy;
15c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
16c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
1703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)namespace storage {
187dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochclass FileSystemBackend;
195d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}
205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)namespace content {
22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
2303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)storage::FileSystemContext* CreateFileSystemContextForTesting(
2403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)    storage::QuotaManagerProxy* quota_manager_proxy,
25c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    const base::FilePath& base_path);
26c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
277dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// The caller is responsible for including TestFileSystemBackend in
28868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// |additional_providers| if needed.
2903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)storage::FileSystemContext*
3003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)    CreateFileSystemContextWithAdditionalProvidersForTesting(
3103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)        storage::QuotaManagerProxy* quota_manager_proxy,
3203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)        ScopedVector<storage::FileSystemBackend> additional_providers,
3303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)        const base::FilePath& base_path);
3403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)
3503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)storage::FileSystemContext* CreateFileSystemContextWithAutoMountersForTesting(
3603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)    storage::QuotaManagerProxy* quota_manager_proxy,
3703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)    ScopedVector<storage::FileSystemBackend> additional_providers,
3803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)    const std::vector<storage::URLRequestAutoMountHandler>& auto_mounters,
39868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)    const base::FilePath& base_path);
40868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
4103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)storage::FileSystemContext* CreateIncognitoFileSystemContextForTesting(
4203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)    storage::QuotaManagerProxy* quota_manager_proxy,
4358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)    const base::FilePath& base_path);
4458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
455d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}  // namespace content
46c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
474e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#endif  // CONTENT_PUBLIC_TEST_TEST_FILE_SYSTEM_CONTEXT_H_
48