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 "net/cookies/cookie_store_test_helpers.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/bind.h"
89ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch#include "base/message_loop/message_loop.h"
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace net {
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const int kDelayedTime = 0;
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)DelayedCookieMonster::DelayedCookieMonster()
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      : cookie_monster_(new CookieMonster(NULL, NULL)),
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        did_run_(false),
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        result_(false) {
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)DelayedCookieMonster::~DelayedCookieMonster() {
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void DelayedCookieMonster::SetCookiesInternalCallback(bool result) {
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  result_ = result;
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  did_run_ = true;
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void DelayedCookieMonster::GetCookiesWithOptionsInternalCallback(
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const std::string& cookie) {
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  cookie_ = cookie;
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  did_run_ = true;
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void DelayedCookieMonster::SetCookieWithOptionsAsync(
352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const GURL& url,
362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const std::string& cookie_line,
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const CookieOptions& options,
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const CookieMonster::SetCookiesCallback& callback) {
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  did_run_ = false;
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  cookie_monster_->SetCookieWithOptionsAsync(
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      url, cookie_line, options,
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      base::Bind(&DelayedCookieMonster::SetCookiesInternalCallback,
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                 base::Unretained(this)));
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK_EQ(did_run_, true);
4590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  base::MessageLoop::current()->PostDelayedTask(
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      FROM_HERE,
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      base::Bind(&DelayedCookieMonster::InvokeSetCookiesCallback,
4890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)                 base::Unretained(this),
4990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)                 callback),
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      base::TimeDelta::FromMilliseconds(kDelayedTime));
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void DelayedCookieMonster::GetCookiesWithOptionsAsync(
542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const GURL& url,
552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const CookieOptions& options,
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const CookieMonster::GetCookiesCallback& callback) {
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  did_run_ = false;
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  cookie_monster_->GetCookiesWithOptionsAsync(
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      url, options,
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      base::Bind(&DelayedCookieMonster::GetCookiesWithOptionsInternalCallback,
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                 base::Unretained(this)));
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK_EQ(did_run_, true);
6390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  base::MessageLoop::current()->PostDelayedTask(
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      FROM_HERE,
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      base::Bind(&DelayedCookieMonster::InvokeGetCookieStringCallback,
6690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)                 base::Unretained(this),
6790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)                 callback),
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      base::TimeDelta::FromMilliseconds(kDelayedTime));
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
71effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochvoid DelayedCookieMonster::GetAllCookiesForURLAsync(
72effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch    const GURL& url,
73effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch    const GetCookieListCallback& callback) {
74effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  cookie_monster_->GetAllCookiesForURLAsync(url, callback);
75effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch}
76effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void DelayedCookieMonster::InvokeSetCookiesCallback(
785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const CookieMonster::SetCookiesCallback& callback) {
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (!callback.is_null())
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    callback.Run(result_);
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void DelayedCookieMonster::InvokeGetCookieStringCallback(
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const CookieMonster::GetCookiesCallback& callback) {
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (!callback.is_null())
865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    callback.Run(cookie_);
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool DelayedCookieMonster::SetCookieWithOptions(
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const GURL& url,
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const std::string& cookie_line,
925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const CookieOptions& options) {
935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ADD_FAILURE();
945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return false;
955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)std::string DelayedCookieMonster::GetCookiesWithOptions(
985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const GURL& url,
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const CookieOptions& options) {
1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ADD_FAILURE();
101c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  return std::string();
1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void DelayedCookieMonster::DeleteCookie(const GURL& url,
1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                        const std::string& cookie_name) {
1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ADD_FAILURE();
1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void DelayedCookieMonster::DeleteCookieAsync(const GURL& url,
1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                             const std::string& cookie_name,
1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                             const base::Closure& callback) {
1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ADD_FAILURE();
1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void DelayedCookieMonster::DeleteAllCreatedBetweenAsync(
1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const base::Time& delete_begin,
1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const base::Time& delete_end,
1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const DeleteCallback& callback) {
1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ADD_FAILURE();
1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)void DelayedCookieMonster::DeleteAllCreatedBetweenForHostAsync(
1235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    const base::Time delete_begin,
1245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    const base::Time delete_end,
1255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    const GURL& url,
1265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    const DeleteCallback& callback) {
1275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  ADD_FAILURE();
1285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}
1295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void DelayedCookieMonster::DeleteSessionCookiesAsync(const DeleteCallback&) {
1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ADD_FAILURE();
1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)CookieMonster* DelayedCookieMonster::GetCookieMonster() {
135868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  return cookie_monster_.get();
1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace net
139