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

Side by Side Diff: jingle/glue/thread_wrapper_unittest.cc

Issue 2082353002: Remove calls to deprecated MessageLoop methods in jingle. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: use ThreadTaskRunnerHandle Created 4 years, 5 months 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
« no previous file with comments | « jingle/glue/task_pump.cc ('k') | jingle/notifier/communicator/single_login_attempt_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <stdint.h> 5 #include <stdint.h>
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/compiler_specific.h" 8 #include "base/compiler_specific.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "base/run_loop.h"
11 #include "base/single_thread_task_runner.h"
10 #include "base/threading/thread.h" 12 #include "base/threading/thread.h"
11 #include "jingle/glue/thread_wrapper.h" 13 #include "jingle/glue/thread_wrapper.h"
12 #include "testing/gmock/include/gmock/gmock.h" 14 #include "testing/gmock/include/gmock/gmock.h"
13 #include "testing/gtest/include/gtest/gtest.h" 15 #include "testing/gtest/include/gtest/gtest.h"
14 16
15 using ::testing::DoAll; 17 using ::testing::DoAll;
16 using ::testing::InSequence; 18 using ::testing::InSequence;
17 using ::testing::InvokeWithoutArgs; 19 using ::testing::InvokeWithoutArgs;
18 using ::testing::Mock; 20 using ::testing::Mock;
19 21
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 EXPECT_CALL(handler1_, OnMessage( 115 EXPECT_CALL(handler1_, OnMessage(
114 MatchMessage(&handler1_, kTestMessage2, data2))) 116 MatchMessage(&handler1_, kTestMessage2, data2)))
115 .WillOnce(DeleteMessageData()); 117 .WillOnce(DeleteMessageData());
116 EXPECT_CALL(handler2_, OnMessage( 118 EXPECT_CALL(handler2_, OnMessage(
117 MatchMessage(&handler2_, kTestMessage1, data3))) 119 MatchMessage(&handler2_, kTestMessage1, data3)))
118 .WillOnce(DeleteMessageData()); 120 .WillOnce(DeleteMessageData());
119 EXPECT_CALL(handler2_, OnMessage( 121 EXPECT_CALL(handler2_, OnMessage(
120 MatchMessage(&handler2_, kTestMessage1, data4))) 122 MatchMessage(&handler2_, kTestMessage1, data4)))
121 .WillOnce(DeleteMessageData()); 123 .WillOnce(DeleteMessageData());
122 124
123 message_loop_.RunUntilIdle(); 125 base::RunLoop().RunUntilIdle();
124 } 126 }
125 127
126 TEST_F(ThreadWrapperTest, PostDelayed) { 128 TEST_F(ThreadWrapperTest, PostDelayed) {
127 rtc::MessageData* data1 = new rtc::MessageData(); 129 rtc::MessageData* data1 = new rtc::MessageData();
128 rtc::MessageData* data2 = new rtc::MessageData(); 130 rtc::MessageData* data2 = new rtc::MessageData();
129 rtc::MessageData* data3 = new rtc::MessageData(); 131 rtc::MessageData* data3 = new rtc::MessageData();
130 rtc::MessageData* data4 = new rtc::MessageData(); 132 rtc::MessageData* data4 = new rtc::MessageData();
131 133
132 thread_->PostDelayed(RTC_FROM_HERE, kTestDelayMs1, &handler1_, kTestMessage1, 134 thread_->PostDelayed(RTC_FROM_HERE, kTestDelayMs1, &handler1_, kTestMessage1,
133 data1); 135 data1);
(...skipping 12 matching lines...) Expand all
146 EXPECT_CALL(handler1_, OnMessage( 148 EXPECT_CALL(handler1_, OnMessage(
147 MatchMessage(&handler1_, kTestMessage2, data2))) 149 MatchMessage(&handler1_, kTestMessage2, data2)))
148 .WillOnce(DeleteMessageData()); 150 .WillOnce(DeleteMessageData());
149 EXPECT_CALL(handler2_, OnMessage( 151 EXPECT_CALL(handler2_, OnMessage(
150 MatchMessage(&handler2_, kTestMessage1, data3))) 152 MatchMessage(&handler2_, kTestMessage1, data3)))
151 .WillOnce(DeleteMessageData()); 153 .WillOnce(DeleteMessageData());
152 EXPECT_CALL(handler2_, OnMessage( 154 EXPECT_CALL(handler2_, OnMessage(
153 MatchMessage(&handler2_, kTestMessage1, data4))) 155 MatchMessage(&handler2_, kTestMessage1, data4)))
154 .WillOnce(DeleteMessageData()); 156 .WillOnce(DeleteMessageData());
155 157
156 message_loop_.PostDelayedTask( 158 message_loop_.task_runner()->PostDelayedTask(
157 FROM_HERE, base::MessageLoop::QuitWhenIdleClosure(), 159 FROM_HERE, base::MessageLoop::QuitWhenIdleClosure(),
158 base::TimeDelta::FromMilliseconds(kMaxTestDelay)); 160 base::TimeDelta::FromMilliseconds(kMaxTestDelay));
159 message_loop_.Run(); 161 base::RunLoop().Run();
160 } 162 }
161 163
162 TEST_F(ThreadWrapperTest, Clear) { 164 TEST_F(ThreadWrapperTest, Clear) {
163 thread_->Post(RTC_FROM_HERE, &handler1_, kTestMessage1, NULL); 165 thread_->Post(RTC_FROM_HERE, &handler1_, kTestMessage1, NULL);
164 thread_->Post(RTC_FROM_HERE, &handler1_, kTestMessage2, NULL); 166 thread_->Post(RTC_FROM_HERE, &handler1_, kTestMessage2, NULL);
165 thread_->Post(RTC_FROM_HERE, &handler2_, kTestMessage1, NULL); 167 thread_->Post(RTC_FROM_HERE, &handler2_, kTestMessage1, NULL);
166 thread_->Post(RTC_FROM_HERE, &handler2_, kTestMessage2, NULL); 168 thread_->Post(RTC_FROM_HERE, &handler2_, kTestMessage2, NULL);
167 169
168 thread_->Clear(&handler1_, kTestMessage2); 170 thread_->Clear(&handler1_, kTestMessage2);
169 171
170 InSequence in_seq; 172 InSequence in_seq;
171 173
172 rtc::MessageData* null_data = NULL; 174 rtc::MessageData* null_data = NULL;
173 EXPECT_CALL(handler1_, OnMessage( 175 EXPECT_CALL(handler1_, OnMessage(
174 MatchMessage(&handler1_, kTestMessage1, null_data))) 176 MatchMessage(&handler1_, kTestMessage1, null_data)))
175 .WillOnce(DeleteMessageData()); 177 .WillOnce(DeleteMessageData());
176 EXPECT_CALL(handler2_, OnMessage( 178 EXPECT_CALL(handler2_, OnMessage(
177 MatchMessage(&handler2_, kTestMessage1, null_data))) 179 MatchMessage(&handler2_, kTestMessage1, null_data)))
178 .WillOnce(DeleteMessageData()); 180 .WillOnce(DeleteMessageData());
179 EXPECT_CALL(handler2_, OnMessage( 181 EXPECT_CALL(handler2_, OnMessage(
180 MatchMessage(&handler2_, kTestMessage2, null_data))) 182 MatchMessage(&handler2_, kTestMessage2, null_data)))
181 .WillOnce(DeleteMessageData()); 183 .WillOnce(DeleteMessageData());
182 184
183 message_loop_.RunUntilIdle(); 185 base::RunLoop().RunUntilIdle();
184 } 186 }
185 187
186 TEST_F(ThreadWrapperTest, ClearDelayed) { 188 TEST_F(ThreadWrapperTest, ClearDelayed) {
187 thread_->PostDelayed(RTC_FROM_HERE, kTestDelayMs1, &handler1_, kTestMessage1, 189 thread_->PostDelayed(RTC_FROM_HERE, kTestDelayMs1, &handler1_, kTestMessage1,
188 NULL); 190 NULL);
189 thread_->PostDelayed(RTC_FROM_HERE, kTestDelayMs2, &handler1_, kTestMessage2, 191 thread_->PostDelayed(RTC_FROM_HERE, kTestDelayMs2, &handler1_, kTestMessage2,
190 NULL); 192 NULL);
191 thread_->PostDelayed(RTC_FROM_HERE, kTestDelayMs3, &handler2_, kTestMessage1, 193 thread_->PostDelayed(RTC_FROM_HERE, kTestDelayMs3, &handler2_, kTestMessage1,
192 NULL); 194 NULL);
193 thread_->PostDelayed(RTC_FROM_HERE, kTestDelayMs4, &handler2_, kTestMessage1, 195 thread_->PostDelayed(RTC_FROM_HERE, kTestDelayMs4, &handler2_, kTestMessage1,
194 NULL); 196 NULL);
195 197
196 thread_->Clear(&handler1_, kTestMessage2); 198 thread_->Clear(&handler1_, kTestMessage2);
197 199
198 InSequence in_seq; 200 InSequence in_seq;
199 201
200 rtc::MessageData* null_data = NULL; 202 rtc::MessageData* null_data = NULL;
201 EXPECT_CALL(handler1_, OnMessage( 203 EXPECT_CALL(handler1_, OnMessage(
202 MatchMessage(&handler1_, kTestMessage1, null_data))) 204 MatchMessage(&handler1_, kTestMessage1, null_data)))
203 .WillOnce(DeleteMessageData()); 205 .WillOnce(DeleteMessageData());
204 EXPECT_CALL(handler2_, OnMessage( 206 EXPECT_CALL(handler2_, OnMessage(
205 MatchMessage(&handler2_, kTestMessage1, null_data))) 207 MatchMessage(&handler2_, kTestMessage1, null_data)))
206 .WillOnce(DeleteMessageData()); 208 .WillOnce(DeleteMessageData());
207 EXPECT_CALL(handler2_, OnMessage( 209 EXPECT_CALL(handler2_, OnMessage(
208 MatchMessage(&handler2_, kTestMessage1, null_data))) 210 MatchMessage(&handler2_, kTestMessage1, null_data)))
209 .WillOnce(DeleteMessageData()); 211 .WillOnce(DeleteMessageData());
210 212
211 message_loop_.PostDelayedTask( 213 message_loop_.task_runner()->PostDelayedTask(
212 FROM_HERE, base::MessageLoop::QuitWhenIdleClosure(), 214 FROM_HERE, base::MessageLoop::QuitWhenIdleClosure(),
213 base::TimeDelta::FromMilliseconds(kMaxTestDelay)); 215 base::TimeDelta::FromMilliseconds(kMaxTestDelay));
214 message_loop_.Run(); 216 base::RunLoop().Run();
215 } 217 }
216 218
217 // Verify that the queue is cleared when a handler is destroyed. 219 // Verify that the queue is cleared when a handler is destroyed.
218 TEST_F(ThreadWrapperTest, ClearDestroyed) { 220 TEST_F(ThreadWrapperTest, ClearDestroyed) {
219 MockMessageHandler* handler_ptr; 221 MockMessageHandler* handler_ptr;
220 { 222 {
221 MockMessageHandler handler; 223 MockMessageHandler handler;
222 handler_ptr = &handler; 224 handler_ptr = &handler;
223 thread_->Post(RTC_FROM_HERE, &handler, kTestMessage1, NULL); 225 thread_->Post(RTC_FROM_HERE, &handler, kTestMessage1, NULL);
224 } 226 }
(...skipping 26 matching lines...) Expand all
251 TEST_F(ThreadWrapperTest, SendToOtherThread) { 253 TEST_F(ThreadWrapperTest, SendToOtherThread) {
252 JingleThreadWrapper::current()->set_send_allowed(true); 254 JingleThreadWrapper::current()->set_send_allowed(true);
253 255
254 base::Thread second_thread("JingleThreadWrapperTest"); 256 base::Thread second_thread("JingleThreadWrapperTest");
255 second_thread.Start(); 257 second_thread.Start();
256 258
257 base::WaitableEvent initialized_event( 259 base::WaitableEvent initialized_event(
258 base::WaitableEvent::ResetPolicy::MANUAL, 260 base::WaitableEvent::ResetPolicy::MANUAL,
259 base::WaitableEvent::InitialState::NOT_SIGNALED); 261 base::WaitableEvent::InitialState::NOT_SIGNALED);
260 rtc::Thread* target; 262 rtc::Thread* target;
261 second_thread.message_loop()->PostTask( 263 second_thread.task_runner()->PostTask(
262 FROM_HERE, base::Bind(&InitializeWrapperForNewThread, 264 FROM_HERE,
263 &target, &initialized_event)); 265 base::Bind(&InitializeWrapperForNewThread, &target, &initialized_event));
264 initialized_event.Wait(); 266 initialized_event.Wait();
265 267
266 ASSERT_TRUE(target != NULL); 268 ASSERT_TRUE(target != NULL);
267 269
268 rtc::MessageData* data = new rtc::MessageData(); 270 rtc::MessageData* data = new rtc::MessageData();
269 271
270 EXPECT_CALL(handler1_, OnMessage( 272 EXPECT_CALL(handler1_, OnMessage(
271 MatchMessage(&handler1_, kTestMessage1, data))) 273 MatchMessage(&handler1_, kTestMessage1, data)))
272 .WillOnce(DeleteMessageData()); 274 .WillOnce(DeleteMessageData());
273 target->Send(RTC_FROM_HERE, &handler1_, kTestMessage1, data); 275 target->Send(RTC_FROM_HERE, &handler1_, kTestMessage1, data);
274 276
275 Mock::VerifyAndClearExpectations(&handler1_); 277 Mock::VerifyAndClearExpectations(&handler1_);
276 } 278 }
277 279
278 // Verify that thread handles Send() while another Send() is 280 // Verify that thread handles Send() while another Send() is
279 // pending. The test creates second thread and Send()s kTestMessage1 281 // pending. The test creates second thread and Send()s kTestMessage1
280 // to that thread. kTestMessage1 handler calls PingMainThread() which 282 // to that thread. kTestMessage1 handler calls PingMainThread() which
281 // tries to Send() kTestMessage2 to the main thread. 283 // tries to Send() kTestMessage2 to the main thread.
282 TEST_F(ThreadWrapperTest, SendDuringSend) { 284 TEST_F(ThreadWrapperTest, SendDuringSend) {
283 JingleThreadWrapper::current()->set_send_allowed(true); 285 JingleThreadWrapper::current()->set_send_allowed(true);
284 286
285 base::Thread second_thread("JingleThreadWrapperTest"); 287 base::Thread second_thread("JingleThreadWrapperTest");
286 second_thread.Start(); 288 second_thread.Start();
287 289
288 base::WaitableEvent initialized_event( 290 base::WaitableEvent initialized_event(
289 base::WaitableEvent::ResetPolicy::MANUAL, 291 base::WaitableEvent::ResetPolicy::MANUAL,
290 base::WaitableEvent::InitialState::NOT_SIGNALED); 292 base::WaitableEvent::InitialState::NOT_SIGNALED);
291 rtc::Thread* target; 293 rtc::Thread* target;
292 second_thread.message_loop()->PostTask( 294 second_thread.task_runner()->PostTask(
293 FROM_HERE, base::Bind(&InitializeWrapperForNewThread, 295 FROM_HERE,
294 &target, &initialized_event)); 296 base::Bind(&InitializeWrapperForNewThread, &target, &initialized_event));
295 initialized_event.Wait(); 297 initialized_event.Wait();
296 298
297 ASSERT_TRUE(target != NULL); 299 ASSERT_TRUE(target != NULL);
298 300
299 rtc::MessageData* data = new rtc::MessageData(); 301 rtc::MessageData* data = new rtc::MessageData();
300 302
301 EXPECT_CALL(handler1_, OnMessage( 303 EXPECT_CALL(handler1_, OnMessage(
302 MatchMessage(&handler1_, kTestMessage1, data))) 304 MatchMessage(&handler1_, kTestMessage1, data)))
303 .WillOnce(DoAll( 305 .WillOnce(DoAll(
304 InvokeWithoutArgs( 306 InvokeWithoutArgs(
305 this, &ThreadWrapperTest::PingMainThread), 307 this, &ThreadWrapperTest::PingMainThread),
306 DeleteMessageData())); 308 DeleteMessageData()));
307 target->Send(RTC_FROM_HERE, &handler1_, kTestMessage1, data); 309 target->Send(RTC_FROM_HERE, &handler1_, kTestMessage1, data);
308 310
309 Mock::VerifyAndClearExpectations(&handler1_); 311 Mock::VerifyAndClearExpectations(&handler1_);
310 } 312 }
311 313
312 TEST_F(ThreadWrapperTest, Dispose) { 314 TEST_F(ThreadWrapperTest, Dispose) {
313 bool deleted_ = false; 315 bool deleted_ = false;
314 thread_->Dispose(new DeletableObject(&deleted_)); 316 thread_->Dispose(new DeletableObject(&deleted_));
315 EXPECT_FALSE(deleted_); 317 EXPECT_FALSE(deleted_);
316 message_loop_.RunUntilIdle(); 318 base::RunLoop().RunUntilIdle();
317 EXPECT_TRUE(deleted_); 319 EXPECT_TRUE(deleted_);
318 } 320 }
319 321
320 } // namespace jingle_glue 322 } // namespace jingle_glue
OLDNEW
« no previous file with comments | « jingle/glue/task_pump.cc ('k') | jingle/notifier/communicator/single_login_attempt_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698