Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(91)

Side by Side Diff: content/shell/renderer/test_runner/WebUserMediaClientMock.cpp

Issue 110533009: Import TestRunner library into chromium. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: updates Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "content/shell/renderer/test_runner/WebUserMediaClientMock.h"
6
7 #include "content/shell/renderer/test_runner/MockConstraints.h"
8 #include "content/shell/renderer/test_runner/WebTestDelegate.h"
9 #include "third_party/WebKit/public/platform/WebMediaConstraints.h"
10 #include "third_party/WebKit/public/platform/WebMediaStream.h"
11 #include "third_party/WebKit/public/platform/WebMediaStreamSource.h"
12 #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h"
13 #include "third_party/WebKit/public/platform/WebVector.h"
14 #include "third_party/WebKit/public/web/WebDocument.h"
15 #include "third_party/WebKit/public/web/WebMediaStreamRegistry.h"
16 #include "third_party/WebKit/public/web/WebUserMediaRequest.h"
17
18 using namespace blink;
19
20 namespace WebTestRunner {
21
22 class UserMediaRequestTask : public WebMethodTask<WebUserMediaClientMock> {
23 public:
24 UserMediaRequestTask(WebUserMediaClientMock* object, const WebUserMediaReque st& request, const WebMediaStream result)
25 : WebMethodTask<WebUserMediaClientMock>(object)
26 , m_request(request)
27 , m_result(result)
28 {
29 BLINK_ASSERT(!m_result.isNull());
30 }
31
32 virtual void runIfValid() OVERRIDE
33 {
34 m_request.requestSucceeded(m_result);
35 }
36
37 private:
38 WebUserMediaRequest m_request;
39 WebMediaStream m_result;
40 };
41
42 class UserMediaRequestConstraintFailedTask : public WebMethodTask<WebUserMediaCl ientMock> {
43 public:
44 UserMediaRequestConstraintFailedTask(WebUserMediaClientMock* object, const W ebUserMediaRequest& request, const WebString& constraint)
45 : WebMethodTask<WebUserMediaClientMock>(object)
46 , m_request(request)
47 , m_constraint(constraint)
48 {
49 }
50
51 virtual void runIfValid() OVERRIDE
52 {
53 m_request.requestFailedConstraint(m_constraint);
54 }
55
56 private:
57 WebUserMediaRequest m_request;
58 WebString m_constraint;
59 };
60
61 class UserMediaRequestPermissionDeniedTask : public WebMethodTask<WebUserMediaCl ientMock> {
62 public:
63 UserMediaRequestPermissionDeniedTask(WebUserMediaClientMock* object, const W ebUserMediaRequest& request)
64 : WebMethodTask<WebUserMediaClientMock>(object)
65 , m_request(request)
66 {
67 }
68
69 virtual void runIfValid() OVERRIDE
70 {
71 m_request.requestFailed();
72 }
73
74 private:
75 WebUserMediaRequest m_request;
76 };
77
78 ////////////////////////////////
79
80 class MockExtraData : public WebMediaStream::ExtraData {
81 public:
82 int foo;
83 };
84
85 WebUserMediaClientMock::WebUserMediaClientMock(WebTestDelegate* delegate)
86 : m_delegate(delegate)
87 {
88 }
89
90 void WebUserMediaClientMock::requestUserMedia(const WebUserMediaRequest& streamR equest)
91 {
92 BLINK_ASSERT(!streamRequest.isNull());
93 WebUserMediaRequest request = streamRequest;
94
95 if (request.ownerDocument().isNull() || !request.ownerDocument().frame()) {
96 m_delegate->postTask(new UserMediaRequestPermissionDeniedTask(this, requ est));
97 return;
98 }
99
100 WebMediaConstraints constraints = request.audioConstraints();
101 WebString failedConstraint;
102 if (!constraints.isNull() && !MockConstraints::verifyConstraints(constraints , &failedConstraint)) {
103 m_delegate->postTask(new UserMediaRequestConstraintFailedTask(this, requ est, failedConstraint));
104 return;
105 }
106 constraints = request.videoConstraints();
107 if (!constraints.isNull() && !MockConstraints::verifyConstraints(constraints , &failedConstraint)) {
108 m_delegate->postTask(new UserMediaRequestConstraintFailedTask(this, requ est, failedConstraint));
109 return;
110 }
111
112 const size_t zero = 0;
113 const size_t one = 1;
114 WebVector<WebMediaStreamTrack> audioTracks(request.audio() ? one : zero);
115 WebVector<WebMediaStreamTrack> videoTracks(request.video() ? one : zero);
116
117 if (request.audio()) {
118 WebMediaStreamSource source;
119 source.initialize("MockAudioDevice#1", WebMediaStreamSource::TypeAudio, "Mock audio device");
120 audioTracks[0].initialize(source);
121 }
122
123 if (request.video()) {
124 WebMediaStreamSource source;
125 source.initialize("MockVideoDevice#1", WebMediaStreamSource::TypeVideo, "Mock video device");
126 videoTracks[0].initialize(source);
127 }
128
129 WebMediaStream stream;
130 stream.initialize(audioTracks, videoTracks);
131
132 stream.setExtraData(new MockExtraData());
133
134 m_delegate->postTask(new UserMediaRequestTask(this, request, stream));
135 }
136
137 void WebUserMediaClientMock::cancelUserMediaRequest(const WebUserMediaRequest&)
138 {
139 }
140
141 }
OLDNEW
« no previous file with comments | « content/shell/renderer/test_runner/WebUserMediaClientMock.h ('k') | content/shell/renderer/webkit_test_runner.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698