<!doctype html><!-- webkit-test-runner [ UseGPUProcessForDisplayCapture=true ] -->
<html>
    <head>
        <meta charset="utf-8">
        <title>video track width and height should be set correctly when only one constraint is passed to getDisplayMedia</title>
        <script src="../../resources/testharness.js"></script>
        <script src="../../resources/testharnessreport.js"></script>
        <script src="resources/getDisplayMedia-utils.js"></script>
    </head>
    <body>

        <script>
            let defaultWidth;
            let defaultHeight;
            promise_test(async () => {
                stream = await callGetDisplayMedia({ video: true });
                let settings = stream.getVideoTracks()[0].getSettings();
                defaultWidth = settings.width;
                defaultHeight = settings.height;
            }, "setup");
            
            promise_test((test) => {
                return callGetDisplayMedia({ video: { width: {ideal: 640} } })
                    .then((stream) => {
                        let settings = stream.getVideoTracks()[0].getSettings()
                        assert_equals(settings.height, Math.floor(640 * (defaultHeight / defaultWidth)));
                    })
            }, "height calculated correctly only width is specified");

            promise_test((test) => {

                return callGetDisplayMedia({ video: { height: {ideal: 240} } })
                    .then((stream) => {
                        let settings = stream.getVideoTracks()[0].getSettings()
                        assert_equals(settings.width, Math.floor(240 * (defaultWidth / defaultHeight)));
                    })
            }, "width calculated correctly only height is specified");

        </script>
    </body>
</html>
