summaryrefslogtreecommitdiffstats
path: root/third_party/WebKit/LayoutTests/fast/mediastream/RTCPeerConnection-dtmf.html
blob: 109eb604feeb27aa6b63361a3590a3ddab3e24e5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../js/resources/js-test-pre.js"></script>
</head>
<body>
<script>
description("Tests RTCDTMFSender.");

var pc = null;
var stream = null;
var dtmfsender = null;

function error() {
    testFailed('Error callback called.');
    finishJSTest();
}

var firstCall = true;

function ontonechange(e) {
    testPassed("ontonechange was called.");
    event = e;
    if (firstCall) {
        shouldBeEqualToString('event.tone', "1");
        firstCall = false;
    } else {
        shouldBeEqualToString('event.tone', "");
        finishJSTest();
    }
}

function pc_onicechange() {
    if (pc.iceConnectionState === "completed") {
        testPassed("pc is connected");
        track = stream.getAudioTracks()[0];

        shouldThrow('dtmfsender = pc.createDTMFSender(track);');
        pc.addStream(stream);
        shouldNotThrow('dtmfsender = pc.createDTMFSender(track);');
        shouldBeTrue('dtmfsender.canInsertDTMF');

        dtmfsender.ontonechange = ontonechange;
        dtmfsender.insertDTMF("1");
        shouldBeEqualToString('dtmfsender.toneBuffer', "1");
    }
}

function gotStream(s) {
    stream = s;
    testPassed('Stream generated.');
    shouldBe('stream.getAudioTracks().length', '1');
    shouldBe('stream.getVideoTracks().length', '0');

    pc = new webkitRTCPeerConnection(null, null);
    pc.oniceconnectionstatechange = pc_onicechange;
}

shouldNotThrow("navigator.webkitGetUserMedia({audio:true}, gotStream, error);");

window.jsTestIsAsync = true;
window.successfullyParsed = true;
</script>
</body>
</html>