diff --git a/tests/multivalentTests/src/com/android/launcher3/AbstractDeviceProfileTest.kt b/tests/multivalentTests/src/com/android/launcher3/AbstractDeviceProfileTest.kt index 3405635426..8770859957 100644 --- a/tests/multivalentTests/src/com/android/launcher3/AbstractDeviceProfileTest.kt +++ b/tests/multivalentTests/src/com/android/launcher3/AbstractDeviceProfileTest.kt @@ -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) + } } diff --git a/tests/src/com/android/launcher3/responsive/AllAppsSpecsTest.kt b/tests/multivalentTests/src/com/android/launcher3/responsive/AllAppsSpecsTest.kt similarity index 93% rename from tests/src/com/android/launcher3/responsive/AllAppsSpecsTest.kt rename to tests/multivalentTests/src/com/android/launcher3/responsive/AllAppsSpecsTest.kt index c99da96917..3dca35e383 100644 --- a/tests/src/com/android/launcher3/responsive/AllAppsSpecsTest.kt +++ b/tests/multivalentTests/src/com/android/launcher3/responsive/AllAppsSpecsTest.kt @@ -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 ) } diff --git a/tests/src/com/android/launcher3/responsive/CalculatedAllAppsSpecTest.kt b/tests/multivalentTests/src/com/android/launcher3/responsive/CalculatedAllAppsSpecTest.kt similarity index 95% rename from tests/src/com/android/launcher3/responsive/CalculatedAllAppsSpecTest.kt rename to tests/multivalentTests/src/com/android/launcher3/responsive/CalculatedAllAppsSpecTest.kt index 1cc5ed2500..8346492079 100644 --- a/tests/src/com/android/launcher3/responsive/CalculatedAllAppsSpecTest.kt +++ b/tests/multivalentTests/src/com/android/launcher3/responsive/CalculatedAllAppsSpecTest.kt @@ -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 ) diff --git a/tests/src/com/android/launcher3/responsive/CalculatedFolderSpecTest.kt b/tests/multivalentTests/src/com/android/launcher3/responsive/CalculatedFolderSpecTest.kt similarity index 95% rename from tests/src/com/android/launcher3/responsive/CalculatedFolderSpecTest.kt rename to tests/multivalentTests/src/com/android/launcher3/responsive/CalculatedFolderSpecTest.kt index c4e2d2a328..46d6cb9304 100644 --- a/tests/src/com/android/launcher3/responsive/CalculatedFolderSpecTest.kt +++ b/tests/multivalentTests/src/com/android/launcher3/responsive/CalculatedFolderSpecTest.kt @@ -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) diff --git a/tests/src/com/android/launcher3/responsive/CalculatedHotseatSpecTest.kt b/tests/multivalentTests/src/com/android/launcher3/responsive/CalculatedHotseatSpecTest.kt similarity index 95% rename from tests/src/com/android/launcher3/responsive/CalculatedHotseatSpecTest.kt rename to tests/multivalentTests/src/com/android/launcher3/responsive/CalculatedHotseatSpecTest.kt index 1a564aced5..5ab44f350c 100644 --- a/tests/src/com/android/launcher3/responsive/CalculatedHotseatSpecTest.kt +++ b/tests/multivalentTests/src/com/android/launcher3/responsive/CalculatedHotseatSpecTest.kt @@ -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) diff --git a/tests/src/com/android/launcher3/responsive/CalculatedWorkspaceSpecTest.kt b/tests/multivalentTests/src/com/android/launcher3/responsive/CalculatedWorkspaceSpecTest.kt similarity index 96% rename from tests/src/com/android/launcher3/responsive/CalculatedWorkspaceSpecTest.kt rename to tests/multivalentTests/src/com/android/launcher3/responsive/CalculatedWorkspaceSpecTest.kt index 0c5d347412..dea98b6f8b 100644 --- a/tests/src/com/android/launcher3/responsive/CalculatedWorkspaceSpecTest.kt +++ b/tests/multivalentTests/src/com/android/launcher3/responsive/CalculatedWorkspaceSpecTest.kt @@ -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 = diff --git a/tests/src/com/android/launcher3/responsive/FolderSpecTest.kt b/tests/multivalentTests/src/com/android/launcher3/responsive/FolderSpecTest.kt similarity index 92% rename from tests/src/com/android/launcher3/responsive/FolderSpecTest.kt rename to tests/multivalentTests/src/com/android/launcher3/responsive/FolderSpecTest.kt index 5cfa49fb49..d2b264bf57 100644 --- a/tests/src/com/android/launcher3/responsive/FolderSpecTest.kt +++ b/tests/multivalentTests/src/com/android/launcher3/responsive/FolderSpecTest.kt @@ -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, diff --git a/tests/src/com/android/launcher3/responsive/HotseatSpecsProviderTest.kt b/tests/multivalentTests/src/com/android/launcher3/responsive/HotseatSpecsProviderTest.kt similarity index 93% rename from tests/src/com/android/launcher3/responsive/HotseatSpecsProviderTest.kt rename to tests/multivalentTests/src/com/android/launcher3/responsive/HotseatSpecsProviderTest.kt index 78cb1ac3ef..58324e1e43 100644 --- a/tests/src/com/android/launcher3/responsive/HotseatSpecsProviderTest.kt +++ b/tests/multivalentTests/src/com/android/launcher3/responsive/HotseatSpecsProviderTest.kt @@ -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()) ) } } diff --git a/tests/src/com/android/launcher3/responsive/ResponsiveCellSpecsProviderTest.kt b/tests/multivalentTests/src/com/android/launcher3/responsive/ResponsiveCellSpecsProviderTest.kt similarity index 92% rename from tests/src/com/android/launcher3/responsive/ResponsiveCellSpecsProviderTest.kt rename to tests/multivalentTests/src/com/android/launcher3/responsive/ResponsiveCellSpecsProviderTest.kt index 50cd358b7e..11161bd525 100644 --- a/tests/src/com/android/launcher3/responsive/ResponsiveCellSpecsProviderTest.kt +++ b/tests/multivalentTests/src/com/android/launcher3/responsive/ResponsiveCellSpecsProviderTest.kt @@ -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()) ) } } diff --git a/tests/src/com/android/launcher3/responsive/ResponsiveSpecsProviderTest.kt b/tests/multivalentTests/src/com/android/launcher3/responsive/ResponsiveSpecsProviderTest.kt similarity index 93% rename from tests/src/com/android/launcher3/responsive/ResponsiveSpecsProviderTest.kt rename to tests/multivalentTests/src/com/android/launcher3/responsive/ResponsiveSpecsProviderTest.kt index 54a1dc567f..c74f7a8ca0 100644 --- a/tests/src/com/android/launcher3/responsive/ResponsiveSpecsProviderTest.kt +++ b/tests/multivalentTests/src/com/android/launcher3/responsive/ResponsiveSpecsProviderTest.kt @@ -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) } diff --git a/tests/src/com/android/launcher3/responsive/WorkspaceSpecsTest.kt b/tests/multivalentTests/src/com/android/launcher3/responsive/WorkspaceSpecsTest.kt similarity index 94% rename from tests/src/com/android/launcher3/responsive/WorkspaceSpecsTest.kt rename to tests/multivalentTests/src/com/android/launcher3/responsive/WorkspaceSpecsTest.kt index 17b0ee4020..bc133ba7bb 100644 --- a/tests/src/com/android/launcher3/responsive/WorkspaceSpecsTest.kt +++ b/tests/multivalentTests/src/com/android/launcher3/responsive/WorkspaceSpecsTest.kt @@ -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 ) } diff --git a/tests/src/com/android/launcher3/util/TestResourceHelper.kt b/tests/multivalentTests/src/com/android/launcher3/util/TestResourceHelper.kt similarity index 51% rename from tests/src/com/android/launcher3/util/TestResourceHelper.kt rename to tests/multivalentTests/src/com/android/launcher3/util/TestResourceHelper.kt index b4d3ba853a..d95c6f8b50 100644 --- a/tests/src/com/android/launcher3/util/TestResourceHelper.kt +++ b/tests/multivalentTests/src/com/android/launcher3/util/TestResourceHelper.kt @@ -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() + } }