<!doctype html>
<title>Test that baseline-shift is unaffected by zoom level</title>
<script src="../../resources/ahem.js"></script>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<svg width="250" height="140" viewBox="0 0 250 140"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<style>
text {
font-family: ahem;
font-size: 20px;
}
</style>
<text x="15" y="40">before<tspan>inter</tspan>after</text>
<script>
var baselineShiftValues = ["10px", "-50%"]; // Shift half a step up or down
var zoomLevels = [1, 4, 16];
var html = document.documentElement;
baselineShiftValues.forEach(function (baselineShiftValue) {
document.querySelector('tspan').setAttribute('baseline-shift', baselineShiftValue);
zoomLevels.forEach(function (zoom) {
html.style.zoom = zoom;
var baselineShiftDelta = (document.querySelector('text').getStartPositionOfChar(0).y -
document.querySelector('tspan').getStartPositionOfChar(0).y);
test(function () {
assert_equals(Math.abs(baselineShiftDelta), 10, "Baseline half a font-size up or down");
}, "Text bounds height at zoom " + zoom + " with baseline-shift=" + baselineShiftValue);
});
});
html.style.zoom = 1;
// Clean up to avoid being classified as a text test; avoids an -expected.txt file.
document.querySelector('text').remove();
</script>
</svg>