Home | History | Annotate | Download | only in cookies
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "net/cookies/cookie_store_test_helpers.h"
      6 
      7 #include "base/bind.h"
      8 #include "base/message_loop/message_loop.h"
      9 
     10 namespace net {
     11 
     12 const int kDelayedTime = 0;
     13 
     14 DelayedCookieMonster::DelayedCookieMonster()
     15       : cookie_monster_(new CookieMonster(NULL, NULL)),
     16         did_run_(false),
     17         result_(false) {
     18 }
     19 
     20 DelayedCookieMonster::~DelayedCookieMonster() {
     21 }
     22 
     23 void DelayedCookieMonster::SetCookiesInternalCallback(bool result) {
     24   result_ = result;
     25   did_run_ = true;
     26 }
     27 
     28 void DelayedCookieMonster::GetCookiesWithOptionsInternalCallback(
     29     const std::string& cookie) {
     30   cookie_ = cookie;
     31   did_run_ = true;
     32 }
     33 
     34 void DelayedCookieMonster::SetCookieWithOptionsAsync(
     35     const GURL& url,
     36     const std::string& cookie_line,
     37     const CookieOptions& options,
     38     const CookieMonster::SetCookiesCallback& callback) {
     39   did_run_ = false;
     40   cookie_monster_->SetCookieWithOptionsAsync(
     41       url, cookie_line, options,
     42       base::Bind(&DelayedCookieMonster::SetCookiesInternalCallback,
     43                  base::Unretained(this)));
     44   DCHECK_EQ(did_run_, true);
     45   base::MessageLoop::current()->PostDelayedTask(
     46       FROM_HERE,
     47       base::Bind(&DelayedCookieMonster::InvokeSetCookiesCallback,
     48                  base::Unretained(this),
     49                  callback),
     50       base::TimeDelta::FromMilliseconds(kDelayedTime));
     51 }
     52 
     53 void DelayedCookieMonster::GetCookiesWithOptionsAsync(
     54     const GURL& url,
     55     const CookieOptions& options,
     56     const CookieMonster::GetCookiesCallback& callback) {
     57   did_run_ = false;
     58   cookie_monster_->GetCookiesWithOptionsAsync(
     59       url, options,
     60       base::Bind(&DelayedCookieMonster::GetCookiesWithOptionsInternalCallback,
     61                  base::Unretained(this)));
     62   DCHECK_EQ(did_run_, true);
     63   base::MessageLoop::current()->PostDelayedTask(
     64       FROM_HERE,
     65       base::Bind(&DelayedCookieMonster::InvokeGetCookieStringCallback,
     66                  base::Unretained(this),
     67                  callback),
     68       base::TimeDelta::FromMilliseconds(kDelayedTime));
     69 }
     70 
     71 void DelayedCookieMonster::GetAllCookiesForURLAsync(
     72     const GURL& url,
     73     const GetCookieListCallback& callback) {
     74   cookie_monster_->GetAllCookiesForURLAsync(url, callback);
     75 }
     76 
     77 void DelayedCookieMonster::InvokeSetCookiesCallback(
     78     const CookieMonster::SetCookiesCallback& callback) {
     79   if (!callback.is_null())
     80     callback.Run(result_);
     81 }
     82 
     83 void DelayedCookieMonster::InvokeGetCookieStringCallback(
     84     const CookieMonster::GetCookiesCallback& callback) {
     85   if (!callback.is_null())
     86     callback.Run(cookie_);
     87 }
     88 
     89 bool DelayedCookieMonster::SetCookieWithOptions(
     90     const GURL& url,
     91     const std::string& cookie_line,
     92     const CookieOptions& options) {
     93   ADD_FAILURE();
     94   return false;
     95 }
     96 
     97 std::string DelayedCookieMonster::GetCookiesWithOptions(
     98     const GURL& url,
     99     const CookieOptions& options) {
    100   ADD_FAILURE();
    101   return std::string();
    102 }
    103 
    104 void DelayedCookieMonster::DeleteCookie(const GURL& url,
    105                                         const std::string& cookie_name) {
    106   ADD_FAILURE();
    107 }
    108 
    109 void DelayedCookieMonster::DeleteCookieAsync(const GURL& url,
    110                                              const std::string& cookie_name,
    111                                              const base::Closure& callback) {
    112   ADD_FAILURE();
    113 }
    114 
    115 void DelayedCookieMonster::DeleteAllCreatedBetweenAsync(
    116     const base::Time& delete_begin,
    117     const base::Time& delete_end,
    118     const DeleteCallback& callback) {
    119   ADD_FAILURE();
    120 }
    121 
    122 void DelayedCookieMonster::DeleteAllCreatedBetweenForHostAsync(
    123     const base::Time delete_begin,
    124     const base::Time delete_end,
    125     const GURL& url,
    126     const DeleteCallback& callback) {
    127   ADD_FAILURE();
    128 }
    129 
    130 void DelayedCookieMonster::DeleteSessionCookiesAsync(const DeleteCallback&) {
    131   ADD_FAILURE();
    132 }
    133 
    134 CookieMonster* DelayedCookieMonster::GetCookieMonster() {
    135   return cookie_monster_.get();
    136 }
    137 
    138 }  // namespace net
    139