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