mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-27 15:26:58 +00:00
Merge "Migrate responsive tests to multivalent" into main
This commit is contained in:
@@ -57,7 +57,7 @@ import org.mockito.kotlin.whenever
|
||||
*
|
||||
* For an implementation that mocks InvariantDeviceProfile, use [FakeInvariantDeviceProfileTest]
|
||||
*/
|
||||
@AllowedDevices(allowed = [DeviceProduct.CF_PHONE, DeviceProduct.HOST_SIDE_X86_64])
|
||||
@AllowedDevices(allowed = [DeviceProduct.CF_PHONE, DeviceProduct.ROBOLECTRIC])
|
||||
@IgnoreLimit(ignoreLimit = BuildConfig.IS_STUDIO_BUILD)
|
||||
abstract class AbstractDeviceProfileTest {
|
||||
protected val testContext: Context = InstrumentationRegistry.getInstrumentation().context
|
||||
@@ -341,4 +341,9 @@ abstract class AbstractDeviceProfileTest {
|
||||
protected fun Int.dpToPx(): Int {
|
||||
return ResourceUtils.pxFromDp(this.toFloat(), context!!.resources.displayMetrics)
|
||||
}
|
||||
|
||||
protected fun String.xmlToId(): Int {
|
||||
val context = InstrumentationRegistry.getInstrumentation().context
|
||||
return context.resources.getIdentifier(this, "xml", context.packageName)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,6 @@ 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.tests.R as TestR
|
||||
import com.android.launcher3.util.TestResourceHelper
|
||||
import com.google.common.truth.Truth.assertThat
|
||||
import org.junit.Before
|
||||
@@ -45,7 +44,7 @@ class AllAppsSpecsTest : AbstractDeviceProfileTest() {
|
||||
fun parseValidFile() {
|
||||
val allAppsSpecs =
|
||||
ResponsiveSpecsProvider.create(
|
||||
TestResourceHelper(context, TestR.xml.valid_all_apps_file),
|
||||
TestResourceHelper(context, "valid_all_apps_file".xmlToId()),
|
||||
ResponsiveSpecType.AllApps
|
||||
)
|
||||
|
||||
@@ -114,7 +113,7 @@ class AllAppsSpecsTest : AbstractDeviceProfileTest() {
|
||||
@Test(expected = IllegalStateException::class)
|
||||
fun parseInvalidFile_missingTag_throwsError() {
|
||||
ResponsiveSpecsProvider.create(
|
||||
TestResourceHelper(context, TestR.xml.invalid_all_apps_file_case_1),
|
||||
TestResourceHelper(context, "invalid_all_apps_file_case_1".xmlToId()),
|
||||
ResponsiveSpecType.AllApps
|
||||
)
|
||||
}
|
||||
@@ -122,7 +121,7 @@ class AllAppsSpecsTest : AbstractDeviceProfileTest() {
|
||||
@Test(expected = IllegalStateException::class)
|
||||
fun parseInvalidFile_moreThanOneValuePerTag_throwsError() {
|
||||
ResponsiveSpecsProvider.create(
|
||||
TestResourceHelper(context, TestR.xml.invalid_all_apps_file_case_2),
|
||||
TestResourceHelper(context, "invalid_all_apps_file_case_2".xmlToId()),
|
||||
ResponsiveSpecType.AllApps
|
||||
)
|
||||
}
|
||||
@@ -130,7 +129,7 @@ class AllAppsSpecsTest : AbstractDeviceProfileTest() {
|
||||
@Test(expected = IllegalStateException::class)
|
||||
fun parseInvalidFile_valueBiggerThan1_throwsError() {
|
||||
ResponsiveSpecsProvider.create(
|
||||
TestResourceHelper(context, TestR.xml.invalid_all_apps_file_case_3),
|
||||
TestResourceHelper(context, "invalid_all_apps_file_case_3".xmlToId()),
|
||||
ResponsiveSpecType.AllApps
|
||||
)
|
||||
}
|
||||
@@ -23,7 +23,6 @@ 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
|
||||
import org.junit.Test
|
||||
@@ -52,7 +51,7 @@ class CalculatedAllAppsSpecTest : AbstractDeviceProfileTest() {
|
||||
|
||||
val workspaceSpecs =
|
||||
ResponsiveSpecsProvider.create(
|
||||
TestResourceHelper(context, TestR.xml.valid_workspace_file),
|
||||
TestResourceHelper(context, "valid_workspace_file".xmlToId()),
|
||||
ResponsiveSpecType.Workspace
|
||||
)
|
||||
val widthSpec =
|
||||
@@ -62,7 +61,7 @@ class CalculatedAllAppsSpecTest : AbstractDeviceProfileTest() {
|
||||
|
||||
val allAppsSpecs =
|
||||
ResponsiveSpecsProvider.create(
|
||||
TestResourceHelper(context, TestR.xml.valid_all_apps_file),
|
||||
TestResourceHelper(context, "valid_all_apps_file".xmlToId()),
|
||||
ResponsiveSpecType.AllApps
|
||||
)
|
||||
|
||||
@@ -23,7 +23,6 @@ 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
|
||||
import com.android.launcher3.util.TestResourceHelper
|
||||
import com.google.common.truth.Truth.assertThat
|
||||
import org.junit.Before
|
||||
@@ -47,12 +46,12 @@ class CalculatedFolderSpecTest : AbstractDeviceProfileTest() {
|
||||
val columns = 6
|
||||
|
||||
// Loading workspace specs
|
||||
val resourceHelperWorkspace = TestResourceHelper(context, R.xml.valid_workspace_file)
|
||||
val resourceHelperWorkspace = TestResourceHelper(context, "valid_workspace_file".xmlToId())
|
||||
val workspaceSpecs =
|
||||
ResponsiveSpecsProvider.create(resourceHelperWorkspace, ResponsiveSpecType.Workspace)
|
||||
|
||||
// Loading folders specs
|
||||
val resourceHelperFolder = TestResourceHelper(context, R.xml.valid_folders_specs)
|
||||
val resourceHelperFolder = TestResourceHelper(context, "valid_folders_specs".xmlToId())
|
||||
val folderSpecs =
|
||||
ResponsiveSpecsProvider.create(resourceHelperFolder, ResponsiveSpecType.Folder)
|
||||
val specs = folderSpecs.getSpecsByAspectRatio(aspectRatio)
|
||||
@@ -123,12 +122,12 @@ class CalculatedFolderSpecTest : AbstractDeviceProfileTest() {
|
||||
val rows = 5
|
||||
|
||||
// Loading workspace specs
|
||||
val resourceHelperWorkspace = TestResourceHelper(context, R.xml.valid_workspace_file)
|
||||
val resourceHelperWorkspace = TestResourceHelper(context, "valid_workspace_file".xmlToId())
|
||||
val workspaceSpecs =
|
||||
ResponsiveSpecsProvider.create(resourceHelperWorkspace, ResponsiveSpecType.Workspace)
|
||||
|
||||
// Loading folders specs
|
||||
val resourceHelperFolder = TestResourceHelper(context, R.xml.valid_folders_specs)
|
||||
val resourceHelperFolder = TestResourceHelper(context, "valid_folders_specs".xmlToId())
|
||||
val folderSpecs =
|
||||
ResponsiveSpecsProvider.create(resourceHelperFolder, ResponsiveSpecType.Folder)
|
||||
val specs = folderSpecs.getSpecsByAspectRatio(aspectRatio)
|
||||
@@ -22,7 +22,6 @@ import androidx.test.filters.SmallTest
|
||||
import androidx.test.platform.app.InstrumentationRegistry
|
||||
import com.android.launcher3.AbstractDeviceProfileTest
|
||||
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
|
||||
import org.junit.Test
|
||||
@@ -47,7 +46,7 @@ class CalculatedHotseatSpecTest : AbstractDeviceProfileTest() {
|
||||
val availableHeight = deviceSpec.naturalSize.second
|
||||
|
||||
val hotseatSpecsProvider =
|
||||
HotseatSpecsProvider.create(TestResourceHelper(context, TestR.xml.valid_hotseat_file))
|
||||
HotseatSpecsProvider.create(TestResourceHelper(context, "valid_hotseat_file".xmlToId()))
|
||||
val heightSpec =
|
||||
hotseatSpecsProvider.getCalculatedSpec(
|
||||
aspectRatio,
|
||||
@@ -73,7 +72,7 @@ class CalculatedHotseatSpecTest : AbstractDeviceProfileTest() {
|
||||
val availableHeight = deviceSpec.naturalSize.second
|
||||
|
||||
val hotseatSpecsProvider =
|
||||
HotseatSpecsProvider.create(TestResourceHelper(context, TestR.xml.valid_hotseat_file))
|
||||
HotseatSpecsProvider.create(TestResourceHelper(context, "valid_hotseat_file".xmlToId()))
|
||||
val heightSpec =
|
||||
hotseatSpecsProvider.getCalculatedSpec(
|
||||
aspectRatio,
|
||||
@@ -99,7 +98,7 @@ class CalculatedHotseatSpecTest : AbstractDeviceProfileTest() {
|
||||
|
||||
val hotseatSpecsProvider =
|
||||
HotseatSpecsProvider.create(
|
||||
TestResourceHelper(context, TestR.xml.valid_hotseat_land_file)
|
||||
TestResourceHelper(context, "valid_hotseat_land_file".xmlToId())
|
||||
)
|
||||
val widthSpec =
|
||||
hotseatSpecsProvider.getCalculatedSpec(aspectRatio, DimensionType.WIDTH, availableWidth)
|
||||
@@ -23,7 +23,6 @@ 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
|
||||
import org.junit.Test
|
||||
@@ -53,7 +52,7 @@ class CalculatedWorkspaceSpecTest : AbstractDeviceProfileTest() {
|
||||
|
||||
val workspaceSpecs =
|
||||
ResponsiveSpecsProvider.create(
|
||||
TestResourceHelper(context, TestR.xml.valid_workspace_file),
|
||||
TestResourceHelper(context, "valid_workspace_file".xmlToId()),
|
||||
ResponsiveSpecType.Workspace
|
||||
)
|
||||
val widthSpec =
|
||||
@@ -96,7 +95,7 @@ class CalculatedWorkspaceSpecTest : AbstractDeviceProfileTest() {
|
||||
|
||||
val workspaceSpecs =
|
||||
ResponsiveSpecsProvider.create(
|
||||
TestResourceHelper(context, TestR.xml.valid_workspace_file),
|
||||
TestResourceHelper(context, "valid_workspace_file".xmlToId()),
|
||||
ResponsiveSpecType.Workspace
|
||||
)
|
||||
val widthSpec =
|
||||
@@ -138,7 +137,7 @@ class CalculatedWorkspaceSpecTest : AbstractDeviceProfileTest() {
|
||||
val availableHeight = deviceSpec.naturalSize.second - deviceSpec.statusBarNaturalPx - 640
|
||||
val workspaceSpecs =
|
||||
ResponsiveSpecsProvider.create(
|
||||
TestResourceHelper(context, TestR.xml.valid_workspace_unsorted_file),
|
||||
TestResourceHelper(context, "valid_workspace_unsorted_file".xmlToId()),
|
||||
ResponsiveSpecType.Workspace
|
||||
)
|
||||
val widthSpec =
|
||||
@@ -23,7 +23,6 @@ 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
|
||||
import com.android.launcher3.util.TestResourceHelper
|
||||
import com.google.common.truth.Truth.assertThat
|
||||
import org.junit.Before
|
||||
@@ -44,7 +43,7 @@ class FolderSpecTest : AbstractDeviceProfileTest() {
|
||||
|
||||
@Test
|
||||
fun parseValidFile() {
|
||||
val resourceHelper = TestResourceHelper(context, R.xml.valid_folders_specs)
|
||||
val resourceHelper = TestResourceHelper(context, "valid_folders_specs".xmlToId())
|
||||
val folderSpecs = ResponsiveSpecsProvider.create(resourceHelper, ResponsiveSpecType.Folder)
|
||||
val specs = folderSpecs.getSpecsByAspectRatio(aspectRatio)
|
||||
|
||||
@@ -92,25 +91,25 @@ class FolderSpecTest : AbstractDeviceProfileTest() {
|
||||
|
||||
@Test(expected = IllegalStateException::class)
|
||||
fun parseInvalidFile_missingTag_throwsError() {
|
||||
val resourceHelper = TestResourceHelper(context, R.xml.invalid_folders_specs_1)
|
||||
val resourceHelper = TestResourceHelper(context, "invalid_folders_specs_1".xmlToId())
|
||||
ResponsiveSpecsProvider.create(resourceHelper, ResponsiveSpecType.Folder)
|
||||
}
|
||||
|
||||
@Test(expected = IllegalStateException::class)
|
||||
fun parseInvalidFile_moreThanOneValuePerTag_throwsError() {
|
||||
val resourceHelper = TestResourceHelper(context, R.xml.invalid_folders_specs_2)
|
||||
val resourceHelper = TestResourceHelper(context, "invalid_folders_specs_2".xmlToId())
|
||||
ResponsiveSpecsProvider.create(resourceHelper, ResponsiveSpecType.Folder)
|
||||
}
|
||||
|
||||
@Test(expected = IllegalStateException::class)
|
||||
fun parseInvalidFile_valueBiggerThan1_throwsError() {
|
||||
val resourceHelper = TestResourceHelper(context, R.xml.invalid_folders_specs_3)
|
||||
val resourceHelper = TestResourceHelper(context, "invalid_folders_specs_3".xmlToId())
|
||||
ResponsiveSpecsProvider.create(resourceHelper, ResponsiveSpecType.Folder)
|
||||
}
|
||||
|
||||
@Test(expected = IllegalStateException::class)
|
||||
fun parseInvalidFile_missingSpecs_throwsError() {
|
||||
val resourceHelper = TestResourceHelper(context, R.xml.invalid_folders_specs_4)
|
||||
val resourceHelper = TestResourceHelper(context, "invalid_folders_specs_4".xmlToId())
|
||||
ResponsiveSpecsProvider.create(resourceHelper, ResponsiveSpecType.Folder)
|
||||
}
|
||||
|
||||
@@ -132,7 +131,7 @@ class FolderSpecTest : AbstractDeviceProfileTest() {
|
||||
val calculatedWorkspaceSpec =
|
||||
CalculatedResponsiveSpec(aspectRatio, availableSpace, cells, workspaceSpec)
|
||||
|
||||
val resourceHelper = TestResourceHelper(context, R.xml.invalid_folders_specs_5)
|
||||
val resourceHelper = TestResourceHelper(context, "invalid_folders_specs_5".xmlToId())
|
||||
val folderSpecs = ResponsiveSpecsProvider.create(resourceHelper, ResponsiveSpecType.Folder)
|
||||
folderSpecs.getCalculatedSpec(
|
||||
aspectRatio,
|
||||
@@ -161,7 +160,7 @@ class FolderSpecTest : AbstractDeviceProfileTest() {
|
||||
val calculatedWorkspaceSpec =
|
||||
CalculatedResponsiveSpec(aspectRatio, availableSpace, cells, workspaceSpec)
|
||||
|
||||
val resourceHelper = TestResourceHelper(context, R.xml.invalid_folders_specs_5)
|
||||
val resourceHelper = TestResourceHelper(context, "invalid_folders_specs_5".xmlToId())
|
||||
val folderSpecs = ResponsiveSpecsProvider.create(resourceHelper, ResponsiveSpecType.Folder)
|
||||
folderSpecs.getCalculatedSpec(
|
||||
aspectRatio,
|
||||
@@ -190,7 +189,7 @@ class FolderSpecTest : AbstractDeviceProfileTest() {
|
||||
val calculatedWorkspaceSpec =
|
||||
CalculatedResponsiveSpec(aspectRatio, availableSpace, cells, workspaceSpec)
|
||||
|
||||
val resourceHelper = TestResourceHelper(context, R.xml.valid_folders_specs)
|
||||
val resourceHelper = TestResourceHelper(context, "valid_folders_specs".xmlToId())
|
||||
val folderSpecs = ResponsiveSpecsProvider.create(resourceHelper, ResponsiveSpecType.Folder)
|
||||
val calculatedWidthSpec =
|
||||
folderSpecs.getCalculatedSpec(
|
||||
@@ -227,7 +226,7 @@ class FolderSpecTest : AbstractDeviceProfileTest() {
|
||||
val calculatedWorkspaceSpec =
|
||||
CalculatedResponsiveSpec(aspectRatio, availableSpace, cells, workspaceSpec)
|
||||
|
||||
val resourceHelper = TestResourceHelper(context, R.xml.valid_folders_specs)
|
||||
val resourceHelper = TestResourceHelper(context, "valid_folders_specs".xmlToId())
|
||||
val folderSpecs = ResponsiveSpecsProvider.create(resourceHelper, ResponsiveSpecType.Folder)
|
||||
folderSpecs.getCalculatedSpec(
|
||||
aspectRatio,
|
||||
@@ -256,7 +255,7 @@ class FolderSpecTest : AbstractDeviceProfileTest() {
|
||||
val calculatedWorkspaceSpec =
|
||||
CalculatedResponsiveSpec(aspectRatio, availableSpace, cells, workspaceSpec)
|
||||
|
||||
val resourceHelper = TestResourceHelper(context, R.xml.valid_folders_specs)
|
||||
val resourceHelper = TestResourceHelper(context, "valid_folders_specs".xmlToId())
|
||||
val folderSpecs = ResponsiveSpecsProvider.create(resourceHelper, ResponsiveSpecType.Folder)
|
||||
val calculatedHeightSpec =
|
||||
folderSpecs.getCalculatedSpec(
|
||||
@@ -293,7 +292,7 @@ class FolderSpecTest : AbstractDeviceProfileTest() {
|
||||
val calculatedWorkspaceSpec =
|
||||
CalculatedResponsiveSpec(aspectRatio, availableSpace, cells, workspaceSpec)
|
||||
|
||||
val resourceHelper = TestResourceHelper(context, R.xml.valid_folders_specs)
|
||||
val resourceHelper = TestResourceHelper(context, "valid_folders_specs".xmlToId())
|
||||
val folderSpecs = ResponsiveSpecsProvider.create(resourceHelper, ResponsiveSpecType.Folder)
|
||||
folderSpecs.getCalculatedSpec(
|
||||
aspectRatio,
|
||||
@@ -22,7 +22,6 @@ 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.tests.R as TestR
|
||||
import com.android.launcher3.util.TestResourceHelper
|
||||
import com.google.common.truth.Truth.assertThat
|
||||
import org.junit.Before
|
||||
@@ -44,7 +43,7 @@ class HotseatSpecsProviderTest : AbstractDeviceProfileTest() {
|
||||
@Test
|
||||
fun parseValidFile() {
|
||||
val hotseatSpecsProvider =
|
||||
HotseatSpecsProvider.create(TestResourceHelper(context, TestR.xml.valid_hotseat_file))
|
||||
HotseatSpecsProvider.create(TestResourceHelper(context, "valid_hotseat_file".xmlToId()))
|
||||
val specs = hotseatSpecsProvider.getSpecsByAspectRatio(aspectRatio)
|
||||
|
||||
val expectedHeightSpecs =
|
||||
@@ -76,7 +75,7 @@ class HotseatSpecsProviderTest : AbstractDeviceProfileTest() {
|
||||
fun parseValidLandscapeFile() {
|
||||
val hotseatSpecsProvider =
|
||||
HotseatSpecsProvider.create(
|
||||
TestResourceHelper(context, TestR.xml.valid_hotseat_land_file)
|
||||
TestResourceHelper(context, "valid_hotseat_land_file".xmlToId())
|
||||
)
|
||||
val specs = hotseatSpecsProvider.getSpecsByAspectRatio(aspectRatio)
|
||||
assertThat(specs.heightSpecs.size).isEqualTo(0)
|
||||
@@ -107,14 +106,14 @@ class HotseatSpecsProviderTest : AbstractDeviceProfileTest() {
|
||||
@Test(expected = IllegalStateException::class)
|
||||
fun parseInvalidFile_spaceIsNotFixedSize_throwsError() {
|
||||
HotseatSpecsProvider.create(
|
||||
TestResourceHelper(context, TestR.xml.invalid_hotseat_file_case_1)
|
||||
TestResourceHelper(context, "invalid_hotseat_file_case_1".xmlToId())
|
||||
)
|
||||
}
|
||||
|
||||
@Test(expected = IllegalStateException::class)
|
||||
fun parseInvalidFile_invalidFixedSize_throwsError() {
|
||||
HotseatSpecsProvider.create(
|
||||
TestResourceHelper(context, TestR.xml.invalid_hotseat_file_case_2)
|
||||
TestResourceHelper(context, "invalid_hotseat_file_case_2".xmlToId())
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -22,7 +22,6 @@ 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.tests.R as TestR
|
||||
import com.android.launcher3.util.TestResourceHelper
|
||||
import com.google.common.truth.Truth.assertThat
|
||||
import org.junit.Before
|
||||
@@ -43,7 +42,7 @@ class ResponsiveCellSpecsProviderTest : AbstractDeviceProfileTest() {
|
||||
|
||||
@Test
|
||||
fun parseValidFile() {
|
||||
val testResourceHelper = TestResourceHelper(context, TestR.xml.valid_cell_specs_file)
|
||||
val testResourceHelper = TestResourceHelper(context, "valid_cell_specs_file".xmlToId())
|
||||
val provider = ResponsiveCellSpecsProvider.create(testResourceHelper)
|
||||
|
||||
// Validate Portrait
|
||||
@@ -98,21 +97,21 @@ class ResponsiveCellSpecsProviderTest : AbstractDeviceProfileTest() {
|
||||
@Test(expected = IllegalStateException::class)
|
||||
fun parseInvalidFile_IsNotFixedSizeOrMatchWorkspace_throwsError() {
|
||||
ResponsiveCellSpecsProvider.create(
|
||||
TestResourceHelper(context, TestR.xml.invalid_cell_specs_1)
|
||||
TestResourceHelper(context, "invalid_cell_specs_1".xmlToId())
|
||||
)
|
||||
}
|
||||
|
||||
@Test(expected = IllegalStateException::class)
|
||||
fun parseInvalidFile_dimensionTypeIsNotHeight_throwsError() {
|
||||
ResponsiveCellSpecsProvider.create(
|
||||
TestResourceHelper(context, TestR.xml.invalid_cell_specs_2)
|
||||
TestResourceHelper(context, "invalid_cell_specs_2".xmlToId())
|
||||
)
|
||||
}
|
||||
|
||||
@Test(expected = IllegalStateException::class)
|
||||
fun parseInvalidFile_invalidFixedSize_throwsError() {
|
||||
ResponsiveCellSpecsProvider.create(
|
||||
TestResourceHelper(context, TestR.xml.invalid_cell_specs_3)
|
||||
TestResourceHelper(context, "invalid_cell_specs_3".xmlToId())
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -23,7 +23,6 @@ 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
|
||||
import com.android.launcher3.util.TestResourceHelper
|
||||
import com.google.common.truth.Truth.assertThat
|
||||
import org.junit.Before
|
||||
@@ -44,7 +43,7 @@ class ResponsiveSpecsProviderTest : AbstractDeviceProfileTest() {
|
||||
|
||||
@Test
|
||||
fun parseValidFile() {
|
||||
val resourceHelper = TestResourceHelper(context, R.xml.valid_responsive_spec_unsorted)
|
||||
val resourceHelper = TestResourceHelper(context, "valid_responsive_spec_unsorted".xmlToId())
|
||||
val provider = ResponsiveSpecsProvider.create(resourceHelper, ResponsiveSpecType.Workspace)
|
||||
|
||||
// Validate Portrait
|
||||
@@ -111,44 +110,44 @@ class ResponsiveSpecsProviderTest : AbstractDeviceProfileTest() {
|
||||
|
||||
@Test(expected = IllegalStateException::class)
|
||||
fun parseValidFile_invalidAspectRatio_throwsError() {
|
||||
val resourceHelper = TestResourceHelper(context, R.xml.valid_responsive_spec_unsorted)
|
||||
val resourceHelper = TestResourceHelper(context, "valid_responsive_spec_unsorted".xmlToId())
|
||||
val provider = ResponsiveSpecsProvider.create(resourceHelper, ResponsiveSpecType.Workspace)
|
||||
provider.getSpecsByAspectRatio(0f)
|
||||
}
|
||||
|
||||
@Test(expected = InvalidResponsiveGridSpec::class)
|
||||
fun parseInvalidFile_missingGroups_throwsError() {
|
||||
val resourceHelper = TestResourceHelper(context, R.xml.invalid_responsive_spec_1)
|
||||
val resourceHelper = TestResourceHelper(context, "invalid_responsive_spec_1".xmlToId())
|
||||
ResponsiveSpecsProvider.create(resourceHelper, ResponsiveSpecType.Workspace)
|
||||
}
|
||||
|
||||
@Test(expected = InvalidResponsiveGridSpec::class)
|
||||
fun parseInvalidFile_partialGroups_throwsError() {
|
||||
val resourceHelper = TestResourceHelper(context, R.xml.invalid_responsive_spec_2)
|
||||
val resourceHelper = TestResourceHelper(context, "invalid_responsive_spec_2".xmlToId())
|
||||
ResponsiveSpecsProvider.create(resourceHelper, ResponsiveSpecType.Workspace)
|
||||
}
|
||||
|
||||
@Test(expected = IllegalStateException::class)
|
||||
fun parseInvalidFile_invalidAspectRatio_throwsError() {
|
||||
val resourceHelper = TestResourceHelper(context, R.xml.invalid_responsive_spec_3)
|
||||
val resourceHelper = TestResourceHelper(context, "invalid_responsive_spec_3".xmlToId())
|
||||
ResponsiveSpecsProvider.create(resourceHelper, ResponsiveSpecType.Workspace)
|
||||
}
|
||||
|
||||
@Test(expected = IllegalStateException::class)
|
||||
fun parseInvalidFile_invalidRemainderSpace_throwsError() {
|
||||
val resourceHelper = TestResourceHelper(context, R.xml.invalid_responsive_spec_4)
|
||||
val resourceHelper = TestResourceHelper(context, "invalid_responsive_spec_4".xmlToId())
|
||||
ResponsiveSpecsProvider.create(resourceHelper, ResponsiveSpecType.Workspace)
|
||||
}
|
||||
|
||||
@Test(expected = IllegalStateException::class)
|
||||
fun parseInvalidFile_invalidAvailableSpace_throwsError() {
|
||||
val resourceHelper = TestResourceHelper(context, R.xml.invalid_responsive_spec_5)
|
||||
val resourceHelper = TestResourceHelper(context, "invalid_responsive_spec_5".xmlToId())
|
||||
ResponsiveSpecsProvider.create(resourceHelper, ResponsiveSpecType.Workspace)
|
||||
}
|
||||
|
||||
@Test(expected = IllegalStateException::class)
|
||||
fun parseInvalidFile_invalidFixedSize_throwsError() {
|
||||
val resourceHelper = TestResourceHelper(context, R.xml.invalid_responsive_spec_6)
|
||||
val resourceHelper = TestResourceHelper(context, "invalid_responsive_spec_6".xmlToId())
|
||||
ResponsiveSpecsProvider.create(resourceHelper, ResponsiveSpecType.Workspace)
|
||||
}
|
||||
|
||||
@@ -22,7 +22,6 @@ 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.tests.R as TestR
|
||||
import com.android.launcher3.util.TestResourceHelper
|
||||
import com.google.common.truth.Truth.assertThat
|
||||
import org.junit.Before
|
||||
@@ -45,7 +44,7 @@ class WorkspaceSpecsTest : AbstractDeviceProfileTest() {
|
||||
fun parseValidFile() {
|
||||
val workspaceSpecs =
|
||||
ResponsiveSpecsProvider.create(
|
||||
TestResourceHelper(context, TestR.xml.valid_workspace_file),
|
||||
TestResourceHelper(context, "valid_workspace_file".xmlToId()),
|
||||
ResponsiveSpecType.Workspace
|
||||
)
|
||||
|
||||
@@ -169,7 +168,7 @@ class WorkspaceSpecsTest : AbstractDeviceProfileTest() {
|
||||
@Test(expected = IllegalStateException::class)
|
||||
fun parseInvalidFile_missingTag_throwsError() {
|
||||
ResponsiveSpecsProvider.create(
|
||||
TestResourceHelper(context, TestR.xml.invalid_workspace_file_case_1),
|
||||
TestResourceHelper(context, "invalid_workspace_file_case_1".xmlToId()),
|
||||
ResponsiveSpecType.Workspace
|
||||
)
|
||||
}
|
||||
@@ -177,7 +176,7 @@ class WorkspaceSpecsTest : AbstractDeviceProfileTest() {
|
||||
@Test(expected = IllegalStateException::class)
|
||||
fun parseInvalidFile_moreThanOneValuePerTag_throwsError() {
|
||||
ResponsiveSpecsProvider.create(
|
||||
TestResourceHelper(context, TestR.xml.invalid_workspace_file_case_2),
|
||||
TestResourceHelper(context, "invalid_workspace_file_case_2".xmlToId()),
|
||||
ResponsiveSpecType.Workspace
|
||||
)
|
||||
}
|
||||
@@ -185,7 +184,7 @@ class WorkspaceSpecsTest : AbstractDeviceProfileTest() {
|
||||
@Test(expected = IllegalStateException::class)
|
||||
fun parseInvalidFile_valueBiggerThan1_throwsError() {
|
||||
ResponsiveSpecsProvider.create(
|
||||
TestResourceHelper(context, TestR.xml.invalid_workspace_file_case_3),
|
||||
TestResourceHelper(context, "invalid_workspace_file_case_3".xmlToId()),
|
||||
ResponsiveSpecType.Workspace
|
||||
)
|
||||
}
|
||||
@@ -193,7 +192,7 @@ class WorkspaceSpecsTest : AbstractDeviceProfileTest() {
|
||||
@Test(expected = IllegalStateException::class)
|
||||
fun parseInvalidFile_matchWorkspace_true_throwsError() {
|
||||
ResponsiveSpecsProvider.create(
|
||||
TestResourceHelper(context, TestR.xml.invalid_workspace_file_case_4),
|
||||
TestResourceHelper(context, "invalid_workspace_file_case_4".xmlToId()),
|
||||
ResponsiveSpecType.Workspace
|
||||
)
|
||||
}
|
||||
@@ -19,24 +19,41 @@ package com.android.launcher3.util
|
||||
import android.content.Context
|
||||
import android.content.res.TypedArray
|
||||
import android.util.AttributeSet
|
||||
import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation
|
||||
import com.android.launcher3.R
|
||||
import com.android.launcher3.tests.R as TestR
|
||||
import kotlin.IntArray
|
||||
|
||||
class TestResourceHelper(private val context: Context, specsFileId: Int) :
|
||||
ResourceHelper(context, specsFileId) {
|
||||
|
||||
val responsiveStyleables = listOf(
|
||||
R.styleable.SizeSpec,
|
||||
R.styleable.WorkspaceSpec,
|
||||
R.styleable.FolderSpec,
|
||||
R.styleable.AllAppsSpec,
|
||||
R.styleable.ResponsiveSpecGroup
|
||||
)
|
||||
|
||||
override fun obtainStyledAttributes(attrs: AttributeSet, styleId: IntArray): TypedArray {
|
||||
val clone =
|
||||
when {
|
||||
styleId.contentEquals(R.styleable.SizeSpec) -> TestR.styleable.SizeSpec
|
||||
styleId.contentEquals(R.styleable.WorkspaceSpec) -> TestR.styleable.WorkspaceSpec
|
||||
styleId.contentEquals(R.styleable.FolderSpec) -> TestR.styleable.FolderSpec
|
||||
styleId.contentEquals(R.styleable.AllAppsSpec) -> TestR.styleable.AllAppsSpec
|
||||
styleId.contentEquals(R.styleable.ResponsiveSpecGroup) ->
|
||||
TestR.styleable.ResponsiveSpecGroup
|
||||
else -> styleId.clone()
|
||||
}
|
||||
if (responsiveStyleables.any { styleId.contentEquals(it) }) {
|
||||
convertStyleId(styleId)
|
||||
} else {
|
||||
styleId.clone()
|
||||
}
|
||||
|
||||
return context.obtainStyledAttributes(attrs, clone)
|
||||
}
|
||||
|
||||
private fun convertStyleId(styleableArr: IntArray): IntArray {
|
||||
val targetContextRes = getInstrumentation().targetContext.resources
|
||||
val context = getInstrumentation().context
|
||||
return styleableArr
|
||||
.map { attrId -> targetContextRes.getResourceName(attrId).split(":").last() }
|
||||
.map { attrName ->
|
||||
// Get required attr from context instead of targetContext
|
||||
context.resources.getIdentifier(attrName, null, context.packageName)
|
||||
}
|
||||
.toIntArray()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user