<!doctype html>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<h1>Viewport: Scrollbars Cause Resize</h1>
<h4>Test Description: This test checks that the appearance of classic scrollbars will cause a resize event to be fired at window.visualViewport.</h4>
<script>
    document.documentElement.style.overflow = "hidden";
    var initialWidth = visualViewport.width;
    var initialHeight = visualViewport.height;

    test(function() {
          assert_equals(window.visualViewport.width, window.innerWidth);
          assert_equals(window.visualViewport.height, window.innerHeight);
        }, "view size initially matches window size");


    var t = async_test("Resize event was fired at window.visualViewport");
    var viewResized = false;
    window.visualViewport.addEventListener('resize', function() {
        viewResized = true;
    });

    requestAnimationFrame(t.step_func_done(function() {
        assert_equals(viewResized, true);
    }));

    document.documentElement.style.overflow = "";
    document.body.style.width = "10000px";
    document.body.style.height = "10000px";

    test(function() {
          assert_equals(window.visualViewport.width, initialWidth - 15);
          assert_equals(window.visualViewport.height, initialHeight - 15);
        }, "view size reflects appearance of classic scrollbars");


    document.body.style.width = "";
    document.body.style.height = "";
</script>
