Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(15)

Side by Side Diff: chrome/browser/after_startup_task_utils_unittest.cc

Issue 1456703003: AfterStartupTask: Use ForTesting() method rather than friends. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/after_startup_task_utils.h" 5 #include "chrome/browser/after_startup_task_utils.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/memory/ref_counted.h" 9 #include "base/memory/ref_counted.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
132 TestBrowserThreadBundle browser_thread_bundle_; 132 TestBrowserThreadBundle browser_thread_bundle_;
133 }; 133 };
134 134
135 TEST_F(AfterStartupTaskTest, IsStartupComplete) { 135 TEST_F(AfterStartupTaskTest, IsStartupComplete) {
136 // Check IsBrowserStartupComplete on a background thread first to 136 // Check IsBrowserStartupComplete on a background thread first to
137 // verify that it does not allocate the underlying flag on that thread. 137 // verify that it does not allocate the underlying flag on that thread.
138 // That allocation thread correctness part of this test relies on 138 // That allocation thread correctness part of this test relies on
139 // the DCHECK in CancellationFlag::Set(). 139 // the DCHECK in CancellationFlag::Set().
140 EXPECT_FALSE(GetIsBrowserStartupCompleteFromDBThread()); 140 EXPECT_FALSE(GetIsBrowserStartupCompleteFromDBThread());
141 EXPECT_FALSE(AfterStartupTaskUtils::IsBrowserStartupComplete()); 141 EXPECT_FALSE(AfterStartupTaskUtils::IsBrowserStartupComplete());
142 AfterStartupTaskUtils::SetBrowserStartupIsComplete(); 142 AfterStartupTaskUtils::SetBrowserStartupIsCompleteForTesting();
143 EXPECT_TRUE(AfterStartupTaskUtils::IsBrowserStartupComplete()); 143 EXPECT_TRUE(AfterStartupTaskUtils::IsBrowserStartupComplete());
144 EXPECT_TRUE(GetIsBrowserStartupCompleteFromDBThread()); 144 EXPECT_TRUE(GetIsBrowserStartupCompleteFromDBThread());
145 } 145 }
146 146
147 TEST_F(AfterStartupTaskTest, PostTask) { 147 TEST_F(AfterStartupTaskTest, PostTask) {
148 // Nothing should be posted prior to startup completion. 148 // Nothing should be posted prior to startup completion.
149 EXPECT_FALSE(AfterStartupTaskUtils::IsBrowserStartupComplete()); 149 EXPECT_FALSE(AfterStartupTaskUtils::IsBrowserStartupComplete());
150 AfterStartupTaskUtils::PostTask( 150 AfterStartupTaskUtils::PostTask(
151 FROM_HERE, ui_thread_, 151 FROM_HERE, ui_thread_,
152 base::Bind(&AfterStartupTaskTest::VerifyExpectedThread, 152 base::Bind(&AfterStartupTaskTest::VerifyExpectedThread,
153 BrowserThread::UI)); 153 BrowserThread::UI));
154 AfterStartupTaskUtils::PostTask( 154 AfterStartupTaskUtils::PostTask(
155 FROM_HERE, db_thread_, 155 FROM_HERE, db_thread_,
156 base::Bind(&AfterStartupTaskTest::VerifyExpectedThread, 156 base::Bind(&AfterStartupTaskTest::VerifyExpectedThread,
157 BrowserThread::DB)); 157 BrowserThread::DB));
158 PostAfterStartupTaskFromDBThread( 158 PostAfterStartupTaskFromDBThread(
159 FROM_HERE, ui_thread_, 159 FROM_HERE, ui_thread_,
160 base::Bind(&AfterStartupTaskTest::VerifyExpectedThread, 160 base::Bind(&AfterStartupTaskTest::VerifyExpectedThread,
161 BrowserThread::UI)); 161 BrowserThread::UI));
162 PostAfterStartupTaskFromDBThread( 162 PostAfterStartupTaskFromDBThread(
163 FROM_HERE, db_thread_, 163 FROM_HERE, db_thread_,
164 base::Bind(&AfterStartupTaskTest::VerifyExpectedThread, 164 base::Bind(&AfterStartupTaskTest::VerifyExpectedThread,
165 BrowserThread::DB)); 165 BrowserThread::DB));
166 RunLoop().RunUntilIdle(); 166 RunLoop().RunUntilIdle();
167 EXPECT_EQ(0, db_thread_->total_task_count() + ui_thread_->total_task_count()); 167 EXPECT_EQ(0, db_thread_->total_task_count() + ui_thread_->total_task_count());
168 168
169 // Queued tasks should be posted upon setting the flag. 169 // Queued tasks should be posted upon setting the flag.
170 AfterStartupTaskUtils::SetBrowserStartupIsComplete(); 170 AfterStartupTaskUtils::SetBrowserStartupIsCompleteForTesting();
171 EXPECT_EQ(2, db_thread_->posted_task_count()); 171 EXPECT_EQ(2, db_thread_->posted_task_count());
172 EXPECT_EQ(2, ui_thread_->posted_task_count()); 172 EXPECT_EQ(2, ui_thread_->posted_task_count());
173 FlushDBThread(); 173 FlushDBThread();
174 RunLoop().RunUntilIdle(); 174 RunLoop().RunUntilIdle();
175 EXPECT_EQ(2, db_thread_->ran_task_count()); 175 EXPECT_EQ(2, db_thread_->ran_task_count());
176 EXPECT_EQ(2, ui_thread_->ran_task_count()); 176 EXPECT_EQ(2, ui_thread_->ran_task_count());
177 177
178 db_thread_->reset_task_counts(); 178 db_thread_->reset_task_counts();
179 ui_thread_->reset_task_counts(); 179 ui_thread_->reset_task_counts();
180 EXPECT_EQ(0, db_thread_->total_task_count() + ui_thread_->total_task_count()); 180 EXPECT_EQ(0, db_thread_->total_task_count() + ui_thread_->total_task_count());
181 181
182 // Tasks posted after startup should get posted immediately. 182 // Tasks posted after startup should get posted immediately.
183 AfterStartupTaskUtils::PostTask(FROM_HERE, ui_thread_, 183 AfterStartupTaskUtils::PostTask(FROM_HERE, ui_thread_,
184 base::Bind(&base::DoNothing)); 184 base::Bind(&base::DoNothing));
185 AfterStartupTaskUtils::PostTask(FROM_HERE, db_thread_, 185 AfterStartupTaskUtils::PostTask(FROM_HERE, db_thread_,
186 base::Bind(&base::DoNothing)); 186 base::Bind(&base::DoNothing));
187 EXPECT_EQ(1, db_thread_->posted_task_count()); 187 EXPECT_EQ(1, db_thread_->posted_task_count());
188 EXPECT_EQ(1, ui_thread_->posted_task_count()); 188 EXPECT_EQ(1, ui_thread_->posted_task_count());
189 PostAfterStartupTaskFromDBThread(FROM_HERE, ui_thread_, 189 PostAfterStartupTaskFromDBThread(FROM_HERE, ui_thread_,
190 base::Bind(&base::DoNothing)); 190 base::Bind(&base::DoNothing));
191 PostAfterStartupTaskFromDBThread(FROM_HERE, db_thread_, 191 PostAfterStartupTaskFromDBThread(FROM_HERE, db_thread_,
192 base::Bind(&base::DoNothing)); 192 base::Bind(&base::DoNothing));
193 EXPECT_EQ(2, db_thread_->posted_task_count()); 193 EXPECT_EQ(2, db_thread_->posted_task_count());
194 EXPECT_EQ(2, ui_thread_->posted_task_count()); 194 EXPECT_EQ(2, ui_thread_->posted_task_count());
195 FlushDBThread(); 195 FlushDBThread();
196 RunLoop().RunUntilIdle(); 196 RunLoop().RunUntilIdle();
197 EXPECT_EQ(2, db_thread_->ran_task_count()); 197 EXPECT_EQ(2, db_thread_->ran_task_count());
198 EXPECT_EQ(2, ui_thread_->ran_task_count()); 198 EXPECT_EQ(2, ui_thread_->ran_task_count());
199 } 199 }
OLDNEW
« no previous file with comments | « chrome/browser/after_startup_task_utils.cc ('k') | chrome/browser/extensions/extension_service_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698