OLD | NEW |
| (Empty) |
1 description("Tests the acceptable types for arguments to navigator.getUserMedia
methods."); | |
2 | |
3 function test(expression, expressionShouldThrow, expectedException) { | |
4 if (expressionShouldThrow) { | |
5 if (expectedException) | |
6 shouldThrow(expression, '"' + expectedException + '"'); | |
7 else | |
8 shouldThrow(expression, '"TypeError: Failed to execute \'webkitGetUs
erMedia\' on \'Navigator\': 2 arguments required, but only 1 present."'); | |
9 } else { | |
10 shouldNotThrow(expression); | |
11 } | |
12 } | |
13 | |
14 var notSupportedError = 'NotSupportedError: Failed to execute \'webkitGetUserMed
ia\' on \'Navigator\': Failed to request user media.'; | |
15 var typeErrorArg2 = 'TypeError: Failed to execute \'webkitGetUserMedia\' on \'Na
vigator\': The callback provided as parameter 2 is not a function.'; | |
16 var typeErrorArg3 = 'TypeError: Failed to execute \'webkitGetUserMedia\' on \'Na
vigator\': The callback provided as parameter 3 is not a function.'; | |
17 var typeNotAnObjectError = new TypeError('Not an object.'); | |
18 | |
19 var emptyFunction = function() {}; | |
20 | |
21 // No arguments | |
22 test('navigator.webkitGetUserMedia()', true, 'TypeError: Failed to execute \'web
kitGetUserMedia\' on \'Navigator\': 2 arguments required, but only 0 present.'); | |
23 | |
24 // 1 Argument (getUserMedia requires at least 2 arguments). | |
25 test('navigator.webkitGetUserMedia(undefined)', true); | |
26 test('navigator.webkitGetUserMedia(null)', true); | |
27 test('navigator.webkitGetUserMedia({ })', true); | |
28 test('navigator.webkitGetUserMedia({video: true})', true); | |
29 test('navigator.webkitGetUserMedia(true)', true); | |
30 test('navigator.webkitGetUserMedia(42)', true); | |
31 test('navigator.webkitGetUserMedia(Infinity)', true); | |
32 test('navigator.webkitGetUserMedia(-Infinity)', true); | |
33 test('navigator.webkitGetUserMedia(emptyFunction)', true); | |
34 | |
35 // 2 Arguments. | |
36 test('navigator.webkitGetUserMedia({video: true}, emptyFunction)', false); | |
37 test('navigator.webkitGetUserMedia(undefined, emptyFunction)', true, notSupporte
dError); | |
38 test('navigator.webkitGetUserMedia(null, emptyFunction)', true, notSupportedErro
r); | |
39 test('navigator.webkitGetUserMedia({ }, emptyFunction)', true, notSupportedError
); | |
40 test('navigator.webkitGetUserMedia(true, emptyFunction)', true, typeNotAnObjectE
rror); | |
41 test('navigator.webkitGetUserMedia(42, emptyFunction)', true, typeNotAnObjectErr
or); | |
42 test('navigator.webkitGetUserMedia(Infinity, emptyFunction)', true, typeNotAnObj
ectError); | |
43 test('navigator.webkitGetUserMedia(-Infinity, emptyFunction)', true, typeNotAnOb
jectError); | |
44 test('navigator.webkitGetUserMedia(emptyFunction, emptyFunction)', true, notSupp
ortedError); | |
45 test('navigator.webkitGetUserMedia({video: true}, "foobar")', true, typeErrorArg
2); | |
46 test('navigator.webkitGetUserMedia({video: true}, undefined)', true, typeErrorAr
g2); | |
47 test('navigator.webkitGetUserMedia({video: true}, null)', true, typeErrorArg2); | |
48 test('navigator.webkitGetUserMedia({video: true}, {})', true, typeErrorArg2); | |
49 test('navigator.webkitGetUserMedia({video: true}, true)', true, typeErrorArg2); | |
50 test('navigator.webkitGetUserMedia({video: true}, 42)', true, typeErrorArg2); | |
51 test('navigator.webkitGetUserMedia({video: true}, Infinity)', true, typeErrorArg
2); | |
52 test('navigator.webkitGetUserMedia({video: true}, -Infinity)', true, typeErrorAr
g2); | |
53 | |
54 // 3 Arguments. | |
55 test('navigator.webkitGetUserMedia({ }, emptyFunction, emptyFunction)', true, no
tSupportedError); | |
56 test('navigator.webkitGetUserMedia({video: true}, emptyFunction, emptyFunction)'
, false); | |
57 test('navigator.webkitGetUserMedia({video: true}, emptyFunction, undefined)', fa
lse); | |
58 test('navigator.webkitGetUserMedia({audio:true, video:true}, emptyFunction, unde
fined)', false); | |
59 test('navigator.webkitGetUserMedia({audio:true}, emptyFunction, undefined)', fal
se); | |
60 test('navigator.webkitGetUserMedia({video: true}, emptyFunction, "video")', true
, typeErrorArg3); | |
61 test('navigator.webkitGetUserMedia({video: true}, emptyFunction, null)', false); | |
62 test('navigator.webkitGetUserMedia({video: true}, emptyFunction, {})', true, typ
eErrorArg3); | |
63 test('navigator.webkitGetUserMedia({video: true}, emptyFunction, true)', true, t
ypeErrorArg3); | |
64 test('navigator.webkitGetUserMedia({video: true}, emptyFunction, 42)', true, typ
eErrorArg3); | |
65 test('navigator.webkitGetUserMedia({video: true}, emptyFunction, Infinity)', tru
e, typeErrorArg3); | |
66 test('navigator.webkitGetUserMedia({video: true}, emptyFunction, -Infinity)', tr
ue, typeErrorArg3); | |
67 | |
68 window.jsTestIsAsync = false; | |
OLD | NEW |