1// Copyright (c) 2010 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 "chrome/browser/mock_browsing_data_database_helper.h"
6
7#include "base/callback.h"
8
9MockBrowsingDataDatabaseHelper::MockBrowsingDataDatabaseHelper(
10    Profile* profile)
11    : BrowsingDataDatabaseHelper(profile),
12      profile_(profile) {
13}
14
15MockBrowsingDataDatabaseHelper::~MockBrowsingDataDatabaseHelper() {
16}
17
18void MockBrowsingDataDatabaseHelper::StartFetching(
19    Callback1<const std::vector<DatabaseInfo>& >::Type* callback) {
20  callback_.reset(callback);
21}
22
23void MockBrowsingDataDatabaseHelper::CancelNotification() {
24  callback_.reset(NULL);
25}
26
27void MockBrowsingDataDatabaseHelper::DeleteDatabase(
28    const std::string& origin,
29    const std::string& name) {
30  std::string key = origin + ":" + name;
31  CHECK(databases_.find(key) != databases_.end());
32  last_deleted_origin_ = origin;
33  last_deleted_db_ = name;
34  databases_[key] = false;
35}
36
37void MockBrowsingDataDatabaseHelper::AddDatabaseSamples() {
38  response_.push_back(BrowsingDataDatabaseHelper::DatabaseInfo(
39      "gdbhost1", "db1", "http_gdbhost1_1", "description 1",
40      "http://gdbhost1:1/", 1, base::Time()));
41  databases_["http_gdbhost1_1:db1"] = true;
42  response_.push_back(BrowsingDataDatabaseHelper::DatabaseInfo(
43      "gdbhost2", "db2", "http_gdbhost2_2", "description 2",
44      "http://gdbhost2:2/", 2, base::Time()));
45  databases_["http_gdbhost2_2:db2"] = true;
46}
47
48void MockBrowsingDataDatabaseHelper::Notify() {
49  CHECK(callback_.get());
50  callback_->Run(response_);
51}
52
53void MockBrowsingDataDatabaseHelper::Reset() {
54  for (std::map<const std::string, bool>::iterator i = databases_.begin();
55       i != databases_.end(); ++i)
56    i->second = true;
57}
58
59bool MockBrowsingDataDatabaseHelper::AllDeleted() {
60  for (std::map<const std::string, bool>::const_iterator i = databases_.begin();
61       i != databases_.end(); ++i)
62    if (i->second)
63      return false;
64  return true;
65}
66