| Index: content/browser/renderer_host/media/device_request_message_filter_unittest.cc
|
| diff --git a/content/browser/renderer_host/media/device_request_message_filter_unittest.cc b/content/browser/renderer_host/media/device_request_message_filter_unittest.cc
|
| deleted file mode 100644
|
| index e40f8f8c63fe93fe74366722b77473746d051b1d..0000000000000000000000000000000000000000
|
| --- a/content/browser/renderer_host/media/device_request_message_filter_unittest.cc
|
| +++ /dev/null
|
| @@ -1,211 +0,0 @@
|
| -// Copyright 2013 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "base/strings/string_number_conversions.h"
|
| -#include "content/browser/renderer_host/media/device_request_message_filter.h"
|
| -#include "content/browser/renderer_host/media/media_stream_manager.h"
|
| -#include "content/common/media/media_stream_messages.h"
|
| -#include "content/public/test/mock_resource_context.h"
|
| -#include "content/public/test/test_browser_thread.h"
|
| -#include "testing/gmock/include/gmock/gmock.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -
|
| -using ::testing::_;
|
| -using ::testing::Invoke;
|
| -
|
| -namespace content {
|
| -
|
| -static const std::string kAudioLabel = "audio_label";
|
| -static const std::string kVideoLabel = "video_label";
|
| -
|
| -class MockMediaStreamManager : public MediaStreamManager {
|
| - public:
|
| - MockMediaStreamManager() {}
|
| -
|
| - virtual ~MockMediaStreamManager() {}
|
| -
|
| - MOCK_METHOD7(EnumerateDevices,
|
| - std::string(MediaStreamRequester* requester,
|
| - int render_process_id,
|
| - int render_frame_id,
|
| - const ResourceContext::SaltCallback& rc,
|
| - int page_request_id,
|
| - MediaStreamType type,
|
| - const GURL& security_origin));
|
| -
|
| - std::string DoEnumerateDevices(MediaStreamRequester* requester,
|
| - int render_process_id,
|
| - int render_frame_id,
|
| - const ResourceContext::SaltCallback& rc,
|
| - int page_request_id,
|
| - MediaStreamType type,
|
| - const GURL& security_origin) {
|
| - if (type == MEDIA_DEVICE_AUDIO_CAPTURE) {
|
| - return kAudioLabel;
|
| - } else {
|
| - return kVideoLabel;
|
| - }
|
| - }
|
| -};
|
| -
|
| -class MockDeviceRequestMessageFilter : public DeviceRequestMessageFilter {
|
| - public:
|
| - MockDeviceRequestMessageFilter(MockResourceContext* context,
|
| - MockMediaStreamManager* manager)
|
| - : DeviceRequestMessageFilter(context, manager, 0), received_id_(-1) {}
|
| - StreamDeviceInfoArray requested_devices() { return requested_devices_; }
|
| - int received_id() { return received_id_; }
|
| -
|
| - private:
|
| - virtual ~MockDeviceRequestMessageFilter() {}
|
| -
|
| - // Override the Send() method to intercept the message that we're sending to
|
| - // the renderer.
|
| - virtual bool Send(IPC::Message* reply_msg) override {
|
| - CHECK(reply_msg);
|
| -
|
| - bool handled = true;
|
| - IPC_BEGIN_MESSAGE_MAP(MockDeviceRequestMessageFilter, *reply_msg)
|
| - IPC_MESSAGE_HANDLER(MediaStreamMsg_GetSourcesACK, SaveDevices)
|
| - IPC_MESSAGE_UNHANDLED(handled = false)
|
| - IPC_END_MESSAGE_MAP()
|
| - EXPECT_TRUE(handled);
|
| -
|
| - delete reply_msg;
|
| - return true;
|
| - }
|
| -
|
| - void SaveDevices(int request_id, const StreamDeviceInfoArray& devices) {
|
| - received_id_ = request_id;
|
| - requested_devices_ = devices;
|
| - }
|
| -
|
| - int received_id_;
|
| - StreamDeviceInfoArray requested_devices_;
|
| -};
|
| -
|
| -class DeviceRequestMessageFilterTest : public testing::Test {
|
| - public:
|
| - DeviceRequestMessageFilterTest() : next_device_id_(0) {}
|
| -
|
| - void RunTest(int number_audio_devices, int number_video_devices) {
|
| - AddAudioDevices(number_audio_devices);
|
| - AddVideoDevices(number_video_devices);
|
| - GURL origin("https://test.com");
|
| - EXPECT_CALL(*media_stream_manager_,
|
| - EnumerateDevices(_, _, _, _, _, MEDIA_DEVICE_AUDIO_CAPTURE,
|
| - _))
|
| - .Times(1);
|
| - EXPECT_CALL(*media_stream_manager_,
|
| - EnumerateDevices(_, _, _, _, _, MEDIA_DEVICE_VIDEO_CAPTURE,
|
| - _))
|
| - .Times(1);
|
| - // Send message to get devices. Should trigger 2 EnumerateDevice() requests.
|
| - const int kRequestId = 123;
|
| - SendGetSourcesMessage(kRequestId, origin);
|
| -
|
| - // Run audio callback. Because there's still an outstanding video request,
|
| - // this should not populate |message|.
|
| - FireAudioDeviceCallback();
|
| - EXPECT_EQ(0u, host_->requested_devices().size());
|
| -
|
| - // After the video device callback is fired, |message| should be populated.
|
| - FireVideoDeviceCallback();
|
| - EXPECT_EQ(static_cast<size_t>(number_audio_devices + number_video_devices),
|
| - host_->requested_devices().size());
|
| -
|
| - EXPECT_EQ(kRequestId, host_->received_id());
|
| - }
|
| -
|
| - protected:
|
| - virtual ~DeviceRequestMessageFilterTest() {}
|
| -
|
| - virtual void SetUp() override {
|
| - message_loop_.reset(new base::MessageLoopForIO);
|
| - io_thread_.reset(
|
| - new TestBrowserThread(BrowserThread::IO, message_loop_.get()));
|
| -
|
| - media_stream_manager_.reset(new MockMediaStreamManager());
|
| - ON_CALL(*media_stream_manager_, EnumerateDevices(_, _, _, _, _, _, _))
|
| - .WillByDefault(Invoke(media_stream_manager_.get(),
|
| - &MockMediaStreamManager::DoEnumerateDevices));
|
| -
|
| - resource_context_.reset(new MockResourceContext(NULL));
|
| - host_ = new MockDeviceRequestMessageFilter(resource_context_.get(),
|
| - media_stream_manager_.get());
|
| - }
|
| -
|
| - scoped_refptr<MockDeviceRequestMessageFilter> host_;
|
| - scoped_ptr<MockMediaStreamManager> media_stream_manager_;
|
| - scoped_ptr<MockResourceContext> resource_context_;
|
| - StreamDeviceInfoArray physical_audio_devices_;
|
| - StreamDeviceInfoArray physical_video_devices_;
|
| - scoped_ptr<base::MessageLoop> message_loop_;
|
| - scoped_ptr<TestBrowserThread> io_thread_;
|
| -
|
| - private:
|
| - void AddAudioDevices(int number_of_devices) {
|
| - for (int i = 0; i < number_of_devices; i++) {
|
| - physical_audio_devices_.push_back(
|
| - StreamDeviceInfo(
|
| - MEDIA_DEVICE_AUDIO_CAPTURE,
|
| - "/dev/audio/" + base::IntToString(next_device_id_),
|
| - "Audio Device" + base::IntToString(next_device_id_)));
|
| - next_device_id_++;
|
| - }
|
| - }
|
| -
|
| - void AddVideoDevices(int number_of_devices) {
|
| - for (int i = 0; i < number_of_devices; i++) {
|
| - physical_video_devices_.push_back(
|
| - StreamDeviceInfo(
|
| - MEDIA_DEVICE_VIDEO_CAPTURE,
|
| - "/dev/video/" + base::IntToString(next_device_id_),
|
| - "Video Device" + base::IntToString(next_device_id_)));
|
| - next_device_id_++;
|
| - }
|
| - }
|
| -
|
| - void SendGetSourcesMessage(int request_id, const GURL& origin) {
|
| - host_->OnMessageReceived(MediaStreamHostMsg_GetSources(request_id, origin));
|
| - }
|
| -
|
| - void FireAudioDeviceCallback() {
|
| - host_->DevicesEnumerated(-1, -1, kAudioLabel, physical_audio_devices_);
|
| - }
|
| -
|
| - void FireVideoDeviceCallback() {
|
| - host_->DevicesEnumerated(-1, -1, kVideoLabel, physical_video_devices_);
|
| - }
|
| -
|
| - int next_device_id_;
|
| -};
|
| -
|
| -TEST_F(DeviceRequestMessageFilterTest, TestGetSources_AudioAndVideoDevices) {
|
| - // Runs through test with 1 audio and 1 video device.
|
| - RunTest(1, 1);
|
| -}
|
| -
|
| -TEST_F(DeviceRequestMessageFilterTest,
|
| - TestGetSources_MultipleAudioAndVideoDevices) {
|
| - // Runs through test with 3 audio devices and 2 video devices.
|
| - RunTest(3, 2);
|
| -}
|
| -
|
| -TEST_F(DeviceRequestMessageFilterTest, TestGetSources_NoVideoDevices) {
|
| - // Runs through test with 4 audio devices and 0 video devices.
|
| - RunTest(4, 0);
|
| -}
|
| -
|
| -TEST_F(DeviceRequestMessageFilterTest, TestGetSources_NoAudioDevices) {
|
| - // Runs through test with 0 audio devices and 3 video devices.
|
| - RunTest(0, 3);
|
| -}
|
| -
|
| -TEST_F(DeviceRequestMessageFilterTest, TestGetSources_NoDevices) {
|
| - // Runs through test with no devices.
|
| - RunTest(0, 0);
|
| -}
|
| -
|
| -}; // namespace content
|
|
|