blob: 58070b514ff1246a11ffe6194dc14663d1aff608 [file] [log] [blame]
CONSOLE WARNING: The provided value 'fancy' is not a valid enum value of type ChannelCountMode.
CONSOLE WARNING: The provided value 'undefined' is not a valid enum value of type ChannelInterpretation.
CONSOLE WARNING: The provided value '9x' is not a valid enum value of type OverSampleType.
CONSOLE WARNING: Setting AudioBufferSourceNode.buffer more than once is deprecated and will no longer work in Chrome 43.
CONSOLE WARNING: The provided value 'junk' is not a valid enum value of type ChannelCountMode.
CONSOLE WARNING: The provided value 'junk' is not a valid enum value of type ChannelCountMode.
Tests DOM exception messages
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
PASS context.createBuffer(99, 1, context.sampleRate) threw exception NotSupportedError: Failed to execute 'createBuffer' on 'AudioContext': The number of channels provided (99) is outside the range [1, 32]..
PASS context.createBuffer(0, 1, context.sampleRate) threw exception NotSupportedError: Failed to execute 'createBuffer' on 'AudioContext': The number of channels provided (0) is outside the range [1, 32]..
PASS context.createBuffer(1, 1, 1) threw exception NotSupportedError: Failed to execute 'createBuffer' on 'AudioContext': The sample rate provided (1) is outside the range [3000, 192000]..
PASS context.createBuffer(1, 1, 1e6) threw exception NotSupportedError: Failed to execute 'createBuffer' on 'AudioContext': The sample rate provided (1.00000e+6) is outside the range [3000, 192000]..
PASS context.createBuffer(1, 1, 3000) did not throw exception.
PASS context.createBuffer(1, 1, 192000) did not throw exception.
PASS context.createBuffer(1, 0, context.sampleRate) threw exception NotSupportedError: Failed to execute 'createBuffer' on 'AudioContext': The number of frames provided (0) is less than or equal to the minimum bound (0)..
PASS context.createBuffer(new ArrayBuffer(100), true) threw exception TypeError: Failed to execute 'createBuffer' on 'AudioContext': 3 arguments required, but only 2 present..
PASS context.decodeAudioData(null, function() {}, function () {}) threw exception SyntaxError: Failed to execute 'decodeAudioData' on 'AudioContext': invalid ArrayBuffer for audioData..
PASS context.createMediaElementSource(null) threw exception InvalidStateError: Failed to execute 'createMediaElementSource' on 'AudioContext': invalid HTMLMedialElement..
PASS context.createMediaStreamSource(null) threw exception InvalidStateError: Failed to execute 'createMediaStreamSource' on 'AudioContext': invalid MediaStream source.
PASS context.createScriptProcessor(1, 1, 1) threw exception IndexSizeError: Failed to execute 'createScriptProcessor' on 'AudioContext': buffer size (1) must be a power of two between 256 and 16384..
PASS context.createScriptProcessor(4096, 100, 1) threw exception IndexSizeError: Failed to execute 'createScriptProcessor' on 'AudioContext': number of input channels (100) exceeds maximum (32)..
PASS context.createScriptProcessor(4096, 1, 100) threw exception IndexSizeError: Failed to execute 'createScriptProcessor' on 'AudioContext': number of output channels (1) exceeds maximum (32)..
PASS context.createScriptProcessor() did not throw exception.
PASS context.createScriptProcessor(0) did not throw exception.
PASS context.createChannelSplitter(0) threw exception IndexSizeError: Failed to execute 'createChannelSplitter' on 'AudioContext': number of outputs (0) must be between 1 and 32..
PASS context.createChannelSplitter(99) threw exception IndexSizeError: Failed to execute 'createChannelSplitter' on 'AudioContext': number of outputs (99) must be between 1 and 32..
PASS context.createChannelMerger(0) threw exception IndexSizeError: Failed to execute 'createChannelMerger' on 'AudioContext': number of inputs (0) must be between 1 and 32..
PASS context.createChannelMerger(99) threw exception IndexSizeError: Failed to execute 'createChannelMerger' on 'AudioContext': number of inputs (99) must be between 1 and 32..
PASS context.createPeriodicWave(null, null) threw exception SyntaxError: Failed to execute 'createPeriodicWave' on 'AudioContext': invalid real array.
PASS context.createPeriodicWave(new Float32Array(10), null) threw exception SyntaxError: Failed to execute 'createPeriodicWave' on 'AudioContext': invalid imaginary array.
PASS context.createPeriodicWave(new Float32Array(4100), new Float32Array(4100)) threw exception IndexSizeError: Failed to execute 'createPeriodicWave' on 'AudioContext': The length of the real part array provided (4100) is outside the range [1, 2048]..
PASS context.createPeriodicWave(new Float32Array(100), new Float32Array(4100)) threw exception IndexSizeError: Failed to execute 'createPeriodicWave' on 'AudioContext': The length of the imaginary part array provided (4100) is outside the range [1, 2048]..
PASS context.createPeriodicWave(new Float32Array(10), new Float32Array(7)) threw exception IndexSizeError: Failed to execute 'createPeriodicWave' on 'AudioContext': length of real array (10) and length of imaginary array (7) must match..
PASS context.createPeriodicWave(new Float32Array(2048), new Float32Array(2048)) did not throw exception.
PASS context.createPeriodicWave(new Float32Array(2049), new Float32Array(2049)) threw exception IndexSizeError: Failed to execute 'createPeriodicWave' on 'AudioContext': The length of the real part array provided (2049) is outside the range [1, 2048]..
PASS node.fftSize = 42 threw exception IndexSizeError: Failed to set the 'fftSize' property on 'AnalyserNode': The value provided (42) is not a power of two..
PASS node.fftSize is not 42
PASS node.fftSize = 16 threw exception IndexSizeError: Failed to set the 'fftSize' property on 'AnalyserNode': The FFT size provided (16) is outside the range [32, 32768]..
PASS node.fftSize is not 16
PASS node.fftSize = 32768 did not throw exception.
PASS node.fftSize = 65536 threw exception IndexSizeError: Failed to set the 'fftSize' property on 'AnalyserNode': The FFT size provided (65536) is outside the range [32, 32768]..
PASS node.fftSize is not 65536
PASS node.minDecibels = -10 threw exception IndexSizeError: Failed to set the 'minDecibels' property on 'AnalyserNode': The minDecibels provided (-10) is greater than the maximum bound (-30)..
PASS node.minDecibels is not -10
PASS node.maxDecibels = -150 threw exception IndexSizeError: Failed to set the 'maxDecibels' property on 'AnalyserNode': The maxDecibels provided (-150) is less than the minimum bound (-100)..
PASS node.maxDecibels is not -150
PASS node.minDecibels = -30 threw exception IndexSizeError: Failed to set the 'minDecibels' property on 'AnalyserNode': The minDecibels provided (-30) is greater than or equal to the maximum bound (-30)..
PASS node.minDecibels is not -30
PASS node.maxDecibels = -100 threw exception IndexSizeError: Failed to set the 'maxDecibels' property on 'AnalyserNode': The maxDecibels provided (-100) is less than or equal to the minimum bound (-100)..
PASS node.maxDecibels is not -100
PASS node.smoothingTimeConstant = -0.1 threw exception IndexSizeError: Failed to set the 'smoothingTimeConstant' property on 'AnalyserNode': The smoothing value provided (-0.1) is outside the range [0, 1]..
PASS node.smoothingTimeConstant is not -0.1
PASS node.smoothingTimeConstant = 1.5 threw exception IndexSizeError: Failed to set the 'smoothingTimeConstant' property on 'AnalyserNode': The smoothing value provided (1.5) is outside the range [0, 1]..
PASS node.smoothingTimeConstant is not 1.5
PASS node.getChannelData(2) threw exception IndexSizeError: Failed to execute 'getChannelData' on 'AudioBuffer': channel index (2) exceeds number of channels (1).
PASS node.connect(null, 0, 0) threw exception TypeError: Failed to execute 'connect' on 'AudioNode': parameter 1 is not of type 'AudioNode'..
PASS node.connect(context.destination, 100, 0) threw exception IndexSizeError: Failed to execute 'connect' on 'AudioNode': output index (100) exceeds number of outputs (1)..
PASS node.connect(context.destination, 0, 100) threw exception IndexSizeError: Failed to execute 'connect' on 'AudioNode': input index (100) exceeds number of inputs (1)..
PASS node.connect(node2.gain, 100) threw exception IndexSizeError: Failed to execute 'connect' on 'AudioNode': output index (100) exceeds number of outputs (1)..
PASS node.disconnect(99) threw exception IndexSizeError: Failed to execute 'disconnect' on 'AudioNode': The output index provided (99) is outside the range [0, 1]..
PASS node.connect(otherContext.destination) threw exception SyntaxError: Failed to execute 'connect' on 'AudioNode': cannot connect to a destination belonging to a different audio context..
PASS node.channelCount = 99 threw exception NotSupportedError: Failed to set the 'channelCount' property on 'AudioNode': The channel count provided (99) is outside the range [1, 32]..
PASS node.channelCount is not 99
PASS node.channelCountMode = 'fancy' did not throw exception.
PASS Invalid channelCountMode value did not change mode
PASS node.channelInterpretation = mode did not throw exception.
PASS Invalid channelInterpration value did not change mode
PASS context.destination.channelCount = 99 threw IndexSizeError exception on invalid channel count.
PASS new OfflineAudioContext(32, 100, context.sampleRate) did not throw exception.
PASS new OfflineAudioContext(99, 100, context.sampleRate) threw exception IndexSizeError: Failed to construct 'OfflineAudioContext': The number of channels provided (99) is outside the range [0, 32]..
PASS new OfflineAudioContext(1, 100, 1) threw exception IndexSizeError: Failed to construct 'OfflineAudioContext': The sampleRate provided (1) is outside the range [3000, 192000]..
PASS new OfflineAudioContext(1, 100, 1e6) threw exception IndexSizeError: Failed to construct 'OfflineAudioContext': The sampleRate provided (1.00000e+6) is outside the range [3000, 192000]..
PASS new OfflineAudioContext(1, -88200000000000, 44100) threw exception NotSupportedError: Failed to construct 'OfflineAudioContext': OfflineAudioContext(1, 1448390656, 44100).
PASS node.oversample = '9x' did not throw exception.
PASS Invalid oversample value did not change node.oversample
PASS node.curve = new Float32Array(1) threw exception InvalidAccessError: Failed to set the 'curve' property on 'WaveShaperNode': The curve length provided (1) is less than the minimum bound (2)..
PASS node.curve is null
PASS node.curve = new Float32Array(2) did not throw exception.
PASS node.curve = null did not throw exception.
PASS source = context.createBufferSource() did not throw exception.
PASS source.buffer = buffer did not throw exception.
PASS source.buffer = context.createBuffer(1, 10, context.sampleRate) did not throw exception.
PASS source.start(-1) threw exception InvalidAccessError: Failed to execute 'start' on 'AudioBufferSourceNode': The start time provided (-1) is less than the minimum bound (0)..
PASS source.start(Infinity) threw exception TypeError: Failed to execute 'start' on 'AudioBufferSourceNode': The provided double value is non-finite..
PASS source.start(-Infinity) threw exception TypeError: Failed to execute 'start' on 'AudioBufferSourceNode': The provided double value is non-finite..
PASS source.start(NaN) threw exception TypeError: Failed to execute 'start' on 'AudioBufferSourceNode': The provided double value is non-finite..
PASS source.start(1, Infinity) threw exception TypeError: Failed to execute 'start' on 'AudioBufferSourceNode': The provided double value is non-finite..
PASS source.start(1, -Infinity) threw exception TypeError: Failed to execute 'start' on 'AudioBufferSourceNode': The provided double value is non-finite..
PASS source.start(1, NaN) threw exception TypeError: Failed to execute 'start' on 'AudioBufferSourceNode': The provided double value is non-finite..
PASS source.start(1, -1) threw exception InvalidStateError: Failed to execute 'start' on 'AudioBufferSourceNode': The offset provided (-1) is less than the minimum bound (0)..
PASS source.start(1, -Number.MIN_VALUE) threw exception InvalidStateError: Failed to execute 'start' on 'AudioBufferSourceNode': The offset provided (-4.94066e-324) is less than the minimum bound (0)..
PASS source.start(1, 1, Infinity) threw exception TypeError: Failed to execute 'start' on 'AudioBufferSourceNode': The provided double value is non-finite..
PASS source.start(1, 1, -Infinity) threw exception TypeError: Failed to execute 'start' on 'AudioBufferSourceNode': The provided double value is non-finite..
PASS source.start(1, 1, NaN) threw exception TypeError: Failed to execute 'start' on 'AudioBufferSourceNode': The provided double value is non-finite..
PASS source.start(1, 1, -1) threw exception InvalidStateError: Failed to execute 'start' on 'AudioBufferSourceNode': The duration provided (-1) is less than the minimum bound (0)..
PASS source.start(1, 1, -Number.MIN_VALUE) threw exception InvalidStateError: Failed to execute 'start' on 'AudioBufferSourceNode': The duration provided (-4.94066e-324) is less than the minimum bound (0)..
PASS source.start() did not throw exception.
PASS source.stop(-Number.MIN_VALUE) threw exception InvalidAccessError: Failed to execute 'stop' on 'AudioBufferSourceNode': The stop time provided (-4.94066e-324) is less than the minimum bound (0)..
PASS source.stop(Infinity) threw exception TypeError: Failed to execute 'stop' on 'AudioBufferSourceNode': The provided double value is non-finite..
PASS source.stop(-Infinity) threw exception TypeError: Failed to execute 'stop' on 'AudioBufferSourceNode': The provided double value is non-finite..
PASS source.stop(NaN) threw exception TypeError: Failed to execute 'stop' on 'AudioBufferSourceNode': The provided double value is non-finite..
PASS source.stop() did not throw exception.
PASS source = context.createBufferSource() did not throw exception.
PASS source.buffer = buffer did not throw exception.
PASS source.start(0, 0) did not throw exception.
PASS source = context.createBufferSource() did not throw exception.
PASS source.buffer = buffer did not throw exception.
PASS source.start(0, -1/Infinity) did not throw exception.
PASS source = context.createBufferSource() did not throw exception.
PASS source.start() did not throw exception.
PASS source = context.createBufferSource() did not throw exception.
PASS source.buffer = buffer did not throw exception.
PASS source.stop() threw exception InvalidStateError: Failed to execute 'stop' on 'AudioBufferSourceNode': cannot call stop without calling start first..
PASS source = context.createBufferSource() did not throw exception.
PASS source.buffer = buffer did not throw exception.
PASS source.start() did not throw exception.
PASS source.start() threw exception InvalidStateError: Failed to execute 'start' on 'AudioBufferSourceNode': cannot call start more than once..
PASS source = context.createBufferSource() did not throw exception.
PASS source.buffer = buffer did not throw exception.
PASS source.start() did not throw exception.
PASS source.stop() did not throw exception.
PASS source = context.createOscillator() did not throw exception.
PASS source.start(-Number.MIN_VALUE) threw exception InvalidAccessError: Failed to execute 'start' on 'OscillatorNode': The start time provided (-4.94066e-324) is less than the minimum bound (0)..
PASS source.start(Infinity) threw exception TypeError: Failed to execute 'start' on 'OscillatorNode': The provided double value is non-finite..
PASS source.start(-Infinity) threw exception TypeError: Failed to execute 'start' on 'OscillatorNode': The provided double value is non-finite..
PASS source.start(NaN) threw exception TypeError: Failed to execute 'start' on 'OscillatorNode': The provided double value is non-finite..
PASS source.start() did not throw exception.
PASS source.stop(-Number.MIN_VALUE) threw exception InvalidAccessError: Failed to execute 'stop' on 'OscillatorNode': The stop time provided (-4.94066e-324) is less than the minimum bound (0)..
PASS source.stop(Infinity) threw exception TypeError: Failed to execute 'stop' on 'OscillatorNode': The provided double value is non-finite..
PASS source.stop(-Infinity) threw exception TypeError: Failed to execute 'stop' on 'OscillatorNode': The provided double value is non-finite..
PASS source.stop(NaN) threw exception TypeError: Failed to execute 'stop' on 'OscillatorNode': The provided double value is non-finite..
PASS source.stop() did not throw exception.
PASS osc = context.createOscillator() did not throw exception.
PASS osc.stop() threw exception InvalidStateError: Failed to execute 'stop' on 'OscillatorNode': cannot call stop without calling start first..
PASS osc1 = context.createOscillator() did not throw exception.
PASS osc1.start() did not throw exception.
PASS osc1.stop() did not throw exception.
PASS node.gain.exponentialRampToValueAtTime(-1, 0.1) threw exception InvalidAccessError: Failed to execute 'exponentialRampToValueAtTime' on 'AudioParam': The float target value provided (-1) is outside the range [1.40130e-45, Infinity)..
PASS node.gain.exponentialRampToValueAtTime(0, 0.1) threw exception InvalidAccessError: Failed to execute 'exponentialRampToValueAtTime' on 'AudioParam': The float target value provided (0) is outside the range [1.40130e-45, Infinity)..
PASS node.gain.exponentialRampToValueAtTime(Math.pow(2, -149), 0.1) did not throw exception.
PASS node.gain.exponentialRampToValueAtTime(Math.pow(2, -150), 0.1) threw exception InvalidAccessError: Failed to execute 'exponentialRampToValueAtTime' on 'AudioParam': The float target value provided (0) is outside the range [1.40130e-45, Infinity)..
PASS oc = new OfflineAudioContext(1, 44100, 44100) did not throw exception.
PASS conv = oc.createConvolver() did not throw exception.
PASS conv.buffer = oc.createBuffer(1, 100, 22050) threw exception NotSupportedError: Failed to set the 'buffer' property on 'ConvolverNode': The buffer sample rate of 22050 does not match the context rate of 44100 Hz..
PASS conv.buffer is null
PASS panner.channelCount = 1 did not throw exception.
PASS panner.channelCount = 2 did not throw exception.
PASS panner.channelCount = 0 threw exception NotSupportedError: Failed to set the 'channelCount' property on 'AudioNode': The channelCount provided (0) is outside the range [1, 2]..
PASS panner.channelCount is not 0
PASS panner.channelCount = 3 threw exception NotSupportedError: Failed to set the 'channelCount' property on 'AudioNode': The channelCount provided (3) is outside the range [1, 2]..
PASS panner.channelCount is not 3
PASS panner.channelCountMode = 'max' threw exception NotSupportedError: Failed to set the 'channelCountMode' property on 'AudioNode': Failed to set the 'channelCountMode' property on 'PannerNode': 'max' is not allowed.
PASS panner.channelCountMode is not 'max'
PASS panner.channelCountMode = 'explicit' did not throw exception.
PASS panner.channelCountMode = 'clamped-max' did not throw exception.
PASS panner.channelCountMode = 'junk' did not throw exception.
PASS script = context.createScriptProcessor(256, 3) did not throw exception.
PASS script.channelCount is 3
PASS script.channelCountMode is "explicit"
PASS script.channelCount = 3 did not throw exception.
PASS script.channelCount = 1 threw exception NotSupportedError: Failed to set the 'channelCount' property on 'AudioNode': channelCount cannot be changed from 3 to 1.
PASS script.channelCount is not 1
PASS script.channelCount = 7 threw exception NotSupportedError: Failed to set the 'channelCount' property on 'AudioNode': channelCount cannot be changed from 3 to 7.
PASS script.channelCount is not 7
PASS script.channelCountMode = 'explicit' did not throw exception.
PASS script.channelCountMode = 'max' threw exception NotSupportedError: Failed to set the 'channelCountMode' property on 'AudioNode': channelCountMode cannot be changed from 'explicit' to 'max'.
PASS script.channelCountMode is not 'max'
PASS script.channelCountMode = 'clamped-max' threw exception NotSupportedError: Failed to set the 'channelCountMode' property on 'AudioNode': channelCountMode cannot be changed from 'explicit' to 'clamped-max'.
PASS script.channelCountMode is not 'clamped-max'
PASS script.channelCountMode = 'junk' did not throw exception.
PASS osc.noteOn is undefined.
PASS osc.noteOff is undefined.
PASS source.noteOn is undefined.
PASS source.noteOff is undefined.
PASS successfullyParsed is true
TEST COMPLETE