<!DOCTYPE html>
<html>
    <head>
        <script src="../../../resources/js-test-pre.js"></script>
    </head>
    <body>
        <script>
            description("This tests checks that all of the input values for object-position parse correctly.");

            function test(value)
            {
                var div = document.createElement("div");
                div.setAttribute("style", value);
                document.body.appendChild(div);

                var result = div.style.getPropertyValue("object-position");
                document.body.removeChild(div);
                return result;
            }

            function testComputedStyle(value)
            {
                var div = document.createElement("div");
                div.setAttribute("style", value);
                document.body.appendChild(div);

                var result = window.getComputedStyle(div).objectPosition;
                document.body.removeChild(div);
                return result;
            }

            shouldBe('testComputedStyle(";")', '"50% 50%"');
            shouldBe('test("object-position: inherit;")', '"inherit"');
            shouldBe('test("object-position: initial;")', '"initial"');
            
            shouldBeEqualToString('test("object-position: 23px;")', '23px center');
            shouldBeEqualToString('test("object-position: center 23px;")', 'center 23px');
            shouldBeEqualToString('test("object-position: 50% 23px;")', '50% 23px');
            shouldBeEqualToString('test("object-position: 50% left;")', '');
            
            shouldBeEqualToString('test("object-position: left 10px top 15px;")', 'left 10px top 15px');
            shouldBeEqualToString('test("object-position: right 10px bottom 15px;")', 'right 10px bottom 15px');

            shouldBeEqualToString('testComputedStyle("object-position: bottom 20%;")', '50% 50%');
            shouldBeEqualToString('testComputedStyle("object-position: right 20%;")', '100% 20%');
            shouldBeEqualToString('testComputedStyle("object-position: right")', '100% 50%');
            shouldBeEqualToString('testComputedStyle("object-position: right bottom")', '100% 100%');

            shouldBeEqualToString('testComputedStyle("object-position: left 10px top 15px;")', '10px 15px');
            shouldBeEqualToString('testComputedStyle("object-position: right 10px bottom 15px;")', 'calc(100% - 10px) calc(100% - 15px)');
            shouldBeEqualToString('testComputedStyle("object-position: bottom 20% right -20px;")', 'calc(100% + 20px) 80%');
            shouldBeEqualToString('testComputedStyle("object-position: calc(100% - 20px) calc(100% - 10%)")', 'calc(100% - 20px) 90%');
            shouldBeEqualToString('testComputedStyle("object-position: right calc(100% - 20px) bottom calc(100% - 10%)")', 'calc(100% - (100% - 20px)) 10%');
            
        </script>
        <script src="../../../resources/js-test-post.js"></script>
    </body>
</html>
