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

Side by Side Diff: third_party/WebKit/LayoutTests/webaudio/OfflineAudioContext/offlineaudiocontext-promise-basic.html

Issue 2676343003: Convert OfflineAudioContext Audit tests to testharness (Closed)
Patch Set: Address review comments. Created 3 years, 10 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 | third_party/WebKit/LayoutTests/webaudio/OfflineAudioContext/offlineaudiocontext-promise-basic-expected.txt » ('j') | 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> 1 <!doctype html>
2 <html> 2 <html>
3 <head> 3 <head>
4 <script src="../../resources/js-test.js"></script> 4 <script src="../../resources/testharness.js"></script>
5 <script src="../../resources/testharnessreport.js"></script>
5 <script src="../resources/audio-testing.js"></script> 6 <script src="../resources/audio-testing.js"></script>
6 <title>OfflineAudioContext.startRendering Promise</title> 7 <title>OfflineAudioContext.startRendering Promise</title>
7 </head> 8 </head>
8 9
9 <body> 10 <body>
10 <script> 11 <script>
11 description("Test OfflineAudioContext.startRendering Promise")
12
13 window.jsTestIsAsync = true;
14
15 var context; 12 var context;
16 var promiseData; 13 var promiseData;
17 14
18 var sampleRate = 48000; 15 var sampleRate = 48000;
19 var renderSeconds = 1; 16 var renderSeconds = 1;
20 var renderFrames = sampleRate * renderSeconds; 17 var renderFrames = sampleRate * renderSeconds;
21 var contextChannels = 2; 18 var contextChannels = 2;
22 19
23 var audit = Audit.createTaskRunner(); 20 var audit = Audit.createTaskRunner();
24 21
25 audit.defineTask('reject-promise', function (done) { 22 audit.defineTask('reject-promise', function (done) {
26 // Create a context and verify that calling startRendering more than onc e causes a rejected 23 // Create a context and verify that calling startRendering more than onc e causes a rejected
27 // promise. 24 // promise.
28 var context = new OfflineAudioContext(contextChannels, renderFrames, sam pleRate); 25 var context = new OfflineAudioContext(contextChannels, renderFrames, sam pleRate);
29 context.startRendering(); 26 context.startRendering();
30 context.startRendering() 27 Should('Promise from calling startRendering twice',
31 .then(function () { 28 context.startRendering())
32 testFailed("Promise not rejected when calling startRend ering twice"); 29 .beRejected()
33 }, function () { 30 .then(done);
34 testPassed("Promise correctly rejected when calling sta rtRendering twice");
35 })
36 .then(done);
37 }); 31 });
38 32
39 audit.defineTask('promise-results', function (done) { 33 audit.defineTask('promise-results', function (done) {
40 // Create an offline context and verify that buffer returned by the prom ise matches the 34 // Create an offline context and verify that buffer returned by the prom ise matches the
41 // expected results. 35 // expected results.
42 context = new OfflineAudioContext(contextChannels, renderFrames, sampleR ate); 36 context = new OfflineAudioContext(contextChannels, renderFrames, sampleR ate);
43 37
44 var buffer = context.createBuffer(contextChannels, renderFrames, sampleR ate); 38 var buffer = context.createBuffer(contextChannels, renderFrames, sampleR ate);
45 for (var k = 0; k < renderFrames; ++k) { 39 for (var k = 0; k < renderFrames; ++k) {
46 buffer.getChannelData(0)[k] = 1; 40 buffer.getChannelData(0)[k] = 1;
47 buffer.getChannelData(1)[k] = 2; 41 buffer.getChannelData(1)[k] = 2;
48 } 42 }
49 43
50 var source = context.createBufferSource(); 44 var source = context.createBufferSource();
51 source.buffer = buffer; 45 source.buffer = buffer;
52 source.connect(context.destination); 46 source.connect(context.destination);
53 source.start(); 47 source.start();
54 48
55 context.startRendering().then(handlePromise).then(done); 49 context.startRendering().then(handlePromise).then(done);
56 }); 50 });
57 51
58 audit.defineTask('finish', function (done) { 52 audit.runTasks();
59 done();
60 finishJSTest();
61 });
62
63 audit.runTasks('reject-promise', 'promise-results', 'finish');
64 53
65 function handlePromise(buffer) 54 function handlePromise(buffer)
66 { 55 {
67 renderedData = buffer; 56 renderedData = buffer;
68 var success = true; 57 var success = true;
69 58
70 shouldBeEqualToString("context.state", "closed"); 59 Should("context.state", context.state)
71 shouldBeEqualToNumber("renderedData.numberOfChannels", contextChannels); 60 .beEqualTo("closed");
72 shouldBeEqualToNumber("renderedData.length", renderFrames); 61 Should("renderedData.numberOfChannels", renderedData.numberOfChannels)
62 .beEqualTo(contextChannels);
63 Should("renderedData.length", renderedData.length)
64 .beEqualTo(renderFrames);
73 65
74 for (var channel = 0; channel < contextChannels; ++channel) { 66 for (var channel = 0; channel < contextChannels; ++channel) {
75 var data = renderedData.getChannelData(channel); 67 var data = renderedData.getChannelData(channel);
76 for (var k = 0; k < renderFrames; ++k) { 68 for (var k = 0; k < renderFrames; ++k) {
77 if (data[k] != channel + 1) { 69 if (data[k] != channel + 1) {
78 success = false; 70 success = false;
79 badChannel = channel; 71 badChannel = channel;
80 badFrame = k; 72 badFrame = k;
81 break; 73 break;
82 } 74 }
83 } 75 }
84 if (!success) 76 if (!success)
85 break; 77 break;
86 } 78 }
87 79
88 if (success) { 80 Should('OfflineAudioContext.startRendering promise rendered data',
89 testPassed("Rendered data matches expected results"); 81 success)
90 testPassed("OfflineAudioContext.startRendering promise succeeded"); 82 .summarize('correctly', 'incorrectly');
91 } else {
92 testFailed("Rendered data does not match expected results for channel " +
93 badChannel + ", frame " + badFrame);
94 testFailed("OfflineAudioContext.startRendering promise");
95 }
96 } 83 }
97
98 successfullyParsed = true;
99 </script> 84 </script>
100 85
101 </body> 86 </body>
102 </html> 87 </html>
OLDNEW
« no previous file with comments | « no previous file | third_party/WebKit/LayoutTests/webaudio/OfflineAudioContext/offlineaudiocontext-promise-basic-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698