| <!DOCTYPE html> |
| <script src="../../../resources/testharness.js"></script> |
| <script src="../../../resources/testharnessreport.js"></script> |
| <script src="../resources/subpixel-utils.js"></script> |
| <style> |
| #container { |
| font: 10px/1 Ahem, sans-serif; |
| width: 200px; |
| height: 200px; |
| border: 1px solid black; |
| -webkit-writing-mode: vertical-lr; |
| text-align: right; |
| } |
| |
| #rounded-rect { |
| float: right; |
| -webkit-writing-mode: horizontal-tb; |
| width: 100px; |
| height: 100px; |
| background-color: blue; |
| border-radius: 20px 30px 40px 50px / 50px 40px 30px 20px; |
| -webkit-shape-outside: inset(0px round 20px 30px 40px 50px / 50px 40px 30px 20px); |
| } |
| </style> |
| |
| <body> |
| <p>The block squares should wrap around the top of the blue shape. They should not overlap the shape.</p> |
| <div id="container"> |
| <span id="s1">X</span><br/> |
| <div id="rounded-rect"></div> |
| <span id="s2">X</span><br/> |
| <span id="s3">X</span><br/> |
| <span id="s4">X</span><br/> |
| <span id="s5">X</span><br/> |
| <span id="s6">X</span><br/> |
| <span id="s7">X</span><br/> |
| <span id="s8">X</span><br/> |
| <span id="s9">X</span><br/> |
| <span id="s10">X</span><br/> |
| <span id="s11">X</span><br/> |
| <span id="s12">X</span> |
| </div> |
| |
| </body> |
| <script> |
| function elementRect(elementId) |
| { |
| var s = document.getElementById("container").getBoundingClientRect(); |
| var r = document.getElementById(elementId).getBoundingClientRect(); |
| return {left: Math.round(r.left) - Math.round(s.left), top: Math.round(r.top) - Math.round(s.top), width: Math.round(r.width), height: Math.round(r.height)}; |
| } |
| |
| test(function () { |
| var rect = elementRect("s1"); |
| assert_equals(rect.left, 1); |
| assert_equals(rect.top, 191); |
| }, "1st square doesn't overlap shape."); |
| |
| test(function () { |
| var rect = elementRect("s2"); |
| assert_equals(rect.left, 11); |
| assert_approx_equals(rect.top, 98, 0.1); |
| }, "2nd square is properly affected by shape."); |
| |
| test(function () { |
| var rect = elementRect("s3"); |
| assert_equals(rect.left, 21); |
| assert_approx_equals(rect.top, 91, 0.1); |
| }, "3rd square is properly affected by shape."); |
| |
| test(function () { |
| var rect = elementRect("s4"); |
| assert_equals(rect.left, 31); |
| assert_approx_equals(rect.top, 91, 0.1); |
| }, "4th square is properly affected by shape."); |
| |
| test(function () { |
| var rect = elementRect("s5"); |
| assert_equals(rect.left, 41); |
| assert_approx_equals(rect.top, 91, 0.1); |
| }, "5th square is properly affected by shape."); |
| |
| test(function () { |
| var rect = elementRect("s6"); |
| assert_equals(rect.left, 51); |
| assert_approx_equals(rect.top, 91, 0.1); |
| }, "6th square is properly affected by shape."); |
| |
| test(function () { |
| var rect = elementRect("s7"); |
| assert_equals(rect.left, 61); |
| assert_approx_equals(rect.top, 91, 0.1); |
| }, "7th square is properly affected by shape."); |
| |
| test(function () { |
| var rect = elementRect("s8"); |
| assert_equals(rect.left, 71); |
| assert_approx_equals(rect.top, 91, 0.1); |
| }, "8th square is properly affected by shape."); |
| |
| test(function () { |
| var rect = elementRect("s9"); |
| assert_equals(rect.left, 81); |
| assert_approx_equals(rect.top, 93, 0.1); |
| }, "9th square is properly affected by shape."); |
| |
| test(function () { |
| var rect = elementRect("s10"); |
| assert_equals(rect.left, 91); |
| assert_approx_equals(rect.top, 95, 0.1); |
| }, "10th square is properly affected by shape."); |
| |
| test(function () { |
| var rect = elementRect("s11"); |
| assert_equals(rect.left, 101); |
| assert_approx_equals(rect.top, 99, 0.1); |
| }, "11th square is properly affected by shape."); |
| |
| test(function () { |
| var rect = elementRect("s12"); |
| assert_equals(rect.left, 111); |
| assert_equals(rect.top, 191); |
| }, "12th square doesn't overlap shape."); |
| </script> |