Testing the IOSInlineMediaControls layout with the statusLabel property set.

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


Default state
PASS mediaControls.statusLabel.enabled is false
PASS mediaControls.statusLabel.parent is null
PASS mediaControls.timeControl.parent is mediaControls.bottomControlsBar

After setting statusLabel.text to a non-null string
PASS mediaControls.statusLabel.enabled is true
PASS mediaControls.statusLabel.parent is mediaControls.bottomControlsBar
PASS mediaControls.timeControl.parent is null

PASS successfullyParsed is true

TEST COMPLETE

