OLD | NEW |
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 13 matching lines...) Expand all Loading... |
24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
29 */ | 29 */ |
30 | 30 |
31 #include "MockConstraints.h" | 31 #include "MockConstraints.h" |
32 | 32 |
33 #include "public/platform/WebMediaConstraints.h" | 33 #include "public/platform/WebMediaConstraints.h" |
| 34 #include "public/platform/WebString.h" |
34 | 35 |
35 using namespace WebKit; | 36 using namespace WebKit; |
36 | 37 |
37 namespace WebTestRunner { | 38 namespace WebTestRunner { |
38 | 39 |
39 namespace { | 40 namespace { |
40 | 41 |
41 bool isSupported(const WebString& constraint) | 42 bool isSupported(const WebString& constraint) |
42 { | 43 { |
43 return constraint == "valid_and_supported_1" || constraint == "valid_and_sup
ported_2"; | 44 return constraint == "valid_and_supported_1" || constraint == "valid_and_sup
ported_2"; |
44 } | 45 } |
45 | 46 |
46 bool isValid(const WebString& constraint) | 47 bool isValid(const WebString& constraint) |
47 { | 48 { |
48 return isSupported(constraint) || constraint == "valid_but_unsupported_1" ||
constraint == "valid_but_unsupported_2"; | 49 return isSupported(constraint) || constraint == "valid_but_unsupported_1" ||
constraint == "valid_but_unsupported_2"; |
49 } | 50 } |
50 | 51 |
51 } | 52 } |
52 | 53 |
53 bool MockConstraints::verifyConstraints(const WebMediaConstraints& constraints) | 54 bool MockConstraints::verifyConstraints(const WebMediaConstraints& constraints,
WebString* failedConstraint) |
54 { | 55 { |
55 WebVector<WebMediaConstraint> mandatoryConstraints; | 56 WebVector<WebMediaConstraint> mandatoryConstraints; |
56 constraints.getMandatoryConstraints(mandatoryConstraints); | 57 constraints.getMandatoryConstraints(mandatoryConstraints); |
57 if (mandatoryConstraints.size()) { | 58 if (mandatoryConstraints.size()) { |
58 for (size_t i = 0; i < mandatoryConstraints.size(); ++i) { | 59 for (size_t i = 0; i < mandatoryConstraints.size(); ++i) { |
59 const WebMediaConstraint& curr = mandatoryConstraints[i]; | 60 const WebMediaConstraint& curr = mandatoryConstraints[i]; |
60 if (!isSupported(curr.m_name) || curr.m_value != "1") | 61 if (!isSupported(curr.m_name) || curr.m_value != "1") { |
| 62 if (failedConstraint) |
| 63 *failedConstraint = curr.m_name; |
61 return false; | 64 return false; |
| 65 } |
62 } | 66 } |
63 } | 67 } |
64 | 68 |
65 WebVector<WebMediaConstraint> optionalConstraints; | 69 WebVector<WebMediaConstraint> optionalConstraints; |
66 constraints.getOptionalConstraints(optionalConstraints); | 70 constraints.getOptionalConstraints(optionalConstraints); |
67 if (optionalConstraints.size()) { | 71 if (optionalConstraints.size()) { |
68 for (size_t i = 0; i < optionalConstraints.size(); ++i) { | 72 for (size_t i = 0; i < optionalConstraints.size(); ++i) { |
69 const WebMediaConstraint& curr = optionalConstraints[i]; | 73 const WebMediaConstraint& curr = optionalConstraints[i]; |
70 if (!isValid(curr.m_name) || curr.m_value != "0") | 74 if (!isValid(curr.m_name) || curr.m_value != "0") { |
| 75 if (failedConstraint) |
| 76 *failedConstraint = curr.m_name; |
71 return false; | 77 return false; |
| 78 } |
72 } | 79 } |
73 } | 80 } |
74 | 81 |
75 return true; | 82 return true; |
76 } | 83 } |
77 | 84 |
78 } | 85 } |
OLD | NEW |