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

Side by Side Diff: Source/testing/runner/WebUserMediaClientMock.cpp

Issue 23444052: MediaStream API: Updating NavigatorUserMediaError (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Added a test Created 7 years, 3 months 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
« no previous file with comments | « Source/testing/runner/MockConstraints.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2012 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 45
46 namespace WebTestRunner { 46 namespace WebTestRunner {
47 47
48 class UserMediaRequestTask : public WebMethodTask<WebUserMediaClientMock> { 48 class UserMediaRequestTask : public WebMethodTask<WebUserMediaClientMock> {
49 public: 49 public:
50 UserMediaRequestTask(WebUserMediaClientMock* object, const WebUserMediaReque st& request, const WebMediaStream result) 50 UserMediaRequestTask(WebUserMediaClientMock* object, const WebUserMediaReque st& request, const WebMediaStream result)
51 : WebMethodTask<WebUserMediaClientMock>(object) 51 : WebMethodTask<WebUserMediaClientMock>(object)
52 , m_request(request) 52 , m_request(request)
53 , m_result(result) 53 , m_result(result)
54 { 54 {
55 WEBKIT_ASSERT(!m_result.isNull());
55 } 56 }
56 57
57 virtual void runIfValid() OVERRIDE 58 virtual void runIfValid() OVERRIDE
58 { 59 {
59 if (m_result.isNull()) 60 m_request.requestSucceeded(m_result);
60 m_request.requestFailed();
61 else
62 m_request.requestSucceeded(m_result);
63 } 61 }
64 62
65 private: 63 private:
66 WebUserMediaRequest m_request; 64 WebUserMediaRequest m_request;
67 WebMediaStream m_result; 65 WebMediaStream m_result;
68 }; 66 };
69 67
68 class UserMediaRequestConstraintFailedTask : public WebMethodTask<WebUserMediaCl ientMock> {
69 public:
70 UserMediaRequestConstraintFailedTask(WebUserMediaClientMock* object, const W ebUserMediaRequest& request, const WebString& constraint)
71 : WebMethodTask<WebUserMediaClientMock>(object)
72 , m_request(request)
73 , m_constraint(constraint)
74 {
75 }
76
77 virtual void runIfValid() OVERRIDE
78 {
79 m_request.requestFailedConstraint(m_constraint);
80 }
81
82 private:
83 WebUserMediaRequest m_request;
84 WebString m_constraint;
85 };
86
87 class UserMediaRequestPermissionDeniedTask : public WebMethodTask<WebUserMediaCl ientMock> {
88 public:
89 UserMediaRequestPermissionDeniedTask(WebUserMediaClientMock* object, const W ebUserMediaRequest& request)
90 : WebMethodTask<WebUserMediaClientMock>(object)
91 , m_request(request)
92 {
93 }
94
95 virtual void runIfValid() OVERRIDE
96 {
97 m_request.requestFailed();
98 }
99
100 private:
101 WebUserMediaRequest m_request;
102 };
103
70 //////////////////////////////// 104 ////////////////////////////////
71 105
72 class MockExtraData : public WebMediaStream::ExtraData { 106 class MockExtraData : public WebMediaStream::ExtraData {
73 public: 107 public:
74 int foo; 108 int foo;
75 }; 109 };
76 110
77 WebUserMediaClientMock::WebUserMediaClientMock(WebTestDelegate* delegate) 111 WebUserMediaClientMock::WebUserMediaClientMock(WebTestDelegate* delegate)
78 : m_delegate(delegate) 112 : m_delegate(delegate)
79 { 113 {
80 } 114 }
81 115
82 void WebUserMediaClientMock::requestUserMedia(const WebUserMediaRequest& streamR equest) 116 void WebUserMediaClientMock::requestUserMedia(const WebUserMediaRequest& streamR equest)
83 { 117 {
84 WEBKIT_ASSERT(!streamRequest.isNull()); 118 WEBKIT_ASSERT(!streamRequest.isNull());
85 WebUserMediaRequest request = streamRequest; 119 WebUserMediaRequest request = streamRequest;
86 120
87 if (request.ownerDocument().isNull() || !request.ownerDocument().frame()) { 121 if (request.ownerDocument().isNull() || !request.ownerDocument().frame()) {
88 m_delegate->postTask(new UserMediaRequestTask(this, request, WebMediaStr eam())); 122 m_delegate->postTask(new UserMediaRequestPermissionDeniedTask(this, requ est));
89 return; 123 return;
90 } 124 }
91 125
92 WebMediaConstraints constraints = request.audioConstraints(); 126 WebMediaConstraints constraints = request.audioConstraints();
93 if (!constraints.isNull() && !MockConstraints::verifyConstraints(constraints )) { 127 WebString failedConstraint;
94 m_delegate->postTask(new UserMediaRequestTask(this, request, WebMediaStr eam())); 128 if (!constraints.isNull() && !MockConstraints::verifyConstraints(constraints , &failedConstraint)) {
129 m_delegate->postTask(new UserMediaRequestConstraintFailedTask(this, requ est, failedConstraint));
95 return; 130 return;
96 } 131 }
97 constraints = request.videoConstraints(); 132 constraints = request.videoConstraints();
98 if (!constraints.isNull() && !MockConstraints::verifyConstraints(constraints )) { 133 if (!constraints.isNull() && !MockConstraints::verifyConstraints(constraints , &failedConstraint)) {
99 m_delegate->postTask(new UserMediaRequestTask(this, request, WebMediaStr eam())); 134 m_delegate->postTask(new UserMediaRequestConstraintFailedTask(this, requ est, failedConstraint));
100 return; 135 return;
101 } 136 }
102 137
103 const size_t zero = 0; 138 const size_t zero = 0;
104 const size_t one = 1; 139 const size_t one = 1;
105 WebVector<WebMediaStreamTrack> audioTracks(request.audio() ? one : zero); 140 WebVector<WebMediaStreamTrack> audioTracks(request.audio() ? one : zero);
106 WebVector<WebMediaStreamTrack> videoTracks(request.video() ? one : zero); 141 WebVector<WebMediaStreamTrack> videoTracks(request.video() ? one : zero);
107 142
108 if (request.audio()) { 143 if (request.audio()) {
109 WebMediaStreamSource source; 144 WebMediaStreamSource source;
(...skipping 13 matching lines...) Expand all
123 stream.setExtraData(new MockExtraData()); 158 stream.setExtraData(new MockExtraData());
124 159
125 m_delegate->postTask(new UserMediaRequestTask(this, request, stream)); 160 m_delegate->postTask(new UserMediaRequestTask(this, request, stream));
126 } 161 }
127 162
128 void WebUserMediaClientMock::cancelUserMediaRequest(const WebUserMediaRequest&) 163 void WebUserMediaClientMock::cancelUserMediaRequest(const WebUserMediaRequest&)
129 { 164 {
130 } 165 }
131 166
132 } 167 }
OLDNEW
« no previous file with comments | « Source/testing/runner/MockConstraints.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698