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

Side by Side Diff: remoting/protocol/connection_to_client_unittest.cc

Issue 9827006: Refactor VideoStub interface to accept ownership of video packets. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 8 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 | Annotate | Revision Log
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 "base/bind.h" 5 #include "base/bind.h"
6 #include "base/message_loop.h" 6 #include "base/message_loop.h"
7 #include "base/message_loop_proxy.h" 7 #include "base/message_loop_proxy.h"
8 #include "remoting/base/base_mock_objects.h" 8 #include "remoting/base/base_mock_objects.h"
9 #include "remoting/base/constants.h" 9 #include "remoting/base/constants.h"
10 #include "remoting/protocol/fake_session.h" 10 #include "remoting/protocol/fake_session.h"
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 scoped_ptr<ConnectionToClient> viewer_; 57 scoped_ptr<ConnectionToClient> viewer_;
58 58
59 // Owned by |viewer_|. 59 // Owned by |viewer_|.
60 protocol::FakeSession* session_; 60 protocol::FakeSession* session_;
61 61
62 private: 62 private:
63 DISALLOW_COPY_AND_ASSIGN(ConnectionToClientTest); 63 DISALLOW_COPY_AND_ASSIGN(ConnectionToClientTest);
64 }; 64 };
65 65
66 TEST_F(ConnectionToClientTest, SendUpdateStream) { 66 TEST_F(ConnectionToClientTest, SendUpdateStream) {
67 // Then send the actual data. 67 scoped_ptr<VideoPacket> packet(new VideoPacket());
68 VideoPacket* packet = new VideoPacket(); 68 viewer_->video_stub()->ProcessVideoPacket(packet.Pass(), base::Closure());
69 viewer_->video_stub()->ProcessVideoPacket(
70 packet, base::Bind(&base::DeletePointer<VideoPacket>, packet));
71 69
72 message_loop_.RunAllPending(); 70 message_loop_.RunAllPending();
73 71
74 // Verify that something has been written. 72 // Verify that something has been written.
75 // TODO(sergeyu): Verify that the correct data has been written. 73 // TODO(sergeyu): Verify that the correct data has been written.
76 ASSERT_TRUE(session_->GetStreamChannel(kVideoChannelName)); 74 ASSERT_TRUE(session_->GetStreamChannel(kVideoChannelName));
77 EXPECT_GT(session_->GetStreamChannel(kVideoChannelName)-> 75 EXPECT_GT(session_->GetStreamChannel(kVideoChannelName)->
78 written_data().size(), 0u); 76 written_data().size(), 0u);
79 77
80 // And then close the connection to ConnectionToClient. 78 // And then close the connection to ConnectionToClient.
81 viewer_->Disconnect(); 79 viewer_->Disconnect();
82 80
83 message_loop_.RunAllPending(); 81 message_loop_.RunAllPending();
84 } 82 }
85 83
86 TEST_F(ConnectionToClientTest, NoWriteAfterDisconnect) { 84 TEST_F(ConnectionToClientTest, NoWriteAfterDisconnect) {
87 // Then send the actual data. 85 scoped_ptr<VideoPacket> packet(new VideoPacket());
88 VideoPacket* packet = new VideoPacket(); 86 viewer_->video_stub()->ProcessVideoPacket(packet.Pass(), base::Closure());
89 viewer_->video_stub()->ProcessVideoPacket(
90 packet, base::Bind(&base::DeletePointer<VideoPacket>, packet));
91 87
92 // And then close the connection to ConnectionToClient. 88 // And then close the connection to ConnectionToClient.
93 viewer_->Disconnect(); 89 viewer_->Disconnect();
94 90
95 // The test will crash if data writer tries to write data to the 91 // The test will crash if data writer tries to write data to the
96 // channel socket. 92 // channel socket.
97 // TODO(sergeyu): Use MockSession to verify that no data is written? 93 // TODO(sergeyu): Use MockSession to verify that no data is written?
98 message_loop_.RunAllPending(); 94 message_loop_.RunAllPending();
99 } 95 }
100 96
101 TEST_F(ConnectionToClientTest, StateChange) { 97 TEST_F(ConnectionToClientTest, StateChange) {
102 EXPECT_CALL(handler_, OnConnectionClosed(viewer_.get(), OK)); 98 EXPECT_CALL(handler_, OnConnectionClosed(viewer_.get(), OK));
103 session_->state_change_callback().Run(protocol::Session::CLOSED); 99 session_->state_change_callback().Run(protocol::Session::CLOSED);
104 message_loop_.RunAllPending(); 100 message_loop_.RunAllPending();
105 101
106 EXPECT_CALL(handler_, OnConnectionClosed(viewer_.get(), SESSION_REJECTED)); 102 EXPECT_CALL(handler_, OnConnectionClosed(viewer_.get(), SESSION_REJECTED));
107 session_->set_error(SESSION_REJECTED); 103 session_->set_error(SESSION_REJECTED);
108 session_->state_change_callback().Run(protocol::Session::FAILED); 104 session_->state_change_callback().Run(protocol::Session::FAILED);
109 message_loop_.RunAllPending(); 105 message_loop_.RunAllPending();
110 } 106 }
111 107
112 } // namespace protocol 108 } // namespace protocol
113 } // namespace remoting 109 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/protocol/client_control_dispatcher.cc ('k') | remoting/protocol/host_control_dispatcher.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698