OLD | NEW |
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 "base/bind.h" | 5 #include "base/bind.h" |
6 #include "base/compiler_specific.h" | 6 #include "base/compiler_specific.h" |
7 #include "base/message_loop.h" | 7 #include "base/message_loop.h" |
8 #include "base/threading/thread.h" | 8 #include "base/threading/thread.h" |
9 #include "jingle/glue/thread_wrapper.h" | 9 #include "jingle/glue/thread_wrapper.h" |
10 #include "testing/gmock/include/gmock/gmock.h" | 10 #include "testing/gmock/include/gmock/gmock.h" |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
111 EXPECT_CALL(handler1_, OnMessage( | 111 EXPECT_CALL(handler1_, OnMessage( |
112 MatchMessage(&handler1_, kTestMessage2, data2))) | 112 MatchMessage(&handler1_, kTestMessage2, data2))) |
113 .WillOnce(DeleteMessageData()); | 113 .WillOnce(DeleteMessageData()); |
114 EXPECT_CALL(handler2_, OnMessage( | 114 EXPECT_CALL(handler2_, OnMessage( |
115 MatchMessage(&handler2_, kTestMessage1, data3))) | 115 MatchMessage(&handler2_, kTestMessage1, data3))) |
116 .WillOnce(DeleteMessageData()); | 116 .WillOnce(DeleteMessageData()); |
117 EXPECT_CALL(handler2_, OnMessage( | 117 EXPECT_CALL(handler2_, OnMessage( |
118 MatchMessage(&handler2_, kTestMessage1, data4))) | 118 MatchMessage(&handler2_, kTestMessage1, data4))) |
119 .WillOnce(DeleteMessageData()); | 119 .WillOnce(DeleteMessageData()); |
120 | 120 |
121 message_loop_.RunAllPending(); | 121 message_loop_.RunUntilIdle(); |
122 } | 122 } |
123 | 123 |
124 TEST_F(ThreadWrapperTest, PostDelayed) { | 124 TEST_F(ThreadWrapperTest, PostDelayed) { |
125 talk_base::MessageData* data1 = new talk_base::MessageData(); | 125 talk_base::MessageData* data1 = new talk_base::MessageData(); |
126 talk_base::MessageData* data2 = new talk_base::MessageData(); | 126 talk_base::MessageData* data2 = new talk_base::MessageData(); |
127 talk_base::MessageData* data3 = new talk_base::MessageData(); | 127 talk_base::MessageData* data3 = new talk_base::MessageData(); |
128 talk_base::MessageData* data4 = new talk_base::MessageData(); | 128 talk_base::MessageData* data4 = new talk_base::MessageData(); |
129 | 129 |
130 thread_->PostDelayed(kTestDelayMs1, &handler1_, kTestMessage1, data1); | 130 thread_->PostDelayed(kTestDelayMs1, &handler1_, kTestMessage1, data1); |
131 thread_->PostDelayed(kTestDelayMs2, &handler1_, kTestMessage2, data2); | 131 thread_->PostDelayed(kTestDelayMs2, &handler1_, kTestMessage2, data2); |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
167 EXPECT_CALL(handler1_, OnMessage( | 167 EXPECT_CALL(handler1_, OnMessage( |
168 MatchMessage(&handler1_, kTestMessage1, null_data))) | 168 MatchMessage(&handler1_, kTestMessage1, null_data))) |
169 .WillOnce(DeleteMessageData()); | 169 .WillOnce(DeleteMessageData()); |
170 EXPECT_CALL(handler2_, OnMessage( | 170 EXPECT_CALL(handler2_, OnMessage( |
171 MatchMessage(&handler2_, kTestMessage1, null_data))) | 171 MatchMessage(&handler2_, kTestMessage1, null_data))) |
172 .WillOnce(DeleteMessageData()); | 172 .WillOnce(DeleteMessageData()); |
173 EXPECT_CALL(handler2_, OnMessage( | 173 EXPECT_CALL(handler2_, OnMessage( |
174 MatchMessage(&handler2_, kTestMessage2, null_data))) | 174 MatchMessage(&handler2_, kTestMessage2, null_data))) |
175 .WillOnce(DeleteMessageData()); | 175 .WillOnce(DeleteMessageData()); |
176 | 176 |
177 message_loop_.RunAllPending(); | 177 message_loop_.RunUntilIdle(); |
178 } | 178 } |
179 | 179 |
180 TEST_F(ThreadWrapperTest, ClearDelayed) { | 180 TEST_F(ThreadWrapperTest, ClearDelayed) { |
181 thread_->PostDelayed(kTestDelayMs1, &handler1_, kTestMessage1, NULL); | 181 thread_->PostDelayed(kTestDelayMs1, &handler1_, kTestMessage1, NULL); |
182 thread_->PostDelayed(kTestDelayMs2, &handler1_, kTestMessage2, NULL); | 182 thread_->PostDelayed(kTestDelayMs2, &handler1_, kTestMessage2, NULL); |
183 thread_->PostDelayed(kTestDelayMs3, &handler2_, kTestMessage1, NULL); | 183 thread_->PostDelayed(kTestDelayMs3, &handler2_, kTestMessage1, NULL); |
184 thread_->PostDelayed(kTestDelayMs4, &handler2_, kTestMessage1, NULL); | 184 thread_->PostDelayed(kTestDelayMs4, &handler2_, kTestMessage1, NULL); |
185 | 185 |
186 thread_->Clear(&handler1_, kTestMessage2); | 186 thread_->Clear(&handler1_, kTestMessage2); |
187 | 187 |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
292 DeleteMessageData())); | 292 DeleteMessageData())); |
293 target->Send(&handler1_, kTestMessage1, data); | 293 target->Send(&handler1_, kTestMessage1, data); |
294 | 294 |
295 Mock::VerifyAndClearExpectations(&handler1_); | 295 Mock::VerifyAndClearExpectations(&handler1_); |
296 } | 296 } |
297 | 297 |
298 TEST_F(ThreadWrapperTest, Dispose) { | 298 TEST_F(ThreadWrapperTest, Dispose) { |
299 bool deleted_; | 299 bool deleted_; |
300 thread_->Dispose(new DeletableObject(&deleted_)); | 300 thread_->Dispose(new DeletableObject(&deleted_)); |
301 EXPECT_FALSE(deleted_); | 301 EXPECT_FALSE(deleted_); |
302 message_loop_.RunAllPending(); | 302 message_loop_.RunUntilIdle(); |
303 EXPECT_TRUE(deleted_); | 303 EXPECT_TRUE(deleted_); |
304 } | 304 } |
305 | 305 |
306 } // namespace jingle_glue | 306 } // namespace jingle_glue |
OLD | NEW |