When prompted, accept to share your video stream.

Description

This test checks that setting a trivial mandatory constraint (width >=0) in getUserMedia works


PASS Tests that setting a trivial mandatory constraint in getUserMedia works 

