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

Unified Diff: media/audio/audio_output_device_unittest.cc

Issue 1323403005: Allow AudioOutputDevice objects to be initialized with a specific hardware output device and store … (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Split permissions check and device-ID translation for clarity Created 5 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: media/audio/audio_output_device_unittest.cc
diff --git a/media/audio/audio_output_device_unittest.cc b/media/audio/audio_output_device_unittest.cc
index 3b3ee512f5eedcc2df5137a9260276427e6aec74..7a65cbdd8aea8fdba5975dcb7f1533e5a03bc302 100644
--- a/media/audio/audio_output_device_unittest.cc
+++ b/media/audio/audio_output_device_unittest.cc
@@ -49,17 +49,20 @@ class MockAudioOutputIPC : public AudioOutputIPC {
MockAudioOutputIPC() {}
virtual ~MockAudioOutputIPC() {}
- MOCK_METHOD3(CreateStream, void(AudioOutputIPCDelegate* delegate,
- const AudioParameters& params,
- int session_id));
+ MOCK_METHOD4(RequestDeviceAuthorization,
+ void(AudioOutputIPCDelegate* delegate,
+ int session_id,
+ const std::string& device_id,
+ const GURL& security_origin));
+ MOCK_METHOD2(CreateStream,
+ void(AudioOutputIPCDelegate* delegate,
+ const AudioParameters& params));
MOCK_METHOD0(PlayStream, void());
MOCK_METHOD0(PauseStream, void());
MOCK_METHOD0(CloseStream, void());
MOCK_METHOD1(SetVolume, void(double volume));
- MOCK_METHOD3(SwitchOutputDevice,
- void(const std::string& device_id,
- const GURL& security_origin,
- int request_id));
+ MOCK_METHOD2(SwitchOutputDevice,
+ void(const std::string& device_id, const GURL& security_origin));
};
class MockSwitchOutputDeviceCallback {
@@ -129,6 +132,13 @@ AudioOutputDeviceTest::AudioOutputDeviceTest() {
audio_device_ = new AudioOutputDevice(
scoped_ptr<AudioOutputIPC>(audio_output_ipc_),
io_loop_.task_runner());
+ audio_device_->RequestDeviceAuthorization();
+ EXPECT_CALL(*audio_output_ipc_,
+ RequestDeviceAuthorization(audio_device_.get(), 0, std::string(),
+ GURL::EmptyGURL()));
+
+ // Simulate response from browser
+ audio_device_->OnDeviceAuthorized(true, default_audio_parameters_);
audio_device_->Initialize(default_audio_parameters_,
&callback_);
@@ -143,7 +153,7 @@ AudioOutputDeviceTest::~AudioOutputDeviceTest() {
void AudioOutputDeviceTest::StartAudioDevice() {
audio_device_->Start();
- EXPECT_CALL(*audio_output_ipc_, CreateStream(audio_device_.get(), _, 0));
+ EXPECT_CALL(*audio_output_ipc_, CreateStream(audio_device_.get(), _));
io_loop_.RunUntilIdle();
}
@@ -215,11 +225,10 @@ void AudioOutputDeviceTest::StopAudioDevice() {
void AudioOutputDeviceTest::SwitchOutputDevice() {
const GURL security_origin("http://localhost");
const std::string device_id;
- const int request_id = 1;
// Switch the output device and check that the IPC message is sent
EXPECT_CALL(*audio_output_ipc_,
- SwitchOutputDevice(device_id, security_origin, request_id));
+ SwitchOutputDevice(device_id, security_origin));
audio_device_->SwitchOutputDevice(
device_id, security_origin,
base::Bind(&MockSwitchOutputDeviceCallback::Callback,
@@ -229,14 +238,15 @@ void AudioOutputDeviceTest::SwitchOutputDevice() {
// Simulate the reception of a successful response from the browser
EXPECT_CALL(switch_output_device_callback_,
Callback(SWITCH_OUTPUT_DEVICE_RESULT_SUCCESS));
- audio_device_->OnOutputDeviceSwitched(request_id,
- SWITCH_OUTPUT_DEVICE_RESULT_SUCCESS);
+ audio_device_->OnOutputDeviceSwitched(SWITCH_OUTPUT_DEVICE_RESULT_SUCCESS,
+ default_audio_parameters_);
io_loop_.RunUntilIdle();
}
TEST_P(AudioOutputDeviceTest, Initialize) {
// Tests that the object can be constructed, initialized and destructed
- // without having ever been started/stopped.
+ // without having ever been started.
+ StopAudioDevice();
}
// Calls Start() followed by an immediate Stop() and check for the basic message
@@ -250,6 +260,11 @@ TEST_P(AudioOutputDeviceTest, StartStop) {
TEST_P(AudioOutputDeviceTest, StartStopStartStop) {
StartAudioDevice();
StopAudioDevice();
+
+ // Expect extra authorization request after stopping and restarting
+ EXPECT_CALL(*audio_output_ipc_,
+ RequestDeviceAuthorization(audio_device_.get(), 0, "",
+ GURL::EmptyGURL()));
StartAudioDevice();
StopAudioDevice();
}

Powered by Google App Engine
This is Rietveld 408576698