Index: chrome/browser/after_startup_task_utils_unittest.cc |
diff --git a/chrome/browser/after_startup_task_utils_unittest.cc b/chrome/browser/after_startup_task_utils_unittest.cc |
index 5dd16a72d985812add02795a47783916c517573c..c1433b7211fd2e4bc873df6568bd7d12d718ca79 100644 |
--- a/chrome/browser/after_startup_task_utils_unittest.cc |
+++ b/chrome/browser/after_startup_task_utils_unittest.cc |
@@ -198,3 +198,29 @@ TEST_F(AfterStartupTaskTest, PostTask) { |
EXPECT_EQ(2, db_thread_->ran_task_count()); |
EXPECT_EQ(2, ui_thread_->ran_task_count()); |
} |
+ |
+// Verify that posting to an AfterStartupTaskUtils::Runner bound to |db_thread_| |
+// results in the same behavior as posting via |
+// AfterStartupTaskUtils::PostTask(..., db_thread_, ...). |
+TEST_F(AfterStartupTaskTest, AfterStartupTaskUtilsRunner) { |
+ scoped_refptr<base::TaskRunner> after_startup_runner = |
+ make_scoped_refptr(new AfterStartupTaskUtils::Runner(db_thread_)); |
+ |
+ EXPECT_FALSE(AfterStartupTaskUtils::IsBrowserStartupComplete()); |
+ after_startup_runner->PostTask( |
+ FROM_HERE, base::Bind(&AfterStartupTaskTest::VerifyExpectedThread, |
+ BrowserThread::DB)); |
+ |
+ RunLoop().RunUntilIdle(); |
+ EXPECT_FALSE(AfterStartupTaskUtils::IsBrowserStartupComplete()); |
+ EXPECT_EQ(0, db_thread_->total_task_count()); |
+ |
+ AfterStartupTaskUtils::SetBrowserStartupIsCompleteForTesting(); |
+ EXPECT_EQ(1, db_thread_->posted_task_count()); |
+ |
+ FlushDBThread(); |
+ RunLoop().RunUntilIdle(); |
+ EXPECT_EQ(1, db_thread_->ran_task_count()); |
+ |
+ EXPECT_EQ(0, ui_thread_->total_task_count()); |
+} |