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

Unified Diff: remoting/protocol/message_reader_unittest.cc

Issue 10919259: Fix MessageReader not to invoke message callback from done callback. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 3 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 side-by-side diff with in-line comments
Download patch
« remoting/protocol/message_reader.cc ('K') | « remoting/protocol/message_reader.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« remoting/protocol/message_reader.cc ('K') | « remoting/protocol/message_reader.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698