Testing the MacOSInlineMediaControls handling of placards.

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


By default, no placard is shown.
PASS mediaControls.placard is null
PASS mediaControls.children is [mediaControls.topLeftControlsBar, mediaControls.bottomControlsBar]

Showing the Airplay placard
PASS mediaControls.placard is mediaControls.airplayPlacard
PASS mediaControls.children is [mediaControls.airplayPlacard, mediaControls.topLeftControlsBar, mediaControls.bottomControlsBar]

Showing the Invalid placard, hides the controls bar
PASS mediaControls.placard is mediaControls.invalidPlacard
PASS mediaControls.children is [mediaControls.invalidPlacard]

Showing the PiP placard, hides the controls bar
PASS mediaControls.placard is mediaControls.pipPlacard
PASS mediaControls.children is [mediaControls.pipPlacard]

Hide placard
PASS mediaControls.placard is null
PASS mediaControls.children is [mediaControls.topLeftControlsBar, mediaControls.bottomControlsBar]

PASS successfullyParsed is true

TEST COMPLETE

