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 @@
#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
......@@ -18,13 +18,11 @@ class MockWebUserMediaClient : public blink::WebUserMediaClient {
explicit MockWebUserMediaClient(WebTestDelegate* delegate);
virtual ~MockWebUserMediaClient() {}
virtual void requestUserMedia(const blink::WebUserMediaRequest&) OVERRIDE;
virtual void cancelUserMediaRequest(
const blink::WebUserMediaRequest&) OVERRIDE;
virtual void requestMediaDevices(
const blink::WebMediaDevicesRequest&) OVERRIDE;
virtual void cancelMediaDevicesRequest(
const blink::WebMediaDevicesRequest&) OVERRIDE;
virtual void requestUserMedia(const blink::WebUserMediaRequest&);
virtual void cancelUserMediaRequest(const blink::WebUserMediaRequest&);
virtual void requestMediaDevices(const blink::WebMediaDevicesRequest&);
virtual void cancelMediaDevicesRequest(const blink::WebMediaDevicesRequest&);
virtual void requestSources(const blink::WebMediaStreamTrackSourcesRequest&);
// Task related methods
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