<!DOCTYPE html>
<html>
<head>
    <title>CSSOM View - 4.2 - screen.width range tests</title>
    <link rel="author" title="Neils Christoffersen" href="mailto:neils.christoffersen@gmail.com">
    <link rel="help" href="http://www.w3.org/TR/cssom-view/#the-screen-interface">
    <meta name="flags" content="dom">
    <meta name="assert" content="window.screen.width has sensible values">
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
</head>
<body>
    <div id="myDiv"></div>
    <div id="log"></div>
    <script>
        var upperBound = 50000;

        test(
            function() {
                assert_not_equals(window.screen.width, 0, "window.screen.width is zero")
            }, "zero check"
        );

        test(
            function() {
                assert_true(window.screen.width > 0, "window.screen.width shouldn't be negative")
            }, "positive check"
        );

        test(
            function() {
                assert_true(window.screen.width < upperBound, "window.screen.width shouldn't be so large")
            }, "upper bound check"
        );
    </script>
</body>
</html>
