OLD | NEW |
---|---|
1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> | 1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
2 <html> | 2 <html> |
3 <head> | 3 <head> |
4 <script src="../../resources/js-test.js"></script> | 4 <script src="../../resources/js-test.js"></script> |
5 </head> | 5 </head> |
6 <body> | 6 <body> |
7 <script> | 7 <script> |
8 description("Tests the RTCPeerConnection Ice functionality."); | 8 description("Tests the RTCPeerConnection Ice functionality."); |
9 | 9 |
10 var pc = null; | 10 var pc = null; |
11 var iceCandidate = null; | 11 var iceCandidate = null; |
12 | 12 |
13 function onIceChange2() | 13 function onIceChange2() |
14 { | 14 { |
15 if (pc.iceConnectionState === "closed") { | 15 if (pc.iceConnectionState === "closed") { |
16 testPassed("iceConnectionState is closed."); | 16 testPassed("iceConnectionState is closed."); |
17 finishJSTest(); | 17 finishJSTest(); |
18 } | 18 } |
19 } | 19 } |
20 | 20 |
21 function addIceCandidateSuccess() | 21 function addIceCandidateSuccess() |
22 { | 22 { |
23 testPassed("addIceCandidateSuccess was called."); | 23 testPassed("addIceCandidateSuccess was called."); |
24 pc.oniceconnectionstatechange = onIceChange2; | 24 pc.oniceconnectionstatechange = onIceChange2; |
25 pc.close(); | 25 pc.close(); |
26 } | 26 } |
27 | 27 |
28 function addIceCandidateFailure() | 28 function unexpectedCallback() |
29 { | 29 { |
30 testFailed("addIceCandidateFailue was called."); | 30 testFailed("unexpectedCallback was called."); |
31 finishJSTest(); | 31 finishJSTest(); |
32 } | 32 } |
33 | 33 |
34 function expectedTypeError(error) | |
35 { | |
36 shouldBe(error.name, "TypeError") | |
37 testPassed("expectedTypeError was called.") | |
38 } | |
39 | |
34 function onIceChange1() | 40 function onIceChange1() |
35 { | 41 { |
36 if (pc.iceConnectionState === "completed") { | 42 if (pc.iceConnectionState === "completed") { |
37 testPassed("iceConnectionState is completed"); | 43 testPassed("iceConnectionState is completed"); |
38 iceCandidate = new RTCIceCandidate({candidate:"nano nano"}); | 44 iceCandidate = new RTCIceCandidate({candidate:"nano nano"}); |
39 shouldThrow('pc.addIceCandidate(null, addIceCandidateSuccess, addIceCand idateFailure);'); | 45 shouldNotThrow('pc.addIceCandidate(null, addIceCandidateSuccess, unexpec tedCallback).catch(expectedTypeError);'); |
40 shouldThrow('pc.addIceCandidate(iceCandidate, null, addIceCandidateFailu re);'); | 46 shouldNotThrow('pc.addIceCandidate(iceCandidate, null, unexpectedCallbac k).catch(expectedTypeError);'); |
41 shouldThrow('pc.addIceCandidate(iceCandidate, addIceCandidateSuccess, nu ll);'); | 47 shouldNotThrow('pc.addIceCandidate(iceCandidate, addIceCandidateSuccess, null).catch(expectedTypeError);'); |
42 shouldNotThrow('pc.addIceCandidate(iceCandidate, addIceCandidateSuccess, addIceCandidateFailure);'); | 48 shouldNotThrow('pc.addIceCandidate(iceCandidate, addIceCandidateSuccess, unexpectedCallback);'); |
43 } | 49 } |
44 } | 50 } |
45 | 51 |
52 function testExecutionOrderClosedConnection() | |
53 { | |
54 var localPeerConnection = new webkitRTCPeerConnection(null, null); | |
55 localPeerConnection.close(); | |
56 var counter = 0; | |
57 events = []; | |
philipj_slow
2016/02/18 14:39:07
could set window.events for clarity, like window.e
| |
58 Promise.resolve().then(_ => events[counter++] = 1); | |
59 var iceCandidate = new RTCIceCandidate({candidate:"nano nano"}); | |
60 localPeerConnection.addIceCandidate(iceCandidate, unexpectedCallback, (error ) => { | |
61 window.error = error; | |
62 shouldBe('error', '"The RTCPeerConnection\'s signalingState is \'closed\ '."'); | |
63 events[counter++] = 2; | |
64 }); | |
65 Promise.resolve().then(_ => { | |
66 events[counter++] = 3; | |
67 shouldBe('events', '[1,2,3]'); | |
philipj_slow
2016/02/18 14:39:07
Looks good!
| |
68 }); | |
69 } | |
70 | |
71 shouldNotThrow('testExecutionOrderClosedConnection()'); | |
46 shouldNotThrow('pc = new webkitRTCPeerConnection(null, null);'); | 72 shouldNotThrow('pc = new webkitRTCPeerConnection(null, null);'); |
47 pc.oniceconnectionstatechange = onIceChange1; | 73 pc.oniceconnectionstatechange = onIceChange1; |
48 | 74 |
49 window.jsTestIsAsync = true; | 75 window.jsTestIsAsync = true; |
50 window.successfullyParsed = true; | 76 window.successfullyParsed = true; |
51 </script> | 77 </script> |
52 </body> | 78 </body> |
53 </html> | 79 </html> |
OLD | NEW |