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 RTCPeerConnection createAnswer."); | 8 description("Tests RTCPeerConnection createAnswer."); |
9 | 9 |
10 var pc = null; | 10 var pc = null; |
11 | 11 |
12 function requestFailed3(error) | 12 function unexpectedCallback() |
13 { | 13 { |
14 testFailed('createAnswer request failed.'); | 14 testFailed('unexpectedCallback was called') |
15 | |
16 finishJSTest(); | 15 finishJSTest(); |
17 } | 16 } |
18 | 17 |
19 function requestSucceeded3() | 18 function answerCreated() |
20 { | 19 { |
21 testPassed('createAnswer request succeeded.'); | 20 testPassed('createAnswer request succeeded.'); |
22 | |
23 finishJSTest(); | 21 finishJSTest(); |
24 } | 22 } |
25 | 23 |
26 function requestFailed2(error) | 24 function descriptionSet() |
27 { | 25 { |
28 testFailed('setRemoteDescription request failed.'); | 26 testPassed('setRemoteDescription request succeeded.'); |
29 | 27 shouldNotThrow('pc.createAnswer(answerCreated, unexpectedCallback);'); |
30 finishJSTest(); | |
31 } | 28 } |
32 | 29 |
33 function requestSucceeded2() | 30 function createOfferWithoutDescriptionFailed() |
34 { | 31 { |
35 testPassed('setRemoteDescription request succeeded.'); | 32 testPassed('createOffer request without remote description failed.'); |
36 | 33 sessionDescription = new RTCSessionDescription({type:"answer", sdp:"remote"}
); |
37 shouldNotThrow('pc.createAnswer(requestSucceeded3, requestFailed3);'); | 34 shouldNotThrow('pc.setRemoteDescription(sessionDescription, descriptionSet,
unexpectedCallback);'); |
38 } | 35 } |
39 | 36 |
40 function requestFailed1() | 37 function testExecutionOrderClosedConnection() |
41 { | 38 { |
42 testPassed('createOffer request failed.'); | 39 var localPeerConnection = new webkitRTCPeerConnection(null, null); |
43 | 40 localPeerConnection.close(); |
44 sessionDescription = new RTCSessionDescription({type:"answer", sdp:"remote"}
); | 41 var counter = 0; |
45 shouldNotThrow('pc.setRemoteDescription(sessionDescription, requestSucceeded
2, requestFailed2);'); | 42 window.events = []; |
| 43 Promise.resolve().then(_ => window.events[counter++] = 1); |
| 44 localPeerConnection.createAnswer(unexpectedCallback, error => { |
| 45 window.error = error; |
| 46 shouldBe('error.name', '"InvalidStateError"'); |
| 47 shouldBe('error.toString()', '"InvalidStateError: The RTCPeerConnection\
's signalingState is \'closed\'."'); |
| 48 window.events[counter++] = 2; |
| 49 }); |
| 50 Promise.resolve().then(_ => { |
| 51 window.events[counter++] = 3; |
| 52 shouldBe('events', '[1,2,3]'); |
| 53 }); |
46 } | 54 } |
47 | 55 |
48 function requestSucceeded1(sd) | 56 shouldNotThrow('testExecutionOrderClosedConnection()'); |
49 { | |
50 testFailed('createOffer request succeeded.'); | |
51 finishJSTest(); | |
52 } | |
53 | |
54 pc = new webkitRTCPeerConnection(null, null); | 57 pc = new webkitRTCPeerConnection(null, null); |
55 pc.createOffer(requestSucceeded1, requestFailed1); | 58 pc.createOffer(unexpectedCallback, createOfferWithoutDescriptionFailed); |
56 | 59 |
57 window.jsTestIsAsync = true; | 60 window.jsTestIsAsync = true; |
58 window.successfullyParsed = true; | 61 window.successfullyParsed = true; |
59 </script> | 62 </script> |
60 </body> | 63 </body> |
61 </html> | 64 </html> |
OLD | NEW |