mock_quota_manager_proxy.cc revision 03b57e008b61dfcb1fbad3aea950ae0e001748b0
1// Copyright 2014 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/browser/quota/mock_quota_manager_proxy.h"
6
7#include "base/message_loop/message_loop.h"
8#include "base/single_thread_task_runner.h"
9#include "url/gurl.h"
10
11using storage::kStorageTypeUnknown;
12
13namespace content {
14
15MockQuotaManagerProxy::MockQuotaManagerProxy(
16    MockQuotaManager* quota_manager,
17    base::SingleThreadTaskRunner* task_runner)
18    : QuotaManagerProxy(quota_manager, task_runner),
19      storage_accessed_count_(0),
20      storage_modified_count_(0),
21      last_notified_type_(kStorageTypeUnknown),
22      last_notified_delta_(0),
23      registered_client_(NULL) {}
24
25void MockQuotaManagerProxy::RegisterClient(QuotaClient* client) {
26  DCHECK(!registered_client_);
27  registered_client_ = client;
28}
29
30void MockQuotaManagerProxy::SimulateQuotaManagerDestroyed() {
31  if (registered_client_) {
32    // We cannot call this in the destructor as the client (indirectly)
33    // holds a refptr of the proxy.
34    registered_client_->OnQuotaManagerDestroyed();
35    registered_client_ = NULL;
36  }
37}
38
39void MockQuotaManagerProxy::NotifyStorageAccessed(
40    QuotaClient::ID client_id, const GURL& origin, StorageType type) {
41  ++storage_accessed_count_;
42  last_notified_origin_ = origin;
43  last_notified_type_ = type;
44}
45
46void MockQuotaManagerProxy::NotifyStorageModified(
47    QuotaClient::ID client_id, const GURL& origin,
48    StorageType type, int64 delta) {
49  ++storage_modified_count_;
50  last_notified_origin_ = origin;
51  last_notified_type_ = type;
52  last_notified_delta_ = delta;
53  if (mock_manager())
54    mock_manager()->UpdateUsage(origin, type, delta);
55}
56
57MockQuotaManagerProxy::~MockQuotaManagerProxy() {
58  DCHECK(!registered_client_);
59}
60
61}  // namespace content
62