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

Side by Side Diff: chrome/browser/copresence/chrome_whispernet_client_browsertest.cc

Issue 979723002: Revert of Two small bugfixes (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 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 | « no previous file | chrome/browser/resources/whispernet_proxy/js/nacl.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "chrome/browser/copresence/chrome_whispernet_client.h" 5 #include "chrome/browser/copresence/chrome_whispernet_client.h"
6 6
7 #include <cmath> 7 #include <cmath>
8 #include <cstdlib> 8 #include <cstdlib>
9 #include <string> 9 #include <string>
10 10
(...skipping 15 matching lines...) Expand all
26 #include "media/base/audio_bus.h" 26 #include "media/base/audio_bus.h"
27 #include "media/base/audio_converter.h" 27 #include "media/base/audio_converter.h"
28 28
29 using audio_modem::WhispernetClient; 29 using audio_modem::WhispernetClient;
30 using audio_modem::AUDIBLE; 30 using audio_modem::AUDIBLE;
31 using audio_modem::INAUDIBLE; 31 using audio_modem::INAUDIBLE;
32 using audio_modem::TokenParameters; 32 using audio_modem::TokenParameters;
33 33
34 namespace { 34 namespace {
35 35
36 // TODO(ckehoe): Use randomly generated tokens instead. 36 // TODO(rkc): Add more varied test input.
37 const char kSixZeros[] = "MDAwMDAw"; 37 const char kSixZeros[] = "MDAwMDAw";
38 const char kEightZeros[] = "MDAwMDAwMDA"; 38 const char kEightZeros[] = "MDAwMDAwMDA";
39 const char kNineZeros[] = "MDAwMDAwMDAw"; 39 const char kNineZeros[] = "MDAwMDAwMDAw";
40 40
41 const size_t kTokenLengths[2] = {6, 6}; 41 const size_t kTokenLengths[2] = {6, 6};
42 42
43 // Copied from src/components/copresence/mediums/audio/audio_recorder.cc 43 // Copied from src/components/copresence/mediums/audio/audio_recorder.cc
44 std::string AudioBusToString(scoped_refptr<media::AudioBusRefCounted> source) { 44 std::string AudioBusToString(scoped_refptr<media::AudioBusRefCounted> source) {
45 std::string buffer; 45 std::string buffer;
46 buffer.resize(source->frames() * source->channels() * sizeof(float)); 46 buffer.resize(source->frames() * source->channels() * sizeof(float));
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 media::AudioParameters::NO_EFFECTS); 107 media::AudioParameters::NO_EFFECTS);
108 108
109 converter_.reset(new media::AudioConverter( 109 converter_.reset(new media::AudioConverter(
110 coder_params_, default_params_, 110 coder_params_, default_params_,
111 default_params_.sample_rate() == coder_params_.sample_rate())); 111 default_params_.sample_rate() == coder_params_.sample_rate()));
112 converter_->AddInput(this); 112 converter_->AddInput(this);
113 } 113 }
114 114
115 void EncodeTokenAndSaveSamples(WhispernetClient* client, 115 void EncodeTokenAndSaveSamples(WhispernetClient* client,
116 bool audible, 116 bool audible,
117 const std::string& token, 117 const std::string& token) {
118 const TokenParameters token_params[2]) {
119 run_loop_.reset(new base::RunLoop()); 118 run_loop_.reset(new base::RunLoop());
120 client->RegisterSamplesCallback( 119 client->RegisterSamplesCallback(
121 base::Bind(&ChromeWhispernetClientTest::SamplesCallback, 120 base::Bind(&ChromeWhispernetClientTest::SamplesCallback,
122 base::Unretained(this))); 121 base::Unretained(this)));
123 expected_token_ = token; 122 expected_token_ = token;
124 expected_audible_ = audible; 123 expected_audible_ = audible;
125 124
125 TokenParameters token_params[2];
126 client->EncodeToken(token, audible ? AUDIBLE : INAUDIBLE, token_params); 126 client->EncodeToken(token, audible ? AUDIBLE : INAUDIBLE, token_params);
127 run_loop_->Run(); 127 run_loop_->Run();
128 128
129 EXPECT_GT(saved_samples_->frames(), 0); 129 EXPECT_GT(saved_samples_->frames(), 0);
130 } 130 }
131 131
132 void DecodeSamplesAndVerifyToken(WhispernetClient* client, 132 void DecodeSamplesAndVerifyToken(WhispernetClient* client,
133 bool expect_audible, 133 bool expect_audible,
134 const std::string& expected_token, 134 const std::string& expected_token,
135 const TokenParameters token_params[2]) { 135 const TokenParameters token_params[2]) {
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
229 media::AudioParameters coder_params_; 229 media::AudioParameters coder_params_;
230 230
231 DISALLOW_COPY_AND_ASSIGN(ChromeWhispernetClientTest); 231 DISALLOW_COPY_AND_ASSIGN(ChromeWhispernetClientTest);
232 }; 232 };
233 233
234 // These tests are irrelevant if NACL is disabled. See crbug.com/449198 234 // These tests are irrelevant if NACL is disabled. See crbug.com/449198
235 #if defined(DISABLE_NACL) 235 #if defined(DISABLE_NACL)
236 #define MAYBE_Initialize DISABLED_Initialize 236 #define MAYBE_Initialize DISABLED_Initialize
237 #define MAYBE_EncodeAndDecode DISABLED_EncodeAndDecode 237 #define MAYBE_EncodeAndDecode DISABLED_EncodeAndDecode
238 #define MAYBE_TokenLengths DISABLED_TokenLengths 238 #define MAYBE_TokenLengths DISABLED_TokenLengths
239 #define MAYBE_Crc DISABLED_Crc
240 #define MAYBE_MultipleClients DISABLED_MultipleClients 239 #define MAYBE_MultipleClients DISABLED_MultipleClients
241 #else 240 #else
242 #define MAYBE_Initialize Initialize 241 #define MAYBE_Initialize Initialize
243 #define MAYBE_EncodeAndDecode EncodeAndDecode 242 #define MAYBE_EncodeAndDecode EncodeAndDecode
244 #define MAYBE_TokenLengths TokenLengths 243 #define MAYBE_TokenLengths TokenLengths
245 #define MAYBE_Crc Crc
246 #define MAYBE_MultipleClients MultipleClients 244 #define MAYBE_MultipleClients MultipleClients
247 #endif 245 #endif
248 246
249 IN_PROC_BROWSER_TEST_F(ChromeWhispernetClientTest, MAYBE_Initialize) { 247 IN_PROC_BROWSER_TEST_F(ChromeWhispernetClientTest, MAYBE_Initialize) {
250 InitializeWhispernet(); 248 InitializeWhispernet();
251 } 249 }
252 250
253 IN_PROC_BROWSER_TEST_F(ChromeWhispernetClientTest, MAYBE_EncodeAndDecode) { 251 IN_PROC_BROWSER_TEST_F(ChromeWhispernetClientTest, MAYBE_EncodeAndDecode) {
254 scoped_ptr<WhispernetClient> client( 252 scoped_ptr<WhispernetClient> client(
255 new ChromeWhispernetClient(browser()->profile())); 253 new ChromeWhispernetClient(browser()->profile()));
256 client->Initialize(base::Bind(&IgnoreResult)); 254 client->Initialize(base::Bind(&IgnoreResult));
257 SetupDecode(); 255 SetupDecode();
258 256
259 TokenParameters token_params[2]; 257 TokenParameters token_params[2];
260 GetTokenParamsForLengths(kTokenLengths, token_params); 258 GetTokenParamsForLengths(kTokenLengths, token_params);
261 259
262 EncodeTokenAndSaveSamples(client.get(), true, kSixZeros, token_params); 260 EncodeTokenAndSaveSamples(client.get(), true, kSixZeros);
263 DecodeSamplesAndVerifyToken(client.get(), true, kSixZeros, token_params); 261 DecodeSamplesAndVerifyToken(client.get(), true, kSixZeros, token_params);
264 262
265 EncodeTokenAndSaveSamples(client.get(), false, kSixZeros, token_params); 263 EncodeTokenAndSaveSamples(client.get(), false, kSixZeros);
266 DecodeSamplesAndVerifyToken(client.get(), false, kSixZeros, token_params); 264 DecodeSamplesAndVerifyToken(client.get(), false, kSixZeros, token_params);
267 } 265 }
268 266
269 IN_PROC_BROWSER_TEST_F(ChromeWhispernetClientTest, MAYBE_TokenLengths) { 267 IN_PROC_BROWSER_TEST_F(ChromeWhispernetClientTest, MAYBE_TokenLengths) {
270 scoped_ptr<WhispernetClient> client( 268 scoped_ptr<WhispernetClient> client(
271 new ChromeWhispernetClient(browser()->profile())); 269 new ChromeWhispernetClient(browser()->profile()));
272 client->Initialize(base::Bind(&IgnoreResult)); 270 client->Initialize(base::Bind(&IgnoreResult));
273 SetupDecode(); 271 SetupDecode();
274 272
275 const size_t kLongTokenLengths[2] = {8, 9}; 273 const size_t kLongTokenLengths[2] = {8, 9};
276 TokenParameters token_params[2]; 274 TokenParameters token_params[2];
277 GetTokenParamsForLengths(kLongTokenLengths, token_params); 275 GetTokenParamsForLengths(kLongTokenLengths, token_params);
278 276
279 EncodeTokenAndSaveSamples(client.get(), true, kEightZeros, token_params); 277 EncodeTokenAndSaveSamples(client.get(), true, kEightZeros);
280 DecodeSamplesAndVerifyToken(client.get(), true, kEightZeros, token_params); 278 DecodeSamplesAndVerifyToken(client.get(), true, kEightZeros, token_params);
281 279
282 EncodeTokenAndSaveSamples(client.get(), false, kNineZeros, token_params); 280 EncodeTokenAndSaveSamples(client.get(), false, kNineZeros);
283 DecodeSamplesAndVerifyToken(client.get(), false, kNineZeros, token_params); 281 DecodeSamplesAndVerifyToken(client.get(), false, kNineZeros, token_params);
284 } 282 }
285 283
286 IN_PROC_BROWSER_TEST_F(ChromeWhispernetClientTest, MAYBE_Crc) {
287 scoped_ptr<WhispernetClient> client(
288 new ChromeWhispernetClient(browser()->profile()));
289 client->Initialize(base::Bind(&IgnoreResult));
290 SetupDecode();
291
292 TokenParameters token_params[2];
293 GetTokenParamsForLengths(kTokenLengths, token_params);
294 token_params[0].crc = true;
295 token_params[1].crc = true;
296
297 EncodeTokenAndSaveSamples(client.get(), true, kSixZeros, token_params);
298 DecodeSamplesAndVerifyToken(client.get(), true, kSixZeros, token_params);
299
300 EncodeTokenAndSaveSamples(client.get(), false, kSixZeros, token_params);
301 DecodeSamplesAndVerifyToken(client.get(), false, kSixZeros, token_params);
302 }
303
304 IN_PROC_BROWSER_TEST_F(ChromeWhispernetClientTest, MAYBE_MultipleClients) { 284 IN_PROC_BROWSER_TEST_F(ChromeWhispernetClientTest, MAYBE_MultipleClients) {
305 scoped_ptr<WhispernetClient> client_1( 285 scoped_ptr<WhispernetClient> client_1(
306 new ChromeWhispernetClient(browser()->profile())); 286 new ChromeWhispernetClient(browser()->profile()));
307 scoped_ptr<WhispernetClient> client_2( 287 scoped_ptr<WhispernetClient> client_2(
308 new ChromeWhispernetClient(browser()->profile())); 288 new ChromeWhispernetClient(browser()->profile()));
309 scoped_ptr<WhispernetClient> client_3( 289 scoped_ptr<WhispernetClient> client_3(
310 new ChromeWhispernetClient(browser()->profile())); 290 new ChromeWhispernetClient(browser()->profile()));
311 SetupDecode(); 291 SetupDecode();
312 292
313 TokenParameters token_params[2]; 293 TokenParameters token_params[2];
314 GetTokenParamsForLengths(kTokenLengths, token_params); 294 GetTokenParamsForLengths(kTokenLengths, token_params);
315 295
316 // Test concurrent initialization. 296 // Test concurrent initialization.
317 client_1->Initialize(base::Bind(&IgnoreResult)); 297 client_1->Initialize(base::Bind(&IgnoreResult));
318 client_2->Initialize(base::Bind(&IgnoreResult)); 298 client_2->Initialize(base::Bind(&IgnoreResult));
319 299
320 EncodeTokenAndSaveSamples(client_1.get(), true, kSixZeros, token_params); 300 EncodeTokenAndSaveSamples(client_1.get(), true, kSixZeros);
321 DecodeSamplesAndVerifyToken(client_1.get(), true, kSixZeros, token_params); 301 DecodeSamplesAndVerifyToken(client_1.get(), true, kSixZeros, token_params);
322 302
323 EncodeTokenAndSaveSamples(client_2.get(), false, kSixZeros, token_params); 303 EncodeTokenAndSaveSamples(client_2.get(), false, kSixZeros);
324 DecodeSamplesAndVerifyToken(client_2.get(), false, kSixZeros, token_params); 304 DecodeSamplesAndVerifyToken(client_2.get(), false, kSixZeros, token_params);
325 305
326 // Test sequential initialization. 306 // Test sequential initialization.
327 client_3->Initialize(base::Bind(&IgnoreResult)); 307 client_3->Initialize(base::Bind(&IgnoreResult));
328 308
329 EncodeTokenAndSaveSamples(client_3.get(), true, kSixZeros, token_params); 309 EncodeTokenAndSaveSamples(client_3.get(), true, kSixZeros);
330 DecodeSamplesAndVerifyToken(client_3.get(), true, kSixZeros, token_params); 310 DecodeSamplesAndVerifyToken(client_3.get(), true, kSixZeros, token_params);
331 311
332 const size_t kLongTokenLengths[2] = {8, 9}; 312 const size_t kLongTokenLengths[2] = {8, 9};
333 GetTokenParamsForLengths(kLongTokenLengths, token_params); 313 GetTokenParamsForLengths(kLongTokenLengths, token_params);
334 314
335 EncodeTokenAndSaveSamples(client_2.get(), true, kEightZeros, token_params); 315 EncodeTokenAndSaveSamples(client_2.get(), true, kEightZeros);
336 DecodeSamplesAndVerifyToken(client_2.get(), true, kEightZeros, token_params); 316 DecodeSamplesAndVerifyToken(client_2.get(), true, kEightZeros, token_params);
337 } 317 }
318
319 // TODO(ckehoe): Test crc and parity
320 // TODO(ckehoe): More multi-client testing
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/resources/whispernet_proxy/js/nacl.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698