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

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

Issue 444373004: Add Audible support to the whispernet client. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 4 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 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 <cstdlib> 7 #include <cstdlib>
8 #include <string> 8 #include <string>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 client_.reset(new ChromeWhispernetClient(browser()->profile())); 52 client_.reset(new ChromeWhispernetClient(browser()->profile()));
53 extensions::SetWhispernetClientForTesting(client_.get()); 53 extensions::SetWhispernetClientForTesting(client_.get());
54 54
55 client_->Initialize(base::Bind(&ChromeWhispernetClientTest::InitCallback, 55 client_->Initialize(base::Bind(&ChromeWhispernetClientTest::InitCallback,
56 base::Unretained(this))); 56 base::Unretained(this)));
57 run_loop_->Run(); 57 run_loop_->Run();
58 58
59 EXPECT_TRUE(initialized_); 59 EXPECT_TRUE(initialized_);
60 } 60 }
61 61
62 void EncodeTokenAndSaveSamples() { 62 void EncodeTokenAndSaveSamples(bool audible) {
63 ASSERT_TRUE(client_); 63 ASSERT_TRUE(client_);
64 64
65 // This is the base64 encoding for 000000. 65 // Base64 encoding for "000000" (or "00000" for audible).
66 const std::string kZeroToken = "MDAwMDAw"; 66 const std::string kZeroes = audible ? "MDAwMDA=" : "MDAwMDAw";
Charlie 2014/08/07 15:46:47 Move these to two static const char[]: const std:
rkc 2014/08/07 16:30:41 Adding 3 constants seems overkill for one value. T
Charlie 2014/08/07 16:43:54 The point of short constants is to avoid typos and
rkc 2014/08/07 17:17:02 Added constants, explained token length in comment
67 67
68 run_loop_.reset(new base::RunLoop()); 68 run_loop_.reset(new base::RunLoop());
69 client_->RegisterSamplesCallback(base::Bind( 69 client_->RegisterSamplesCallback(base::Bind(
70 &ChromeWhispernetClientTest::SamplesCallback, base::Unretained(this))); 70 &ChromeWhispernetClientTest::SamplesCallback, base::Unretained(this)));
71 expected_token_ = kZeroToken; 71 expected_token_ = kZeroes;
72 72
73 client_->EncodeToken(kZeroToken); 73 client_->EncodeToken(kZeroes);
74 run_loop_->Run(); 74 run_loop_->Run();
75 75
76 EXPECT_GT(saved_samples_->frames(), 0); 76 EXPECT_GT(saved_samples_->frames(), 0);
77 } 77 }
78 78
79 void DecodeSamplesAndVerifyToken() { 79 void DecodeSamplesAndVerifyToken(bool audible) {
80 ASSERT_TRUE(client_); 80 ASSERT_TRUE(client_);
81 81
82 const std::string kZeroToken = "MDAwMDAw"; 82 // Base64 encoding for "000000" (or "00000" for audible).
83 const std::string kZeroes = audible ? "MDAwMDA=" : "MDAwMDAw";
83 84
84 run_loop_.reset(new base::RunLoop()); 85 run_loop_.reset(new base::RunLoop());
85 client_->RegisterTokensCallback(base::Bind( 86 client_->RegisterTokensCallback(base::Bind(
86 &ChromeWhispernetClientTest::TokensCallback, base::Unretained(this))); 87 &ChromeWhispernetClientTest::TokensCallback, base::Unretained(this)));
87 expected_token_ = kZeroToken; 88 expected_token_ = kZeroes;
88 89
89 ASSERT_GT(saved_samples_->frames(), 0); 90 ASSERT_GT(saved_samples_->frames(), 0);
90 91
91 // Convert our single channel samples to two channel. Decode samples 92 // Convert our single channel samples to two channel. Decode samples
92 // expects 2 channel data. 93 // expects 2 channel data.
93 scoped_refptr<media::AudioBusRefCounted> samples_bus = 94 scoped_refptr<media::AudioBusRefCounted> samples_bus =
94 media::AudioBusRefCounted::Create(2, saved_samples_->frames()); 95 media::AudioBusRefCounted::Create(2, saved_samples_->frames());
95 memcpy(samples_bus->channel(0), 96 memcpy(samples_bus->channel(0),
96 saved_samples_->channel(0), 97 saved_samples_->channel(0),
97 sizeof(float) * saved_samples_->frames()); 98 sizeof(float) * saved_samples_->frames());
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 156
156 DISALLOW_COPY_AND_ASSIGN(ChromeWhispernetClientTest); 157 DISALLOW_COPY_AND_ASSIGN(ChromeWhispernetClientTest);
157 }; 158 };
158 159
159 IN_PROC_BROWSER_TEST_F(ChromeWhispernetClientTest, Initialize) { 160 IN_PROC_BROWSER_TEST_F(ChromeWhispernetClientTest, Initialize) {
160 InitializeWhispernet(); 161 InitializeWhispernet();
161 } 162 }
162 163
163 IN_PROC_BROWSER_TEST_F(ChromeWhispernetClientTest, EncodeToken) { 164 IN_PROC_BROWSER_TEST_F(ChromeWhispernetClientTest, EncodeToken) {
164 InitializeWhispernet(); 165 InitializeWhispernet();
165 EncodeTokenAndSaveSamples(); 166 EncodeTokenAndSaveSamples(false);
166 } 167 }
167 168
168 IN_PROC_BROWSER_TEST_F(ChromeWhispernetClientTest, DecodeSamples) { 169 IN_PROC_BROWSER_TEST_F(ChromeWhispernetClientTest, DecodeSamples) {
169 InitializeWhispernet(); 170 InitializeWhispernet();
170 EncodeTokenAndSaveSamples(); 171 EncodeTokenAndSaveSamples(false);
171 DecodeSamplesAndVerifyToken(); 172 DecodeSamplesAndVerifyToken(false);
172 } 173 }
173 174
174 IN_PROC_BROWSER_TEST_F(ChromeWhispernetClientTest, DetectBroadcast) { 175 IN_PROC_BROWSER_TEST_F(ChromeWhispernetClientTest, DetectBroadcast) {
175 InitializeWhispernet(); 176 InitializeWhispernet();
176 EncodeTokenAndSaveSamples(); 177 EncodeTokenAndSaveSamples(false);
177 DecodeSamplesAndVerifyToken(); 178 DecodeSamplesAndVerifyToken(false);
178 DetectBroadcast(); 179 DetectBroadcast();
179 } 180 }
181
182 IN_PROC_BROWSER_TEST_F(ChromeWhispernetClientTest, Audible) {
183 InitializeWhispernet();
184 EncodeTokenAndSaveSamples(true);
185 DecodeSamplesAndVerifyToken(true);
186 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698