Bug 1257688 part 6: Add reftest for -webkit-box-flex inside of display:-webkit-box. r=mats
authorDaniel Holbert <dholbert@cs.stanford.edu>
Mon, 04 Apr 2016 18:32:12 -0700
changeset 347720 8d62fbf0a21534909d69dd49dc56c862e7315ad1
parent 347719 3c66c105ff258b0621c86d522bcd8f3b144ab31d
child 347721 ad5ff46b72e7168e38d1c6c4cbe3b370ee0537b5
push id14653
push userolivier@olivieryiptong.com
push dateTue, 05 Apr 2016 19:21:01 +0000
reviewersmats
bugs1257688
milestone48.0a1
Bug 1257688 part 6: Add reftest for -webkit-box-flex inside of display:-webkit-box. r=mats MozReview-Commit-ID: C9qZBHqrwNB
layout/reftests/webkit-box/reftest.list
layout/reftests/webkit-box/webkit-box-flex-1-ref.html
layout/reftests/webkit-box/webkit-box-flex-1.html
--- 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>