Index: webkit/browser/quota/mock_quota_manager_proxy.cc |
diff --git a/webkit/browser/quota/mock_quota_manager_proxy.cc b/webkit/browser/quota/mock_quota_manager_proxy.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..1317919fe3c9c69eb4010decc2e43ede3b6edf0d |
--- /dev/null |
+++ b/webkit/browser/quota/mock_quota_manager_proxy.cc |
@@ -0,0 +1,59 @@ |
+// 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. |
+ |
+#include "webkit/browser/quota/mock_quota_manager_proxy.h" |
+ |
+#include "base/message_loop/message_loop.h" |
+#include "base/single_thread_task_runner.h" |
+#include "url/gurl.h" |
+ |
+namespace quota { |
+ |
+MockQuotaManagerProxy::MockQuotaManagerProxy( |
+ MockQuotaManager* quota_manager, |
+ base::SingleThreadTaskRunner* task_runner) |
+ : QuotaManagerProxy(quota_manager, task_runner), |
+ storage_accessed_count_(0), |
+ storage_modified_count_(0), |
+ last_notified_type_(kStorageTypeUnknown), |
+ last_notified_delta_(0), |
+ registered_client_(NULL) {} |
+ |
+void MockQuotaManagerProxy::RegisterClient(QuotaClient* client) { |
+ DCHECK(!registered_client_); |
+ registered_client_ = client; |
+} |
+ |
+void MockQuotaManagerProxy::SimulateQuotaManagerDestroyed() { |
+ if (registered_client_) { |
+ // We cannot call this in the destructor as the client (indirectly) |
+ // holds a refptr of the proxy. |
+ registered_client_->OnQuotaManagerDestroyed(); |
+ registered_client_ = NULL; |
+ } |
+} |
+ |
+void MockQuotaManagerProxy::NotifyStorageAccessed( |
+ QuotaClient::ID client_id, const GURL& origin, StorageType type) { |
+ ++storage_accessed_count_; |
+ last_notified_origin_ = origin; |
+ last_notified_type_ = type; |
+} |
+ |
+void MockQuotaManagerProxy::NotifyStorageModified( |
+ QuotaClient::ID client_id, const GURL& origin, |
+ StorageType type, int64 delta) { |
+ ++storage_modified_count_; |
+ last_notified_origin_ = origin; |
+ last_notified_type_ = type; |
+ last_notified_delta_ = delta; |
+ if (mock_manager()) |
+ mock_manager()->UpdateUsage(origin, type, delta); |
+} |
+ |
+MockQuotaManagerProxy::~MockQuotaManagerProxy() { |
+ DCHECK(!registered_client_); |
+} |
+ |
+} // namespace quota |