summaryrefslogtreecommitdiffstats
path: root/content
diff options
context:
space:
mode:
authortommyw@chromium.org <tommyw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-05 10:38:55 +0000
committertommyw@chromium.org <tommyw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-05 10:38:55 +0000
commit38c0816b255c2f18ce8ba231d521ac486dafa5e5 (patch)
tree8a9c22846790611d34cdb4f6e8d21ebdf1bb8c77 /content
parent278b593c10f6e366396ac15f3b31a2c0f45dd8df (diff)
downloadchromium_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.cpp37
-rw-r--r--content/shell/renderer/test_runner/WebUserMediaClientMock.h2
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; }