diff options
author | Mihai Popa <popam@google.com> | 2019-05-29 21:24:59 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2019-05-29 21:24:59 +0000 |
commit | ba98dd2cf591387a3ec5188fce9083ff4285137a (patch) | |
tree | aeafaab8e91e0f0b28340d530d8a29251535880e | |
parent | 867031ed12f9e8788279845d33a41973548d382f (diff) | |
parent | 02550192456f1ee0ba924ed774fc42f260f1bba7 (diff) | |
download | support-ba98dd2cf591387a3ec5188fce9083ff4285137a.tar.gz |
Merge "Add tests for Padding intrinsic measurements" into androidx-master-dev
-rw-r--r-- | ui/layout/src/androidTest/java/androidx/ui/layout/test/LayoutTest.kt | 10 | ||||
-rw-r--r-- | ui/layout/src/androidTest/java/androidx/ui/layout/test/PaddingTest.kt | 83 |
2 files changed, 93 insertions, 0 deletions
diff --git a/ui/layout/src/androidTest/java/androidx/ui/layout/test/LayoutTest.kt b/ui/layout/src/androidTest/java/androidx/ui/layout/test/LayoutTest.kt index 68a6677ad65..e86f4647b40 100644 --- a/ui/layout/src/androidTest/java/androidx/ui/layout/test/LayoutTest.kt +++ b/ui/layout/src/androidTest/java/androidx/ui/layout/test/LayoutTest.kt @@ -34,6 +34,7 @@ import androidx.compose.Children import androidx.compose.Composable import androidx.compose.composer import androidx.compose.setContent +import androidx.ui.core.IntPx import org.junit.Assert.assertEquals import org.junit.Assert.assertNotNull import org.junit.Assert.assertTrue @@ -185,4 +186,13 @@ open class LayoutTest { fail("Expected integer y coordinate") } } + + internal fun assertEquals(expected: IntPx, actual: IntPx) { + assertEquals( + "Expected ${expected} but obtained ${actual}", + expected.value.toFloat(), + actual.value.toFloat(), + 1f + ) + } } diff --git a/ui/layout/src/androidTest/java/androidx/ui/layout/test/PaddingTest.kt b/ui/layout/src/androidTest/java/androidx/ui/layout/test/PaddingTest.kt index cd91a7c2c83..6b912b9062d 100644 --- a/ui/layout/src/androidTest/java/androidx/ui/layout/test/PaddingTest.kt +++ b/ui/layout/src/androidTest/java/androidx/ui/layout/test/PaddingTest.kt @@ -17,7 +17,9 @@ package androidx.ui.layout.test import androidx.test.filters.SmallTest +import androidx.ui.core.ComplexLayout import androidx.ui.core.Dp +import androidx.ui.core.IntPx import androidx.ui.core.OnPositioned import androidx.ui.core.PxPosition import androidx.ui.core.PxSize @@ -34,6 +36,7 @@ import androidx.ui.layout.EdgeInsets import androidx.ui.layout.Padding import androidx.compose.Composable import androidx.compose.composer +import androidx.ui.layout.AspectRatio import org.junit.Assert.assertEquals import org.junit.Test import org.junit.runner.RunWith @@ -274,4 +277,84 @@ class PaddingTest : LayoutTest() { val top = ((root.height.ipx - size) / 2) + paddingPx assertEquals(PxPosition(left.toPx(), top.toPx()), childPosition) } + + + @Test + fun testPadding_hasCorrectIntrinsicMeasurements() = withDensity(density) { + val layoutLatch = CountDownLatch(1) + show { + Center { + val paddedChild = @Composable { + Padding(padding = 20.dp) { + AspectRatio(2f) { } + } + } + ComplexLayout(children = paddedChild) { + layout { measurables, _ -> + val paddingMeasurable = measurables.first() + // Min width. + assertEquals( + 20.dp.toIntPx() * 2, + paddingMeasurable.minIntrinsicWidth(0.dp.toIntPx()) + ) + assertEquals( + 100.dp.toIntPx(), + paddingMeasurable.minIntrinsicWidth(70.dp.toIntPx()) + ) + assertEquals( + 20.dp.toIntPx() * 2, + paddingMeasurable.minIntrinsicWidth(IntPx.Infinity) + ) + // Min height. + assertEquals( + 20.dp.toIntPx() * 2, + paddingMeasurable.minIntrinsicHeight(0.dp.toIntPx()) + ) + assertEquals( + 55.dp.toIntPx(), + paddingMeasurable.minIntrinsicHeight(70.dp.toIntPx()) + ) + assertEquals( + 20.dp.toIntPx() * 2, + paddingMeasurable.minIntrinsicHeight(IntPx.Infinity) + ) + // Max width. + assertEquals( + 20.dp.toIntPx() * 2, + paddingMeasurable.maxIntrinsicWidth(0.dp.toIntPx()) + ) + assertEquals( + 100.dp.toIntPx(), + paddingMeasurable.maxIntrinsicWidth(70.dp.toIntPx()) + ) + assertEquals( + 20.dp.toIntPx() * 2, + paddingMeasurable.maxIntrinsicWidth(IntPx.Infinity) + ) + // Max height. + assertEquals( + 20.dp.toIntPx() * 2, + paddingMeasurable.maxIntrinsicHeight(0.dp.toIntPx()) + ) + assertEquals( + 55.dp.toIntPx(), + paddingMeasurable.maxIntrinsicHeight(70.dp.toIntPx()) + ) + assertEquals( + 20.dp.toIntPx() * 2, + paddingMeasurable.maxIntrinsicHeight(IntPx.Infinity) + ) + layoutLatch.countDown() + } + minIntrinsicWidth { _, _ -> 0.ipx } + maxIntrinsicWidth { _, _ -> 0.ipx } + minIntrinsicHeight { _, _ -> 0.ipx } + maxIntrinsicHeight { _, _ -> 0.ipx } + } + } + } + layoutLatch.await(1, TimeUnit.SECONDS) + Unit + } + } |