Bug 1257688 part 6: Add reftest for -webkit-box-flex inside of display:-webkit-box. r?mats
MozReview-Commit-ID: C9qZBHqrwNB
--- a/layout/reftests/webkit-box/reftest.list
+++ b/layout/reftests/webkit-box/reftest.list
@@ -14,16 +14,19 @@ fails == webkit-box-anon-flex-items-3.ht
# Tests for "-webkit-box" & "-webkit-inline-box" as display values:
== webkit-display-values-1.html webkit-display-values-1-ref.html
# Tests for "-webkit-box-align" (cross-axis alignment):
== webkit-box-align-horiz-1a.html webkit-box-align-horiz-1-ref.html
== webkit-box-align-horiz-1b.html webkit-box-align-horiz-1-ref.html
== webkit-box-align-vert-1.html webkit-box-align-vert-1-ref.html
+# Tests for "-webkit-box-flex" (flexibility of items)
+== webkit-box-flex-1.html webkit-box-flex-1-ref.html
+
# Tests for "-webkit-box-ordinal-group"
== webkit-box-ordinal-group-1.html webkit-box-ordinal-group-1-ref.html
# XXXdholbert The following test fails because we accept "0" as a valid value
# for -webkit-box-ordinal-group (unlike Chrome/Blink), because that's simply
# how its aliased property (-moz-box-ordinal-group) behaves. This shouldn't
# matter in practice; it could only cause trouble if sites accidentally depend
# on the "0" value being rejected.
fails == webkit-box-ordinal-group-2.html webkit-box-ordinal-group-2-ref.html
new file mode 100644
--- /dev/null
+++ b/layout/reftests/webkit-box/webkit-box-flex-1-ref.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html>
+<head>
+ <title>
+ CSS Reference
+ </title>
+ <style>
+ .box {
+ display: flex;
+ border: 1px solid black;
+ margin: 5px 20px;
+ width: 100px;
+ float: left; /* For testing in "rows" */
+ font: 10px serif;
+ }
+ .box > * {
+ /* Modern flexbox (used in this reference case) allows everything to
+ shrink by default, but -webkit-box does not, so we have to turn that
+ feature off to make an accurate reference case. */
+ flex-shrink: 0;
+ }
+
+ .box > *:nth-child(1) { background: turquoise; }
+ .box > *:nth-child(2) { background: salmon; }
+ .box > *:nth-child(3) { background: yellow; }
+
+ .huge { width: 120px }
+ .bf1 { flex: 1 1 auto }
+ .bf3 { flex: 3 3 auto }
+
+ br { clear: both; }
+ </style>
+</head>
+<body>
+ <!-- FIRST ROW: Default -webkit-box-flex -->
+ <div class="box">
+ <div>a</div>
+ </div>
+
+ <div class="box">
+ <div>a</div><div>b</div>
+ </div>
+
+ <div class="box">
+ <div class="huge">a</div>
+ </div>
+
+ <br>
+
+ <!-- SECOND ROW: One item has nonzero -webkit-box-flex -->
+ <div class="box">
+ <div class="bf1">a</div>
+ </div>
+
+ <div class="box">
+ <div>a</div><div class="bf1">b</div>
+ </div>
+
+ <div class="box">
+ <div class="huge bf1">a</div>
+ </div>
+
+ <br>
+
+ <!-- THIRD ROW: Two items have nonzero (equal) -webkit-box-flex -->
+ <div class="box">
+ <div class="bf1">a</div><div class="bf1">b</div>
+ </div>
+
+ <div class="box">
+ <div class="bf1">a</div><div>b</div><div class="bf1">c</div>
+ </div>
+
+ <div class="box">
+ <div class="huge bf1">a</div>
+ <div>b</div>
+ <div class="huge bf1">c</div>
+ </div>
+
+ <br>
+
+ <!-- FOURTH ROW: Non-equal nonzero -webkit-box-flex values -->
+ <div class="box">
+ <div class="bf1">a</div><div class="bf3">b</div>
+ </div>
+
+ <div class="box">
+ <div class="bf3">a</div><div class="bf1">b</div>
+ </div>
+
+ <div class="box">
+ <div class="huge bf1">a</div>
+ <div class="huge bf3">b</div>
+ </div>
+
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/webkit-box/webkit-box-flex-1.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html>
+<head>
+ <title>
+ CSS Test: "-webkit-box-flex" in a "display: -webkit-box" container
+ </title>
+ <style>
+ .box {
+ display: -webkit-box;
+ border: 1px solid black;
+ margin: 5px 20px;
+ width: 100px;
+ float: left; /* For testing in "rows" */
+ font: 10px serif;
+ }
+ .box > *:nth-child(1) { background: turquoise; }
+ .box > *:nth-child(2) { background: salmon; }
+ .box > *:nth-child(3) { background: yellow; }
+
+ .huge { width: 120px }
+ .bf1 { -webkit-box-flex: 1 }
+ .bf3 { -webkit-box-flex: 3 }
+
+ br { clear: both; }
+ </style>
+</head>
+<body>
+ <!-- FIRST ROW: Default -webkit-box-flex -->
+ <div class="box">
+ <div>a</div>
+ </div>
+
+ <div class="box">
+ <div>a</div><div>b</div>
+ </div>
+
+ <div class="box">
+ <div class="huge">a</div>
+ </div>
+
+ <br>
+
+ <!-- SECOND ROW: One item has nonzero -webkit-box-flex -->
+ <div class="box">
+ <div class="bf1">a</div>
+ </div>
+
+ <div class="box">
+ <div>a</div><div class="bf1">b</div>
+ </div>
+
+ <div class="box">
+ <div class="huge bf1">a</div>
+ </div>
+
+ <br>
+
+ <!-- THIRD ROW: Two items have nonzero (equal) -webkit-box-flex -->
+ <div class="box">
+ <div class="bf1">a</div><div class="bf1">b</div>
+ </div>
+
+ <div class="box">
+ <div class="bf1">a</div><div>b</div><div class="bf1">c</div>
+ </div>
+
+ <div class="box">
+ <div class="huge bf1">a</div>
+ <div>b</div>
+ <div class="huge bf1">c</div>
+ </div>
+
+ <br>
+
+ <!-- FOURTH ROW: Non-equal nonzero -webkit-box-flex values -->
+ <div class="box">
+ <div class="bf1">a</div><div class="bf3">b</div>
+ </div>
+
+ <div class="box">
+ <div class="bf3">a</div><div class="bf1">b</div>
+ </div>
+
+ <div class="box">
+ <div class="huge bf1">a</div>
+ <div class="huge bf3">b</div>
+ </div>
+
+</body>
+</html>