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

Unified Diff: third_party/WebKit/LayoutTests/webaudio/audioparam-initial-event.html

Issue 2581463002: Refactor WebAudio test directory (Closed)
Patch Set: Use correct path for wav result files Created 4 years 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/webaudio/audioparam-initial-event.html
diff --git a/third_party/WebKit/LayoutTests/webaudio/audioparam-initial-event.html b/third_party/WebKit/LayoutTests/webaudio/audioparam-initial-event.html
deleted file mode 100644
index 15b4843f76a4972ad84948ea9fed7d1e5496d952..0000000000000000000000000000000000000000
--- a/third_party/WebKit/LayoutTests/webaudio/audioparam-initial-event.html
+++ /dev/null
@@ -1,176 +0,0 @@
-<!doctype html>
-<html>
-
-<head>
- <script src="../resources/js-test.js"></script>
- <script src="resources/compatibility.js"></script>
- <script src="resources/audit-util.js"></script>
- <script src="resources/audio-testing.js"></script>
- <script src="resources/audioparam-testing.js"></script>
- <title>AudioParam Initial Events </title>
-</head>
-
-<body>
- <script>
- description("Test Automation Ramps without Initial Event");
- window.jsTestIsAsync = true;
-
- var sampleRate = 48000;
- // Number of frames in a rendering quantum.
- var quantumFrames = 128;
- // Test doesn't need to run for very long.
- var renderDuration = 0.2;
- var renderFrames = renderDuration * sampleRate;
- var automationEndTime = 0.1;
-
- var audit = Audit.createTaskRunner();
-
- // The following tests start a ramp automation without an initial event. This should cause an
- // initial event to be added implicitly to give a starting point.
- audit.defineTask("linear-ramp", function (done) {
- runTest("Linear ramp", {
- automationFunction: function (node, value, time) {
- node.gain.linearRampToValueAtTime(value, time);
- },
- referenceFunction: linearRamp,
- // Experimentally determined threshold
- threshold: 6.0003e-8,
- // The starting value of the gain node
- v0: 0.5,
- // The target value of the automation
- v1: 0,
- })
- .then(done);
- });
-
- audit.defineTask("exponential-ramp", function (done) {
- runTest("Exponential ramp", {
- automationFunction: function (node, value, time) {
- node.gain.exponentialRampToValueAtTime(value, time);
- },
- referenceFunction: exponentialRamp,
- threshold: 2.3842e-6,
- v0: 0.5,
- v1: 2,
- })
- .then(done);
- });
-
- // Same tests as above, but we delay the call to the automation function. This is to verify that
- // the we still do the right thing after the context has started.
- audit.defineTask("delayed-linear-ramp", function (done) {
- runTest("Delayed linear ramp", {
- automationFunction: function (node, value, time) {
- node.gain.linearRampToValueAtTime(value, time);
- },
- referenceFunction: linearRamp,
- // Experimentally determined threshold
- threshold: 9.87968e-8,
- // The starting value of the gain node
- v0: 0.5,
- // The target value of the automation
- v1: 0,
- delay: quantumFrames / sampleRate
- })
- .then(done);
- });
-
- audit.defineTask("delayed-exponential-ramp", function (done) {
- runTest("Delayed exponential ramp", {
- automationFunction: function (node, value, time) {
- node.gain.exponentialRampToValueAtTime(value, time);
- },
- referenceFunction: exponentialRamp,
- // Experimentally determined threshold
- threshold: 1.3948e-5,
- // The starting value of the gain node
- v0: 0.5,
- // The target value of the automation
- v1: 2,
- delay: quantumFrames / sampleRate
- })
- .then(done);
- });
-
- audit.defineTask("finish", function (done) {
- finishJSTest();
- done();
- });
-
- audit.runTasks();
-
- // Generate the expected waveform for a linear ramp starting from the value |v0|, ramping to
- // |v1| at time |endTime|. The time of |v0| is assumed to be 0. |nFrames| is how many frames
- // to generate.
- function linearRamp(v0, v1, startTime, endTime, nFrames) {
- var expected = createLinearRampArray(startTime, endTime, v0, v1, sampleRate);
- var preFiller = new Array(Math.floor(startTime * sampleRate));
- var postFiller = new Array(nFrames - Math.ceil(endTime * sampleRate));
- preFiller.fill(v0);
- return preFiller.concat(expected.concat(postFiller.fill(v1)));
- }
-
- // Generate the expected waveform for an exponential ramp starting from the value |v0|,
- // ramping to |v1| at time |endTime|. The time of |v0| is assumed to be 0. |nFrames| is how
- // many frames to generate.
- function exponentialRamp(v0, v1, startTime, endTime, nFrames) {
- var expected = createExponentialRampArray(startTime, endTime, v0, v1, sampleRate);
- var preFiller = new Array(Math.floor(startTime * sampleRate));
- preFiller.fill(v0);
- var postFiller = new Array(nFrames - Math.ceil(endTime * sampleRate));
- return preFiller.concat(expected.concat(postFiller.fill(v1)));
- }
-
- // Run an automation test. |message| is the message to use for printing the results. |options|
- // is a property bag containing the configuration of the test including the following:
- //
- // automationFunction - automation function to use,
- // referenceFunction - function generating the expected result
- // threshold - comparison threshold
- // v0 - starting value
- // v1 - end value for automation
- function runTest(message, options) {
- var automationFunction = options.automationFunction;
- var referenceFunction = options.referenceFunction;
- var threshold = options.threshold;
- var v0 = options.v0;
- var v1 = options.v1;
- var delay = options.delay;
-
- var context = new OfflineAudioContext(1, renderFrames, sampleRate);
-
- // A constant source of amplitude 1.
- var source = context.createBufferSource();
- source.buffer = createConstantBuffer(context, 1, 1);
- source.loop = true;
-
- // Automation is applied to a gain node
- var gain = context.createGain();
- gain.gain.value = v0;
-
- // Delay start of automation, if requested
- if (delay) {
- context.suspend(options.delay).then(function () {
- automationFunction(gain, v1, automationEndTime);
- context.resume();
- });
- } else {
- automationFunction(gain, v1, automationEndTime);
- }
-
- source.connect(gain);
- gain.connect(context.destination);
-
- source.start();
-
- return context.startRendering()
- .then(function (resultBuffer) {
- var result = resultBuffer.getChannelData(0);
- var expected = referenceFunction(v0, v1, delay ? delay : 0, automationEndTime, renderFrames);
- Should(message, result).beCloseToArray(expected, threshold);
- });
- }
- </script>
-</body>
-
-</html>

Powered by Google App Engine
This is Rietveld 408576698