[go: nahoru, domu]

blob: dd6bffd63aaf7a0cbd36521e718d27d790458fa5 [file] [log] [blame]
// Copyright 2014 The Chromium Authors
// 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 <utility>
#include "base/task/sequenced_task_runner.h"
#include "base/task/single_thread_task_runner.h"
#include "base/test/bind.h"
#include "components/services/storage/public/mojom/quota_client.mojom.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "third_party/blink/public/common/storage_key/storage_key.h"
namespace storage {
MockQuotaManagerProxy::MockQuotaManagerProxy(
MockQuotaManager* quota_manager,
scoped_refptr<base::SequencedTaskRunner> quota_manager_task_runner)
: QuotaManagerProxy(
quota_manager,
std::move(quota_manager_task_runner),
quota_manager ? quota_manager->profile_path() : base::FilePath()),
mock_quota_manager_(quota_manager) {}
void MockQuotaManagerProxy::UpdateOrCreateBucket(
const BucketInitParams& params,
scoped_refptr<base::SequencedTaskRunner> callback_task_runner,
base::OnceCallback<void(QuotaErrorOr<BucketInfo>)> callback) {
if (mock_quota_manager_) {
mock_quota_manager_->UpdateOrCreateBucket(params, std::move(callback));
}
}
QuotaErrorOr<BucketInfo> MockQuotaManagerProxy::GetOrCreateBucketSync(
const BucketInitParams& params) {
return (mock_quota_manager_)
? mock_quota_manager_->GetOrCreateBucketSync(params)
: base::unexpected(QuotaError::kUnknownError);
}
void MockQuotaManagerProxy::CreateBucketForTesting(
const blink::StorageKey& storage_key,
const std::string& bucket_name,
blink::mojom::StorageType storage_type,
scoped_refptr<base::SequencedTaskRunner> callback_task_runner,
base::OnceCallback<void(QuotaErrorOr<BucketInfo>)> callback) {
if (mock_quota_manager_) {
mock_quota_manager_->CreateBucketForTesting(
storage_key, bucket_name, storage_type, std::move(callback));
}
}
void MockQuotaManagerProxy::GetBucketByNameUnsafe(
const blink::StorageKey& storage_key,
const std::string& bucket_name,
blink::mojom::StorageType type,
scoped_refptr<base::SequencedTaskRunner> callback_task_runner,
base::OnceCallback<void(QuotaErrorOr<BucketInfo>)> callback) {
if (mock_quota_manager_) {
mock_quota_manager_->GetBucketByNameUnsafe(storage_key, bucket_name, type,
std::move(callback));
}
}
void MockQuotaManagerProxy::GetBucketById(
const BucketId& bucket_id,
scoped_refptr<base::SequencedTaskRunner> callback_task_runner,
base::OnceCallback<void(QuotaErrorOr<BucketInfo>)> callback) {
if (mock_quota_manager_) {
mock_quota_manager_->GetBucketById(bucket_id, std::move(callback));
}
}
void MockQuotaManagerProxy::GetBucketsForStorageKey(
const blink::StorageKey& storage_key,
blink::mojom::StorageType type,
bool delete_expired,
scoped_refptr<base::SequencedTaskRunner> callback_task_runner,
base::OnceCallback<void(QuotaErrorOr<std::set<BucketInfo>>)> callback) {
if (mock_quota_manager_) {
mock_quota_manager_->GetBucketsForStorageKey(
storage_key, type, std::move(callback), delete_expired);
} else {
std::move(callback).Run(std::set<BucketInfo>());
}
}
void MockQuotaManagerProxy::GetUsageAndQuota(
const blink::StorageKey& storage_key,
blink::mojom::StorageType type,
scoped_refptr<base::SequencedTaskRunner> callback_task_runner,
QuotaManager::UsageAndQuotaCallback callback) {
if (mock_quota_manager_) {
mock_quota_manager_->GetUsageAndQuota(storage_key, type,
std::move(callback));
}
}
void MockQuotaManagerProxy::NotifyBucketAccessed(const BucketLocator& bucket,
base::Time access_time) {
++bucket_accessed_count_;
last_notified_bucket_id_ = bucket.id;
last_notified_storage_key_ = bucket.storage_key;
last_notified_type_ = bucket.type;
}
void MockQuotaManagerProxy::NotifyBucketModified(
QuotaClientType client_id,
const BucketLocator& bucket,
absl::optional<int64_t> delta,
base::Time modification_time,
scoped_refptr<base::SequencedTaskRunner> callback_task_runner,
base::OnceClosure callback) {
++bucket_modified_count_;
last_notified_bucket_id_ = bucket.id;
last_notified_bucket_delta_ = delta;
if (mock_quota_manager_) {
mock_quota_manager_->UpdateUsage(bucket, delta);
}
if (callback) {
callback_task_runner->PostTask(FROM_HERE, std::move(callback));
}
}
MockQuotaManagerProxy::~MockQuotaManagerProxy() = default;
} // namespace storage