Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / WebKit / LayoutTests / svg / custom / zoomed-alignment-baseline.html
blob7d1d7722e92113c7e0a3d835be8fc9e9c213ec8f
1 <!doctype html>
2 <title>Test that alignment-baseline is unaffected by zoom level</title>
3 <script src="../../resources/ahem.js"></script>
4 <script src="../../resources/testharness.js"></script>
5 <script src="../../resources/testharnessreport.js"></script>
6 <svg width="250" height="140" viewBox="0 0 250 140"
7 xmlns="http://www.w3.org/2000/svg" version="1.1">
8 <style>
9 text {
10 font-family: ahem;
11 font-size: 20px;
13 </style>
14 <text x="15" y="40">before<tspan>inter</tspan>after</text>
15 <script>
16 var alignmentBaselineValues = ["baseline", "central", "after-edge", "text-after-edge",
17 "ideograpic", "alphabetic", "mathematical"];
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
32 var zoomLevels = [1, 4, 16];
33 var html = document.documentElement;
34 alignmentBaselineValues.forEach(function (alignmentBaselineValue) {
35 document.querySelector('tspan').setAttribute('alignment-baseline', alignmentBaselineValue);
36 zoomLevels.forEach(function (zoom) {
37 html.style.zoom = zoom;
38 var baselineShiftDelta = (document.querySelector('text').getStartPositionOfChar(0).y -
39 document.querySelector('tspan').getStartPositionOfChar(0).y);
40 test(function () {
41 assert_approx_equals(baselineShiftDelta, expectedDeltas[alignmentBaselineValue], 1);
42 }, "Text bounds height at zoom " + zoom + " with alignment-baseline=" + alignmentBaselineValue);
43 });
44 });
45 html.style.zoom = 1;
46 // Clean up to avoid being classified as a text test; avoids an -expected.txt file.
47 document.querySelector('text').remove();
48 </script>
49 </svg>