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

Side by Side Diff: third_party/WebKit/LayoutTests/webaudio/constructor/audiobuffersource.html

Issue 2102133002: Add constructors for WebAudio nodes (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address comments and rebase Created 4 years, 3 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
OLDNEW
(Empty)
1 <!doctype html>
2 <html>
3 <head>
4 <title>Test Constructor: AudioBufferSource</title>
5 <script src="../../resources/testharness.js"></script>
6 <script src="../../resources/testharnessreport.js"></script>
7 <script src="../resources/audio-testing.js"></script>
8 <script src="audionodeoptions.js"></script>
9 </head>
10
11 <body>
12 <script>
13 var context;
14
15 var audit = Audit.createTaskRunner();
16
17 audit.defineTask("initialize", function (taskDone) {
18 Should("context = new OfflineAudioContext(...)", function () {
19 context = new OfflineAudioContext(1, 1, 48000);
20 }).notThrow();
21
22 taskDone();
23 });
24
25 audit.defineTask("invalid constructor", function (taskDone) {
26 var node;
27 var success = true;
28
29 success = Should("new AudioBufferSourceNode()", function () {
30 node = new AudioBufferSourceNode();
31 }).throw("TypeError");
32 success = Should("new AudioBufferSourceNode(1)", function () {
33 node = new AudioBufferSourceNode(1) && success;
34 }).throw("TypeError");
35 success = Should("new AudioBufferSourceNode(context, 42)", function () {
36 node = new AudioBufferSourceNode(context, 42) && success;
37 }).throw("TypeError");
38
39 Should("Invalid constructors", success)
40 .summarize(
41 "correctly threw errors",
42 "did not throw errors in all cases");
43
44 taskDone();
45 });
46
47 audit.defineTask("default constructor", function (taskDone) {
48 var node;
49 var success = true;
50
51 success = Should("node = new AudioBufferSourceNode(context)", function ( ) {
52 node = new AudioBufferSourceNode(context);
53 }).notThrow() && success;
54
55 success = Should("node instanceof AudioBufferSourceNode",
56 node instanceof AudioBufferSourceNode).beEqualTo(true) && success;
57
58 success = Should("node.buffer === null", node.buffer === null)
59 .beEqualTo(true) && success;
60
61 // This node using the factory method is used as a reference for the
62 // defautl values.
63 var factoryNode = context.createBufferSource();
64
65 var testAttributes = ["buffer", "detune", "loop", "loopEnd", "loopStart" ,
66 "playbackRate"];
67
68 for (var index in testAttributes) {
69 var name = testAttributes[index];
70
71 if (node[name] instanceof AudioParam) {
72 success = Should("node." + name + ".value", node[name].value)
73 .beEqualTo(factoryNode[name].value) && success;
74 } else {
75 success = Should("node." + name, node[name])
76 .beEqualTo(factoryNode[name]) && success;
77 }
78 }
79
80 Should("AudioBufferSourceNode constructed", success)
81 .summarize("correctly", "incorrectly");
82
83 taskDone();
84 });
85
86 audit.defineTask("constructor options", function (taskDone) {
87 var node;
88 var success = true;
89
90 var buffer = context.createBuffer(2, 1000, context.sampleRate);
91
92 var options = {
93 buffer: buffer,
94 detune: .5,
95 loop: true,
96 loopEnd: (buffer.length / 2) / context.sampleRate,
97 loopStart: 5 / context.sampleRate,
98 playbackRate: .75
99 }
hongchan 2016/09/13 22:13:22 missing ;
Raymond Toy 2016/09/14 18:02:22 Done.
100
101 message = "node = new AudioBufferSourceNode(context, {";
hongchan 2016/09/13 22:13:22 Let's not repeat |message| here and on.
Raymond Toy 2016/09/14 18:02:22 Using JSON.stringify instead.
102 message += "buffer: buffer";
103 message += ", detune: " + options.detune;
104 message += ", loop: " + options.loop;
105 message += ", loopEnd: " + options.loopEnd;
106 message += ", loopStart: " + options.loopStart;
107 message += ", playbackRate: " + options.playbackRate;
108 message += "})";
109
110 success = Should(message, function () {
111 node = new AudioBufferSourceNode(context, options);
112 }).notThrow();
113
114 var factoryNode = context.createBufferSource();
115 factoryNode.buffer = options.buffer;
116 factoryNode.detune.value = options.detune;
117 factoryNode.loop = options.loop;
118 factoryNode.loopEnd = options.loopEnd;
119 factoryNode.loopStart = options.loopStart;
120 factoryNode.playbackRate.value = options.playbackRate;
121
122 success = Should("node.buffer === buffer", node.buffer === buffer)
123 .beEqualTo(true) && success;
124 success = Should("node.detune.value", node.detune.value)
125 .beEqualTo(factoryNode.detune.value) && success;
126 success = Should("node.loop", node.loop)
127 .beEqualTo(factoryNode.loop) && success;
128 success = Should("node.loopEnd", node.loopEnd)
129 .beEqualTo(factoryNode.loopEnd) && success;
130 success = Should("node.loopStart", node.loopStart)
131 .beEqualTo(factoryNode.loopStart) && success;
132 success = Should("node.playbackRate.value", node.playbackRate.value)
133 .beEqualTo(factoryNode.playbackRate.value) && success;
134
135 Should("AudioBufferSource with options cosntructed", success)
136 .summarize("correctly", "incorrectly");
137
138 taskDone();
139 });
140
141 audit.runTasks();
142 </script>
143 </body>
144 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698