1c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Copyright (c) 2010 The Chromium Authors. All rights reserved.
2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be
3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file.
4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
5c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/mock_browsing_data_database_helper.h"
6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
7c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "base/callback.h"
8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
9c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochMockBrowsingDataDatabaseHelper::MockBrowsingDataDatabaseHelper(
10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch    Profile* profile)
11c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch    : BrowsingDataDatabaseHelper(profile),
12c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      profile_(profile) {
13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}
14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
15c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochMockBrowsingDataDatabaseHelper::~MockBrowsingDataDatabaseHelper() {
16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}
17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochvoid MockBrowsingDataDatabaseHelper::StartFetching(
19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch    Callback1<const std::vector<DatabaseInfo>& >::Type* callback) {
20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  callback_.reset(callback);
21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}
22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochvoid MockBrowsingDataDatabaseHelper::CancelNotification() {
24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  callback_.reset(NULL);
25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}
26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
27c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochvoid MockBrowsingDataDatabaseHelper::DeleteDatabase(
28c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch    const std::string& origin,
29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch    const std::string& name) {
30c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  std::string key = origin + ":" + name;
31c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  CHECK(databases_.find(key) != databases_.end());
32c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  last_deleted_origin_ = origin;
33c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  last_deleted_db_ = name;
34c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  databases_[key] = false;
35c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}
36c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
37c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochvoid MockBrowsingDataDatabaseHelper::AddDatabaseSamples() {
38c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  response_.push_back(BrowsingDataDatabaseHelper::DatabaseInfo(
39c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      "gdbhost1", "db1", "http_gdbhost1_1", "description 1",
40c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      "http://gdbhost1:1/", 1, base::Time()));
41c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  databases_["http_gdbhost1_1:db1"] = true;
42c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  response_.push_back(BrowsingDataDatabaseHelper::DatabaseInfo(
43c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      "gdbhost2", "db2", "http_gdbhost2_2", "description 2",
44c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      "http://gdbhost2:2/", 2, base::Time()));
45c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  databases_["http_gdbhost2_2:db2"] = true;
46c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}
47c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
48c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochvoid MockBrowsingDataDatabaseHelper::Notify() {
49c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  CHECK(callback_.get());
50c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  callback_->Run(response_);
51c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}
52c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
53c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochvoid MockBrowsingDataDatabaseHelper::Reset() {
54c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  for (std::map<const std::string, bool>::iterator i = databases_.begin();
55c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch       i != databases_.end(); ++i)
56c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch    i->second = true;
57c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}
58c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
59c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochbool MockBrowsingDataDatabaseHelper::AllDeleted() {
60c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  for (std::map<const std::string, bool>::const_iterator i = databases_.begin();
61c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch       i != databases_.end(); ++i)
62c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch    if (i->second)
63c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      return false;
64c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  return true;
65c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}
66