Basic tests for AudioNode API.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".

PASS context.state is "suspended"
node.connect(context.destination)
EVENT statechange
PASS context.state is "running"

Test 1: resume() while interrupted is resolved after the interruption ends.
internals.beginMediaSessionInterruption("System")
EVENT statechange
PASS context.state is "interrupted"
internals.setMediaSessionRestrictions("WebAudio", "InterruptedPlaybackNotPermitted")
Calling context.resume()
Delaying 100ms
PASS context.state is "interrupted"
internals.endMediaSessionInterruption("MayResumePlaying")
PASS context.resume() promise resolved
PASS context.state is "running"

Test 2: resume() while interrupted will cause interruption to end.
internals.beginMediaSessionInterruption("System")
EVENT statechange
PASS context.state is "interrupted"
internals.setMediaSessionRestrictions("WebAudio", "")
Calling context.resume()
PASS context.resume() promise resolved
PASS context.state is "running"

Test 3: running AudioContexts will not resume after an interruption ends.
internals.beginMediaSessionInterruption("System")
EVENT statechange
PASS context.state is "interrupted"
internals.endMediaSessionInterruption("")
EVENT statechange
PASS context.state is "suspended"

Test 4: resume() while interrupted will not resume playback after an interruption.
internals.setMediaSessionRestrictions("WebAudio", "InterruptedPlaybackNotPermitted")
internals.beginMediaSessionInterruption("System")
EVENT statechange
PASS context.state is "interrupted"
Calling context.resume()
internals.endMediaSessionInterruption("")
EVENT statechange
PASS context.state is "suspended"
PASS successfullyParsed is true

TEST COMPLETE

