[email protected] | b0d7aa36 | 2012-02-03 18:19:15 | [diff] [blame] | 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 | |||||
[email protected] | 63ee33bd | 2012-03-15 09:29:58 | [diff] [blame] | 5 | #include "net/cookies/cookie_store_test_callbacks.h" |
[email protected] | b0d7aa36 | 2012-02-03 18:19:15 | [diff] [blame] | 6 | |
skyostil | 4891b25b | 2015-06-11 11:43:45 | [diff] [blame] | 7 | #include "base/location.h" |
Patrick Monette | 643cdf6 | 2021-10-15 19:13:42 | [diff] [blame] | 8 | #include "base/task/single_thread_task_runner.h" |
[email protected] | b0d7aa36 | 2012-02-03 18:19:15 | [diff] [blame] | 9 | #include "base/threading/thread.h" |
Alexander Timin | 0439ffe | 2018-10-30 18:10:00 | [diff] [blame] | 10 | #include "base/threading/thread_task_runner_handle.h" |
Lily Chen | f068a76 | 2019-08-21 21:10:50 | [diff] [blame] | 11 | #include "net/cookies/cookie_util.h" |
[email protected] | b0d7aa36 | 2012-02-03 18:19:15 | [diff] [blame] | 12 | #include "testing/gtest/include/gtest/gtest.h" |
13 | |||||
14 | namespace net { | ||||
15 | |||||
16 | CookieCallback::CookieCallback(base::Thread* run_in_thread) | ||||
Maks Orlovich | 36ebc4c | 2019-03-20 01:57:56 | [diff] [blame] | 17 | : run_in_thread_(run_in_thread), was_run_(false) {} |
[email protected] | b0d7aa36 | 2012-02-03 18:19:15 | [diff] [blame] | 18 | |
19 | CookieCallback::CookieCallback() | ||||
Raul Tambre | 94493c65 | 2019-03-11 17:18:35 | [diff] [blame] | 20 | : run_in_thread_(nullptr), |
Maks Orlovich | 36ebc4c | 2019-03-20 01:57:56 | [diff] [blame] | 21 | run_in_task_runner_(base::ThreadTaskRunnerHandle::Get()), |
22 | was_run_(false) {} | ||||
xunjieli | b2bec81 | 2016-01-27 23:08:09 | [diff] [blame] | 23 | |
Chris Watkins | 68b1503 | 2017-12-01 03:07:13 | [diff] [blame] | 24 | CookieCallback::~CookieCallback() = default; |
[email protected] | b0d7aa36 | 2012-02-03 18:19:15 | [diff] [blame] | 25 | |
Maks Orlovich | 36ebc4c | 2019-03-20 01:57:56 | [diff] [blame] | 26 | void CookieCallback::ValidateThread() const { |
Alexander Timin | 0439ffe | 2018-10-30 18:10:00 | [diff] [blame] | 27 | scoped_refptr<base::SingleThreadTaskRunner> expected_task_runner; |
[email protected] | b0d7aa36 | 2012-02-03 18:19:15 | [diff] [blame] | 28 | if (run_in_thread_) { |
Alexander Timin | 0439ffe | 2018-10-30 18:10:00 | [diff] [blame] | 29 | DCHECK(!run_in_task_runner_); |
30 | expected_task_runner = run_in_thread_->task_runner(); | ||||
31 | } else if (run_in_task_runner_) { | ||||
32 | expected_task_runner = run_in_task_runner_; | ||||
[email protected] | b0d7aa36 | 2012-02-03 18:19:15 | [diff] [blame] | 33 | } |
Alexander Timin | 0439ffe | 2018-10-30 18:10:00 | [diff] [blame] | 34 | ASSERT_TRUE(expected_task_runner); |
Alexander Timin | 0439ffe | 2018-10-30 18:10:00 | [diff] [blame] | 35 | EXPECT_TRUE(expected_task_runner->BelongsToCurrentThread()); |
Maks Orlovich | 36ebc4c | 2019-03-20 01:57:56 | [diff] [blame] | 36 | } |
37 | |||||
38 | void CookieCallback::CallbackEpilogue() { | ||||
39 | ValidateThread(); | ||||
40 | was_run_ = true; | ||||
xunjieli | b2bec81 | 2016-01-27 23:08:09 | [diff] [blame] | 41 | loop_to_quit_.Quit(); |
42 | } | ||||
43 | |||||
44 | void CookieCallback::WaitUntilDone() { | ||||
45 | loop_to_quit_.Run(); | ||||
[email protected] | b0d7aa36 | 2012-02-03 18:19:15 | [diff] [blame] | 46 | } |
47 | |||||
Maks Orlovich | 36ebc4c | 2019-03-20 01:57:56 | [diff] [blame] | 48 | bool CookieCallback::was_run() const { |
49 | ValidateThread(); | ||||
50 | return was_run_; | ||||
51 | } | ||||
52 | |||||
Chris Watkins | 68b1503 | 2017-12-01 03:07:13 | [diff] [blame] | 53 | NoResultCookieCallback::NoResultCookieCallback() = default; |
[email protected] | f6c58823 | 2013-05-22 12:43:40 | [diff] [blame] | 54 | NoResultCookieCallback::NoResultCookieCallback(base::Thread* run_in_thread) |
[email protected] | b0d7aa36 | 2012-02-03 18:19:15 | [diff] [blame] | 55 | : CookieCallback(run_in_thread) {} |
56 | |||||
Chris Watkins | 68b1503 | 2017-12-01 03:07:13 | [diff] [blame] | 57 | GetCookieListCallback::GetCookieListCallback() = default; |
mmenke | 9fa44f2d | 2016-01-22 23:36:39 | [diff] [blame] | 58 | GetCookieListCallback::GetCookieListCallback(base::Thread* run_in_thread) |
59 | : CookieCallback(run_in_thread) {} | ||||
60 | |||||
Chris Watkins | 68b1503 | 2017-12-01 03:07:13 | [diff] [blame] | 61 | GetCookieListCallback::~GetCookieListCallback() = default; |
mmenke | 9fa44f2d | 2016-01-22 23:36:39 | [diff] [blame] | 62 | |
Ayu Ishii | bc6fdb0a | 2020-06-08 22:59:19 | [diff] [blame] | 63 | void GetCookieListCallback::Run( |
64 | const CookieAccessResultList& cookies, | ||||
65 | const CookieAccessResultList& excluded_cookies) { | ||||
66 | cookies_with_access_results_ = cookies; | ||||
67 | cookies_ = cookie_util::StripAccessResults(cookies); | ||||
Aaron Tagliaboschi | 29033b7f | 2019-01-31 19:58:20 | [diff] [blame] | 68 | excluded_cookies_ = excluded_cookies; |
mmenke | 9fa44f2d | 2016-01-22 23:36:39 | [diff] [blame] | 69 | CallbackEpilogue(); |
70 | } | ||||
71 | |||||
Lily Chen | f068a76 | 2019-08-21 21:10:50 | [diff] [blame] | 72 | GetAllCookiesCallback::GetAllCookiesCallback() = default; |
73 | GetAllCookiesCallback::GetAllCookiesCallback(base::Thread* run_in_thread) | ||||
74 | : CookieCallback(run_in_thread) {} | ||||
75 | |||||
76 | GetAllCookiesCallback::~GetAllCookiesCallback() = default; | ||||
77 | |||||
78 | void GetAllCookiesCallback::Run(const CookieList& cookies) { | ||||
79 | cookies_ = cookies; | ||||
80 | CallbackEpilogue(); | ||||
81 | } | ||||
82 | |||||
Lily Chen | e2e9ae01 | 2019-10-09 20:02:54 | [diff] [blame] | 83 | GetAllCookiesWithAccessSemanticsCallback:: |
84 | GetAllCookiesWithAccessSemanticsCallback() = default; | ||||
85 | GetAllCookiesWithAccessSemanticsCallback:: | ||||
86 | GetAllCookiesWithAccessSemanticsCallback(base::Thread* run_in_thread) | ||||
87 | : CookieCallback(run_in_thread) {} | ||||
88 | |||||
89 | GetAllCookiesWithAccessSemanticsCallback:: | ||||
90 | ~GetAllCookiesWithAccessSemanticsCallback() = default; | ||||
91 | |||||
92 | void GetAllCookiesWithAccessSemanticsCallback::Run( | ||||
93 | const CookieList& cookies, | ||||
94 | const std::vector<CookieAccessSemantics>& access_semantics_list) { | ||||
95 | cookies_ = cookies; | ||||
96 | access_semantics_list_ = access_semantics_list; | ||||
97 | CallbackEpilogue(); | ||||
98 | } | ||||
99 | |||||
[email protected] | b0d7aa36 | 2012-02-03 18:19:15 | [diff] [blame] | 100 | } // namespace net |