diff options
Diffstat (limited to 'content/browser/browser_thread_unittest.cc')
-rw-r--r-- | content/browser/browser_thread_unittest.cc | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/content/browser/browser_thread_unittest.cc b/content/browser/browser_thread_unittest.cc index 0a3ff17..f5f6e47 100644 --- a/content/browser/browser_thread_unittest.cc +++ b/content/browser/browser_thread_unittest.cc @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +#include "base/bind.h" #include "base/memory/scoped_ptr.h" #include "base/message_loop.h" #include "base/message_loop_proxy.h" @@ -34,6 +35,9 @@ class BrowserThreadTest : public testing::Test { message_loop->PostTask(FROM_HERE, new MessageLoop::QuitTask); } + static void DoNothing() { + } + class DummyTask : public Task { public: explicit DummyTask(bool* deleted) : deleted_(deleted) { } @@ -130,6 +134,19 @@ TEST_F(BrowserThreadTest, ReleaseViaMessageLoopProxy) { MessageLoop::current()->Run(); } +TEST_F(BrowserThreadTest, PostTaskAndReply) { + // Most of the heavy testing for PostTaskAndReply() is done inside the + // MessageLoopProxy test. This just makes sure we get piped through at all. + ASSERT_TRUE(BrowserThread::PostTaskAndReply( + BrowserThread::FILE, + FROM_HERE, + base::Bind(&BrowserThreadTest::DoNothing), + base::Bind(&MessageLoop::Quit, + base::Unretained(MessageLoop::current()->current())))); + MessageLoop::current()->Run(); +} + + TEST_F(BrowserThreadTest, TaskToNonExistentThreadIsDeletedViaMessageLoopProxy) { bool deleted = false; scoped_refptr<base::MessageLoopProxy> message_loop_proxy = @@ -163,4 +180,3 @@ TEST_F(BrowserThreadTest, PostTaskViaMessageLoopProxyAfterThreadIsDeleted) { EXPECT_FALSE(ret); EXPECT_TRUE(deleted); } - |