1 // Copyright 2012 The Chromium Authors 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_callbacks.h" 6 7 #include "base/location.h" 8 #include "base/task/single_thread_task_runner.h" 9 #include "base/threading/thread.h" 10 #include "net/cookies/cookie_util.h" 11 #include "testing/gtest/include/gtest/gtest.h" 12 13 namespace net { 14 CookieCallback(base::Thread * run_in_thread)15CookieCallback::CookieCallback(base::Thread* run_in_thread) 16 : run_in_thread_(run_in_thread) {} 17 CookieCallback()18CookieCallback::CookieCallback() 19 : run_in_thread_(nullptr), 20 run_in_task_runner_(base::SingleThreadTaskRunner::GetCurrentDefault()) {} 21 22 CookieCallback::~CookieCallback() = default; 23 ValidateThread() const24void CookieCallback::ValidateThread() const { 25 scoped_refptr<base::SingleThreadTaskRunner> expected_task_runner; 26 if (run_in_thread_) { 27 DCHECK(!run_in_task_runner_); 28 expected_task_runner = run_in_thread_->task_runner(); 29 } else if (run_in_task_runner_) { 30 expected_task_runner = run_in_task_runner_; 31 } 32 ASSERT_TRUE(expected_task_runner); 33 EXPECT_TRUE(expected_task_runner->BelongsToCurrentThread()); 34 } 35 CallbackEpilogue()36void CookieCallback::CallbackEpilogue() { 37 ValidateThread(); 38 was_run_ = true; 39 loop_to_quit_.Quit(); 40 } 41 WaitUntilDone()42void CookieCallback::WaitUntilDone() { 43 loop_to_quit_.Run(); 44 } 45 was_run() const46bool CookieCallback::was_run() const { 47 ValidateThread(); 48 return was_run_; 49 } 50 51 NoResultCookieCallback::NoResultCookieCallback() = default; NoResultCookieCallback(base::Thread * run_in_thread)52NoResultCookieCallback::NoResultCookieCallback(base::Thread* run_in_thread) 53 : CookieCallback(run_in_thread) {} 54 55 GetCookieListCallback::GetCookieListCallback() = default; GetCookieListCallback(base::Thread * run_in_thread)56GetCookieListCallback::GetCookieListCallback(base::Thread* run_in_thread) 57 : CookieCallback(run_in_thread) {} 58 59 GetCookieListCallback::~GetCookieListCallback() = default; 60 Run(const CookieAccessResultList & cookies,const CookieAccessResultList & excluded_cookies)61void GetCookieListCallback::Run( 62 const CookieAccessResultList& cookies, 63 const CookieAccessResultList& excluded_cookies) { 64 cookies_with_access_results_ = cookies; 65 cookies_ = cookie_util::StripAccessResults(cookies); 66 excluded_cookies_ = excluded_cookies; 67 CallbackEpilogue(); 68 } 69 70 GetAllCookiesCallback::GetAllCookiesCallback() = default; GetAllCookiesCallback(base::Thread * run_in_thread)71GetAllCookiesCallback::GetAllCookiesCallback(base::Thread* run_in_thread) 72 : CookieCallback(run_in_thread) {} 73 74 GetAllCookiesCallback::~GetAllCookiesCallback() = default; 75 Run(const CookieList & cookies)76void GetAllCookiesCallback::Run(const CookieList& cookies) { 77 cookies_ = cookies; 78 CallbackEpilogue(); 79 } 80 81 GetAllCookiesWithAccessSemanticsCallback:: 82 GetAllCookiesWithAccessSemanticsCallback() = default; 83 GetAllCookiesWithAccessSemanticsCallback:: GetAllCookiesWithAccessSemanticsCallback(base::Thread * run_in_thread)84 GetAllCookiesWithAccessSemanticsCallback(base::Thread* run_in_thread) 85 : CookieCallback(run_in_thread) {} 86 87 GetAllCookiesWithAccessSemanticsCallback:: 88 ~GetAllCookiesWithAccessSemanticsCallback() = default; 89 Run(const CookieList & cookies,const std::vector<CookieAccessSemantics> & access_semantics_list)90void GetAllCookiesWithAccessSemanticsCallback::Run( 91 const CookieList& cookies, 92 const std::vector<CookieAccessSemantics>& access_semantics_list) { 93 cookies_ = cookies; 94 access_semantics_list_ = access_semantics_list; 95 CallbackEpilogue(); 96 } 97 98 } // namespace net 99