15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "net/cookies/cookie_store_test_callbacks.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
79ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch#include "base/message_loop/message_loop.h"
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/threading/thread.h"
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h"
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace net {
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)CookieCallback::CookieCallback(base::Thread* run_in_thread)
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    : did_run_(false),
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      run_in_thread_(run_in_thread),
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      run_in_loop_(NULL),
1790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)      parent_loop_(base::MessageLoop::current()),
1890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)      loop_to_quit_(base::MessageLoop::current()) {}
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)CookieCallback::CookieCallback()
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    : did_run_(false),
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      run_in_thread_(NULL),
2390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)      run_in_loop_(base::MessageLoop::current()),
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      parent_loop_(NULL),
2590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)      loop_to_quit_(base::MessageLoop::current()) {}
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void CookieCallback::CallbackEpilogue() {
2890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  base::MessageLoop* expected_loop = NULL;
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (run_in_thread_) {
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    DCHECK(!run_in_loop_);
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    expected_loop = run_in_thread_->message_loop();
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  } else if (run_in_loop_) {
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    expected_loop = run_in_loop_;
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(expected_loop != NULL);
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  did_run_ = true;
3890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  EXPECT_EQ(expected_loop, base::MessageLoop::current());
3990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  loop_to_quit_->PostTask(FROM_HERE, base::MessageLoop::QuitClosure());
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)StringResultCookieCallback::StringResultCookieCallback() {}
4390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)StringResultCookieCallback::StringResultCookieCallback(
4490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    base::Thread* run_in_thread)
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    : CookieCallback(run_in_thread) {}
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)NoResultCookieCallback::NoResultCookieCallback() {}
4890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)NoResultCookieCallback::NoResultCookieCallback(base::Thread* run_in_thread)
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    : CookieCallback(run_in_thread) {}
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace net
52