xref: /aosp_15_r20/external/cronet/net/cookies/cookie_store_test_callbacks.cc (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
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)15 CookieCallback::CookieCallback(base::Thread* run_in_thread)
16     : run_in_thread_(run_in_thread) {}
17 
CookieCallback()18 CookieCallback::CookieCallback()
19     : run_in_thread_(nullptr),
20       run_in_task_runner_(base::SingleThreadTaskRunner::GetCurrentDefault()) {}
21 
22 CookieCallback::~CookieCallback() = default;
23 
ValidateThread() const24 void 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()36 void CookieCallback::CallbackEpilogue() {
37   ValidateThread();
38   was_run_ = true;
39   loop_to_quit_.Quit();
40 }
41 
WaitUntilDone()42 void CookieCallback::WaitUntilDone() {
43   loop_to_quit_.Run();
44 }
45 
was_run() const46 bool CookieCallback::was_run() const {
47   ValidateThread();
48   return was_run_;
49 }
50 
51 NoResultCookieCallback::NoResultCookieCallback() = default;
NoResultCookieCallback(base::Thread * run_in_thread)52 NoResultCookieCallback::NoResultCookieCallback(base::Thread* run_in_thread)
53     : CookieCallback(run_in_thread) {}
54 
55 GetCookieListCallback::GetCookieListCallback() = default;
GetCookieListCallback(base::Thread * run_in_thread)56 GetCookieListCallback::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)61 void 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)71 GetAllCookiesCallback::GetAllCookiesCallback(base::Thread* run_in_thread)
72     : CookieCallback(run_in_thread) {}
73 
74 GetAllCookiesCallback::~GetAllCookiesCallback() = default;
75 
Run(const CookieList & cookies)76 void 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)90 void 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