Add sizes tests for drawer
This CL adds tests for drawer for testing offsets in different states
and main material-specified sizes. There aren't tests for animations and
touches yet, as there's no infrastructure.
Bug: 113859843
Test: This is tests
Change-Id: Ic8b05c0e5619bee76f14872848463d175d706a85
diff --git a/ui/material/src/androidTest/java/androidx/ui/material/DrawerTest.kt b/ui/material/src/androidTest/java/androidx/ui/material/DrawerTest.kt
new file mode 100644
index 0000000..25cadc9
--- /dev/null
+++ b/ui/material/src/androidTest/java/androidx/ui/material/DrawerTest.kt
@@ -0,0 +1,136 @@
+/*
+ * Copyright 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package androidx.ui.material
+
+import androidx.compose.composer
+import androidx.test.filters.MediumTest
+import androidx.ui.core.OnPositioned
+import androidx.ui.core.PxPosition
+import androidx.ui.core.PxSize
+import androidx.ui.core.dp
+import androidx.ui.core.round
+import androidx.ui.core.withDensity
+import androidx.ui.layout.Container
+import androidx.ui.test.createComposeRule
+import com.google.common.truth.Truth
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.junit.runners.JUnit4
+import kotlin.math.roundToInt
+
+@MediumTest
+@RunWith(JUnit4::class)
+class DrawerTest {
+
+ @get:Rule
+ val composeTestRule = createComposeRule()
+
+ @Test
+ fun modalDrawer_testOffset_whenOpened() {
+ var position: PxPosition? = null
+ composeTestRule.setMaterialContent {
+ ModalDrawer(DrawerState.Opened, {}) {
+ Container(expanded = true) {
+ OnPositioned { coords ->
+ position = coords.localToGlobal(PxPosition.Origin)
+ }
+ }
+ }
+ }
+ Truth.assertThat(position!!.x.value).isEqualTo(0f)
+ }
+
+ @Test
+ fun modalDrawer_testOffset_whenClosed() {
+ var position: PxPosition? = null
+ composeTestRule.setMaterialContent {
+ ModalDrawer(DrawerState.Closed, {}) {
+ Container(expanded = true) {
+ OnPositioned { coords ->
+ position = coords.localToGlobal(PxPosition.Origin)
+ }
+ }
+ }
+ }
+ val width = composeTestRule.displayMetrics.widthPixels
+ Truth.assertThat(position!!.x.round().value).isEqualTo(-width)
+ }
+
+ @Test
+ fun modalDrawer_testEndPadding_whenOpened() {
+ var size: PxSize? = null
+ composeTestRule.setMaterialContent {
+ ModalDrawer(DrawerState.Opened, {}) {
+ Container(expanded = true) {
+ OnPositioned { coords ->
+ size = coords.size
+ }
+ }
+ }
+ }
+
+ val width = composeTestRule.displayMetrics.widthPixels
+ withDensity(composeTestRule.density) {
+ Truth.assertThat(size!!.width.round().value)
+ .isEqualTo(width - 56.dp.toPx().round().value)
+ }
+ }
+
+ @Test
+ fun bottomDrawer_testOffset_whenOpened() {
+ var position: PxPosition? = null
+ composeTestRule.setMaterialContent {
+ BottomDrawer(DrawerState.Opened, {}) {
+ Container(expanded = true) {
+ OnPositioned { coords ->
+ position = coords.localToGlobal(PxPosition.Origin)
+ }
+ }
+ }
+ }
+ val height = composeTestRule.displayMetrics.heightPixels
+ Truth.assertThat(position!!.y.round().value).isEqualTo((height / 2f).roundToInt())
+ }
+
+ @Test
+ fun bottomDrawer_testOffset_whenClosed() {
+ var position: PxPosition? = null
+ composeTestRule.setMaterialContent {
+ BottomDrawer(DrawerState.Closed, {}) {
+ Container(expanded = true) {
+ OnPositioned { coords ->
+ position = coords.localToGlobal(PxPosition.Origin)
+ }
+ }
+ }
+ }
+ val height = composeTestRule.displayMetrics.heightPixels
+ Truth.assertThat(position!!.y.round().value).isEqualTo(height)
+ }
+
+ @Test
+ fun staticDrawer_testWidth_whenOpened() {
+ composeTestRule
+ .setMaterialContentAndTestSizes {
+ StaticDrawer {
+ Container(expanded = true) {}
+ }
+ }
+ .assertWidthEqualsTo(256.dp)
+ }
+}