summaryrefslogtreecommitdiffstats
path: root/third_party/WebKit/LayoutTests/fast/dom/partial-layout-block.html
blob: 34642ca1d6b38da21f4a199f2d900d43bfd16489 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<!DOCTYPE HTML>
<html>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<link rel="stylesheet" href="../../resources/testharness.css">
<head>
<style>
html, body {
    margin: 0;
    padding: 0;
}

#measure {
    margin: 10px;
    padding: 10px;
}

#fixedsize {
    width: 100px;
    height: 100px;
}
</style>
</head>
<body>
<div id="measure"><div id="fixedsize"></div></div>
<script>
    if (window.testRunner)
        testRunner.dumpAsText();

    if (window.internals)
        window.internals.settings.setOverlayScrollbarsEnabled(true);

    test(function() {
        var measure = document.getElementById('measure');

        // Record partial layout values for offset*.
        var measureWidth = measure.offsetWidth;
        var measureHeight = measure.offsetHeight;
        var measureTop = measure.offsetTop;
        var measureLeft = measure.offsetLeft;

        // Invalidate measure and force a full layout.
        var child = measure.firstChild;
        measure.removeChild(child);
        document.body.clientHeight;
        measure.appendChild(child);
        var forceLayout = document.body.clientHeight;

        var childOffsetTop = child.offsetTop;

        assert_equals(measureWidth, document.body.offsetWidth - 20);
        assert_equals(measureHeight, measure.offsetHeight);
        assert_equals(measureTop, childOffsetTop - 10);
        assert_equals(measureLeft, measure.offsetLeft);
    }, 'Test that partial layout works for offset{width, height, left, top} methods.');
</script>
</body>
</html>