OLD | NEW |
(Empty) | |
| 1 <!doctype html> |
| 2 <title>Test that alignment-baseline is unaffected by zoom level</title> |
| 3 <script src="../../resources/testharness.js"></script> |
| 4 <script src="../../resources/testharnessreport.js"></script> |
| 5 <svg width="250" height="140" viewBox="0 0 250 140" |
| 6 xmlns="http://www.w3.org/2000/svg" version="1.1"> |
| 7 <style> |
| 8 text { |
| 9 font-family: ahem; |
| 10 font-size: 20px; |
| 11 } |
| 12 </style> |
| 13 <text x="15" y="40">before<tspan>inter</tspan>after</text> |
| 14 <script> |
| 15 var alignmentBaselineValues = ["baseline", "before-edge", "text-before-edge"
, "middle", |
| 16 "central", "after-edge", "text-after-edge", |
| 17 "ideograpic", "alphabetic", "hanging", "mathe
matical"]; |
| 18 var expectedDeltas = { |
| 19 "baseline" : 0, |
| 20 "before-edge": -16, |
| 21 "text-before-edge": -16, |
| 22 "middle": -8, |
| 23 "central": -6, |
| 24 "after-edge": 4, |
| 25 "text-after-edge": 4, |
| 26 "ideograpic": 0, |
| 27 "alphabetic": 0, |
| 28 "hanging": -13, |
| 29 "mathematical": -8 |
| 30 }; |
| 31 |
| 32 var zoomLevels = [1, 4, 16]; |
| 33 var html = document.documentElement; |
| 34 alignmentBaselineValues.forEach(function (alignmentBaselineValue) { |
| 35 document.querySelector('tspan').setAttribute('alignment-baseline', align
mentBaselineValue); |
| 36 zoomLevels.forEach(function (zoom) { |
| 37 html.style.zoom = zoom; |
| 38 var baselineShiftDelta = (document.querySelector('text').getStartPos
itionOfChar(0).y - |
| 39 document.querySelector('tspan').getStartPositionOfChar(0).y); |
| 40 test(function () { |
| 41 assert_approx_equals(baselineShiftDelta, expectedDeltas[alignmen
tBaselineValue], 1); |
| 42 }, "Text bounds height at zoom " + zoom + " with alignment-baseline=
" + alignmentBaselineValue); |
| 43 }); |
| 44 }); |
| 45 html.style.zoom = 1; |
| 46 </script> |
| 47 </svg> |
| 48 <p>This test requires the Ahem font</p> |
OLD | NEW |