blob: bfded488bd1feddf45de43795a62a8e2234d9b72 [file] [log] [blame]
CONSOLE WARNING: line 1: The provided value 'fancy' is not a valid enum value of type ChannelCountMode.
CONSOLE WARNING: line 1: The provided value 'undefined' is not a valid enum value of type ChannelInterpretation.
CONSOLE WARNING: line 1: The provided value '9x' is not a valid enum value of type OverSampleType.
CONSOLE WARNING: line 1: The provided value 'junk' is not a valid enum value of type ChannelCountMode.
CONSOLE WARNING: line 1: 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.createMediaElementSource(null) threw exception TypeError: Failed to execute 'createMediaElementSource' on 'AudioContext': parameter 1 is not of type 'HTMLMediaElement'..
PASS context.createMediaStreamSource(null) threw exception TypeError: Failed to execute 'createMediaStreamSource' on 'AudioContext': parameter 1 is not of type 'MediaStream'..
PASS context.createScriptProcessor(1, 1, 1) threw exception IndexSizeError: Failed to execute 'createScriptProcessor' on 'AudioContext': buffer size (1) must be 0 or 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': The number of outputs provided (0) is outside the range [1, 32]..
PASS context.createChannelSplitter(99) threw exception IndexSizeError: Failed to execute 'createChannelSplitter' on 'AudioContext': The number of outputs provided (99) is outside the range [1, 32]..
PASS context.createChannelMerger(0) threw exception IndexSizeError: Failed to execute 'createChannelMerger' on 'AudioContext': The number of inputs provided (0) is outside the range [1, 32]..
PASS context.createChannelMerger(99) threw exception IndexSizeError: Failed to execute 'createChannelMerger' on 'AudioContext': The number of inputs provided (99) is outside the range [1, 32]..
PASS context.createPeriodicWave(null, null) threw exception TypeError: Failed to execute 'createPeriodicWave' on 'AudioContext': parameter 1 is not of type 'Float32Array'..
PASS context.createPeriodicWave(new Float32Array(10), null) threw exception TypeError: Failed to execute 'createPeriodicWave' on 'AudioContext': parameter 2 is not of type 'Float32Array'..
PASS context.createPeriodicWave(new Float32Array(4100), new Float32Array(4100)) did not throw exception.
PASS context.createPeriodicWave(new Float32Array(8192), new Float32Array(8192)) did not throw exception.
PASS context.createPeriodicWave(new Float32Array(10000), new Float32Array(10000)) did not throw exception.
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 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.getFloatFrequencyData(null) threw exception TypeError: Failed to execute 'getFloatFrequencyData' on 'AnalyserNode': parameter 1 is not of type 'Float32Array'..
PASS node.getByteFrequencyData(null) threw exception TypeError: Failed to execute 'getByteFrequencyData' on 'AnalyserNode': parameter 1 is not of type 'Uint8Array'..
PASS node.getFloatTimeDomainData(null) threw exception TypeError: Failed to execute 'getFloatTimeDomainData' on 'AnalyserNode': parameter 1 is not of type 'Float32Array'..
PASS node.getByteTimeDomainData(null) threw exception TypeError: Failed to execute 'getByteTimeDomainData' on 'AnalyserNode': parameter 1 is not of type 'Uint8Array'..
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, 0]..
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 param.setValueCurveAtTime(null, 0, 0) threw exception TypeError: Failed to execute 'setValueCurveAtTime' on 'AudioParam': parameter 1 is not of type 'Float32Array'..
PASS node.getFrequencyResponse(new Float32Array(1), new Float32Array(1), new Float32Array(1)) did not throw exception.
PASS node.getFrequencyResponse(null, new Float32Array(1), new Float32Array(1)) threw exception TypeError: Failed to execute 'getFrequencyResponse' on 'BiquadFilterNode': parameter 1 is not of type 'Float32Array'..
PASS node.getFrequencyResponse(new Float32Array(1), null, new Float32Array(1)) threw exception TypeError: Failed to execute 'getFrequencyResponse' on 'BiquadFilterNode': parameter 2 is not of type 'Float32Array'..
PASS node.getFrequencyResponse(new Float32Array(1), new Float32Array(1), null) threw exception TypeError: Failed to execute 'getFrequencyResponse' on 'BiquadFilterNode': parameter 3 is not of type 'Float32Array'..
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 = {} threw exception TypeError: Failed to set the 'curve' property on 'WaveShaperNode': The provided value is not of type 'Float32Array'..
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) threw exception InvalidStateError: Failed to set the 'buffer' property on 'AudioBufferSourceNode': Cannot set buffer after it has been already been set.
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 osc.setPeriodicWave(null) threw exception TypeError: Failed to execute 'setPeriodicWave' on 'OscillatorNode': parameter 1 is not of type 'PeriodicWave'..
PASS node.gain.exponentialRampToValueAtTime(-1, 0.1) did not throw exception.
PASS node.gain.exponentialRampToValueAtTime(0, 0.1) threw exception InvalidAccessError: Failed to execute 'exponentialRampToValueAtTime' on 'AudioParam': The float target value provided (0) should not be in the range (-1.40130e-45, 1.40130e-45)..
PASS node.gain.exponentialRampToValueAtTime(1e-100, 0.1) threw exception InvalidAccessError: Failed to execute 'exponentialRampToValueAtTime' on 'AudioParam': The float target value provided (0) should not be in the range (-1.40130e-45, 1.40130e-45)..
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) should not be in the range (-1.40130e-45, 1.40130e-45)..
PASS oc = new OfflineAudioContext(1, 44100, 44100) did not throw exception.
PASS conv = oc.createConvolver() did not throw exception.
PASS conv.buffer = {} threw exception TypeError: Failed to set the 'buffer' property on 'ConvolverNode': The provided value is not of type 'AudioBuffer'..
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': Panner: '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