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

Side by Side Diff: webkit/browser/quota/mock_quota_manager.cc

Issue 214233005: Move mock_quota_manager and friends from webkit/ to content/ (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: nits Created 6 years, 8 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
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 "webkit/browser/quota/mock_quota_manager.h"
6
7 #include "base/memory/ref_counted.h"
8 #include "base/memory/scoped_ptr.h"
9 #include "base/message_loop/message_loop.h"
10 #include "base/single_thread_task_runner.h"
11 #include "url/gurl.h"
12
13 namespace quota {
14
15 MockQuotaManager::OriginInfo::OriginInfo(
16 const GURL& origin,
17 StorageType type,
18 int quota_client_mask,
19 base::Time modified)
20 : origin(origin),
21 type(type),
22 quota_client_mask(quota_client_mask),
23 modified(modified) {
24 }
25
26 MockQuotaManager::OriginInfo::~OriginInfo() {}
27
28 MockQuotaManager::StorageInfo::StorageInfo() : usage(0), quota(kint64max) {}
29 MockQuotaManager::StorageInfo::~StorageInfo() {}
30
31 MockQuotaManager::MockQuotaManager(
32 bool is_incognito,
33 const base::FilePath& profile_path,
34 base::SingleThreadTaskRunner* io_thread,
35 base::SequencedTaskRunner* db_thread,
36 SpecialStoragePolicy* special_storage_policy)
37 : QuotaManager(is_incognito, profile_path, io_thread, db_thread,
38 special_storage_policy),
39 weak_factory_(this) {
40 }
41
42 void MockQuotaManager::GetUsageAndQuota(
43 const GURL& origin,
44 quota::StorageType type,
45 const GetUsageAndQuotaCallback& callback) {
46 StorageInfo& info = usage_and_quota_map_[std::make_pair(origin, type)];
47 callback.Run(quota::kQuotaStatusOk, info.usage, info.quota);
48 }
49
50 void MockQuotaManager::SetQuota(const GURL& origin, StorageType type,
51 int64 quota) {
52 usage_and_quota_map_[std::make_pair(origin, type)].quota = quota;
53 }
54
55 bool MockQuotaManager::AddOrigin(
56 const GURL& origin,
57 StorageType type,
58 int quota_client_mask,
59 base::Time modified) {
60 origins_.push_back(OriginInfo(origin, type, quota_client_mask, modified));
61 return true;
62 }
63
64 bool MockQuotaManager::OriginHasData(
65 const GURL& origin,
66 StorageType type,
67 QuotaClient::ID quota_client) const {
68 for (std::vector<OriginInfo>::const_iterator current = origins_.begin();
69 current != origins_.end();
70 ++current) {
71 if (current->origin == origin &&
72 current->type == type &&
73 current->quota_client_mask & quota_client)
74 return true;
75 }
76 return false;
77 }
78
79 void MockQuotaManager::GetOriginsModifiedSince(
80 StorageType type,
81 base::Time modified_since,
82 const GetOriginsCallback& callback) {
83 std::set<GURL>* origins_to_return = new std::set<GURL>();
84 for (std::vector<OriginInfo>::const_iterator current = origins_.begin();
85 current != origins_.end();
86 ++current) {
87 if (current->type == type && current->modified >= modified_since)
88 origins_to_return->insert(current->origin);
89 }
90
91 base::MessageLoop::current()->PostTask(
92 FROM_HERE,
93 base::Bind(&MockQuotaManager::DidGetModifiedSince,
94 weak_factory_.GetWeakPtr(),
95 callback,
96 base::Owned(origins_to_return),
97 type));
98 }
99
100 void MockQuotaManager::DeleteOriginData(
101 const GURL& origin,
102 StorageType type,
103 int quota_client_mask,
104 const StatusCallback& callback) {
105 for (std::vector<OriginInfo>::iterator current = origins_.begin();
106 current != origins_.end();
107 ++current) {
108 if (current->origin == origin && current->type == type) {
109 // Modify the mask: if it's 0 after "deletion", remove the origin.
110 current->quota_client_mask &= ~quota_client_mask;
111 if (current->quota_client_mask == 0)
112 origins_.erase(current);
113 break;
114 }
115 }
116
117 base::MessageLoop::current()->PostTask(
118 FROM_HERE,
119 base::Bind(&MockQuotaManager::DidDeleteOriginData,
120 weak_factory_.GetWeakPtr(),
121 callback,
122 kQuotaStatusOk));
123 }
124
125 MockQuotaManager::~MockQuotaManager() {}
126
127 void MockQuotaManager::UpdateUsage(
128 const GURL& origin, StorageType type, int64 delta) {
129 usage_and_quota_map_[std::make_pair(origin, type)].usage += delta;
130 }
131
132 void MockQuotaManager::DidGetModifiedSince(
133 const GetOriginsCallback& callback,
134 std::set<GURL>* origins,
135 StorageType storage_type) {
136 callback.Run(*origins, storage_type);
137 }
138
139 void MockQuotaManager::DidDeleteOriginData(
140 const StatusCallback& callback,
141 QuotaStatusCode status) {
142 callback.Run(status);
143 }
144
145 } // namespace quota
OLDNEW
« no previous file with comments | « webkit/browser/quota/mock_quota_manager.h ('k') | webkit/browser/quota/mock_quota_manager_proxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698