diff options
Diffstat (limited to 'tests/src/com/android/launcher3/responsive/CalculatedWorkspaceSpecTest.kt')
-rw-r--r-- | tests/src/com/android/launcher3/responsive/CalculatedWorkspaceSpecTest.kt | 68 |
1 files changed, 62 insertions, 6 deletions
diff --git a/tests/src/com/android/launcher3/responsive/CalculatedWorkspaceSpecTest.kt b/tests/src/com/android/launcher3/responsive/CalculatedWorkspaceSpecTest.kt index 0af694e000..0c5d347412 100644 --- a/tests/src/com/android/launcher3/responsive/CalculatedWorkspaceSpecTest.kt +++ b/tests/src/com/android/launcher3/responsive/CalculatedWorkspaceSpecTest.kt @@ -21,6 +21,8 @@ import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import androidx.test.platform.app.InstrumentationRegistry import com.android.launcher3.AbstractDeviceProfileTest +import com.android.launcher3.responsive.ResponsiveSpec.Companion.ResponsiveSpecType +import com.android.launcher3.responsive.ResponsiveSpec.DimensionType import com.android.launcher3.tests.R as TestR import com.android.launcher3.util.TestResourceHelper import com.google.common.truth.Truth.assertThat @@ -41,6 +43,7 @@ class CalculatedWorkspaceSpecTest : AbstractDeviceProfileTest() { @Test fun normalPhone_returnsThirdBreakpointSpec() { val deviceSpec = deviceSpecs["phone"]!! + val aspectRatio = deviceSpec.naturalSize.first.toFloat() / deviceSpec.naturalSize.second initializeVarsForPhone(deviceSpec) val availableWidth = deviceSpec.naturalSize.first @@ -49,9 +52,14 @@ class CalculatedWorkspaceSpecTest : AbstractDeviceProfileTest() { val availableHeight = deviceSpec.naturalSize.second - deviceSpec.statusBarNaturalPx - 495 val workspaceSpecs = - WorkspaceSpecs.create(TestResourceHelper(context!!, TestR.xml.valid_workspace_file)) - val widthSpec = workspaceSpecs.getCalculatedWidthSpec(4, availableWidth) - val heightSpec = workspaceSpecs.getCalculatedHeightSpec(5, availableHeight) + ResponsiveSpecsProvider.create( + TestResourceHelper(context, TestR.xml.valid_workspace_file), + ResponsiveSpecType.Workspace + ) + val widthSpec = + workspaceSpecs.getCalculatedSpec(aspectRatio, DimensionType.WIDTH, 4, availableWidth) + val heightSpec = + workspaceSpecs.getCalculatedSpec(aspectRatio, DimensionType.HEIGHT, 5, availableHeight) assertThat(widthSpec.availableSpace).isEqualTo(availableWidth) assertThat(widthSpec.cells).isEqualTo(4) @@ -77,6 +85,7 @@ class CalculatedWorkspaceSpecTest : AbstractDeviceProfileTest() { @Test fun smallPhone_returnsFirstBreakpointSpec() { val deviceSpec = deviceSpecs["phone"]!! + val aspectRatio = deviceSpec.naturalSize.first.toFloat() / deviceSpec.naturalSize.second deviceSpec.densityDpi = 540 // larger display size initializeVarsForPhone(deviceSpec) @@ -86,9 +95,56 @@ class CalculatedWorkspaceSpecTest : AbstractDeviceProfileTest() { val availableHeight = deviceSpec.naturalSize.second - deviceSpec.statusBarNaturalPx - 640 val workspaceSpecs = - WorkspaceSpecs.create(TestResourceHelper(context!!, TestR.xml.valid_workspace_file)) - val widthSpec = workspaceSpecs.getCalculatedWidthSpec(4, availableWidth) - val heightSpec = workspaceSpecs.getCalculatedHeightSpec(5, availableHeight) + ResponsiveSpecsProvider.create( + TestResourceHelper(context, TestR.xml.valid_workspace_file), + ResponsiveSpecType.Workspace + ) + val widthSpec = + workspaceSpecs.getCalculatedSpec(aspectRatio, DimensionType.WIDTH, 4, availableWidth) + val heightSpec = + workspaceSpecs.getCalculatedSpec(aspectRatio, DimensionType.HEIGHT, 5, availableHeight) + + assertThat(widthSpec.availableSpace).isEqualTo(availableWidth) + assertThat(widthSpec.cells).isEqualTo(4) + assertThat(widthSpec.startPaddingPx).isEqualTo(74) + assertThat(widthSpec.endPaddingPx).isEqualTo(74) + assertThat(widthSpec.gutterPx).isEqualTo(54) + assertThat(widthSpec.cellSizePx).isEqualTo(193) + + assertThat(heightSpec.availableSpace).isEqualTo(availableHeight) + assertThat(heightSpec.cells).isEqualTo(5) + assertThat(heightSpec.startPaddingPx).isEqualTo(0) + assertThat(heightSpec.endPaddingPx).isEqualTo(108) + assertThat(heightSpec.gutterPx).isEqualTo(54) + assertThat(heightSpec.cellSizePx).isEqualTo(260) + } + + /** + * This test tests: + * - (height spec) gets the correct breakpoint from the XML - use the first breakpoint + * - (height spec) do the correct calculations for remainder space and fixed size + * - (width spec) do the correct calculations for remainder space and fixed size + */ + @Test + fun smallPhone_returnsFirstBreakpointSpec_unsortedFile() { + val deviceSpec = deviceSpecs["phone"]!! + val aspectRatio = deviceSpec.naturalSize.first.toFloat() / deviceSpec.naturalSize.second + deviceSpec.densityDpi = 540 // larger display size + initializeVarsForPhone(deviceSpec) + + val availableWidth = deviceSpec.naturalSize.first + // Hotseat size is roughly 640px on a real device, + // it doesn't need to be precise on unit tests + val availableHeight = deviceSpec.naturalSize.second - deviceSpec.statusBarNaturalPx - 640 + val workspaceSpecs = + ResponsiveSpecsProvider.create( + TestResourceHelper(context, TestR.xml.valid_workspace_unsorted_file), + ResponsiveSpecType.Workspace + ) + val widthSpec = + workspaceSpecs.getCalculatedSpec(aspectRatio, DimensionType.WIDTH, 4, availableWidth) + val heightSpec = + workspaceSpecs.getCalculatedSpec(aspectRatio, DimensionType.HEIGHT, 5, availableHeight) assertThat(widthSpec.availableSpace).isEqualTo(availableWidth) assertThat(widthSpec.cells).isEqualTo(4) |