1// Copyright 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "content/public/test/test_file_system_context.h"
6
7#include "base/memory/scoped_vector.h"
8#include "content/public/test/mock_special_storage_policy.h"
9#include "content/public/test/test_file_system_backend.h"
10#include "content/public/test/test_file_system_options.h"
11#include "storage/browser/fileapi/external_mount_points.h"
12#include "storage/browser/fileapi/file_system_backend.h"
13#include "storage/browser/fileapi/file_system_context.h"
14
15namespace content {
16
17storage::FileSystemContext* CreateFileSystemContextForTesting(
18    storage::QuotaManagerProxy* quota_manager_proxy,
19    const base::FilePath& base_path) {
20  ScopedVector<storage::FileSystemBackend> additional_providers;
21  additional_providers.push_back(new TestFileSystemBackend(
22      base::MessageLoopProxy::current().get(), base_path));
23  return CreateFileSystemContextWithAdditionalProvidersForTesting(
24      quota_manager_proxy, additional_providers.Pass(), base_path);
25}
26
27storage::FileSystemContext*
28CreateFileSystemContextWithAdditionalProvidersForTesting(
29    storage::QuotaManagerProxy* quota_manager_proxy,
30    ScopedVector<storage::FileSystemBackend> additional_providers,
31    const base::FilePath& base_path) {
32  return new storage::FileSystemContext(
33      base::MessageLoopProxy::current().get(),
34      base::MessageLoopProxy::current().get(),
35      storage::ExternalMountPoints::CreateRefCounted().get(),
36      make_scoped_refptr(new MockSpecialStoragePolicy()).get(),
37      quota_manager_proxy,
38      additional_providers.Pass(),
39      std::vector<storage::URLRequestAutoMountHandler>(),
40      base_path,
41      CreateAllowFileAccessOptions());
42}
43
44storage::FileSystemContext* CreateFileSystemContextWithAutoMountersForTesting(
45    storage::QuotaManagerProxy* quota_manager_proxy,
46    ScopedVector<storage::FileSystemBackend> additional_providers,
47    const std::vector<storage::URLRequestAutoMountHandler>& auto_mounters,
48    const base::FilePath& base_path) {
49  return new storage::FileSystemContext(
50      base::MessageLoopProxy::current().get(),
51      base::MessageLoopProxy::current().get(),
52      storage::ExternalMountPoints::CreateRefCounted().get(),
53      make_scoped_refptr(new MockSpecialStoragePolicy()).get(),
54      quota_manager_proxy,
55      additional_providers.Pass(),
56      auto_mounters,
57      base_path,
58      CreateAllowFileAccessOptions());
59}
60
61storage::FileSystemContext* CreateIncognitoFileSystemContextForTesting(
62    storage::QuotaManagerProxy* quota_manager_proxy,
63    const base::FilePath& base_path) {
64  ScopedVector<storage::FileSystemBackend> additional_providers;
65  return new storage::FileSystemContext(
66      base::MessageLoopProxy::current().get(),
67      base::MessageLoopProxy::current().get(),
68      storage::ExternalMountPoints::CreateRefCounted().get(),
69      make_scoped_refptr(new MockSpecialStoragePolicy()).get(),
70      quota_manager_proxy,
71      additional_providers.Pass(),
72      std::vector<storage::URLRequestAutoMountHandler>(),
73      base_path,
74      CreateIncognitoFileSystemOptions());
75}
76
77}  // namespace content
78