diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /layout/base/tests/test_frame_reconstruction_for_column_span.html | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'layout/base/tests/test_frame_reconstruction_for_column_span.html')
-rw-r--r-- | layout/base/tests/test_frame_reconstruction_for_column_span.html | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/layout/base/tests/test_frame_reconstruction_for_column_span.html b/layout/base/tests/test_frame_reconstruction_for_column_span.html new file mode 100644 index 0000000000..c368901241 --- /dev/null +++ b/layout/base/tests/test_frame_reconstruction_for_column_span.html @@ -0,0 +1,77 @@ +<!DOCTYPE html> +<html> + <meta charset="utf-8"> + <title> + Test for Bug 1503420: Test we don't reframe multi-column containing block + when appending a block containing a spanner kid. + </title> + <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com"> + <link rel="author" title="Mozilla" href="http://www.mozilla.org/"> + <script src="/tests/SimpleTest/SimpleTest.js"></script> + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> + + <script> + SimpleTest.waitForExplicitFinish(); + + const utils = SpecialPowers.getDOMWindowUtils(window); + + function appendBlock() { + // Create a subtree like the following, and append it to columns. + // <div> + // <h3>spanner</h3> + // block2 + // </div> + var spanner = document.createElement("h3"); + var spannerText = document.createTextNode("spanner"); + spanner.appendChild(spannerText); + + var block2 = document.createElement("div"); + var block2Text = document.createTextNode("block2"); + block2.appendChild(spanner); + block2.appendChild(block2Text) + + var column = document.getElementById("column"); + column.appendChild(block2); + } + + function runTest() { + document.documentElement.offsetTop; + // We expected to construct 6 more frames. + // 1) Block frame for <div> + // 2) Block frame for <h3> + // 3) Text frame for "spanner" + // 4) Text frame for "block2" + // 5) Column-span wrapper for <h3>, which is a sibling of <div> + // 6) Column-span wrapper for 5), which is a sibling of <article> + // Note: creating a continuation frame doesn't increase the count. + const expectedFrameConstructCount = utils.framesConstructed + 6; + + appendBlock(); + document.documentElement.offsetTop; + + is(utils.framesConstructed, expectedFrameConstructCount, + "We shouldn't construct unexpected frames."); + + SimpleTest.finish(); + } + </script> + + <style> + #column { + column-count: 3; + column-rule: 6px solid; + width: 400px; + outline: 1px solid black; + } + h3 { + column-span: all; + outline: 1px solid blue; + } + </style> + + <body onload="runTest();"> + <article id="column"> + <div>block1</div> + </article> + </body> +</html> |