Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

<!DOCTYPE html>
<html>
<head>
<title>JS test: Inline renderer must return the correct computed transform</title>
<link rel="author" title="Joone Hur" href="https://joone.github.io">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<meta name="assert" content="Asserting that you can apply transform to an inline element and it show up in CSS computed values as a matrix">
<style>
.container {
height: 100px;
width: 200px;
margin: 30px;
outline: 1px solid black;
}
.box {
height: 100%;
width: 100%;
padding: 5px;
margin: 5px;
border: 5px solid gray;
transform-origin: 20% 50%;
}
#test-div {
background-color: blue;
}
#test-span {
background-color: red;
}
</style>
</head>
<body>
<h1>Transform values should be indentical between
the blue box(block element) and red box(inline element) </h1>
<div class="container">
<div id="test-div" class="box"></div>
</div>
<span id="test-span" class="box"></span>
<script>
const testCases = [
{ 'transform' : 'translate(80px, 90px)', 'result' : 'matrix(1, 0, 0, 1, 80, 90)' },
{ 'transform' : 'scale(1.2, 0.8)', 'result' : 'matrix(1.2, 0, 0, 0.8, 0, 0)' },
{ 'transform' : 'skew(-0.7rad, 20deg)', 'result' : 'matrix(1, 0.36397, -0.842288, 1, 0, 0)' },
{ 'transform' : 'rotate(45deg)', 'result' : 'matrix(0.707107, 0.707107, -0.707107, 0.707107, 0, 0)' },
];
test(function() {
var testBox = document.getElementById('test-div');
var testSpan = document.getElementById('test-span');
testCases.forEach(function(curTest) {
// set one of our test transforms
testBox.style.transform = curTest.transform;
testSpan.style.transform = curTest.transform;
// read back computed style
var computedTransform = window.getComputedStyle(testBox).transform;
var computedSpanTransform = window.getComputedStyle(testSpan).transform;
assert_equals(computedTransform, curTest.result);
assert_equals(computedSpanTransform, curTest.result);
});
});
</script>
</body>
</html>