| Index: content/shell/renderer/test_runner/mock_web_user_media_client.cc
|
| diff --git a/content/shell/renderer/test_runner/mock_web_user_media_client.cc b/content/shell/renderer/test_runner/mock_web_user_media_client.cc
|
| index 10cc4de1aa0495eafe61e8bcbf1aed769e8a096d..c758854ac2b1e815da177276535d6d3b9a4ba5d2 100644
|
| --- a/content/shell/renderer/test_runner/mock_web_user_media_client.cc
|
| +++ b/content/shell/renderer/test_runner/mock_web_user_media_client.cc
|
| @@ -5,6 +5,7 @@
|
| #include "content/shell/renderer/test_runner/mock_web_user_media_client.h"
|
|
|
| #include "base/logging.h"
|
| +#include "base/macros.h"
|
| #include "content/shell/renderer/test_runner/WebTestDelegate.h"
|
| #include "content/shell/renderer/test_runner/mock_constraints.h"
|
| #include "third_party/WebKit/public/platform/WebMediaConstraints.h"
|
| @@ -12,6 +13,8 @@
|
| #include "third_party/WebKit/public/platform/WebMediaStream.h"
|
| #include "third_party/WebKit/public/platform/WebMediaStreamSource.h"
|
| #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h"
|
| +#include "third_party/WebKit/public/platform/WebMediaStreamTrackSourcesRequest.h"
|
| +#include "third_party/WebKit/public/platform/WebSourceInfo.h"
|
| #include "third_party/WebKit/public/platform/WebVector.h"
|
| #include "third_party/WebKit/public/web/WebDocument.h"
|
| #include "third_party/WebKit/public/web/WebMediaDevicesRequest.h"
|
| @@ -24,6 +27,8 @@ using blink::WebMediaDevicesRequest;
|
| using blink::WebMediaStream;
|
| using blink::WebMediaStreamSource;
|
| using blink::WebMediaStreamTrack;
|
| +using blink::WebMediaStreamTrackSourcesRequest;
|
| +using blink::WebSourceInfo;
|
| using blink::WebString;
|
| using blink::WebUserMediaRequest;
|
| using blink::WebVector;
|
| @@ -46,6 +51,8 @@ class UserMediaRequestTask : public WebMethodTask<MockWebUserMediaClient> {
|
| private:
|
| WebUserMediaRequest request_;
|
| WebMediaStream result_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(UserMediaRequestTask);
|
| };
|
|
|
| class UserMediaRequestConstraintFailedTask
|
| @@ -65,6 +72,8 @@ class UserMediaRequestConstraintFailedTask
|
| private:
|
| WebUserMediaRequest request_;
|
| WebString constraint_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(UserMediaRequestConstraintFailedTask);
|
| };
|
|
|
| class UserMediaRequestPermissionDeniedTask
|
| @@ -79,6 +88,8 @@ class UserMediaRequestPermissionDeniedTask
|
|
|
| private:
|
| WebUserMediaRequest request_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(UserMediaRequestPermissionDeniedTask);
|
| };
|
|
|
| class MediaDevicesRequestTask : public WebMethodTask<MockWebUserMediaClient> {
|
| @@ -95,6 +106,26 @@ class MediaDevicesRequestTask : public WebMethodTask<MockWebUserMediaClient> {
|
| private:
|
| WebMediaDevicesRequest request_;
|
| WebVector<WebMediaDeviceInfo> result_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(MediaDevicesRequestTask);
|
| +};
|
| +
|
| +class SourcesRequestTask : public WebMethodTask<MockWebUserMediaClient> {
|
| + public:
|
| + SourcesRequestTask(MockWebUserMediaClient* object,
|
| + const WebMediaStreamTrackSourcesRequest& request,
|
| + const WebVector<WebSourceInfo>& result)
|
| + : WebMethodTask<MockWebUserMediaClient>(object),
|
| + request_(request),
|
| + result_(result) {}
|
| +
|
| + virtual void RunIfValid() OVERRIDE { request_.requestSucceeded(result_); }
|
| +
|
| + private:
|
| + WebMediaStreamTrackSourcesRequest request_;
|
| + WebVector<WebSourceInfo> result_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(SourcesRequestTask);
|
| };
|
|
|
| class MockExtraData : public WebMediaStream::ExtraData {
|
| @@ -167,21 +198,39 @@ void MockWebUserMediaClient::cancelUserMediaRequest(
|
|
|
| void MockWebUserMediaClient::requestMediaDevices(
|
| const WebMediaDevicesRequest& request) {
|
| - const size_t three = 3;
|
| - WebVector<WebMediaDeviceInfo> devices(three);
|
| -
|
| - devices[0].initialize("device1",
|
| - WebMediaDeviceInfo::MediaDeviceKindAudioInput,
|
| - "Built-in microphone",
|
| - "group1");
|
| - devices[1].initialize("device2",
|
| - WebMediaDeviceInfo::MediaDeviceKindAudioOutput,
|
| - "Built-in speakers",
|
| - "group1");
|
| - devices[2].initialize("device3",
|
| - WebMediaDeviceInfo::MediaDeviceKindVideoInput,
|
| - "Build-in webcam",
|
| - "group2");
|
| + struct {
|
| + const char* device_id;
|
| + WebMediaDeviceInfo::MediaDeviceKind kind;
|
| + const char* label;
|
| + const char* group_id;
|
| + } test_devices[] = {
|
| + {
|
| + "device1",
|
| + WebMediaDeviceInfo::MediaDeviceKindAudioInput,
|
| + "Built-in microphone",
|
| + "group1",
|
| + },
|
| + {
|
| + "device2",
|
| + WebMediaDeviceInfo::MediaDeviceKindAudioOutput,
|
| + "Built-in speakers",
|
| + "group1",
|
| + },
|
| + {
|
| + "device3",
|
| + WebMediaDeviceInfo::MediaDeviceKindVideoInput,
|
| + "Build-in webcam",
|
| + "group2",
|
| + },
|
| + };
|
| +
|
| + WebVector<WebMediaDeviceInfo> devices(ARRAYSIZE_UNSAFE(test_devices));
|
| + for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_devices); ++i) {
|
| + devices[i].initialize(WebString::fromUTF8(test_devices[i].device_id),
|
| + test_devices[i].kind,
|
| + WebString::fromUTF8(test_devices[i].label),
|
| + WebString::fromUTF8(test_devices[i].group_id));
|
| + }
|
|
|
| delegate_->postTask(new MediaDevicesRequestTask(this, request, devices));
|
| }
|
| @@ -190,4 +239,37 @@ void MockWebUserMediaClient::cancelMediaDevicesRequest(
|
| const WebMediaDevicesRequest&) {
|
| }
|
|
|
| +void MockWebUserMediaClient::requestSources(
|
| + const blink::WebMediaStreamTrackSourcesRequest& request) {
|
| + struct {
|
| + const char* id;
|
| + WebSourceInfo::SourceKind kind;
|
| + const char* label;
|
| + WebSourceInfo::VideoFacingMode facing;
|
| + } test_sources[] = {
|
| + {
|
| + "device1",
|
| + WebSourceInfo::SourceKindAudio,
|
| + "Built-in microphone",
|
| + WebSourceInfo::VideoFacingModeNone,
|
| + },
|
| + {
|
| + "device2",
|
| + WebSourceInfo::SourceKindVideo,
|
| + "Build-in webcam",
|
| + WebSourceInfo::VideoFacingModeEnvironment,
|
| + },
|
| + };
|
| +
|
| + WebVector<WebSourceInfo> sources(ARRAYSIZE_UNSAFE(test_sources));
|
| + for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_sources); ++i) {
|
| + sources[i].initialize(WebString::fromUTF8(test_sources[i].id),
|
| + test_sources[i].kind,
|
| + WebString::fromUTF8(test_sources[i].label),
|
| + test_sources[i].facing);
|
| + }
|
| +
|
| + delegate_->postTask(new SourcesRequestTask(this, request, sources));
|
| +}
|
| +
|
| } // namespace content
|
|
|