| // 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 "storage/browser/test/mock_quota_manager_proxy.h" |
| |
| #include "base/single_thread_task_runner.h" |
| |
| namespace content { |
| |
| 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_(blink::mojom::StorageType::kUnknown), |
| last_notified_delta_(0), |
| registered_client_(nullptr) {} |
| |
| 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_ = nullptr; |
| } |
| } |
| |
| void MockQuotaManagerProxy::GetUsageAndQuota( |
| base::SequencedTaskRunner* original_task_runner, |
| const url::Origin& origin, |
| blink::mojom::StorageType type, |
| QuotaManager::UsageAndQuotaCallback callback) { |
| if (mock_manager()) { |
| mock_manager()->GetUsageAndQuota(origin, type, std::move(callback)); |
| } |
| } |
| |
| void MockQuotaManagerProxy::NotifyStorageAccessed( |
| QuotaClient::ID client_id, |
| const url::Origin& origin, |
| blink::mojom::StorageType type) { |
| ++storage_accessed_count_; |
| last_notified_origin_ = origin; |
| last_notified_type_ = type; |
| } |
| |
| void MockQuotaManagerProxy::NotifyStorageModified( |
| QuotaClient::ID client_id, |
| const url::Origin& origin, |
| blink::mojom::StorageType type, |
| int64_t 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 content |