15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/browsing_data/mock_browsing_data_local_storage_helper.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/callback.h"
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/logging.h"
96e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h"
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)MockBrowsingDataLocalStorageHelper::MockBrowsingDataLocalStorageHelper(
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Profile* profile)
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    : BrowsingDataLocalStorageHelper(profile) {
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)MockBrowsingDataLocalStorageHelper::~MockBrowsingDataLocalStorageHelper() {
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void MockBrowsingDataLocalStorageHelper::StartFetching(
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const base::Callback<void(const std::list<LocalStorageInfo>&)>& callback) {
216e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  ASSERT_FALSE(callback.is_null());
226e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  ASSERT_TRUE(callback_.is_null());
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  callback_ = callback;
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void MockBrowsingDataLocalStorageHelper::DeleteOrigin(
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const GURL& origin) {
286e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  ASSERT_FALSE(callback_.is_null());
296e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  ASSERT_TRUE(origins_.find(origin) != origins_.end());
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  last_deleted_origin_ = origin;
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  origins_[origin] = false;
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void MockBrowsingDataLocalStorageHelper::AddLocalStorageSamples() {
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  const GURL kOrigin1("http://host1:1/");
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  const GURL kOrigin2("http://host2:2/");
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  response_.push_back(
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      BrowsingDataLocalStorageHelper::LocalStorageInfo(
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          kOrigin1, 1, base::Time()));
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  origins_[kOrigin1] = true;
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  response_.push_back(
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      BrowsingDataLocalStorageHelper::LocalStorageInfo(
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          kOrigin2, 2, base::Time()));
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  origins_[kOrigin2] = true;
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void MockBrowsingDataLocalStorageHelper::Notify() {
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  callback_.Run(response_);
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void MockBrowsingDataLocalStorageHelper::Reset() {
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  for (std::map<const GURL, bool>::iterator i = origins_.begin();
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       i != origins_.end(); ++i)
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    i->second = true;
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool MockBrowsingDataLocalStorageHelper::AllDeleted() {
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  for (std::map<const GURL, bool>::const_iterator i =
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       origins_.begin(); i != origins_.end(); ++i)
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if (i->second)
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      return false;
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return true;
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
64