fix reduce from being called on every single test.

stretch now won't go below the padding
This commit is contained in:
Christopher Chedeau
2014-04-22 13:32:45 -07:00
parent db510d590a
commit fa2f7080e2
2 changed files with 18 additions and 5 deletions

View File

@@ -322,9 +322,12 @@ var computeLayout = (function() {
leadingCrossDim += remainingCrossDim;
} else if (alignItem === CSS_ALIGN_STRETCH) {
if (!isDimDefined(child, crossAxis)) {
child.layout[dim[crossAxis]] = node.layout[dim[crossAxis]] -
getPaddingAndBorderAxis(node, crossAxis) -
getMarginAxis(child, crossAxis);
child.layout[dim[crossAxis]] = fmaxf(
node.layout[dim[crossAxis]] -
getPaddingAndBorderAxis(node, crossAxis) -
getMarginAxis(child, crossAxis),
getPaddingAndBorderAxis(child, crossAxis)
);
}
}
child.layout[pos[crossAxis]] += leadingCrossDim;

View File

@@ -711,6 +711,16 @@ describe('Layout', function() {
)
});
it('should correctly take into account min padding for stretch', function() {
testLayout(
{style: {width: 50}, children: [
{style: {marginLeft: 20, padding: 20, alignSelf: 'stretch'}}
]},
{width: 50, height: 40, top: 0, left: 0, children: [
{width: 40, height: 40, top: 0, left: 20}
]}
);
});
@@ -774,10 +784,10 @@ describe('Layout', function() {
return node;
}
for (var i = 0; i < 100; ++i) {
for (var i = 0; i < 1000; ++i) {
var node = generateRandomNode();
if (JSON.stringify(computeLayout(node)) !== JSON.stringify(computeDOMLayout)) {
if (JSON.stringify(computeLayout(node)) !== JSON.stringify(computeDOMLayout(node))) {
node = reduceTest(node);
}