diff options
Diffstat (limited to 'chrome/browser/mock_browsing_data_cookie_helper.cc')
-rw-r--r-- | chrome/browser/mock_browsing_data_cookie_helper.cc | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/chrome/browser/mock_browsing_data_cookie_helper.cc b/chrome/browser/mock_browsing_data_cookie_helper.cc new file mode 100644 index 0000000..2d85cab --- /dev/null +++ b/chrome/browser/mock_browsing_data_cookie_helper.cc @@ -0,0 +1,69 @@ +// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/mock_browsing_data_cookie_helper.h" + +MockBrowsingDataCookieHelper::MockBrowsingDataCookieHelper(Profile* profile) + : BrowsingDataCookieHelper(profile), + profile_(profile) { +} + +MockBrowsingDataCookieHelper::~MockBrowsingDataCookieHelper() { +} + +void MockBrowsingDataCookieHelper::StartFetching( + const net::CookieMonster::GetCookieListCallback &callback) { + callback_ = callback; +} + +void MockBrowsingDataCookieHelper::CancelNotification() { + callback_.Reset(); +} + +void MockBrowsingDataCookieHelper::DeleteCookie( + const net::CookieMonster::CanonicalCookie& cookie) { + std::string key = cookie.Name() + "=" + cookie.Value(); + CHECK(cookies_.find(key) != cookies_.end()); + cookies_[key] = false; +} + +void MockBrowsingDataCookieHelper::AddCookieSamples( + const GURL& url, const std::string& cookie_line) { + typedef net::CookieList::const_iterator cookie_iterator; + net::CookieMonster::ParsedCookie pc(cookie_line); + scoped_ptr<net::CookieMonster::CanonicalCookie> cc; + cc.reset(new net::CookieMonster::CanonicalCookie(url, pc)); + + if (cc.get()) { + for (cookie_iterator cookie = cookie_list_.begin(); + cookie != cookie_list_.end(); ++cookie) { + if (cookie->Name() == cc->Name() && + cookie->Domain() == cc->Domain()&& + cookie->Path() == cc->Path()) { + return; + } + } + cookie_list_.push_back(*cc); + cookies_[cookie_line] = true; + } +} + +void MockBrowsingDataCookieHelper::Notify() { + if (!callback_.is_null()) + callback_.Run(cookie_list_); +} + +void MockBrowsingDataCookieHelper::Reset() { + for (std::map<const std::string, bool>::iterator i = cookies_.begin(); + i != cookies_.end(); ++i) + i->second = true; +} + +bool MockBrowsingDataCookieHelper::AllDeleted() { + for (std::map<const std::string, bool>::const_iterator i = cookies_.begin(); + i != cookies_.end(); ++i) + if (i->second) + return false; + return true; +} |