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

Side by Side Diff: webrtc/call/bitrate_allocator_unittest.cc

Issue 1993113003: Refactor how padding is calculated. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Fixed unitialized memory. Created 4 years, 6 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
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2012 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
11 #include <algorithm> 11 #include <algorithm>
12 #include <memory> 12 #include <memory>
13 #include <vector> 13 #include <vector>
14 14
15 #include "testing/gmock/include/gmock/gmock.h"
15 #include "testing/gtest/include/gtest/gtest.h" 16 #include "testing/gtest/include/gtest/gtest.h"
16 #include "webrtc/call/bitrate_allocator.h" 17 #include "webrtc/call/bitrate_allocator.h"
17 #include "webrtc/modules/bitrate_controller/include/bitrate_controller.h" 18 #include "webrtc/modules/bitrate_controller/include/bitrate_controller.h"
18 19
20 using testing::NiceMock;
21
19 namespace webrtc { 22 namespace webrtc {
20 23
24 class MockLimitObserver : public BitrateAllocator::LimitObserver {
25 public:
26 MOCK_METHOD2(OnAllocationLimitsChanged,
27 void(uint32_t min_send_bitrate_bps,
28 uint32_t max_padding_bitrate_bps));
29 };
30
21 class TestBitrateObserver : public BitrateAllocatorObserver { 31 class TestBitrateObserver : public BitrateAllocatorObserver {
22 public: 32 public:
23 TestBitrateObserver() 33 TestBitrateObserver()
24 : last_bitrate_(0), last_fraction_loss_(0), last_rtt_(0) {} 34 : last_bitrate_(0), last_fraction_loss_(0), last_rtt_(0) {}
25 35
26 virtual void OnBitrateUpdated(uint32_t bitrate, 36 virtual void OnBitrateUpdated(uint32_t bitrate,
27 uint8_t fraction_loss, 37 uint8_t fraction_loss,
28 int64_t rtt) { 38 int64_t rtt) {
29 last_bitrate_ = bitrate; 39 last_bitrate_ = bitrate;
30 last_fraction_loss_ = fraction_loss; 40 last_fraction_loss_ = fraction_loss;
31 last_rtt_ = rtt; 41 last_rtt_ = rtt;
32 } 42 }
33 uint32_t last_bitrate_; 43 uint32_t last_bitrate_;
34 uint8_t last_fraction_loss_; 44 uint8_t last_fraction_loss_;
35 int64_t last_rtt_; 45 int64_t last_rtt_;
36 }; 46 };
37 47
38 class BitrateAllocatorTest : public ::testing::Test { 48 class BitrateAllocatorTest : public ::testing::Test {
39 protected: 49 protected:
40 BitrateAllocatorTest() : allocator_(new BitrateAllocator()) { 50 BitrateAllocatorTest() : allocator_(new BitrateAllocator(&limit_observer_)) {
41 allocator_->OnNetworkChanged(300000u, 0, 0); 51 allocator_->OnNetworkChanged(300000u, 0, 0);
42 } 52 }
43 ~BitrateAllocatorTest() {} 53 ~BitrateAllocatorTest() {}
44 54
55 NiceMock<MockLimitObserver> limit_observer_;
45 std::unique_ptr<BitrateAllocator> allocator_; 56 std::unique_ptr<BitrateAllocator> allocator_;
46 }; 57 };
47 58
48 TEST_F(BitrateAllocatorTest, UpdatingBitrateObserver) { 59 TEST_F(BitrateAllocatorTest, UpdatingBitrateObserver) {
49 TestBitrateObserver bitrate_observer; 60 TestBitrateObserver bitrate_observer;
50 int start_bitrate = 61 const uint32_t kMinSendBitrateBps = 100000;
51 allocator_->AddObserver(&bitrate_observer, 100000, 1500000, true); 62 const uint32_t kPadUpToBitrateBps = 50000;
63
64 EXPECT_CALL(limit_observer_, OnAllocationLimitsChanged(kMinSendBitrateBps,
65 kPadUpToBitrateBps));
66 int start_bitrate = allocator_->AddObserver(
67 &bitrate_observer, kMinSendBitrateBps, 1500000, kPadUpToBitrateBps, true);
52 EXPECT_EQ(300000, start_bitrate); 68 EXPECT_EQ(300000, start_bitrate);
53 allocator_->OnNetworkChanged(200000, 0, 0); 69 allocator_->OnNetworkChanged(200000, 0, 0);
54 EXPECT_EQ(200000u, bitrate_observer.last_bitrate_); 70 EXPECT_EQ(200000u, bitrate_observer.last_bitrate_);
55 71
56 // TODO(pbos): Expect capping to 1.5M instead of 3M when not boosting the max 72 // TODO(pbos): Expect capping to 1.5M instead of 3M when not boosting the max
57 // bitrate for FEC/retransmissions (see todo in BitrateAllocator). 73 // bitrate for FEC/retransmissions (see todo in BitrateAllocator).
58 allocator_->OnNetworkChanged(4000000, 0, 0); 74 allocator_->OnNetworkChanged(4000000, 0, 0);
59 EXPECT_EQ(3000000u, bitrate_observer.last_bitrate_); 75 EXPECT_EQ(3000000u, bitrate_observer.last_bitrate_);
60 start_bitrate = 76
61 allocator_->AddObserver(&bitrate_observer, 100000, 4000000, true); 77 // Expect |max_padding_bitrate_bps| to change to 0 if the observer is updated.
78 EXPECT_CALL(limit_observer_,
79 OnAllocationLimitsChanged(kMinSendBitrateBps, 0));
80 start_bitrate = allocator_->AddObserver(&bitrate_observer, kMinSendBitrateBps,
81 4000000, 0, true);
62 EXPECT_EQ(4000000, start_bitrate); 82 EXPECT_EQ(4000000, start_bitrate);
63 83
64 start_bitrate = 84 EXPECT_CALL(limit_observer_,
65 allocator_->AddObserver(&bitrate_observer, 100000, 1500000, true); 85 OnAllocationLimitsChanged(kMinSendBitrateBps, 0));
86 start_bitrate = allocator_->AddObserver(&bitrate_observer, kMinSendBitrateBps,
87 1500000, 0, true);
66 EXPECT_EQ(3000000, start_bitrate); 88 EXPECT_EQ(3000000, start_bitrate);
67 EXPECT_EQ(3000000u, bitrate_observer.last_bitrate_); 89 EXPECT_EQ(3000000u, bitrate_observer.last_bitrate_);
68 allocator_->OnNetworkChanged(1500000, 0, 0); 90 allocator_->OnNetworkChanged(1500000, 0, 0);
69 EXPECT_EQ(1500000u, bitrate_observer.last_bitrate_); 91 EXPECT_EQ(1500000u, bitrate_observer.last_bitrate_);
70 } 92 }
71 93
72 TEST_F(BitrateAllocatorTest, TwoBitrateObserversOneRtcpObserver) { 94 TEST_F(BitrateAllocatorTest, TwoBitrateObserversOneRtcpObserver) {
73 TestBitrateObserver bitrate_observer_1; 95 TestBitrateObserver bitrate_observer_1;
74 TestBitrateObserver bitrate_observer_2; 96 TestBitrateObserver bitrate_observer_2;
97 EXPECT_CALL(limit_observer_, OnAllocationLimitsChanged(100000, 0));
75 int start_bitrate = 98 int start_bitrate =
76 allocator_->AddObserver(&bitrate_observer_1, 100000, 300000, true); 99 allocator_->AddObserver(&bitrate_observer_1, 100000, 300000, 0, true);
77 EXPECT_EQ(300000, start_bitrate); 100 EXPECT_EQ(300000, start_bitrate);
101 EXPECT_CALL(limit_observer_, OnAllocationLimitsChanged(100000 + 200000, 0));
78 start_bitrate = 102 start_bitrate =
79 allocator_->AddObserver(&bitrate_observer_2, 200000, 300000, true); 103 allocator_->AddObserver(&bitrate_observer_2, 200000, 300000, 0, true);
80 EXPECT_EQ(200000, start_bitrate); 104 EXPECT_EQ(200000, start_bitrate);
81 105
82 // Test too low start bitrate, hence lower than sum of min. Min bitrates will 106 // Test too low start bitrate, hence lower than sum of min. Min bitrates will
83 // be allocated to all observers. 107 // be allocated to all observers.
84 allocator_->OnNetworkChanged(200000, 0, 50); 108 allocator_->OnNetworkChanged(200000, 0, 50);
85 EXPECT_EQ(100000u, bitrate_observer_1.last_bitrate_); 109 EXPECT_EQ(100000u, bitrate_observer_1.last_bitrate_);
86 EXPECT_EQ(0, bitrate_observer_1.last_fraction_loss_); 110 EXPECT_EQ(0, bitrate_observer_1.last_fraction_loss_);
87 EXPECT_EQ(50, bitrate_observer_1.last_rtt_); 111 EXPECT_EQ(50, bitrate_observer_1.last_rtt_);
88 EXPECT_EQ(200000u, bitrate_observer_2.last_bitrate_); 112 EXPECT_EQ(200000u, bitrate_observer_2.last_bitrate_);
89 EXPECT_EQ(0, bitrate_observer_2.last_fraction_loss_); 113 EXPECT_EQ(0, bitrate_observer_2.last_fraction_loss_);
(...skipping 10 matching lines...) Expand all
100 EXPECT_EQ(600000u, bitrate_observer_1.last_bitrate_); 124 EXPECT_EQ(600000u, bitrate_observer_1.last_bitrate_);
101 EXPECT_EQ(600000u, bitrate_observer_2.last_bitrate_); 125 EXPECT_EQ(600000u, bitrate_observer_2.last_bitrate_);
102 126
103 // Verify that if the bandwidth estimate is set to zero, the allocated rate is 127 // Verify that if the bandwidth estimate is set to zero, the allocated rate is
104 // zero. 128 // zero.
105 allocator_->OnNetworkChanged(0, 0, 50); 129 allocator_->OnNetworkChanged(0, 0, 50);
106 EXPECT_EQ(0u, bitrate_observer_1.last_bitrate_); 130 EXPECT_EQ(0u, bitrate_observer_1.last_bitrate_);
107 EXPECT_EQ(0u, bitrate_observer_2.last_bitrate_); 131 EXPECT_EQ(0u, bitrate_observer_2.last_bitrate_);
108 } 132 }
109 133
134 TEST_F(BitrateAllocatorTest, RemoveObserverTriggersLimitObserver) {
135 TestBitrateObserver bitrate_observer;
136 const uint32_t kMinSendBitrateBps = 100000;
137 const uint32_t kPadUpToBitrateBps = 50000;
138
139 EXPECT_CALL(limit_observer_, OnAllocationLimitsChanged(kMinSendBitrateBps,
140 kPadUpToBitrateBps));
141 allocator_->AddObserver(&bitrate_observer, kMinSendBitrateBps, 1500000,
142 kPadUpToBitrateBps, true);
143 EXPECT_CALL(limit_observer_, OnAllocationLimitsChanged(0, 0));
144 allocator_->RemoveObserver(&bitrate_observer);
145 }
146
147 TEST_F(BitrateAllocatorTest,
148 NotifyObserverInactiveTriggersLimitObserverWithNoPaddingBitrate) {
149 TestBitrateObserver bitrate_observer;
150 const uint32_t kMinSendBitrateBps = 100000;
151 const uint32_t kPadUpToBitrateBps = 50000;
152
153 EXPECT_CALL(limit_observer_, OnAllocationLimitsChanged(kMinSendBitrateBps,
154 kPadUpToBitrateBps));
155 allocator_->AddObserver(&bitrate_observer, kMinSendBitrateBps, 1500000,
156 kPadUpToBitrateBps, true);
157
158 EXPECT_CALL(limit_observer_,
159 OnAllocationLimitsChanged(kMinSendBitrateBps, 0));
160 allocator_->NotifyObserverInactive(&bitrate_observer, true /* inactive */);
161
162 EXPECT_CALL(limit_observer_, OnAllocationLimitsChanged(kMinSendBitrateBps,
163 kPadUpToBitrateBps));
164 allocator_->NotifyObserverInactive(&bitrate_observer, false /* inactive */);
165 }
166
110 class BitrateAllocatorTestNoEnforceMin : public ::testing::Test { 167 class BitrateAllocatorTestNoEnforceMin : public ::testing::Test {
111 protected: 168 protected:
112 BitrateAllocatorTestNoEnforceMin() : allocator_(new BitrateAllocator()) { 169 BitrateAllocatorTestNoEnforceMin()
170 : allocator_(new BitrateAllocator(&limit_observer_)) {
113 allocator_->OnNetworkChanged(300000u, 0, 0); 171 allocator_->OnNetworkChanged(300000u, 0, 0);
114 } 172 }
115 ~BitrateAllocatorTestNoEnforceMin() {} 173 ~BitrateAllocatorTestNoEnforceMin() {}
116 174
175 NiceMock<MockLimitObserver> limit_observer_;
117 std::unique_ptr<BitrateAllocator> allocator_; 176 std::unique_ptr<BitrateAllocator> allocator_;
118 }; 177 };
119 178
120 // The following three tests verify that the EnforceMinBitrate() method works 179 // The following three tests verify that the EnforceMinBitrate() method works
121 // as intended. 180 // as intended.
122 TEST_F(BitrateAllocatorTestNoEnforceMin, OneBitrateObserver) { 181 TEST_F(BitrateAllocatorTestNoEnforceMin, OneBitrateObserver) {
123 TestBitrateObserver bitrate_observer_1; 182 TestBitrateObserver bitrate_observer_1;
183 // Expect OnAllocationLimitsChanged with |min_send_bitrate_bps| = 0 since
184 // AddObserver is called with |enforce_min_bitrate| = false.
185 EXPECT_CALL(limit_observer_, OnAllocationLimitsChanged(0, 0));
124 int start_bitrate = 186 int start_bitrate =
125 allocator_->AddObserver(&bitrate_observer_1, 100000, 400000, false); 187 allocator_->AddObserver(&bitrate_observer_1, 100000, 400000, 0, false);
126 EXPECT_EQ(300000, start_bitrate); 188 EXPECT_EQ(300000, start_bitrate);
127 189
128 // High REMB. 190 // High REMB.
129 allocator_->OnNetworkChanged(150000, 0, 0); 191 allocator_->OnNetworkChanged(150000, 0, 0);
130 EXPECT_EQ(150000u, bitrate_observer_1.last_bitrate_); 192 EXPECT_EQ(150000u, bitrate_observer_1.last_bitrate_);
131 193
132 // Low REMB. 194 // Low REMB.
133 allocator_->OnNetworkChanged(10000, 0, 0); 195 allocator_->OnNetworkChanged(10000, 0, 0);
134 EXPECT_EQ(10000u, bitrate_observer_1.last_bitrate_); 196 EXPECT_EQ(10000u, bitrate_observer_1.last_bitrate_);
135 197
198 EXPECT_CALL(limit_observer_, OnAllocationLimitsChanged(0, 0));
136 allocator_->RemoveObserver(&bitrate_observer_1); 199 allocator_->RemoveObserver(&bitrate_observer_1);
137 } 200 }
138 201
139 TEST_F(BitrateAllocatorTestNoEnforceMin, ThreeBitrateObservers) { 202 TEST_F(BitrateAllocatorTestNoEnforceMin, ThreeBitrateObservers) {
140 TestBitrateObserver bitrate_observer_1; 203 TestBitrateObserver bitrate_observer_1;
141 TestBitrateObserver bitrate_observer_2; 204 TestBitrateObserver bitrate_observer_2;
142 TestBitrateObserver bitrate_observer_3; 205 TestBitrateObserver bitrate_observer_3;
143 // Set up the observers with min bitrates at 100000, 200000, and 300000. 206 // Set up the observers with min bitrates at 100000, 200000, and 300000.
144 int start_bitrate = 207 int start_bitrate =
145 allocator_->AddObserver(&bitrate_observer_1, 100000, 400000, false); 208 allocator_->AddObserver(&bitrate_observer_1, 100000, 400000, 0, false);
146 EXPECT_EQ(300000, start_bitrate); 209 EXPECT_EQ(300000, start_bitrate);
147 210
148 start_bitrate = 211 start_bitrate =
149 allocator_->AddObserver(&bitrate_observer_2, 200000, 400000, false); 212 allocator_->AddObserver(&bitrate_observer_2, 200000, 400000, 0, false);
150 EXPECT_EQ(200000, start_bitrate); 213 EXPECT_EQ(200000, start_bitrate);
151 EXPECT_EQ(100000u, bitrate_observer_1.last_bitrate_); 214 EXPECT_EQ(100000u, bitrate_observer_1.last_bitrate_);
152 215
153 start_bitrate = 216 start_bitrate =
154 allocator_->AddObserver(&bitrate_observer_3, 300000, 400000, false); 217 allocator_->AddObserver(&bitrate_observer_3, 300000, 400000, 0, false);
155 EXPECT_EQ(0, start_bitrate); 218 EXPECT_EQ(0, start_bitrate);
156 EXPECT_EQ(100000u, bitrate_observer_1.last_bitrate_); 219 EXPECT_EQ(100000u, bitrate_observer_1.last_bitrate_);
157 EXPECT_EQ(200000u, bitrate_observer_2.last_bitrate_); 220 EXPECT_EQ(200000u, bitrate_observer_2.last_bitrate_);
158 221
159 // High REMB. Make sure the controllers get a fair share of the surplus 222 // High REMB. Make sure the controllers get a fair share of the surplus
160 // (i.e., what is left after each controller gets its min rate). 223 // (i.e., what is left after each controller gets its min rate).
161 allocator_->OnNetworkChanged(690000, 0, 0); 224 allocator_->OnNetworkChanged(690000, 0, 0);
162 // Verify that each observer gets its min rate (sum of min rates is 600000), 225 // Verify that each observer gets its min rate (sum of min rates is 600000),
163 // and that the remaining 90000 is divided equally among the three. 226 // and that the remaining 90000 is divided equally among the three.
164 uint32_t bitrate_to_share = 690000u - 100000u - 200000u - 300000u; 227 uint32_t bitrate_to_share = 690000u - 100000u - 200000u - 300000u;
(...skipping 26 matching lines...) Expand all
191 allocator_->RemoveObserver(&bitrate_observer_1); 254 allocator_->RemoveObserver(&bitrate_observer_1);
192 allocator_->RemoveObserver(&bitrate_observer_2); 255 allocator_->RemoveObserver(&bitrate_observer_2);
193 allocator_->RemoveObserver(&bitrate_observer_3); 256 allocator_->RemoveObserver(&bitrate_observer_3);
194 } 257 }
195 258
196 TEST_F(BitrateAllocatorTest, ThreeBitrateObserversLowRembEnforceMin) { 259 TEST_F(BitrateAllocatorTest, ThreeBitrateObserversLowRembEnforceMin) {
197 TestBitrateObserver bitrate_observer_1; 260 TestBitrateObserver bitrate_observer_1;
198 TestBitrateObserver bitrate_observer_2; 261 TestBitrateObserver bitrate_observer_2;
199 TestBitrateObserver bitrate_observer_3; 262 TestBitrateObserver bitrate_observer_3;
200 int start_bitrate = 263 int start_bitrate =
201 allocator_->AddObserver(&bitrate_observer_1, 100000, 400000, true); 264 allocator_->AddObserver(&bitrate_observer_1, 100000, 400000, 0, true);
202 EXPECT_EQ(300000, start_bitrate); 265 EXPECT_EQ(300000, start_bitrate);
203 266
204 start_bitrate = 267 start_bitrate =
205 allocator_->AddObserver(&bitrate_observer_2, 200000, 400000, true); 268 allocator_->AddObserver(&bitrate_observer_2, 200000, 400000, 0, true);
206 EXPECT_EQ(200000, start_bitrate); 269 EXPECT_EQ(200000, start_bitrate);
207 EXPECT_EQ(100000u, bitrate_observer_1.last_bitrate_); 270 EXPECT_EQ(100000u, bitrate_observer_1.last_bitrate_);
208 271
209 start_bitrate = 272 start_bitrate =
210 allocator_->AddObserver(&bitrate_observer_3, 300000, 400000, true); 273 allocator_->AddObserver(&bitrate_observer_3, 300000, 400000, 0, true);
211 EXPECT_EQ(300000, start_bitrate); 274 EXPECT_EQ(300000, start_bitrate);
212 EXPECT_EQ(100000, static_cast<int>(bitrate_observer_1.last_bitrate_)); 275 EXPECT_EQ(100000, static_cast<int>(bitrate_observer_1.last_bitrate_));
213 EXPECT_EQ(200000, static_cast<int>(bitrate_observer_2.last_bitrate_)); 276 EXPECT_EQ(200000, static_cast<int>(bitrate_observer_2.last_bitrate_));
214 277
215 // Low REMB. Verify that all observers still get their respective min bitrate. 278 // Low REMB. Verify that all observers still get their respective min bitrate.
216 allocator_->OnNetworkChanged(1000, 0, 0); 279 allocator_->OnNetworkChanged(1000, 0, 0);
217 EXPECT_EQ(100000u, bitrate_observer_1.last_bitrate_); // Min cap. 280 EXPECT_EQ(100000u, bitrate_observer_1.last_bitrate_); // Min cap.
218 EXPECT_EQ(200000u, bitrate_observer_2.last_bitrate_); // Min cap. 281 EXPECT_EQ(200000u, bitrate_observer_2.last_bitrate_); // Min cap.
219 EXPECT_EQ(300000u, bitrate_observer_3.last_bitrate_); // Min cap. 282 EXPECT_EQ(300000u, bitrate_observer_3.last_bitrate_); // Min cap.
220 283
221 allocator_->RemoveObserver(&bitrate_observer_1); 284 allocator_->RemoveObserver(&bitrate_observer_1);
222 allocator_->RemoveObserver(&bitrate_observer_2); 285 allocator_->RemoveObserver(&bitrate_observer_2);
223 allocator_->RemoveObserver(&bitrate_observer_3); 286 allocator_->RemoveObserver(&bitrate_observer_3);
224 } 287 }
225 288
226 TEST_F(BitrateAllocatorTest, AddObserverWhileNetworkDown) { 289 TEST_F(BitrateAllocatorTest, AddObserverWhileNetworkDown) {
227 TestBitrateObserver bitrate_observer_1; 290 TestBitrateObserver bitrate_observer_1;
291 EXPECT_CALL(limit_observer_, OnAllocationLimitsChanged(50000, 0));
228 int start_bitrate = 292 int start_bitrate =
229 allocator_->AddObserver(&bitrate_observer_1, 50000, 400000, true); 293 allocator_->AddObserver(&bitrate_observer_1, 50000, 400000, 0, true);
230 EXPECT_EQ(300000, start_bitrate); 294 EXPECT_EQ(300000, start_bitrate);
231 295
232 // Set network down, ie, no available bitrate. 296 // Set network down, ie, no available bitrate.
233 allocator_->OnNetworkChanged(0, 0, 0); 297 allocator_->OnNetworkChanged(0, 0, 0);
234 298
235 EXPECT_EQ(0u, bitrate_observer_1.last_bitrate_); 299 EXPECT_EQ(0u, bitrate_observer_1.last_bitrate_);
236 300
237 TestBitrateObserver bitrate_observer_2; 301 TestBitrateObserver bitrate_observer_2;
302 // Adding an observer while the network is down should not affect the limits.
303 EXPECT_CALL(limit_observer_, OnAllocationLimitsChanged(50000 + 50000, 0));
238 start_bitrate = 304 start_bitrate =
239 allocator_->AddObserver(&bitrate_observer_2, 50000, 400000, true); 305 allocator_->AddObserver(&bitrate_observer_2, 50000, 400000, 0, true);
240 306
241 // Expect the start_bitrate to be set as if the network was still up but that 307 // Expect the start_bitrate to be set as if the network was still up but that
242 // the new observer have been notified that the network is down. 308 // the new observer have been notified that the network is down.
243 EXPECT_EQ(300000 / 2, start_bitrate); 309 EXPECT_EQ(300000 / 2, start_bitrate);
244 EXPECT_EQ(0u, bitrate_observer_1.last_bitrate_); 310 EXPECT_EQ(0u, bitrate_observer_1.last_bitrate_);
245 EXPECT_EQ(0u, bitrate_observer_2.last_bitrate_); 311 EXPECT_EQ(0u, bitrate_observer_2.last_bitrate_);
246 312
247 // Set network back up. 313 // Set network back up.
248 allocator_->OnNetworkChanged(1500000, 0, 50); 314 allocator_->OnNetworkChanged(1500000, 0, 50);
249 EXPECT_EQ(750000u, bitrate_observer_1.last_bitrate_); 315 EXPECT_EQ(750000u, bitrate_observer_1.last_bitrate_);
250 EXPECT_EQ(750000u, bitrate_observer_2.last_bitrate_); 316 EXPECT_EQ(750000u, bitrate_observer_2.last_bitrate_);
251 } 317 }
252 318
253 } // namespace webrtc 319 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698