mirror of
https://github.com/servo/servo.git
synced 2025-06-24 17:14:33 +01:00
Update CSS tests to revision 7d0ff6117ee51720c307ea24d413d13eb5abf3e6
This commit is contained in:
parent
40c52d55e2
commit
349c75536d
7391 changed files with 304135 additions and 153491 deletions
|
@ -12,7 +12,7 @@
|
|||
.flexbox {
|
||||
border: 1px dashed blue;
|
||||
padding: 3px;
|
||||
width: 560px;
|
||||
width: 600px;
|
||||
height: 4px;
|
||||
font-size: 10px;
|
||||
line-height: 10px;
|
||||
|
@ -58,6 +58,9 @@
|
|||
.inherit {
|
||||
background: violet;
|
||||
}
|
||||
.normal {
|
||||
background: tan;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
@ -82,7 +85,8 @@
|
|||
<div class="auto" style="height: 100%">auto</div>
|
||||
<div class="unspecified" style="height: 100%">unspec</div>
|
||||
<div class="initial" style="height: 100%">initial</div>
|
||||
<div class="inherit">inherit</div>
|
||||
<div class="inherit" style="height: 100%">inherit</div>
|
||||
<div class="normal" style="height: 100%">normal</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -21,7 +21,6 @@ The square-* images all use 15x15 cells with one pixel borders.
|
|||
|
||||
The pattern-* images use cells of various sizes:
|
||||
|
||||
pattern-gg-gr.png 20x20
|
||||
pattern-grg-rgr-grg.png 20x20
|
||||
pattern-rgr-grg-rgr.png 20x20
|
||||
pattern-tr.png 15x15
|
||||
|
|
Binary file not shown.
|
@ -17,7 +17,7 @@ Pre-built font binaries
|
|||
----
|
||||
The installable font resources (font binaries) are not part of the source files.
|
||||
They are available at https://github.com/adobe-fonts/css-orientation-test/
|
||||
The latest version of the font binaries is 1.005 (October 2015).
|
||||
The latest version of the font binaries is 1.005 (April 4th 2015).
|
||||
|
||||
|
||||
Requirements
|
||||
|
|
|
@ -0,0 +1,190 @@
|
|||
(function() {
|
||||
// Test is initiated from body.onload, so explicit done() call is required.
|
||||
setup({ explicit_done: true });
|
||||
|
||||
function checkSubtreeExpectedValues(t, parent, prefix)
|
||||
{
|
||||
var checkedLayout = checkExpectedValues(t, parent, prefix);
|
||||
Array.prototype.forEach.call(parent.childNodes, function(node) {
|
||||
checkedLayout |= checkSubtreeExpectedValues(t, node, prefix);
|
||||
});
|
||||
return checkedLayout;
|
||||
}
|
||||
|
||||
function checkAttribute(output, node, attribute)
|
||||
{
|
||||
var result = node.getAttribute && node.getAttribute(attribute);
|
||||
output.checked |= !!result;
|
||||
return result;
|
||||
}
|
||||
|
||||
function assert_tolerance(actual, expected, message)
|
||||
{
|
||||
if (isNaN(expected) || Math.abs(actual - expected) >= 1) {
|
||||
assert_equals(actual, Number(expected), message);
|
||||
}
|
||||
}
|
||||
|
||||
function checkExpectedValues(t, node, prefix)
|
||||
{
|
||||
var output = { checked: false };
|
||||
|
||||
var expectedWidth = checkAttribute(output, node, "data-expected-width");
|
||||
if (expectedWidth) {
|
||||
assert_tolerance(node.offsetWidth, expectedWidth, prefix + "width");
|
||||
}
|
||||
|
||||
var expectedHeight = checkAttribute(output, node, "data-expected-height");
|
||||
if (expectedHeight) {
|
||||
assert_tolerance(node.offsetHeight, expectedHeight, prefix + "height");
|
||||
}
|
||||
|
||||
var expectedOffset = checkAttribute(output, node, "data-offset-x");
|
||||
if (expectedOffset) {
|
||||
assert_tolerance(node.offsetLeft, expectedOffset, prefix + "offsetLeft");
|
||||
}
|
||||
|
||||
var expectedOffset = checkAttribute(output, node, "data-offset-y");
|
||||
if (expectedOffset) {
|
||||
assert_tolerance(node.offsetTop, expectedOffset, prefix + "offsetTop");
|
||||
}
|
||||
|
||||
var expectedWidth = checkAttribute(output, node, "data-expected-client-width");
|
||||
if (expectedWidth) {
|
||||
assert_tolerance(node.clientWidth, expectedWidth, prefix + "clientWidth");
|
||||
}
|
||||
|
||||
var expectedHeight = checkAttribute(output, node, "data-expected-client-height");
|
||||
if (expectedHeight) {
|
||||
assert_tolerance(node.clientHeight, expectedHeight, prefix + "clientHeight");
|
||||
}
|
||||
|
||||
var expectedWidth = checkAttribute(output, node, "data-expected-scroll-width");
|
||||
if (expectedWidth) {
|
||||
assert_tolerance(node.scrollWidth, expectedWidth, prefix + "scrollWidth");
|
||||
}
|
||||
|
||||
var expectedHeight = checkAttribute(output, node, "data-expected-scroll-height");
|
||||
if (expectedHeight) {
|
||||
assert_tolerance(node.scrollHeight, expectedHeight, prefix + "scrollHeight");
|
||||
}
|
||||
|
||||
var expectedOffset = checkAttribute(output, node, "data-total-x");
|
||||
if (expectedOffset) {
|
||||
var totalLeft = node.clientLeft + node.offsetLeft;
|
||||
assert_tolerance(totalLeft, expectedOffset, prefix +
|
||||
"clientLeft+offsetLeft (" + node.clientLeft + " + " + node.offsetLeft + ")");
|
||||
}
|
||||
|
||||
var expectedOffset = checkAttribute(output, node, "data-total-y");
|
||||
if (expectedOffset) {
|
||||
var totalTop = node.clientTop + node.offsetTop;
|
||||
assert_tolerance(totalTop, expectedOffset, prefix +
|
||||
"clientTop+offsetTop (" + node.clientTop + " + " + node.offsetTop + ")");
|
||||
}
|
||||
|
||||
var expectedDisplay = checkAttribute(output, node, "data-expected-display");
|
||||
if (expectedDisplay) {
|
||||
var actualDisplay = getComputedStyle(node).display;
|
||||
assert_equals(actualDisplay, expectedDisplay, prefix + "display");
|
||||
}
|
||||
|
||||
var expectedPaddingTop = checkAttribute(output, node, "data-expected-padding-top");
|
||||
if (expectedPaddingTop) {
|
||||
var actualPaddingTop = getComputedStyle(node).paddingTop;
|
||||
// Trim the unit "px" from the output.
|
||||
actualPaddingTop = actualPaddingTop.slice(0, -2);
|
||||
assert_equals(actualPaddingTop, expectedPaddingTop, prefix + "padding-top");
|
||||
}
|
||||
|
||||
var expectedPaddingBottom = checkAttribute(output, node, "data-expected-padding-bottom");
|
||||
if (expectedPaddingBottom) {
|
||||
var actualPaddingBottom = getComputedStyle(node).paddingBottom;
|
||||
// Trim the unit "px" from the output.
|
||||
actualPaddingBottom = actualPaddingBottom.slice(0, -2);
|
||||
assert_equals(actualPaddingBottom, expectedPaddingBottom, prefix + "padding-bottom");
|
||||
}
|
||||
|
||||
var expectedPaddingLeft = checkAttribute(output, node, "data-expected-padding-left");
|
||||
if (expectedPaddingLeft) {
|
||||
var actualPaddingLeft = getComputedStyle(node).paddingLeft;
|
||||
// Trim the unit "px" from the output.
|
||||
actualPaddingLeft = actualPaddingLeft.slice(0, -2);
|
||||
assert_equals(actualPaddingLeft, expectedPaddingLeft, prefix + "padding-left");
|
||||
}
|
||||
|
||||
var expectedPaddingRight = checkAttribute(output, node, "data-expected-padding-right");
|
||||
if (expectedPaddingRight) {
|
||||
var actualPaddingRight = getComputedStyle(node).paddingRight;
|
||||
// Trim the unit "px" from the output.
|
||||
actualPaddingRight = actualPaddingRight.slice(0, -2);
|
||||
assert_equals(actualPaddingRight, expectedPaddingRight, prefix + "padding-right");
|
||||
}
|
||||
|
||||
var expectedMarginTop = checkAttribute(output, node, "data-expected-margin-top");
|
||||
if (expectedMarginTop) {
|
||||
var actualMarginTop = getComputedStyle(node).marginTop;
|
||||
// Trim the unit "px" from the output.
|
||||
actualMarginTop = actualMarginTop.slice(0, -2);
|
||||
assert_equals(actualMarginTop, expectedMarginTop, prefix + "margin-top");
|
||||
}
|
||||
|
||||
var expectedMarginBottom = checkAttribute(output, node, "data-expected-margin-bottom");
|
||||
if (expectedMarginBottom) {
|
||||
var actualMarginBottom = getComputedStyle(node).marginBottom;
|
||||
// Trim the unit "px" from the output.
|
||||
actualMarginBottom = actualMarginBottom.slice(0, -2);
|
||||
assert_equals(actualMarginBottom, expectedMarginBottom, prefix + "margin-bottom");
|
||||
}
|
||||
|
||||
var expectedMarginLeft = checkAttribute(output, node, "data-expected-margin-left");
|
||||
if (expectedMarginLeft) {
|
||||
var actualMarginLeft = getComputedStyle(node).marginLeft;
|
||||
// Trim the unit "px" from the output.
|
||||
actualMarginLeft = actualMarginLeft.slice(0, -2);
|
||||
assert_equals(actualMarginLeft, expectedMarginLeft, prefix + "margin-left");
|
||||
}
|
||||
|
||||
var expectedMarginRight = checkAttribute(output, node, "data-expected-margin-right");
|
||||
if (expectedMarginRight) {
|
||||
var actualMarginRight = getComputedStyle(node).marginRight;
|
||||
// Trim the unit "px" from the output.
|
||||
actualMarginRight = actualMarginRight.slice(0, -2);
|
||||
assert_equals(actualMarginRight, expectedMarginRight, prefix + "margin-right");
|
||||
}
|
||||
|
||||
return output.checked;
|
||||
}
|
||||
|
||||
window.checkLayout = function(selectorList, outputContainer)
|
||||
{
|
||||
if (!selectorList) {
|
||||
console.error("You must provide a CSS selector of nodes to check.");
|
||||
return;
|
||||
}
|
||||
var nodes = document.querySelectorAll(selectorList);
|
||||
var testNumber = 0;
|
||||
nodes = Array.prototype.slice.call(nodes);
|
||||
nodes.reverse();
|
||||
var checkedLayout = false;
|
||||
Array.prototype.forEach.call(nodes, function(node) {
|
||||
test(function(t) {
|
||||
var container = node.parentNode.className == 'container' ? node.parentNode : node;
|
||||
var prefix = "\n" + container.outerHTML + "\n";
|
||||
var passed = false;
|
||||
try {
|
||||
checkedLayout |= checkExpectedValues(t, node.parentNode, prefix);
|
||||
checkedLayout |= checkSubtreeExpectedValues(t, node, prefix);
|
||||
passed = true;
|
||||
} finally {
|
||||
checkedLayout |= !passed;
|
||||
}
|
||||
}, selectorList + ' ' + String(++testNumber));
|
||||
});
|
||||
if (!checkedLayout) {
|
||||
console.error("No valid data-* attributes found in selector list : " + selectorList);
|
||||
}
|
||||
done();
|
||||
};
|
||||
|
||||
})();
|
|
@ -0,0 +1,143 @@
|
|||
.flexbox {
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
}
|
||||
.inline-flexbox {
|
||||
display: -webkit-inline-flex;
|
||||
display: inline-flex;
|
||||
}
|
||||
|
||||
.flex-none {
|
||||
-webkit-flex: none;
|
||||
flex: none;
|
||||
}
|
||||
.flex-auto {
|
||||
-webkit-flex: auto;
|
||||
flex: auto;
|
||||
}
|
||||
.flex-one {
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
}
|
||||
.flex-one-one-auto {
|
||||
-webkit-flex: 1 1 auto;
|
||||
flex: 1 1 auto;
|
||||
}
|
||||
|
||||
.row {
|
||||
-webkit-flex-direction: row;
|
||||
flex-direction: row;
|
||||
}
|
||||
.row-reverse {
|
||||
-webkit-flex-direction: row-reverse;
|
||||
flex-direction: row-reverse;
|
||||
}
|
||||
.column {
|
||||
-webkit-flex-direction: column;
|
||||
flex-direction: column;
|
||||
}
|
||||
.column-reverse {
|
||||
-webkit-flex-direction: column-reverse;
|
||||
flex-direction: column-reverse;
|
||||
}
|
||||
|
||||
.wrap {
|
||||
-webkit-flex-wrap: wrap;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.wrap-reverse {
|
||||
-webkit-flex-wrap: wrap-reverse;
|
||||
flex-wrap: wrap-reverse;
|
||||
}
|
||||
|
||||
.align-content-flex-start {
|
||||
-webkit-align-content: flex-start;
|
||||
align-content: flex-start;
|
||||
}
|
||||
.align-content-flex-end {
|
||||
-webkit-align-content: flex-end;
|
||||
align-content: flex-end;
|
||||
}
|
||||
.align-content-center {
|
||||
-webkit-align-content: center;
|
||||
align-content: center;
|
||||
}
|
||||
.align-content-space-between {
|
||||
-webkit-align-content: space-between;
|
||||
align-content: space-between;
|
||||
}
|
||||
.align-content-space-around {
|
||||
-webkit-align-content: space-around;
|
||||
align-content: space-around;
|
||||
}
|
||||
.align-content-stretch {
|
||||
-webkit-align-content: stretch;
|
||||
align-content: stretch;
|
||||
}
|
||||
|
||||
.align-items-flex-start {
|
||||
-webkit-align-items: flex-start;
|
||||
align-items: flex-start;
|
||||
}
|
||||
.align-items-flex-end {
|
||||
-webkit-align-items: flex-end;
|
||||
align-items: flex-end;
|
||||
}
|
||||
.align-items-center {
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
}
|
||||
.align-items-baseline {
|
||||
-webkit-align-items: baseline;
|
||||
align-items: baseline;
|
||||
}
|
||||
.align-items-stretch {
|
||||
-webkit-align-items: stretch;
|
||||
align-items: stretch;
|
||||
}
|
||||
|
||||
.align-self-auto {
|
||||
-webkit-align-self: auto;
|
||||
align-self: auto;
|
||||
}
|
||||
.align-self-flex-start {
|
||||
-webkit-align-self: flex-start;
|
||||
align-self: flex-start;
|
||||
}
|
||||
.align-self-flex-end {
|
||||
-webkit-align-self: flex-end;
|
||||
align-self: flex-end;
|
||||
}
|
||||
.align-self-center {
|
||||
-webkit-align-self: center;
|
||||
align-self: center;
|
||||
}
|
||||
.align-self-baseline {
|
||||
-webkit-align-self: baseline;
|
||||
align-self: baseline;
|
||||
}
|
||||
.align-self-stretch {
|
||||
-webkit-align-self: stretch;
|
||||
align-self: stretch;
|
||||
}
|
||||
|
||||
.justify-content-flex-start {
|
||||
-webkit-justify-content: flex-start;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
.justify-content-flex-end {
|
||||
-webkit-justify-content: flex-end;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
.justify-content-center {
|
||||
-webkit-justify-content: center;
|
||||
justify-content: center;
|
||||
}
|
||||
.justify-content-space-between {
|
||||
-webkit-justify-content: space-between;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.justify-content-space-around {
|
||||
-webkit-justify-content: space-around;
|
||||
justify-content: space-around;
|
||||
}
|
Binary file not shown.
Before Width: | Height: | Size: 203 B |
Binary file not shown.
Before Width: | Height: | Size: 691 B |
Binary file not shown.
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
Binary file not shown.
After Width: | Height: | Size: 2.1 KiB |
Loading…
Add table
Add a link
Reference in a new issue