<!doctype html>
<meta charset="utf-8">
<title>cssom-view scrolling-no-browsing-context</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
setup({explicit_done:true});
window.onload = function () {
    test(function () {
        var doc = document.implementation.createDocument("http://example.com/", "html", null);

        var element = doc.createElement("tag")
        assert_equals(element.scrollTop, 0, "scrollTop should be always 0");
        assert_equals(element.scrollLeft, 0, "scrollLeft should be always 0");

        element.scrollTop = 10;
        element.scrollLeft = 10;
        assert_equals(element.scrollTop, 0, "scrollTop should be always 0");
        assert_equals(element.scrollLeft, 0, "scrollLeft should be always 0");

        element.scroll(10, 10);
        assert_equals(element.scrollTop, 0, "scrollTop should be always 0");
        assert_equals(element.scrollLeft, 0, "scrollLeft should be always 0");

        element.scrollTo(10, 10);
        assert_equals(element.scrollTop, 0, "scrollTop should be always 0");
        assert_equals(element.scrollLeft, 0, "scrollLeft should be always 0");

    }, "Element get and set scrollTop, scrollLeft, scroll() and scrollTo() test");

    done();
};
</script>
