Commit 0865a088 authored by grunell's avatar grunell Committed by Commit bot

Update MockWebUserMediaClient for requestSources.

Blink CL https://codereview.chromium.org/559423002/ depends on this.

BUG=406094

Review URL: https://codereview.chromium.org/564423002

Cr-Commit-Position: refs/heads/master@{#295090}
parent eb290602
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
#include "content/shell/renderer/test_runner/mock_web_user_media_client.h" #include "content/shell/renderer/test_runner/mock_web_user_media_client.h"
#include "base/logging.h" #include "base/logging.h"
#include "base/macros.h"
#include "content/shell/renderer/test_runner/WebTestDelegate.h" #include "content/shell/renderer/test_runner/WebTestDelegate.h"
#include "content/shell/renderer/test_runner/mock_constraints.h" #include "content/shell/renderer/test_runner/mock_constraints.h"
#include "third_party/WebKit/public/platform/WebMediaConstraints.h" #include "third_party/WebKit/public/platform/WebMediaConstraints.h"
...@@ -12,6 +13,8 @@ ...@@ -12,6 +13,8 @@
#include "third_party/WebKit/public/platform/WebMediaStream.h" #include "third_party/WebKit/public/platform/WebMediaStream.h"
#include "third_party/WebKit/public/platform/WebMediaStreamSource.h" #include "third_party/WebKit/public/platform/WebMediaStreamSource.h"
#include "third_party/WebKit/public/platform/WebMediaStreamTrack.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/platform/WebVector.h"
#include "third_party/WebKit/public/web/WebDocument.h" #include "third_party/WebKit/public/web/WebDocument.h"
#include "third_party/WebKit/public/web/WebMediaDevicesRequest.h" #include "third_party/WebKit/public/web/WebMediaDevicesRequest.h"
...@@ -24,6 +27,8 @@ using blink::WebMediaDevicesRequest; ...@@ -24,6 +27,8 @@ using blink::WebMediaDevicesRequest;
using blink::WebMediaStream; using blink::WebMediaStream;
using blink::WebMediaStreamSource; using blink::WebMediaStreamSource;
using blink::WebMediaStreamTrack; using blink::WebMediaStreamTrack;
using blink::WebMediaStreamTrackSourcesRequest;
using blink::WebSourceInfo;
using blink::WebString; using blink::WebString;
using blink::WebUserMediaRequest; using blink::WebUserMediaRequest;
using blink::WebVector; using blink::WebVector;
...@@ -46,6 +51,8 @@ class UserMediaRequestTask : public WebMethodTask<MockWebUserMediaClient> { ...@@ -46,6 +51,8 @@ class UserMediaRequestTask : public WebMethodTask<MockWebUserMediaClient> {
private: private:
WebUserMediaRequest request_; WebUserMediaRequest request_;
WebMediaStream result_; WebMediaStream result_;
DISALLOW_COPY_AND_ASSIGN(UserMediaRequestTask);
}; };
class UserMediaRequestConstraintFailedTask class UserMediaRequestConstraintFailedTask
...@@ -65,6 +72,8 @@ class UserMediaRequestConstraintFailedTask ...@@ -65,6 +72,8 @@ class UserMediaRequestConstraintFailedTask
private: private:
WebUserMediaRequest request_; WebUserMediaRequest request_;
WebString constraint_; WebString constraint_;
DISALLOW_COPY_AND_ASSIGN(UserMediaRequestConstraintFailedTask);
}; };
class UserMediaRequestPermissionDeniedTask class UserMediaRequestPermissionDeniedTask
...@@ -79,6 +88,8 @@ class UserMediaRequestPermissionDeniedTask ...@@ -79,6 +88,8 @@ class UserMediaRequestPermissionDeniedTask
private: private:
WebUserMediaRequest request_; WebUserMediaRequest request_;
DISALLOW_COPY_AND_ASSIGN(UserMediaRequestPermissionDeniedTask);
}; };
class MediaDevicesRequestTask : public WebMethodTask<MockWebUserMediaClient> { class MediaDevicesRequestTask : public WebMethodTask<MockWebUserMediaClient> {
...@@ -95,6 +106,26 @@ class MediaDevicesRequestTask : public WebMethodTask<MockWebUserMediaClient> { ...@@ -95,6 +106,26 @@ class MediaDevicesRequestTask : public WebMethodTask<MockWebUserMediaClient> {
private: private:
WebMediaDevicesRequest request_; WebMediaDevicesRequest request_;
WebVector<WebMediaDeviceInfo> result_; 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 { class MockExtraData : public WebMediaStream::ExtraData {
...@@ -167,21 +198,39 @@ void MockWebUserMediaClient::cancelUserMediaRequest( ...@@ -167,21 +198,39 @@ void MockWebUserMediaClient::cancelUserMediaRequest(
void MockWebUserMediaClient::requestMediaDevices( void MockWebUserMediaClient::requestMediaDevices(
const WebMediaDevicesRequest& request) { const WebMediaDevicesRequest& request) {
const size_t three = 3; struct {
WebVector<WebMediaDeviceInfo> devices(three); const char* device_id;
WebMediaDeviceInfo::MediaDeviceKind kind;
devices[0].initialize("device1", const char* label;
const char* group_id;
} test_devices[] = {
{
"device1",
WebMediaDeviceInfo::MediaDeviceKindAudioInput, WebMediaDeviceInfo::MediaDeviceKindAudioInput,
"Built-in microphone", "Built-in microphone",
"group1"); "group1",
devices[1].initialize("device2", },
{
"device2",
WebMediaDeviceInfo::MediaDeviceKindAudioOutput, WebMediaDeviceInfo::MediaDeviceKindAudioOutput,
"Built-in speakers", "Built-in speakers",
"group1"); "group1",
devices[2].initialize("device3", },
{
"device3",
WebMediaDeviceInfo::MediaDeviceKindVideoInput, WebMediaDeviceInfo::MediaDeviceKindVideoInput,
"Build-in webcam", "Build-in webcam",
"group2"); "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)); delegate_->postTask(new MediaDevicesRequestTask(this, request, devices));
} }
...@@ -190,4 +239,37 @@ void MockWebUserMediaClient::cancelMediaDevicesRequest( ...@@ -190,4 +239,37 @@ void MockWebUserMediaClient::cancelMediaDevicesRequest(
const WebMediaDevicesRequest&) { 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 } // namespace content
...@@ -18,13 +18,11 @@ class MockWebUserMediaClient : public blink::WebUserMediaClient { ...@@ -18,13 +18,11 @@ class MockWebUserMediaClient : public blink::WebUserMediaClient {
explicit MockWebUserMediaClient(WebTestDelegate* delegate); explicit MockWebUserMediaClient(WebTestDelegate* delegate);
virtual ~MockWebUserMediaClient() {} virtual ~MockWebUserMediaClient() {}
virtual void requestUserMedia(const blink::WebUserMediaRequest&) OVERRIDE; virtual void requestUserMedia(const blink::WebUserMediaRequest&);
virtual void cancelUserMediaRequest( virtual void cancelUserMediaRequest(const blink::WebUserMediaRequest&);
const blink::WebUserMediaRequest&) OVERRIDE; virtual void requestMediaDevices(const blink::WebMediaDevicesRequest&);
virtual void requestMediaDevices( virtual void cancelMediaDevicesRequest(const blink::WebMediaDevicesRequest&);
const blink::WebMediaDevicesRequest&) OVERRIDE; virtual void requestSources(const blink::WebMediaStreamTrackSourcesRequest&);
virtual void cancelMediaDevicesRequest(
const blink::WebMediaDevicesRequest&) OVERRIDE;
// Task related methods // Task related methods
WebTaskList* mutable_task_list() { return &task_list_; } WebTaskList* mutable_task_list() { return &task_list_; }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment