15f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
25f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// found in the LICENSE file.
45f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
55f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "chrome/browser/browsing_data/mock_browsing_data_channel_id_helper.h"
65f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
75f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "base/logging.h"
86e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h"
95f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
105f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)MockBrowsingDataChannelIDHelper::MockBrowsingDataChannelIDHelper()
115f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    : BrowsingDataChannelIDHelper() {}
125f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
135f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)MockBrowsingDataChannelIDHelper::
145f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)~MockBrowsingDataChannelIDHelper() {}
155f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
165f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)void MockBrowsingDataChannelIDHelper::StartFetching(
175f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    const FetchResultCallback& callback) {
186e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  ASSERT_FALSE(callback.is_null());
196e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  ASSERT_TRUE(callback_.is_null());
205f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  callback_ = callback;
215f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)}
225f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
235f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)void MockBrowsingDataChannelIDHelper::DeleteChannelID(
245f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    const std::string& server_id) {
256e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  ASSERT_FALSE(callback_.is_null());
266e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  ASSERT_TRUE(channel_ids_.find(server_id) != channel_ids_.end());
275f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  channel_ids_[server_id] = false;
285f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)}
295f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
305f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)void MockBrowsingDataChannelIDHelper::AddChannelIDSample(
315f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    const std::string& server_id) {
326e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  ASSERT_TRUE(channel_ids_.find(server_id) == channel_ids_.end());
335f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  channel_id_list_.push_back(
345f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      net::ChannelIDStore::ChannelID(
355f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          server_id, base::Time(), base::Time(), "key", "cert"));
365f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  channel_ids_[server_id] = true;
375f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)}
385f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
395f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)void MockBrowsingDataChannelIDHelper::Notify() {
405f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  net::ChannelIDStore::ChannelIDList channel_id_list;
415f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  for (net::ChannelIDStore::ChannelIDList::iterator i =
425f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)       channel_id_list_.begin();
435f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)       i != channel_id_list_.end(); ++i) {
445f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    if (channel_ids_[i->server_identifier()])
455f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      channel_id_list.push_back(*i);
465f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  }
475f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  callback_.Run(channel_id_list);
485f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)}
495f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
505f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)void MockBrowsingDataChannelIDHelper::Reset() {
515f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  for (std::map<const std::string, bool>::iterator i =
525f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)       channel_ids_.begin();
535f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)       i != channel_ids_.end(); ++i)
545f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    i->second = true;
555f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)}
565f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
575f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)bool MockBrowsingDataChannelIDHelper::AllDeleted() {
585f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  for (std::map<const std::string, bool>::const_iterator i =
595f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)       channel_ids_.begin();
605f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)       i != channel_ids_.end(); ++i)
615f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    if (i->second)
625f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      return false;
635f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  return true;
645f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)}
65