aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMihai Popa <popam@google.com>2019-05-29 21:24:59 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2019-05-29 21:24:59 +0000
commitba98dd2cf591387a3ec5188fce9083ff4285137a (patch)
treeaeafaab8e91e0f0b28340d530d8a29251535880e
parent867031ed12f9e8788279845d33a41973548d382f (diff)
parent02550192456f1ee0ba924ed774fc42f260f1bba7 (diff)
downloadsupport-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.kt10
-rw-r--r--ui/layout/src/androidTest/java/androidx/ui/layout/test/PaddingTest.kt83
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
+ }
+
}