cookie_store_test_callbacks.cc 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  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. #include "net/cookies/cookie_store_test_callbacks.h"
  5. #include "base/location.h"
  6. #include "base/task/single_thread_task_runner.h"
  7. #include "base/threading/thread.h"
  8. #include "base/threading/thread_task_runner_handle.h"
  9. #include "net/cookies/cookie_util.h"
  10. #include "testing/gtest/include/gtest/gtest.h"
  11. namespace net {
  12. CookieCallback::CookieCallback(base::Thread* run_in_thread)
  13. : run_in_thread_(run_in_thread) {}
  14. CookieCallback::CookieCallback()
  15. : run_in_thread_(nullptr),
  16. run_in_task_runner_(base::ThreadTaskRunnerHandle::Get()) {}
  17. CookieCallback::~CookieCallback() = default;
  18. void CookieCallback::ValidateThread() const {
  19. scoped_refptr<base::SingleThreadTaskRunner> expected_task_runner;
  20. if (run_in_thread_) {
  21. DCHECK(!run_in_task_runner_);
  22. expected_task_runner = run_in_thread_->task_runner();
  23. } else if (run_in_task_runner_) {
  24. expected_task_runner = run_in_task_runner_;
  25. }
  26. ASSERT_TRUE(expected_task_runner);
  27. EXPECT_TRUE(expected_task_runner->BelongsToCurrentThread());
  28. }
  29. void CookieCallback::CallbackEpilogue() {
  30. ValidateThread();
  31. was_run_ = true;
  32. loop_to_quit_.Quit();
  33. }
  34. void CookieCallback::WaitUntilDone() {
  35. loop_to_quit_.Run();
  36. }
  37. bool CookieCallback::was_run() const {
  38. ValidateThread();
  39. return was_run_;
  40. }
  41. NoResultCookieCallback::NoResultCookieCallback() = default;
  42. NoResultCookieCallback::NoResultCookieCallback(base::Thread* run_in_thread)
  43. : CookieCallback(run_in_thread) {}
  44. GetCookieListCallback::GetCookieListCallback() = default;
  45. GetCookieListCallback::GetCookieListCallback(base::Thread* run_in_thread)
  46. : CookieCallback(run_in_thread) {}
  47. GetCookieListCallback::~GetCookieListCallback() = default;
  48. void GetCookieListCallback::Run(
  49. const CookieAccessResultList& cookies,
  50. const CookieAccessResultList& excluded_cookies) {
  51. cookies_with_access_results_ = cookies;
  52. cookies_ = cookie_util::StripAccessResults(cookies);
  53. excluded_cookies_ = excluded_cookies;
  54. CallbackEpilogue();
  55. }
  56. GetAllCookiesCallback::GetAllCookiesCallback() = default;
  57. GetAllCookiesCallback::GetAllCookiesCallback(base::Thread* run_in_thread)
  58. : CookieCallback(run_in_thread) {}
  59. GetAllCookiesCallback::~GetAllCookiesCallback() = default;
  60. void GetAllCookiesCallback::Run(const CookieList& cookies) {
  61. cookies_ = cookies;
  62. CallbackEpilogue();
  63. }
  64. GetAllCookiesWithAccessSemanticsCallback::
  65. GetAllCookiesWithAccessSemanticsCallback() = default;
  66. GetAllCookiesWithAccessSemanticsCallback::
  67. GetAllCookiesWithAccessSemanticsCallback(base::Thread* run_in_thread)
  68. : CookieCallback(run_in_thread) {}
  69. GetAllCookiesWithAccessSemanticsCallback::
  70. ~GetAllCookiesWithAccessSemanticsCallback() = default;
  71. void GetAllCookiesWithAccessSemanticsCallback::Run(
  72. const CookieList& cookies,
  73. const std::vector<CookieAccessSemantics>& access_semantics_list) {
  74. cookies_ = cookies;
  75. access_semantics_list_ = access_semantics_list;
  76. CallbackEpilogue();
  77. }
  78. } // namespace net