| // Copyright 2012 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "net/cookies/cookie_store_test_callbacks.h" |
| |
| #include "base/location.h" |
| #include "base/task/single_thread_task_runner.h" |
| #include "base/threading/thread.h" |
| #include "net/cookies/cookie_util.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| |
| namespace net { |
| |
| CookieCallback::CookieCallback(base::Thread* run_in_thread) |
| : run_in_thread_(run_in_thread) {} |
| |
| CookieCallback::CookieCallback() |
| : run_in_thread_(nullptr), |
| run_in_task_runner_(base::SingleThreadTaskRunner::GetCurrentDefault()) {} |
| |
| CookieCallback::~CookieCallback() = default; |
| |
| void CookieCallback::ValidateThread() const { |
| scoped_refptr<base::SingleThreadTaskRunner> expected_task_runner; |
| if (run_in_thread_) { |
| DCHECK(!run_in_task_runner_); |
| expected_task_runner = run_in_thread_->task_runner(); |
| } else if (run_in_task_runner_) { |
| expected_task_runner = run_in_task_runner_; |
| } |
| ASSERT_TRUE(expected_task_runner); |
| EXPECT_TRUE(expected_task_runner->BelongsToCurrentThread()); |
| } |
| |
| void CookieCallback::CallbackEpilogue() { |
| ValidateThread(); |
| was_run_ = true; |
| loop_to_quit_.Quit(); |
| } |
| |
| void CookieCallback::WaitUntilDone() { |
| loop_to_quit_.Run(); |
| } |
| |
| bool CookieCallback::was_run() const { |
| ValidateThread(); |
| return was_run_; |
| } |
| |
| NoResultCookieCallback::NoResultCookieCallback() = default; |
| NoResultCookieCallback::NoResultCookieCallback(base::Thread* run_in_thread) |
| : CookieCallback(run_in_thread) {} |
| |
| GetCookieListCallback::GetCookieListCallback() = default; |
| GetCookieListCallback::GetCookieListCallback(base::Thread* run_in_thread) |
| : CookieCallback(run_in_thread) {} |
| |
| GetCookieListCallback::~GetCookieListCallback() = default; |
| |
| void GetCookieListCallback::Run( |
| const CookieAccessResultList& cookies, |
| const CookieAccessResultList& excluded_cookies) { |
| cookies_with_access_results_ = cookies; |
| cookies_ = cookie_util::StripAccessResults(cookies); |
| excluded_cookies_ = excluded_cookies; |
| CallbackEpilogue(); |
| } |
| |
| GetAllCookiesCallback::GetAllCookiesCallback() = default; |
| GetAllCookiesCallback::GetAllCookiesCallback(base::Thread* run_in_thread) |
| : CookieCallback(run_in_thread) {} |
| |
| GetAllCookiesCallback::~GetAllCookiesCallback() = default; |
| |
| void GetAllCookiesCallback::Run(const CookieList& cookies) { |
| cookies_ = cookies; |
| CallbackEpilogue(); |
| } |
| |
| GetAllCookiesWithAccessSemanticsCallback:: |
| GetAllCookiesWithAccessSemanticsCallback() = default; |
| GetAllCookiesWithAccessSemanticsCallback:: |
| GetAllCookiesWithAccessSemanticsCallback(base::Thread* run_in_thread) |
| : CookieCallback(run_in_thread) {} |
| |
| GetAllCookiesWithAccessSemanticsCallback:: |
| ~GetAllCookiesWithAccessSemanticsCallback() = default; |
| |
| void GetAllCookiesWithAccessSemanticsCallback::Run( |
| const CookieList& cookies, |
| const std::vector<CookieAccessSemantics>& access_semantics_list) { |
| cookies_ = cookies; |
| access_semantics_list_ = access_semantics_list; |
| CallbackEpilogue(); |
| } |
| |
| } // namespace net |