| // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| // 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/message_loop/message_loop.h" |
| #include "base/single_thread_task_runner.h" |
| #include "base/threading/thread.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| |
| namespace net { |
| |
| CookieCallback::CookieCallback(base::Thread* run_in_thread) |
| : run_in_thread_(run_in_thread), run_in_loop_(NULL) {} |
| |
| CookieCallback::CookieCallback() |
| : run_in_thread_(NULL), run_in_loop_(base::MessageLoop::current()) {} |
| |
| CookieCallback::~CookieCallback() = default; |
| |
| void CookieCallback::CallbackEpilogue() { |
| base::MessageLoop* expected_loop = NULL; |
| if (run_in_thread_) { |
| DCHECK(!run_in_loop_); |
| expected_loop = run_in_thread_->message_loop(); |
| } else if (run_in_loop_) { |
| expected_loop = run_in_loop_; |
| } |
| ASSERT_TRUE(expected_loop != NULL); |
| |
| EXPECT_EQ(expected_loop, base::MessageLoop::current()); |
| loop_to_quit_.Quit(); |
| } |
| |
| void CookieCallback::WaitUntilDone() { |
| loop_to_quit_.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 CookieList& cookies) { |
| cookies_ = cookies; |
| CallbackEpilogue(); |
| } |
| |
| } // namespace net |