RUN(internals.enableMockMediaCapabilities())
RUN(internals.settings.setMediaCapabilitiesExtensionsEnabled(true))
RUN(promise = navigator.mediaCapabilities.decodingInfo({ type: 'file', video: { contentType: 'video/mp4; codecs="mock-with-alpha"', height: 720, bitrate: 1000, width: 1280, framerate: 24.5 }});)
Promise resolved OK
EXPECTED (info.supported == 'true') OK
EXPECTED (info.supportedConfiguration.video.alphaChannel == 'null') OK
RUN(promise = navigator.mediaCapabilities.decodingInfo({ type: 'file', video: { contentType: 'video/mp4; codecs="mock-with-alpha"', height: 720, bitrate: 1000, width: 1280, framerate: 24.5, alphaChannel: false }});)
Promise resolved OK
EXPECTED (info.supported == 'true') OK
EXPECTED (info.supportedConfiguration.video.alphaChannel == 'false') OK
RUN(promise = navigator.mediaCapabilities.decodingInfo({ type: 'file', video: { contentType: 'video/mp4; codecs="mock-with-alpha"', height: 720, bitrate: 1000, width: 1280, framerate: 24.5, alphaChannel: true }});)
Promise resolved OK
EXPECTED (info.supported == 'true') OK
EXPECTED (info.supportedConfiguration.video.alphaChannel == 'true') OK
RUN(promise = navigator.mediaCapabilities.decodingInfo({ type: 'file', video: { contentType: 'video/mp4; codecs="mock-without-alpha"', height: 720, bitrate: 1000, width: 1280, framerate: 24.5, alphaChannel: false }});)
Promise resolved OK
EXPECTED (info.supported == 'true') OK
EXPECTED (info.supportedConfiguration.video.alphaChannel == 'false') OK
RUN(promise = navigator.mediaCapabilities.decodingInfo({ type: 'file', video: { contentType: 'video/mp4; codecs="mock-without-alpha"', height: 720, bitrate: 1000, width: 1280, framerate: 24.5, alphaChannel: true }});)
Promise resolved OK
EXPECTED (info.supported == 'false') OK
EXPECTED (info.supportedConfiguration.video.alphaChannel == 'true') OK
END OF TEST

