blob: 091ae4da0bb7d38e653bc12d35e5b4ee47fcca1c [file] [log] [blame]
// 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 "base/threading/thread_task_runner_handle.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_(NULL),
run_in_task_runner_(base::ThreadTaskRunnerHandle::Get()) {}
CookieCallback::~CookieCallback() = default;
void CookieCallback::CallbackEpilogue() {
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());
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