blob: 5e711d0acade95475da67fdd3e108347feb3c9f8 [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 "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