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

Side by Side Diff: webrtc/p2p/base/transport_unittest.cc

Issue 1380563002: Thinning out the Transport class. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Fixing code style and naming. Created 5 years, 2 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
« no previous file with comments | « webrtc/p2p/base/transport.cc ('k') | webrtc/p2p/base/transportcontroller.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2011 The WebRTC Project Authors. All rights reserved. 2 * Copyright 2011 The WebRTC Project Authors. All rights reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 16 matching lines...) Expand all
27 static const char kIceUfrag1[] = "TESTICEUFRAG0001"; 27 static const char kIceUfrag1[] = "TESTICEUFRAG0001";
28 static const char kIcePwd1[] = "TESTICEPWD00000000000001"; 28 static const char kIcePwd1[] = "TESTICEPWD00000000000001";
29 29
30 static const char kIceUfrag2[] = "TESTICEUFRAG0002"; 30 static const char kIceUfrag2[] = "TESTICEUFRAG0002";
31 static const char kIcePwd2[] = "TESTICEPWD00000000000002"; 31 static const char kIcePwd2[] = "TESTICEPWD00000000000002";
32 32
33 class TransportTest : public testing::Test, 33 class TransportTest : public testing::Test,
34 public sigslot::has_slots<> { 34 public sigslot::has_slots<> {
35 public: 35 public:
36 TransportTest() 36 TransportTest()
37 : transport_(new FakeTransport("test content name")), 37 : transport_(new FakeTransport("test content name")), channel_(NULL) {}
38 channel_(NULL),
39 connecting_signalled_(false),
40 completed_(false),
41 failed_(false) {
42 transport_->SignalConnecting.connect(this, &TransportTest::OnConnecting);
43 transport_->SignalCompleted.connect(this, &TransportTest::OnCompleted);
44 transport_->SignalFailed.connect(this, &TransportTest::OnFailed);
45 }
46 ~TransportTest() { 38 ~TransportTest() {
47 transport_->DestroyAllChannels(); 39 transport_->DestroyAllChannels();
48 } 40 }
49 bool SetupChannel() { 41 bool SetupChannel() {
50 channel_ = CreateChannel(1); 42 channel_ = CreateChannel(1);
51 return (channel_ != NULL); 43 return (channel_ != NULL);
52 } 44 }
53 FakeTransportChannel* CreateChannel(int component) { 45 FakeTransportChannel* CreateChannel(int component) {
54 return static_cast<FakeTransportChannel*>( 46 return static_cast<FakeTransportChannel*>(
55 transport_->CreateChannel(component)); 47 transport_->CreateChannel(component));
56 } 48 }
57 void DestroyChannel() { 49 void DestroyChannel() {
58 transport_->DestroyChannel(1); 50 transport_->DestroyChannel(1);
59 channel_ = NULL; 51 channel_ = NULL;
60 } 52 }
61 53
62 protected: 54 protected:
63 void OnConnecting(Transport* transport) {
64 connecting_signalled_ = true;
65 }
66 void OnCompleted(Transport* transport) {
67 completed_ = true;
68 }
69 void OnFailed(Transport* transport) {
70 failed_ = true;
71 }
72
73 rtc::scoped_ptr<FakeTransport> transport_; 55 rtc::scoped_ptr<FakeTransport> transport_;
74 FakeTransportChannel* channel_; 56 FakeTransportChannel* channel_;
75 bool connecting_signalled_;
76 bool completed_;
77 bool failed_;
78 }; 57 };
79 58
80 // Test that calling ConnectChannels triggers an OnConnecting signal.
81 TEST_F(TransportTest, TestConnectChannelsDoesSignal) {
82 EXPECT_TRUE(SetupChannel());
83 transport_->ConnectChannels();
84 EXPECT_TRUE(connecting_signalled_);
85 }
86
87 // This test verifies channels are created with proper ICE 59 // This test verifies channels are created with proper ICE
88 // role, tiebreaker and remote ice mode and credentials after offer and 60 // role, tiebreaker and remote ice mode and credentials after offer and
89 // answer negotiations. 61 // answer negotiations.
90 TEST_F(TransportTest, TestChannelIceParameters) { 62 TEST_F(TransportTest, TestChannelIceParameters) {
91 transport_->SetIceRole(cricket::ICEROLE_CONTROLLING); 63 transport_->SetIceRole(cricket::ICEROLE_CONTROLLING);
92 transport_->SetIceTiebreaker(99U); 64 transport_->SetIceTiebreaker(99U);
93 cricket::TransportDescription local_desc(kIceUfrag1, kIcePwd1); 65 cricket::TransportDescription local_desc(kIceUfrag1, kIcePwd1);
94 ASSERT_TRUE(transport_->SetLocalTransportDescription(local_desc, 66 ASSERT_TRUE(transport_->SetLocalTransportDescription(local_desc,
95 cricket::CA_OFFER, 67 cricket::CA_OFFER,
96 NULL)); 68 NULL));
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 EXPECT_EQ(cricket::ICEROLE_CONTROLLING, transport_->ice_role()); 165 EXPECT_EQ(cricket::ICEROLE_CONTROLLING, transport_->ice_role());
194 166
195 cricket::TransportDescription new_local_desc(kIceUfrag2, kIcePwd2); 167 cricket::TransportDescription new_local_desc(kIceUfrag2, kIcePwd2);
196 ASSERT_TRUE(transport_->SetLocalTransportDescription(new_local_desc, 168 ASSERT_TRUE(transport_->SetLocalTransportDescription(new_local_desc,
197 cricket::CA_ANSWER, 169 cricket::CA_ANSWER,
198 NULL)); 170 NULL));
199 EXPECT_EQ(cricket::ICEROLE_CONTROLLING, transport_->ice_role()); 171 EXPECT_EQ(cricket::ICEROLE_CONTROLLING, transport_->ice_role());
200 EXPECT_EQ(cricket::ICEROLE_CONTROLLING, channel_->GetIceRole()); 172 EXPECT_EQ(cricket::ICEROLE_CONTROLLING, channel_->GetIceRole());
201 } 173 }
202 174
203 // This test verifies that the Completed and Failed states can be reached.
204 TEST_F(TransportTest, TestChannelCompletedAndFailed) {
205 transport_->SetIceRole(cricket::ICEROLE_CONTROLLING);
206 cricket::TransportDescription local_desc(kIceUfrag1, kIcePwd1);
207 ASSERT_TRUE(transport_->SetLocalTransportDescription(local_desc,
208 cricket::CA_OFFER,
209 NULL));
210 EXPECT_TRUE(SetupChannel());
211
212 cricket::TransportDescription remote_desc(kIceUfrag1, kIcePwd1);
213 ASSERT_TRUE(transport_->SetRemoteTransportDescription(remote_desc,
214 cricket::CA_ANSWER,
215 NULL));
216
217 channel_->SetConnectionCount(2);
218 channel_->SetCandidatesGatheringComplete();
219 channel_->SetWritable(true);
220 EXPECT_TRUE_WAIT(transport_->all_channels_writable(), 100);
221 // ICE is not yet completed because there is still more than one connection.
222 EXPECT_FALSE(completed_);
223 EXPECT_FALSE(failed_);
224
225 // When the connection count drops to 1, SignalCompleted should be emitted,
226 // and completed() should be true.
227 channel_->SetConnectionCount(1);
228 EXPECT_TRUE_WAIT(completed_, 100);
229 completed_ = false;
230
231 // When the connection count drops to 0, SignalFailed should be emitted, and
232 // completed() should be false.
233 channel_->SetConnectionCount(0);
234 EXPECT_TRUE_WAIT(failed_, 100);
235 EXPECT_FALSE(completed_);
236 }
237
238 // Tests channel role is reversed after receiving ice-lite from remote. 175 // Tests channel role is reversed after receiving ice-lite from remote.
239 TEST_F(TransportTest, TestSetRemoteIceLiteInOffer) { 176 TEST_F(TransportTest, TestSetRemoteIceLiteInOffer) {
240 transport_->SetIceRole(cricket::ICEROLE_CONTROLLED); 177 transport_->SetIceRole(cricket::ICEROLE_CONTROLLED);
241 cricket::TransportDescription remote_desc( 178 cricket::TransportDescription remote_desc(
242 std::vector<std::string>(), 179 std::vector<std::string>(),
243 kIceUfrag1, kIcePwd1, cricket::ICEMODE_LITE, 180 kIceUfrag1, kIcePwd1, cricket::ICEMODE_LITE,
244 cricket::CONNECTIONROLE_ACTPASS, NULL, cricket::Candidates()); 181 cricket::CONNECTIONROLE_ACTPASS, NULL, cricket::Candidates());
245 ASSERT_TRUE(transport_->SetRemoteTransportDescription(remote_desc, 182 ASSERT_TRUE(transport_->SetRemoteTransportDescription(remote_desc,
246 cricket::CA_OFFER, 183 cricket::CA_OFFER,
247 NULL)); 184 NULL));
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
286 EXPECT_TRUE(transport_->GetStats(&stats)); 223 EXPECT_TRUE(transport_->GetStats(&stats));
287 // Note that this tests the behavior of a FakeTransportChannel. 224 // Note that this tests the behavior of a FakeTransportChannel.
288 ASSERT_EQ(1U, stats.channel_stats.size()); 225 ASSERT_EQ(1U, stats.channel_stats.size());
289 EXPECT_EQ(1, stats.channel_stats[0].component); 226 EXPECT_EQ(1, stats.channel_stats[0].component);
290 transport_->ConnectChannels(); 227 transport_->ConnectChannels();
291 EXPECT_TRUE(transport_->GetStats(&stats)); 228 EXPECT_TRUE(transport_->GetStats(&stats));
292 ASSERT_EQ(1U, stats.channel_stats.size()); 229 ASSERT_EQ(1U, stats.channel_stats.size());
293 EXPECT_EQ(1, stats.channel_stats[0].component); 230 EXPECT_EQ(1, stats.channel_stats[0].component);
294 } 231 }
295 232
296 TEST_F(TransportTest, TestReceivingStateChange) {
297 ASSERT_TRUE(SetupChannel());
298 channel_->SetConnectionCount(1);
299 transport_->ConnectChannels();
300 EXPECT_FALSE(transport_->any_channel_receiving());
301
302 channel_->SetReceiving(true);
303 EXPECT_TRUE_WAIT(transport_->any_channel_receiving(), 100);
304 FakeTransportChannel* channel2 = CreateChannel(2);
305 channel2->SetReceiving(true);
306 EXPECT_TRUE_WAIT(transport_->any_channel_receiving(), 100);
307
308 channel2->SetReceiving(false);
309 EXPECT_TRUE_WAIT(transport_->any_channel_receiving(), 100);
310
311 // After both channels become not receiving, the transport receiving state
312 // becomes TRANSPORT_STATE_NONE.
313 channel_->SetReceiving(false);
314 EXPECT_TRUE_WAIT(!transport_->any_channel_receiving(), 100);
315 }
OLDNEW
« no previous file with comments | « webrtc/p2p/base/transport.cc ('k') | webrtc/p2p/base/transportcontroller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698