From ae6ad95ee036798b0fad21e3d10168a75780ff80 Mon Sep 17 00:00:00 2001 From: Joshua Trask Date: Wed, 8 Dec 2021 14:28:45 -0500 Subject: [PATCH] Use a valid mime type in ChooserActivityTest cases This doesn't affect any of our currently-enabled tests, but as in b/208837849 it can apparently cause behavioral changes in our currently-disabled logging tests; in order to re-enable those tests for b/208803748, we'll need to specify one of these behavior cases and should prefer to match what happens when the mime type *is* valid. "Golden" event sequences can be re-recorded for those tests after this CL is merged, and that should be sufficient to re-enable them. More concerningly, an earlier attempt to re-enable some ChooserActivityTest cases resulted in flakes when an exception was thrown parsing the invalid mime types (b/208898133). It's unclear why this wouldn't fail more consistently, and perhaps that's why these tests were disabled in the first place -- but if we have specific intentions in this case, we should test them explicitly instead of allowing them to interfere with test cases that were simply trying to set up "typical" conditions. Test: `atest ChooserActivityTest` Bug: 209804664 Change-Id: I02854aac788d36165ad9e0eabd6f5e02e1d1204d --- .../internal/app/ChooserActivityTest.java | 48 ++++++++++--------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/core/tests/coretests/src/com/android/internal/app/ChooserActivityTest.java b/core/tests/coretests/src/com/android/internal/app/ChooserActivityTest.java index cfcbc7dec7d17..5cf69045ab542 100644 --- a/core/tests/coretests/src/com/android/internal/app/ChooserActivityTest.java +++ b/core/tests/coretests/src/com/android/internal/app/ChooserActivityTest.java @@ -132,6 +132,8 @@ public class ChooserActivityTest { }); } + private static final String TEST_MIME_TYPE = "application/TestType"; + private static final int CONTENT_PREVIEW_IMAGE = 1; private static final int CONTENT_PREVIEW_FILE = 2; private static final int CONTENT_PREVIEW_TEXT = 3; @@ -778,7 +780,7 @@ public class ChooserActivityTest { @Test public void testOnCreateLogging() { Intent sendIntent = createSendTextIntent(); - sendIntent.setType("TestType"); + sendIntent.setType(TEST_MIME_TYPE); MetricsLogger mockLogger = sOverrides.metricsLogger; ArgumentCaptor logMakerCaptor = ArgumentCaptor.forClass(LogMaker.class); @@ -794,7 +796,7 @@ public class ChooserActivityTest { assertThat(logMakerCaptor .getAllValues().get(0) .getTaggedData(MetricsEvent.FIELD_SHARESHEET_MIMETYPE), - is("TestType")); + is(TEST_MIME_TYPE)); assertThat(logMakerCaptor .getAllValues().get(0) .getSubtype(), @@ -804,7 +806,7 @@ public class ChooserActivityTest { @Test public void testOnCreateLoggingFromWorkProfile() { Intent sendIntent = createSendTextIntent(); - sendIntent.setType("TestType"); + sendIntent.setType(TEST_MIME_TYPE); sOverrides.alternateProfileSetting = MetricsEvent.MANAGED_PROFILE; MetricsLogger mockLogger = sOverrides.metricsLogger; ArgumentCaptor logMakerCaptor = ArgumentCaptor.forClass(LogMaker.class); @@ -820,7 +822,7 @@ public class ChooserActivityTest { assertThat(logMakerCaptor .getAllValues().get(0) .getTaggedData(MetricsEvent.FIELD_SHARESHEET_MIMETYPE), - is("TestType")); + is(TEST_MIME_TYPE)); assertThat(logMakerCaptor .getAllValues().get(0) .getSubtype(), @@ -1476,7 +1478,7 @@ public class ChooserActivityTest { // enable the work tab feature flag ResolverActivity.ENABLE_TABBED_VIEW = true; Intent sendIntent = createSendTextIntent(); - sendIntent.setType("TestType"); + sendIntent.setType(TEST_MIME_TYPE); markWorkProfileUserAvailable(); mActivityRule.launchActivity(Intent.createChooser(sendIntent, "work tab test")); @@ -1490,7 +1492,7 @@ public class ChooserActivityTest { // enable the work tab feature flag ResolverActivity.ENABLE_TABBED_VIEW = true; Intent sendIntent = createSendTextIntent(); - sendIntent.setType("TestType"); + sendIntent.setType(TEST_MIME_TYPE); mActivityRule.launchActivity(Intent.createChooser(sendIntent, "work tab test")); waitForIdle(); @@ -1512,7 +1514,7 @@ public class ChooserActivityTest { workProfileTargets); setupResolverControllers(personalResolvedComponentInfos, workResolvedComponentInfos); Intent sendIntent = createSendTextIntent(); - sendIntent.setType("TestType"); + sendIntent.setType(TEST_MIME_TYPE); markWorkProfileUserAvailable(); final ChooserWrapperActivity activity = @@ -1538,7 +1540,7 @@ public class ChooserActivityTest { createResolvedComponentsForTest(workProfileTargets); setupResolverControllers(personalResolvedComponentInfos, workResolvedComponentInfos); Intent sendIntent = createSendTextIntent(); - sendIntent.setType("TestType"); + sendIntent.setType(TEST_MIME_TYPE); final ChooserWrapperActivity activity = mActivityRule.launchActivity(Intent.createChooser(sendIntent, "work tab test")); @@ -1561,7 +1563,7 @@ public class ChooserActivityTest { createResolvedComponentsForTest(workProfileTargets); setupResolverControllers(personalResolvedComponentInfos, workResolvedComponentInfos); Intent sendIntent = createSendTextIntent(); - sendIntent.setType("TestType"); + sendIntent.setType(TEST_MIME_TYPE); ResolveInfo[] chosen = new ResolveInfo[1]; sOverrides.onSafelyStartCallback = targetInfo -> { chosen[0] = targetInfo.getResolveInfo(); @@ -1597,7 +1599,7 @@ public class ChooserActivityTest { sOverrides.hasCrossProfileIntents = false; setupResolverControllers(personalResolvedComponentInfos, workResolvedComponentInfos); Intent sendIntent = createSendTextIntent(); - sendIntent.setType("TestType"); + sendIntent.setType(TEST_MIME_TYPE); final ChooserWrapperActivity activity = mActivityRule.launchActivity(Intent.createChooser(sendIntent, "work tab test")); @@ -1623,7 +1625,7 @@ public class ChooserActivityTest { sOverrides.isQuietModeEnabled = true; setupResolverControllers(personalResolvedComponentInfos, workResolvedComponentInfos); Intent sendIntent = createSendTextIntent(); - sendIntent.setType("TestType"); + sendIntent.setType(TEST_MIME_TYPE); ResolverActivity.ENABLE_TABBED_VIEW = true; final ChooserWrapperActivity activity = @@ -1649,7 +1651,7 @@ public class ChooserActivityTest { createResolvedComponentsForTest(0); setupResolverControllers(personalResolvedComponentInfos, workResolvedComponentInfos); Intent sendIntent = createSendTextIntent(); - sendIntent.setType("TestType"); + sendIntent.setType(TEST_MIME_TYPE); final ChooserWrapperActivity activity = mActivityRule.launchActivity(Intent.createChooser(sendIntent, "work tab test")); @@ -1676,7 +1678,7 @@ public class ChooserActivityTest { sOverrides.isQuietModeEnabled = true; sOverrides.hasCrossProfileIntents = false; Intent sendIntent = createSendTextIntent(); - sendIntent.setType("TestType"); + sendIntent.setType(TEST_MIME_TYPE); mActivityRule.launchActivity(Intent.createChooser(sendIntent, "work tab test")); waitForIdle(); @@ -1701,7 +1703,7 @@ public class ChooserActivityTest { setupResolverControllers(personalResolvedComponentInfos, workResolvedComponentInfos); sOverrides.isQuietModeEnabled = true; Intent sendIntent = createSendTextIntent(); - sendIntent.setType("TestType"); + sendIntent.setType(TEST_MIME_TYPE); mActivityRule.launchActivity(Intent.createChooser(sendIntent, "work tab test")); waitForIdle(); @@ -1959,7 +1961,7 @@ public class ChooserActivityTest { createResolvedComponentsForTest(workProfileTargets); setupResolverControllers(personalResolvedComponentInfos, workResolvedComponentInfos); Intent sendIntent = createSendTextIntent(); - sendIntent.setType("TestType"); + sendIntent.setType(TEST_MIME_TYPE); final ChooserWrapperActivity activity = mActivityRule.launchActivity(Intent.createChooser(sendIntent, "work tab test")); @@ -1979,7 +1981,7 @@ public class ChooserActivityTest { // second one should be SHARESHEET_STARTED event assertThat(logger.get(1).atomId, is(FrameworkStatsLog.SHARESHEET_STARTED)); assertThat(logger.get(1).intent, is(Intent.ACTION_SEND)); - assertThat(logger.get(1).mimeType, is("TestType")); + assertThat(logger.get(1).mimeType, is(TEST_MIME_TYPE)); assertThat(logger.get(1).packageName, is("com.android.frameworks.coretests")); assertThat(logger.get(1).appProvidedApp, is(0)); assertThat(logger.get(1).appProvidedDirect, is(0)); @@ -2019,7 +2021,7 @@ public class ChooserActivityTest { Mockito.isA(List.class))) .thenReturn(new ArrayList<>(personalResolvedComponentInfos)); Intent sendIntent = createSendTextIntent(); - sendIntent.setType("TestType"); + sendIntent.setType(TEST_MIME_TYPE); ResolveInfo[] chosen = new ResolveInfo[1]; sOverrides.onSafelyStartCallback = targetInfo -> { chosen[0] = targetInfo.getResolveInfo(); @@ -2043,7 +2045,7 @@ public class ChooserActivityTest { Mockito.isA(List.class))) .thenReturn(new ArrayList<>(personalResolvedComponentInfos)); Intent sendIntent = createSendTextIntent(); - sendIntent.setType("TestType"); + sendIntent.setType(TEST_MIME_TYPE); ResolveInfo[] chosen = new ResolveInfo[1]; sOverrides.onSafelyStartCallback = targetInfo -> { chosen[0] = targetInfo.getResolveInfo(); @@ -2244,7 +2246,7 @@ public class ChooserActivityTest { return null; }; Intent sendIntent = createSendTextIntent(); - sendIntent.setType("TestType"); + sendIntent.setType(TEST_MIME_TYPE); mActivityRule.launchActivity(Intent.createChooser(sendIntent, "work tab test")); waitForIdle(); @@ -2275,7 +2277,7 @@ public class ChooserActivityTest { return null; }; Intent sendIntent = createSendTextIntent(); - sendIntent.setType("TestType"); + sendIntent.setType(TEST_MIME_TYPE); mActivityRule.launchActivity(Intent.createChooser(sendIntent, "work tab test")); waitForIdle(); @@ -2299,7 +2301,7 @@ public class ChooserActivityTest { createResolvedComponentsForTest(3); setupResolverControllers(personalResolvedComponentInfos, workResolvedComponentInfos); Intent sendIntent = createSendTextIntent(); - sendIntent.setType("TestType"); + sendIntent.setType(TEST_MIME_TYPE); sOverrides.isWorkProfileUserRunning = false; final ChooserWrapperActivity activity = @@ -2331,7 +2333,7 @@ public class ChooserActivityTest { return null; }; Intent sendIntent = createSendTextIntent(); - sendIntent.setType("TestType"); + sendIntent.setType(TEST_MIME_TYPE); mActivityRule.launchActivity(Intent.createChooser(sendIntent, "work tab test")); waitForIdle(); @@ -2355,7 +2357,7 @@ public class ChooserActivityTest { createResolvedComponentsForTest(3); setupResolverControllers(personalResolvedComponentInfos, workResolvedComponentInfos); Intent sendIntent = createSendTextIntent(); - sendIntent.setType("TestType"); + sendIntent.setType(TEST_MIME_TYPE); sOverrides.isWorkProfileUserUnlocked = false; final ChooserWrapperActivity activity =