OLD | NEW |
| (Empty) |
1 <!doctype html> | |
2 <html> | |
3 <head> | |
4 <title>Test AudioContext.close() closes many contexts</title> | |
5 <script src="../resources/js-test.js"></script> | |
6 <script src="resources/compatibility.js"></script> | |
7 <script src="resources/audit-util.js"></script> | |
8 <script src="resources/audio-testing.js"></script> | |
9 </head> | |
10 | |
11 <body> | |
12 <script> | |
13 description("Test that closing a context releases the audio HW context"); | |
14 | |
15 var context = null; | |
16 | |
17 // The number of contexts we want to create and close. | |
18 var MAX_ITERATION = 100; | |
19 var counter = 0; | |
20 | |
21 function createContextAndClose() { | |
22 // Bypass the first iteration. | |
23 if (context) { | |
24 if (context.state != "closed") { | |
25 testFailed("Context " + counter + " was closed but state is not clos
ed: " + context.state); | |
26 } | |
27 context = null; | |
28 } | |
29 // Create new context and close. | |
30 context = new AudioContext(); | |
31 if (counter++ < MAX_ITERATION) { | |
32 // Recursive promise resolution. | |
33 context.close().then(createContextAndClose, onFailure); | |
34 } else { | |
35 context.close() | |
36 .then(function () { | |
37 testPassed("Successfully created and closed " + MAX_ITE
RATION + " contexts"); | |
38 finishJSTest(); | |
39 }); | |
40 } | |
41 } | |
42 | |
43 function onFailure(message) { | |
44 testFailed("Context " + counter + " failed to close"); | |
45 finishJSTest(); | |
46 } | |
47 | |
48 // Initiate iteration. | |
49 function runTest() { | |
50 window.jsTestIsAsync = true; | |
51 createContextAndClose(); | |
52 } | |
53 | |
54 runTest(); | |
55 </script> | |
56 </body> | |
57 </html> | |
OLD | NEW |