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::InvokeSetCookiesCallback( 72 const CookieMonster::SetCookiesCallback& callback) { 73 if (!callback.is_null()) 74 callback.Run(result_); 75 } 76 77 void DelayedCookieMonster::InvokeGetCookieStringCallback( 78 const CookieMonster::GetCookiesCallback& callback) { 79 if (!callback.is_null()) 80 callback.Run(cookie_); 81 } 82 83 bool DelayedCookieMonster::SetCookieWithOptions( 84 const GURL& url, 85 const std::string& cookie_line, 86 const CookieOptions& options) { 87 ADD_FAILURE(); 88 return false; 89 } 90 91 std::string DelayedCookieMonster::GetCookiesWithOptions( 92 const GURL& url, 93 const CookieOptions& options) { 94 ADD_FAILURE(); 95 return std::string(); 96 } 97 98 void DelayedCookieMonster::DeleteCookie(const GURL& url, 99 const std::string& cookie_name) { 100 ADD_FAILURE(); 101 } 102 103 void DelayedCookieMonster::DeleteCookieAsync(const GURL& url, 104 const std::string& cookie_name, 105 const base::Closure& callback) { 106 ADD_FAILURE(); 107 } 108 109 void DelayedCookieMonster::DeleteAllCreatedBetweenAsync( 110 const base::Time& delete_begin, 111 const base::Time& delete_end, 112 const DeleteCallback& callback) { 113 ADD_FAILURE(); 114 } 115 116 void DelayedCookieMonster::DeleteSessionCookiesAsync(const DeleteCallback&) { 117 ADD_FAILURE(); 118 } 119 120 CookieMonster* DelayedCookieMonster::GetCookieMonster() { 121 return cookie_monster_.get(); 122 } 123 124 } // namespace net 125