-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Test PannerNode.setPosition() throws with parameter out of range of f…
…loat Depends on D113943 Differential Revision: https://phabricator.services.mozilla.com/D113944 bugzilla-url: https://bugzilla.mozilla.org/show_bug.cgi?id=1708179 gecko-commit: 79b910105bf022de748b88dfa5371fc93cf703d7 gecko-reviewers: padenot
- Loading branch information
1 parent
939be35
commit 2058465
Showing
1 changed file
with
37 additions
and
0 deletions.
There are no files selected for viewing
37 changes: 37 additions & 0 deletions
37
webaudio/the-audio-api/the-pannernode-interface/pannernode-setposition-throws.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
<!doctype html> | ||
<meta charset=utf-8> | ||
<title>Test PannerNode.setPosition() throws with parameter out of range of float</title> | ||
<script src=/resources/testharness.js></script> | ||
<script src=/resources/testharnessreport.js></script> | ||
<script> | ||
// https://webaudio.github.io/web-audio-api/#dom-pannernode-setposition | ||
// setPosition(x, y, z) "is equivalent to setting positionX.value, | ||
// positionY.value, and positionZ.value directly with the given x, y, and z | ||
// values, respectively." setPosition() parameters are double, but the | ||
// AudioParam value setter has a float parameter, so out of range values | ||
// throw. | ||
const FLT_MAX = 3.40282e+38; | ||
let panner; | ||
setup(() => { | ||
const ctx = new OfflineAudioContext({length: 1, sampleRate: 24000}); | ||
panner = ctx.createPanner(); | ||
}); | ||
test(() => { | ||
assert_throws_js(TypeError, () => panner.setPosition(2 * FLT_MAX, 0, 0)); | ||
}, "setPosition x"); | ||
test(() => { | ||
assert_throws_js(TypeError, () => panner.setPosition(0, -2 * FLT_MAX, 0)); | ||
}, "setPosition y"); | ||
test(() => { | ||
assert_throws_js(TypeError, () => panner.setPosition(0, 0, 2 * FLT_MAX)); | ||
}, "setPosition z"); | ||
test(() => { | ||
assert_throws_js(TypeError, () => panner.setOrientation(-2 * FLT_MAX, 0, 0)); | ||
}, "setOrientation x"); | ||
test(() => { | ||
assert_throws_js(TypeError, () => panner.setOrientation(0, 2 * FLT_MAX, 0)); | ||
}, "setOrientation y"); | ||
test(() => { | ||
assert_throws_js(TypeError, () => panner.setOrientation(0, 0, -2 * FLT_MAX)); | ||
}, "setOrientation z"); | ||
</script> |