diff options
author | tommyw@chromium.org <tommyw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-02-05 10:38:55 +0000 |
---|---|---|
committer | tommyw@chromium.org <tommyw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-02-05 10:38:55 +0000 |
commit | 38c0816b255c2f18ce8ba231d521ac486dafa5e5 (patch) | |
tree | 8a9c22846790611d34cdb4f6e8d21ebdf1bb8c77 /content | |
parent | 278b593c10f6e366396ac15f3b31a2c0f45dd8df (diff) | |
download | chromium_src-38c0816b255c2f18ce8ba231d521ac486dafa5e5.zip chromium_src-38c0816b255c2f18ce8ba231d521ac486dafa5e5.tar.gz chromium_src-38c0816b255c2f18ce8ba231d521ac486dafa5e5.tar.bz2 |
MediaStream API: Patch #2 of implementing navigator.getMediaDevices
This patch just adds basic mock support so that getMediaDevices can
be exercised in blink layout tests.
BUG=338511
Review URL: https://codereview.chromium.org/136123005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@248956 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content')
-rw-r--r-- | content/shell/renderer/test_runner/WebUserMediaClientMock.cpp | 37 | ||||
-rw-r--r-- | content/shell/renderer/test_runner/WebUserMediaClientMock.h | 2 |
2 files changed, 39 insertions, 0 deletions
diff --git a/content/shell/renderer/test_runner/WebUserMediaClientMock.cpp b/content/shell/renderer/test_runner/WebUserMediaClientMock.cpp index 36950a0..2d7f937 100644 --- a/content/shell/renderer/test_runner/WebUserMediaClientMock.cpp +++ b/content/shell/renderer/test_runner/WebUserMediaClientMock.cpp @@ -7,11 +7,13 @@ #include "content/shell/renderer/test_runner/MockConstraints.h" #include "content/shell/renderer/test_runner/WebTestDelegate.h" #include "third_party/WebKit/public/platform/WebMediaConstraints.h" +#include "third_party/WebKit/public/platform/WebMediaDeviceInfo.h" #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/WebVector.h" #include "third_party/WebKit/public/web/WebDocument.h" +#include "third_party/WebKit/public/web/WebMediaDevicesRequest.h" #include "third_party/WebKit/public/web/WebMediaStreamRegistry.h" #include "third_party/WebKit/public/web/WebUserMediaRequest.h" @@ -75,6 +77,25 @@ private: WebUserMediaRequest m_request; }; +class MediaDevicesRequestTask : public WebMethodTask<WebUserMediaClientMock> { +public: + MediaDevicesRequestTask(WebUserMediaClientMock* object, const WebMediaDevicesRequest& request, const WebVector<WebMediaDeviceInfo>& result) + : WebMethodTask<WebUserMediaClientMock>(object) + , m_request(request) + , m_result(result) + { + } + + virtual void runIfValid() OVERRIDE + { + m_request.requestSucceeded(m_result); + } + +private: + WebMediaDevicesRequest m_request; + WebVector<WebMediaDeviceInfo> m_result; +}; + //////////////////////////////// class MockExtraData : public WebMediaStream::ExtraData { @@ -138,4 +159,20 @@ void WebUserMediaClientMock::cancelUserMediaRequest(const WebUserMediaRequest&) { } +void WebUserMediaClientMock::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"); + + m_delegate->postTask(new MediaDevicesRequestTask(this, request, devices)); +} + +void WebUserMediaClientMock::cancelMediaDevicesRequest(const WebMediaDevicesRequest&) +{ +} + } diff --git a/content/shell/renderer/test_runner/WebUserMediaClientMock.h b/content/shell/renderer/test_runner/WebUserMediaClientMock.h index 2093828..c1b1668 100644 --- a/content/shell/renderer/test_runner/WebUserMediaClientMock.h +++ b/content/shell/renderer/test_runner/WebUserMediaClientMock.h @@ -24,6 +24,8 @@ public: 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; // Task related methods WebTaskList* taskList() { return &m_taskList; } |