1// Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. 2// 3// Use of this source code is governed by a BSD-style license 4// that can be found in the LICENSE file in the root of the source 5// tree. An additional intellectual property rights grant can be found 6// in the file PATENTS. All contributing project authors may 7// be found in the AUTHORS file in the root of the source tree. 8// 9// Test that offer/answer between 2 peers completes successfully. 10// 11// Note: This test does not performs ice candidate exchange and 12// does not verifies that media can flow between the peers. 13function testOfferAnswer(test, bot1, bot2) { 14 test.wait( [ bot1.createPeerConnection.bind(bot1, null), 15 bot2.createPeerConnection.bind(bot2, null) ], 16 run); 17 18 function run(pc1, pc2) { 19 test.log("Establishing call."); 20 pc1.createOffer(gotOffer); 21 22 function gotOffer(offer) { 23 test.log("Got offer"); 24 expectedCall(); 25 pc1.setLocalDescription(offer, expectedCall, test.fail); 26 pc2.setRemoteDescription(offer, expectedCall, test.fail); 27 pc2.createAnswer(gotAnswer, test.fail); 28 } 29 30 function gotAnswer(answer) { 31 test.log("Got answer"); 32 expectedCall(); 33 pc2.setLocalDescription(answer, expectedCall, test.fail); 34 pc1.setRemoteDescription(answer, expectedCall, test.fail); 35 } 36 37 // TODO(andresp): Implement utilities in test to write expectations 38 // that certain methods must be called. 39 var expectedCalls = 0; 40 function expectedCall() { 41 if (++expectedCalls == 6) 42 test.done(); 43 } 44 } 45} 46 47registerBotTest('testOfferAnswer/chrome-chrome', 48 testOfferAnswer, ['chrome', 'chrome']); 49