| Index: remoting/protocol/message_reader_unittest.cc
|
| diff --git a/remoting/protocol/message_reader_unittest.cc b/remoting/protocol/message_reader_unittest.cc
|
| index c789b96867eb2e74bbe1e459687c729fc13dd543..f4e2e0c951f59a54df4b0afd52adb0b3494ce310 100644
|
| --- a/remoting/protocol/message_reader_unittest.cc
|
| +++ b/remoting/protocol/message_reader_unittest.cc
|
| @@ -43,7 +43,20 @@ class MockMessageReceivedCallback {
|
| class MessageReaderTest : public testing::Test {
|
| public:
|
| MessageReaderTest()
|
| - : run_task_finished_(false, false) {
|
| + : in_callback_(false) {
|
| + }
|
| +
|
| + // Following two methods are used by the ReadFromCallback test.
|
| + void AddSecondMessage(const base::Closure& task) {
|
| + AddMessage(kTestMessage2);
|
| + in_callback_ = true;
|
| + task.Run();
|
| + in_callback_ = false;
|
| + }
|
| +
|
| + void OnSecondMessage(const base::Closure& task) {
|
| + EXPECT_FALSE(in_callback_);
|
| + task.Run();
|
| }
|
|
|
| protected:
|
| @@ -73,11 +86,6 @@ class MessageReaderTest : public testing::Test {
|
| return result == expected;
|
| }
|
|
|
| - void RunClosure(const base::Closure& task) {
|
| - task.Run();
|
| - run_task_finished_.Signal();
|
| - }
|
| -
|
| void OnMessage(scoped_ptr<CompoundBuffer> buffer,
|
| const base::Closure& done_callback) {
|
| messages_.push_back(buffer.release());
|
| @@ -85,11 +93,11 @@ class MessageReaderTest : public testing::Test {
|
| }
|
|
|
| MessageLoop message_loop_;
|
| - base::WaitableEvent run_task_finished_;
|
| scoped_ptr<MessageReader> reader_;
|
| FakeSocket socket_;
|
| MockMessageReceivedCallback callback_;
|
| std::vector<CompoundBuffer*> messages_;
|
| + bool in_callback_;
|
| };
|
|
|
| // Receive one message and process it with delay
|
| @@ -266,5 +274,19 @@ TEST_F(MessageReaderTest, ReadError) {
|
| InitReader();
|
| }
|
|
|
| +TEST_F(MessageReaderTest, ReadFromCallback) {
|
| + AddMessage(kTestMessage1);
|
| +
|
| + EXPECT_CALL(callback_, OnMessage(_))
|
| + .Times(2)
|
| + .WillOnce(Invoke(this, &MessageReaderTest::AddSecondMessage))
|
| + .WillOnce(Invoke(this, &MessageReaderTest::OnSecondMessage));
|
| +
|
| + InitReader();
|
| + message_loop_.RunAllPending();
|
| +
|
| + EXPECT_TRUE(socket_.read_pending());
|
| +}
|
| +
|
| } // namespace protocol
|
| } // namespace remoting
|
|
|