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 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
79 ThreadWrapperTest() | 79 ThreadWrapperTest() |
80 : thread_(NULL) { | 80 : thread_(NULL) { |
81 } | 81 } |
82 | 82 |
83 virtual void SetUp() OVERRIDE { | 83 virtual void SetUp() OVERRIDE { |
84 JingleThreadWrapper::EnsureForCurrentMessageLoop(); | 84 JingleThreadWrapper::EnsureForCurrentMessageLoop(); |
85 thread_ = talk_base::Thread::Current(); | 85 thread_ = talk_base::Thread::Current(); |
86 } | 86 } |
87 | 87 |
88 // ThreadWrapper destroyes itself when |message_loop_| is destroyed. | 88 // ThreadWrapper destroyes itself when |message_loop_| is destroyed. |
89 MessageLoop message_loop_; | 89 base::MessageLoop message_loop_; |
90 talk_base::Thread* thread_; | 90 talk_base::Thread* thread_; |
91 MockMessageHandler handler1_; | 91 MockMessageHandler handler1_; |
92 MockMessageHandler handler2_; | 92 MockMessageHandler handler2_; |
93 }; | 93 }; |
94 | 94 |
95 TEST_F(ThreadWrapperTest, Post) { | 95 TEST_F(ThreadWrapperTest, Post) { |
96 talk_base::MessageData* data1 = new talk_base::MessageData(); | 96 talk_base::MessageData* data1 = new talk_base::MessageData(); |
97 talk_base::MessageData* data2 = new talk_base::MessageData(); | 97 talk_base::MessageData* data2 = new talk_base::MessageData(); |
98 talk_base::MessageData* data3 = new talk_base::MessageData(); | 98 talk_base::MessageData* data3 = new talk_base::MessageData(); |
99 talk_base::MessageData* data4 = new talk_base::MessageData(); | 99 talk_base::MessageData* data4 = new talk_base::MessageData(); |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
141 MatchMessage(&handler1_, kTestMessage2, data2))) | 141 MatchMessage(&handler1_, kTestMessage2, data2))) |
142 .WillOnce(DeleteMessageData()); | 142 .WillOnce(DeleteMessageData()); |
143 EXPECT_CALL(handler2_, OnMessage( | 143 EXPECT_CALL(handler2_, OnMessage( |
144 MatchMessage(&handler2_, kTestMessage1, data3))) | 144 MatchMessage(&handler2_, kTestMessage1, data3))) |
145 .WillOnce(DeleteMessageData()); | 145 .WillOnce(DeleteMessageData()); |
146 EXPECT_CALL(handler2_, OnMessage( | 146 EXPECT_CALL(handler2_, OnMessage( |
147 MatchMessage(&handler2_, kTestMessage1, data4))) | 147 MatchMessage(&handler2_, kTestMessage1, data4))) |
148 .WillOnce(DeleteMessageData()); | 148 .WillOnce(DeleteMessageData()); |
149 | 149 |
150 message_loop_.PostDelayedTask( | 150 message_loop_.PostDelayedTask( |
151 FROM_HERE, MessageLoop::QuitClosure(), | 151 FROM_HERE, |
152 base::MessageLoop::QuitClosure(), | |
152 base::TimeDelta::FromMilliseconds(kMaxTestDelay)); | 153 base::TimeDelta::FromMilliseconds(kMaxTestDelay)); |
153 message_loop_.Run(); | 154 message_loop_.Run(); |
awong
2013/04/27 00:35:04
Use a RunLoop?
| |
154 } | 155 } |
155 | 156 |
156 TEST_F(ThreadWrapperTest, Clear) { | 157 TEST_F(ThreadWrapperTest, Clear) { |
157 thread_->Post(&handler1_, kTestMessage1, NULL); | 158 thread_->Post(&handler1_, kTestMessage1, NULL); |
158 thread_->Post(&handler1_, kTestMessage2, NULL); | 159 thread_->Post(&handler1_, kTestMessage2, NULL); |
159 thread_->Post(&handler2_, kTestMessage1, NULL); | 160 thread_->Post(&handler2_, kTestMessage1, NULL); |
160 thread_->Post(&handler2_, kTestMessage2, NULL); | 161 thread_->Post(&handler2_, kTestMessage2, NULL); |
161 | 162 |
162 thread_->Clear(&handler1_, kTestMessage2); | 163 thread_->Clear(&handler1_, kTestMessage2); |
163 | 164 |
(...skipping 28 matching lines...) Expand all Loading... | |
192 MatchMessage(&handler1_, kTestMessage1, null_data))) | 193 MatchMessage(&handler1_, kTestMessage1, null_data))) |
193 .WillOnce(DeleteMessageData()); | 194 .WillOnce(DeleteMessageData()); |
194 EXPECT_CALL(handler2_, OnMessage( | 195 EXPECT_CALL(handler2_, OnMessage( |
195 MatchMessage(&handler2_, kTestMessage1, null_data))) | 196 MatchMessage(&handler2_, kTestMessage1, null_data))) |
196 .WillOnce(DeleteMessageData()); | 197 .WillOnce(DeleteMessageData()); |
197 EXPECT_CALL(handler2_, OnMessage( | 198 EXPECT_CALL(handler2_, OnMessage( |
198 MatchMessage(&handler2_, kTestMessage1, null_data))) | 199 MatchMessage(&handler2_, kTestMessage1, null_data))) |
199 .WillOnce(DeleteMessageData()); | 200 .WillOnce(DeleteMessageData()); |
200 | 201 |
201 message_loop_.PostDelayedTask( | 202 message_loop_.PostDelayedTask( |
202 FROM_HERE, MessageLoop::QuitClosure(), | 203 FROM_HERE, |
204 base::MessageLoop::QuitClosure(), | |
203 base::TimeDelta::FromMilliseconds(kMaxTestDelay)); | 205 base::TimeDelta::FromMilliseconds(kMaxTestDelay)); |
204 message_loop_.Run(); | 206 message_loop_.Run(); |
205 } | 207 } |
206 | 208 |
207 // Verify that the queue is cleared when a handler is destroyed. | 209 // Verify that the queue is cleared when a handler is destroyed. |
208 TEST_F(ThreadWrapperTest, ClearDestoroyed) { | 210 TEST_F(ThreadWrapperTest, ClearDestoroyed) { |
209 MockMessageHandler* handler_ptr; | 211 MockMessageHandler* handler_ptr; |
210 { | 212 { |
211 MockMessageHandler handler; | 213 MockMessageHandler handler; |
212 handler_ptr = &handler; | 214 handler_ptr = &handler; |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
297 | 299 |
298 TEST_F(ThreadWrapperTest, Dispose) { | 300 TEST_F(ThreadWrapperTest, Dispose) { |
299 bool deleted_; | 301 bool deleted_; |
300 thread_->Dispose(new DeletableObject(&deleted_)); | 302 thread_->Dispose(new DeletableObject(&deleted_)); |
301 EXPECT_FALSE(deleted_); | 303 EXPECT_FALSE(deleted_); |
302 message_loop_.RunUntilIdle(); | 304 message_loop_.RunUntilIdle(); |
303 EXPECT_TRUE(deleted_); | 305 EXPECT_TRUE(deleted_); |
304 } | 306 } |
305 | 307 |
306 } // namespace jingle_glue | 308 } // namespace jingle_glue |
OLD | NEW |