From e1aaf39f82c4b251b2848991e473dc1940f59245 Mon Sep 17 00:00:00 2001 From: Ian Hickson Date: Wed, 13 Apr 2016 09:35:10 -0700 Subject: [PATCH] Fix Block intrinsic functions (#3286) * Fix Block intrinsic functions * Update block_test.dart Fix the test per travis --- packages/flutter/lib/src/rendering/block.dart | 6 +++--- .../flutter/test/rendering/block_test.dart | 21 +++++++++++++++++-- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/packages/flutter/lib/src/rendering/block.dart b/packages/flutter/lib/src/rendering/block.dart index 1b8515b6c7..154ea1e3da 100644 --- a/packages/flutter/lib/src/rendering/block.dart +++ b/packages/flutter/lib/src/rendering/block.dart @@ -157,7 +157,7 @@ class RenderBlock extends RenderBox while (child != null) { switch (mainAxis) { case Axis.horizontal: - extent += child.getMinIntrinsicWidth(innerConstraints); + extent += child.getMaxIntrinsicWidth(innerConstraints); break; case Axis.vertical: extent += child.getMinIntrinsicHeight(innerConstraints); @@ -206,7 +206,7 @@ class RenderBlock extends RenderBox case Axis.horizontal: return _getIntrinsicCrossAxis( constraints, - (RenderBox child, BoxConstraints innerConstraints) => child.getMinIntrinsicWidth(innerConstraints), + (RenderBox child, BoxConstraints innerConstraints) => child.getMinIntrinsicHeight(innerConstraints), constraints.constrainHeight ); case Axis.vertical: @@ -221,7 +221,7 @@ class RenderBlock extends RenderBox case Axis.horizontal: return _getIntrinsicCrossAxis( constraints, - (RenderBox child, BoxConstraints innerConstraints) => child.getMaxIntrinsicWidth(innerConstraints), + (RenderBox child, BoxConstraints innerConstraints) => child.getMaxIntrinsicHeight(innerConstraints), constraints.constrainHeight ); case Axis.vertical: diff --git a/packages/flutter/test/rendering/block_test.dart b/packages/flutter/test/rendering/block_test.dart index 69281b1fae..5ac789f585 100644 --- a/packages/flutter/test/rendering/block_test.dart +++ b/packages/flutter/test/rendering/block_test.dart @@ -30,11 +30,15 @@ void main() { expect(paragraph.getMaxIntrinsicHeight(unconstrained), equals(oneLineTextHeight)); expect(paragraph.getMaxIntrinsicHeight(constrained), equals(twoLinesTextHeight)); - RenderBox testBlock = new RenderBlock( + // test setup + RenderBlock testBlock = new RenderBlock( children: [ paragraph, ] ); + final BoxConstraints empty = new BoxConstraints.tight(Size.zero); + + // vertical block expect(testBlock.getMinIntrinsicWidth(unconstrained), equals(wrappedTextWidth)); expect(testBlock.getMinIntrinsicWidth(constrained), equals(wrappedTextWidth)); expect(testBlock.getMaxIntrinsicWidth(unconstrained), equals(textWidth)); @@ -43,8 +47,21 @@ void main() { expect(testBlock.getMinIntrinsicHeight(constrained), equals(twoLinesTextHeight)); expect(testBlock.getMaxIntrinsicHeight(unconstrained), equals(oneLineTextHeight)); expect(testBlock.getMaxIntrinsicHeight(constrained), equals(twoLinesTextHeight)); + expect(testBlock.getMinIntrinsicWidth(empty), equals(0.0)); + expect(testBlock.getMaxIntrinsicWidth(empty), equals(0.0)); + expect(testBlock.getMinIntrinsicHeight(empty), equals(0.0)); + expect(testBlock.getMaxIntrinsicHeight(empty), equals(0.0)); - final BoxConstraints empty = new BoxConstraints.tight(Size.zero); + // horizontal block + testBlock.mainAxis = Axis.horizontal; + expect(testBlock.getMinIntrinsicWidth(unconstrained), equals(textWidth)); + expect(testBlock.getMinIntrinsicWidth(constrained), equals(constrained.maxWidth)); + expect(testBlock.getMaxIntrinsicWidth(unconstrained), equals(textWidth)); + expect(testBlock.getMaxIntrinsicWidth(constrained), equals(constrained.maxWidth)); + expect(testBlock.getMinIntrinsicHeight(unconstrained), equals(oneLineTextHeight)); + expect(testBlock.getMinIntrinsicHeight(constrained), equals(oneLineTextHeight)); + expect(testBlock.getMaxIntrinsicHeight(unconstrained), equals(oneLineTextHeight)); + expect(testBlock.getMaxIntrinsicHeight(constrained), equals(oneLineTextHeight)); expect(testBlock.getMinIntrinsicWidth(empty), equals(0.0)); expect(testBlock.getMaxIntrinsicWidth(empty), equals(0.0)); expect(testBlock.getMinIntrinsicHeight(empty), equals(0.0));