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

Side by Side Diff: third_party/WebKit/LayoutTests/fast/peerconnection/RTCPeerConnection-ice.html

Issue 2316573004: Refactor async_test in RTCPeerConnection-ice layout test (Closed)
Patch Set: Created 4 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
« no previous file with comments | « no previous file | 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 <!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/testharness.js"></script> 4 <script src="../../resources/testharness.js"></script>
5 <script src="../../resources/testharnessreport.js"></script> 5 <script src="../../resources/testharnessreport.js"></script>
6 </head> 6 </head>
7 <body> 7 <body>
8 <script> 8 <script>
9 function onIceChange2()
10 {
11 if (window.pc.iceConnectionState === "closed") {
12 calledCallbacks.push("iceConnectionState closed");
13 assert_array_equals(calledCallbacks, [
14 'iceConnectionState complete',
15 'expectedTypeError',
16 'expectedTypeError',
17 'expectedTypeError',
18 'expectedTypeError',
19 'success1',
20 'success2',
21 'success3',
22 'success4',
23 'iceConnectionState closed'
24 ]);
25 window.testRTC.done();
26 }
27 }
28 9
29 function addIceCandidateSuccess1() 10 function unexpectedCallback() {
30 {
31 calledCallbacks.push('success1');
32 window.pc.addIceCandidate({candidate: "candidate", sdpMid: 0}, addIceCandida teSuccess2, unexpectedCallback);
33 }
34
35 function addIceCandidateSuccess2()
36 {
37 calledCallbacks.push('success2');
38 window.pc.addIceCandidate({candidate: "candidate", sdpMLineIndex: 0}, addIce CandidateSuccess3, unexpectedCallback);
39 }
40
41 function addIceCandidateSuccess3()
42 {
43 calledCallbacks.push('success3');
44 window.pc.addIceCandidate({candidate: "candidate", sdpMid: 0, sdpMLineIndex: 0}, addIceCandidateSuccess4, unexpectedCallback);
45 }
46
47 function addIceCandidateSuccess4()
48 {
49 calledCallbacks.push('success4');
50 window.pc.oniceconnectionstatechange = onIceChange2;
51 window.pc.close();
52 }
53
54 function unexpectedCallback()
55 {
56 assert_unreached('Unexpected callback'); 11 assert_unreached('Unexpected callback');
57 } 12 }
58 13
59 function expectedTypeError(error) 14 async_test(function(t) {
60 { 15 const localPeerConnection = new webkitRTCPeerConnection(null, null);
61 assert_equals(error.name, 'TypeError'); 16 localPeerConnection.close();
62 calledCallbacks.push('expectedTypeError'); 17 let counter = 0;
63 } 18 const events = [];
19 Promise.resolve().then(_ => events[counter++] = 1);
20 const iceCandidate = new RTCIceCandidate({candidate: "nano nano"});
64 21
65 function onIceChange1() 22 localPeerConnection.addIceCandidate(iceCandidate, unexpectedCallback, t.step _func(error => {
66 {
67 if (window.pc.iceConnectionState === "completed") {
68 calledCallbacks.push('iceConnectionState complete');
69 var iceCandidate = new RTCIceCandidate({candidate: "nano nano"});
70 window.pc.addIceCandidate(null, unexpectedCallback, unexpectedCallback). catch(expectedTypeError);
71 window.pc.addIceCandidate({candidate: "candidate"}, unexpectedCallback, unexpectedCallback).catch(expectedTypeError);
72 window.pc.addIceCandidate(iceCandidate, null, unexpectedCallback).catch( expectedTypeError);
73 window.pc.addIceCandidate(iceCandidate, unexpectedCallback, null).catch( expectedTypeError);
74 window.pc.addIceCandidate(iceCandidate, addIceCandidateSuccess1, unexpec tedCallback);
75 }
76 }
77
78 function testExecutionOrderClosedConnection()
79 {
80 var localPeerConnection = new webkitRTCPeerConnection(null, null);
81 localPeerConnection.close();
82 var counter = 0;
83 window.events = [];
84 Promise.resolve().then(_ => events[counter++] = 1);
85 var iceCandidate = new RTCIceCandidate({candidate:"nano nano"});
86 localPeerConnection.addIceCandidate(iceCandidate, unexpectedCallback, error => {
87 assert_equals(error.name, 'InvalidStateError'); 23 assert_equals(error.name, 'InvalidStateError');
88 assert_equals(error.toString(), 'InvalidStateError: The RTCPeerConnectio n\'s signalingState is \'closed\'.'); 24 assert_equals(error.toString(), 'InvalidStateError: The RTCPeerConnectio n\'s signalingState is \'closed\'.');
89 events[counter++] = 2; 25 events[counter++] = 2;
90 }); 26 }));
91 Promise.resolve().then(_ => { 27
28 Promise.resolve().then(t.step_func_done(_ => {
92 events[counter++] = 3; 29 events[counter++] = 3;
93 assert_array_equals(events, [1, 2, 3]); 30 assert_array_equals(events, [1, 2, 3]);
31 }));
32 }, "Test closed connection execution order");
33
34 // Is there a difference between M53 and content_shell wrt RTCPeerconnection?
35 // oniceconnectionstatechange is called in content_shell but not in M53
36
37 async_test(function(t) {
38
39 function expectedTypeError(error) {
40 assert_equals(error.name, 'TypeError');
41 }
42
43 const pc = new webkitRTCPeerConnection(null, null);
44 pc.oniceconnectionstatechange = t.step_func(function() {
45 assert_equals(pc.iceConnectionState, "completed");
46
47 const iceCandidate = new RTCIceCandidate({candidate: "nano nano"});
48
49 pc.addIceCandidate(null, unexpectedCallback, unexpectedCallback).catch(e xpectedTypeError);
50 pc.addIceCandidate({candidate: "candidate"}, unexpectedCallback, unexpec tedCallback).catch(expectedTypeError);
51 pc.addIceCandidate(iceCandidate, null, unexpectedCallback).catch(expecte dTypeError);
52 pc.addIceCandidate(iceCandidate, unexpectedCallback, null).catch(expecte dTypeError);
53
54 pc.addIceCandidate(iceCandidate, t.step_func(function() {
55 pc.addIceCandidate({candidate: "candidate", sdpMid: 0}, t.step_func( function() {
56 pc.addIceCandidate({candidate: "candidate", sdpMLineIndex: 0}, t .step_func(function() {
57 pc.addIceCandidate({candidate: "candidate", sdpMid: 0, sdpML ineIndex: 0}, t.step_func(function() {
58 pc.oniceconnectionstatechange = t.step_func_done(functio n() {
59 assert_equals(pc.iceConnectionState, "closed");
60 });
61 pc.close();
62 }), unexpectedCallback);
63 }), unexpectedCallback);
64
65 }), unexpectedCallback);
66 }), unexpectedCallback);
qyearsley 2016/09/07 18:17:03 I'm ambivalent about whether this is easier to rea
jeffcarp 2016/09/07 18:27:21 Agreed - I think I'm leaning toward named function
67
94 }); 68 });
95 }
96 69
97 window.calledCallbacks = []; 70 }, "Test RTCPeerConnection Ice functionality");
98 window.testRTC = async_test("Tests the RTCPeerConnection Ice functionality.");
99 71
100 testExecutionOrderClosedConnection();
101 window.pc = new webkitRTCPeerConnection(null, null);
102 window.pc.oniceconnectionstatechange = onIceChange1;
103 </script> 72 </script>
104 </body> 73 </body>
105 </html> 74 </html>
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698