| OLD | NEW |
| (Empty) |
| 1 <!DOCTYPE html> | |
| 2 <html> | |
| 3 <head> | |
| 4 <script src="../../resources/js-test.js"></script> | |
| 5 <style> | |
| 6 body.hide-containers .container { | |
| 7 display: none; | |
| 8 } | |
| 9 | |
| 10 .container { | |
| 11 width: 600px; | |
| 12 height: 200px; | |
| 13 -webkit-columns: 3; | |
| 14 columns: 3; | |
| 15 column-fill: auto; | |
| 16 line-height: 20px; /* 10 lines per page */ | |
| 17 font-size: 16px; | |
| 18 margin: 0 0 20px 0; | |
| 19 padding: 0; | |
| 20 overflow: hidden; | |
| 21 orphans: 2; | |
| 22 } | |
| 23 | |
| 24 .block { | |
| 25 margin: 0 0 15px 0; | |
| 26 padding: 0; | |
| 27 } | |
| 28 | |
| 29 .top { | |
| 30 color: red; | |
| 31 } | |
| 32 | |
| 33 .bottom { | |
| 34 color: green; | |
| 35 } | |
| 36 </style> | |
| 37 <script> | |
| 38 | |
| 39 description("Test if an element with orphans relayouts correctly. The red lines
of text must be at the top of the blue rectangle. The green lines of text must b
e at the bottom of the blue rectangle."); | |
| 40 | |
| 41 if (window.testRunner) | |
| 42 testRunner.dumpAsText(); | |
| 43 | |
| 44 function testIsFirstInColumn(containerId, blockNumber, lineNumber) | |
| 45 { | |
| 46 // Get the upper bounds of the container and line. | |
| 47 var topOfContainer = document.getElementById(containerId).getBoundingClientR
ect().top; | |
| 48 var topOfLine = document.getElementById(containerId + "-block-" + blockNumbe
r + "-line-" + lineNumber).getBoundingClientRect().top; | |
| 49 | |
| 50 if (Math.abs(topOfContainer - topOfLine) < 5) // Give 5 pixels to account fo
r subpixel layout. | |
| 51 testPassed(containerId + " Block " + blockNumber + " Line " + lineNumber
+ " is correct."); | |
| 52 else | |
| 53 testFailed(containerId + " Block " + blockNumber + " Line " + lineNumber
+ " wasn't at the top of the region."); | |
| 54 } | |
| 55 | |
| 56 function runTest() | |
| 57 { | |
| 58 var container = document.getElementById("test"); | |
| 59 | |
| 60 document.body.offsetTop; | |
| 61 | |
| 62 container.style.border = "3px solid blue"; // Modify a property that trigger
s a layout. | |
| 63 | |
| 64 testIsFirstInColumn("test", 1, 1); | |
| 65 testIsFirstInColumn("test", 2, 1); | |
| 66 | |
| 67 if (window.testRunner) { | |
| 68 // Hide all the containers and leave just the test results for text outp
ut. | |
| 69 document.body.className = "hide-containers"; | |
| 70 } | |
| 71 | |
| 72 isSuccessfullyParsed(); | |
| 73 } | |
| 74 | |
| 75 window.addEventListener("load", runTest, false); | |
| 76 </script> | |
| 77 </head> | |
| 78 <body> | |
| 79 <div class="container" id="test"> | |
| 80 <div class="block"> | |
| 81 <span id="test-block-1-line-1" class="top">Block 1 Line 1</span><br> | |
| 82 <span id="test-block-1-line-2">Block 1 Line 2</span><br> | |
| 83 <span id="test-block-1-line-3">Block 1 Line 3</span><br> | |
| 84 <span id="test-block-1-line-4">Block 1 Line 4</span><br> | |
| 85 <span id="test-block-1-line-5">Block 1 Line 5</span><br> | |
| 86 <span id="test-block-1-line-6">Block 1 Line 6</span><br> | |
| 87 <span id="test-block-1-line-7">Block 1 Line 7</span><br> | |
| 88 <span id="test-block-1-line-8" class="bottom">Block 1 Line 8</span><
br> | |
| 89 </div> | |
| 90 <div class="block"> | |
| 91 <span id="test-block-2-line-1" class="top">Block 2 Line 1</span><br> | |
| 92 <span id="test-block-2-line-2">Block 2 Line 2</span><br> | |
| 93 <span id="test-block-2-line-3">Block 2 Line 3</span><br> | |
| 94 <span id="test-block-2-line-4">Block 2 Line 4</span><br> | |
| 95 <span id="test-block-2-line-5">Block 2 Line 5</span><br> | |
| 96 <span id="test-block-2-line-6">Block 2 Line 6</span><br> | |
| 97 </div> | |
| 98 </div> | |
| 99 </body> | |
| 100 </html> | |
| OLD | NEW |