blob: 61115077f1890a0a15d56a3a9550d9ffdb7320b4 [file] [log] [blame]
/*
* Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
* for details. All rights reserved. Use of this source code is governed by a
* BSD-style license that can be found in the LICENSE file.
*/
/**
* @description
*/
import "dart:html";
import "../../testcommon.dart";
import "../../../Utils/async_utils.dart";
import "../../resources/check-layout.dart";
import "pwd.dart";
main() {
var f = new DocumentFragment.html('''
<link href="$root/resources/grid.css" rel="stylesheet">
<style>
.grid {
width: 100px;
height: 200px;
}
#grid1 {
grid-template-columns: minmax(20px, 80px) 60px;
grid-template-rows: 30px;
}
#grid2 {
/* First minmax more constraining than available logical width. */
grid-template-columns: minmax(50%, 60px) minmax(10px, 40%);
grid-template-rows: 30px;
}
#grid3 {
/* Overlapping range. */
grid-template-columns: minmax(10px, 80px) minmax(20px, 50px);
grid-template-rows: 30px;
}
#grid4 {
grid-template-columns: minmax(20px, 80px) 160px;
grid-template-rows: 30px;
-webkit-writing-mode: vertical-rl;
}
#grid5 {
/* 50% > 80px, 80px should be ignored. */
grid-template-columns: minmax(50%, 80px) minmax(10px, 60%);
grid-template-rows: 30px;
-webkit-writing-mode: vertical-lr;
}
#grid6 {
/* Overlapping range. */
grid-template-columns: minmax(10px, 180px) minmax(30px, 150px);
grid-template-rows: 30px;
-webkit-writing-mode: horizontal-bt;
}
.firstRowFirstColumn {
width: 100%;
height: 100%;
}
.firstRowSecondColumn {
width: 100%;
height: 100%;
}
</style>
''', treeSanitizer: new NullTreeSanitizer());
document.head.append(f);
document.body.setInnerHtml('''
<p><a href="https://webkit.org/b/104700">Bug 104700<a>: [CSS Grid Layout] Implement grid items sizing for fixed minmax grid tracks</p>
<p>Checks that a grid element with fixed minmax properly compute the logical width in several writing-mode.</p>
<div class="grid" id="grid1" data-expected-width="100" data-expected-height="200">
<div class="firstRowFirstColumn" data-expected-height="30" data-expected-width="40"></div>
<div class="firstRowSecondColumn" data-expected-height="30" data-expected-width="60"></div>
</div>
<div class="grid" id="grid2" data-expected-width="100" data-expected-height="200">
<div class="firstRowFirstColumn" data-expected-height="30" data-expected-width="60"></div>
<div class="firstRowSecondColumn" data-expected-height="30" data-expected-width="40"></div>
</div>
<div class="grid" id="grid3" data-expected-width="100" data-expected-height="200">
<div class="firstRowFirstColumn" data-expected-height="30" data-expected-width="50"></div>
<div class="firstRowSecondColumn" data-expected-height="30" data-expected-width="50"></div>
</div>
<div class="grid" id="grid4" data-expected-width="100" data-expected-height="200">
<div class="firstRowFirstColumn" data-expected-height="40" data-expected-width="30"></div>
<div class="firstRowSecondColumn" data-expected-height="160" data-expected-width="30"></div>
</div>
<div class="grid" id="grid5" data-expected-width="100" data-expected-height="200">
<div class="firstRowFirstColumn" data-expected-height="100" data-expected-width="30"></div>
<div class="firstRowSecondColumn" data-expected-height="100" data-expected-width="30"></div>
</div>
<div class="grid" id="grid6" data-expected-width="100" data-expected-height="200">
<div class="firstRowFirstColumn" data-expected-height="30" data-expected-width="40"></div>
<div class="firstRowSecondColumn" data-expected-height="30" data-expected-width="60"></div>
</div>
''', treeSanitizer: new NullTreeSanitizer());
asyncStart();
window.onLoad.listen((_) {
checkLayout('.grid');
asyncEnd();
});
}