OLD | NEW |
1 <!doctype html> | 1 <!doctype html> |
2 <html> | 2 <html> |
3 <head> | 3 <head> |
4 <title>Test Onended Event Listener</title> | 4 <title>Test Onended Event Listener</title> |
5 <script src="../../resources/js-test.js"></script> | 5 <script src="../../resources/testharness.js"></script> |
| 6 <script src="../../resources/testharnessreport.js"></script> |
6 <script src="../resources/audit-util.js"></script> | 7 <script src="../resources/audit-util.js"></script> |
7 <script src="../resources/audio-testing.js"></script> | 8 <script src="../resources/audio-testing.js"></script> |
8 </head> | 9 </head> |
9 | 10 |
10 <body> | 11 <body> |
11 <script> | 12 <script> |
12 description("Test onended event listener"); | |
13 window.jsTestIsAsync = true; | |
14 | 13 |
15 var sampleRate = 44100; | 14 var sampleRate = 44100; |
16 var renderLengthSeconds = 1; | 15 var renderLengthSeconds = 1; |
17 var renderLengthFrames = renderLengthSeconds * sampleRate; | 16 var renderLengthFrames = renderLengthSeconds * sampleRate; |
18 | 17 |
19 // Length of the source buffer. Anything less than the render length is f
ine. | 18 // Length of the source buffer. Anything less than the render length is f
ine. |
20 var sourceBufferLengthFrames = renderLengthFrames / 8; | 19 var sourceBufferLengthFrames = renderLengthFrames / 8; |
21 // When to stop the oscillator. Anything less than the render time is fin
e. | 20 // When to stop the oscillator. Anything less than the render time is fin
e. |
22 var stopTime = renderLengthSeconds / 8; | 21 var stopTime = renderLengthSeconds / 8; |
23 | 22 |
24 var audit = Audit.createTaskRunner(); | 23 var audit = Audit.createTaskRunner(); |
25 | 24 |
26 audit.defineTask("absn-set-onended", function (done) { | 25 audit.defineTask("absn-set-onended", function (done) { |
27 // Test that the onended event for an AudioBufferSourceNode is fired whe
n it is set | 26 // Test that the onended event for an AudioBufferSourceNode is fired whe
n it is set |
28 // directly. | 27 // directly. |
29 var context = new OfflineAudioContext(1, renderLengthFrames, sampleRate)
; | 28 var context = new OfflineAudioContext(1, renderLengthFrames, sampleRate)
; |
30 var buffer = context.createBuffer(1, sourceBufferLengthFrames, context.s
ampleRate); | 29 var buffer = context.createBuffer(1, sourceBufferLengthFrames, context.s
ampleRate); |
31 var source = context.createBufferSource(); | 30 var source = context.createBufferSource(); |
32 source.buffer = buffer; | 31 source.buffer = buffer; |
33 source.connect(context.destination); | 32 source.connect(context.destination); |
34 source.onended = function (e) { | 33 source.onended = function (e) { |
35 testPassed("AudioBufferSource.onended called when ended set directly."
); | 34 Should("AudioBufferSource.onended called when ended set directly", tru
e) |
| 35 .beEqualTo(true); |
36 }; | 36 }; |
37 source.start(); | 37 source.start(); |
38 context.startRendering().then(done); | 38 context.startRendering().then(done); |
39 }); | 39 }); |
40 | 40 |
41 audit.defineTask("absn-add-listener", function (done) { | 41 audit.defineTask("absn-add-listener", function (done) { |
42 // Test that the onended event for an AudioBufferSourceNode is fired whe
n | 42 // Test that the onended event for an AudioBufferSourceNode is fired whe
n |
43 // addEventListener is used to set the handler. | 43 // addEventListener is used to set the handler. |
44 var context = new OfflineAudioContext(1, renderLengthFrames, sampleRate)
; | 44 var context = new OfflineAudioContext(1, renderLengthFrames, sampleRate)
; |
45 var buffer = context.createBuffer(1, sourceBufferLengthFrames, context.s
ampleRate); | 45 var buffer = context.createBuffer(1, sourceBufferLengthFrames, context.s
ampleRate); |
46 var source = context.createBufferSource(); | 46 var source = context.createBufferSource(); |
47 source.buffer = buffer; | 47 source.buffer = buffer; |
48 source.connect(context.destination); | 48 source.connect(context.destination); |
49 source.addEventListener("ended", function (e) { | 49 source.addEventListener("ended", function (e) { |
50 testPassed("AudioBufferSource.onended called when using addEventListen
er."); | 50 Should("AudioBufferSource.onended called when using addEventListener", |
| 51 true).beEqualTo(true); |
51 }); | 52 }); |
52 source.start(); | 53 source.start(); |
53 context.startRendering().then(done); | 54 context.startRendering().then(done); |
54 }); | 55 }); |
55 | 56 |
56 audit.defineTask("osc-set-onended", function (done) { | 57 audit.defineTask("osc-set-onended", function (done) { |
57 // Test that the onended event for an OscillatorNode is fired when it is
set | 58 // Test that the onended event for an OscillatorNode is fired when it is
set |
58 // directly. | 59 // directly. |
59 var context = new OfflineAudioContext(1, renderLengthFrames, sampleRate)
; | 60 var context = new OfflineAudioContext(1, renderLengthFrames, sampleRate)
; |
60 var source = context.createOscillator(); | 61 var source = context.createOscillator(); |
61 source.connect(context.destination); | 62 source.connect(context.destination); |
62 source.onended = function (e) { | 63 source.onended = function (e) { |
63 testPassed("Oscillator.onended called when ended set directly."); | 64 Should("Oscillator.onended called when ended set directly", true).beEq
ualTo(true); |
64 }; | 65 }; |
65 source.start(); | 66 source.start(); |
66 source.stop(stopTime); | 67 source.stop(stopTime); |
67 context.startRendering().then(done); | 68 context.startRendering().then(done); |
68 }); | 69 }); |
69 | 70 |
70 audit.defineTask("osc-add-listener", function (done) { | 71 audit.defineTask("osc-add-listener", function (done) { |
71 // Test that the onended event for an OscillatorNode is fired when | 72 // Test that the onended event for an OscillatorNode is fired when |
72 // addEventListener is used to set the handler. | 73 // addEventListener is used to set the handler. |
73 var context = new OfflineAudioContext(1, renderLengthFrames, sampleRate)
; | 74 var context = new OfflineAudioContext(1, renderLengthFrames, sampleRate)
; |
74 var source = context.createOscillator(); | 75 var source = context.createOscillator(); |
75 source.connect(context.destination); | 76 source.connect(context.destination); |
76 source.addEventListener("ended", function (e) { | 77 source.addEventListener("ended", function (e) { |
77 testPassed("Oscillator.onended called when using addEventListener."); | 78 Should("Oscillator.onended called when using addEventListener", true).
beEqualTo(true); |
78 }); | 79 }); |
79 source.start(); | 80 source.start(); |
80 source.stop(stopTime); | 81 source.stop(stopTime); |
81 context.startRendering().then(done); | 82 context.startRendering().then(done); |
82 }); | 83 }); |
83 | 84 |
84 audit.defineTask("finish", function (done) { | 85 audit.defineTask("finish", function (done) { |
85 finishJSTest(); | |
86 done(); | 86 done(); |
87 }); | 87 }); |
88 | 88 |
89 audit.runTasks(); | 89 audit.runTasks(); |
90 succesfullyParsed = true; | 90 succesfullyParsed = true; |
91 </script> | 91 </script> |
92 </body> | 92 </body> |
93 </html> | 93 </html> |
OLD | NEW |