From 6fd5a4c84d14fdc40809fbf5ea8367da32efa57e Mon Sep 17 00:00:00 2001 From: Daniel Norman Date: Wed, 10 Jan 2024 21:55:16 +0000 Subject: [PATCH] Adapt clickShortcutSettingsPreference* test to shortcut edit activity. This failure appeared when rolling out flag cleanup_accessibility_warning_dialog. This test used to always launch the editor dialog, but that logic has changed with the rollout of another feature to replace the dialog with an activity launch. Bug: 319497827 Test: ToggleAccessibilityServicePreferenceFragmentTest Change-Id: Ie4e3ae5eff8ed16cded622ce71bbd3a6a55cdedb --- ...sibilityServicePreferenceFragmentTest.java | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/tests/robotests/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragmentTest.java index 8cdb17ea5a6..9bcd327d776 100644 --- a/tests/robotests/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragmentTest.java +++ b/tests/robotests/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragmentTest.java @@ -19,8 +19,10 @@ package com.android.settings.accessibility; import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.accessibilityservice.AccessibilityServiceInfo; @@ -33,6 +35,7 @@ import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.pm.ServiceInfo; import android.os.Bundle; +import android.platform.test.annotations.RequiresFlagsDisabled; import android.platform.test.annotations.RequiresFlagsEnabled; import android.platform.test.flag.junit.CheckFlagsRule; import android.platform.test.flag.junit.DeviceFlagsValueProvider; @@ -45,7 +48,9 @@ import androidx.preference.PreferenceScreen; import androidx.test.core.app.ApplicationProvider; import com.android.settings.R; +import com.android.settings.SettingsActivity; import com.android.settings.accessibility.AccessibilityUtil.QuickSettingsTooltipType; +import com.android.settings.accessibility.shortcuts.EditShortcutsPreferenceFragment; import com.android.settings.widget.SettingsMainSwitchPreference; import org.junit.Before; @@ -53,6 +58,7 @@ import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Answers; +import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; @@ -298,7 +304,9 @@ public class ToggleAccessibilityServicePreferenceFragmentTest { @Test @RequiresFlagsEnabled(Flags.FLAG_CLEANUP_ACCESSIBILITY_WARNING_DIALOG) - public void clickShortcutSettingsPreference_warningNotRequired_dontShowWarning() + @RequiresFlagsDisabled( + com.android.settings.accessibility.Flags.FLAG_EDIT_SHORTCUTS_IN_FULL_SCREEN) + public void clickShortcutSettingsPreference_warningNotRequired_dontShowWarning_showDialog() throws Throwable { setupServiceWarningRequired(false); mFragment.mShortcutPreference = new ShortcutPreference(mContext, /* attrs= */null); @@ -309,6 +317,23 @@ public class ToggleAccessibilityServicePreferenceFragmentTest { AccessibilityDialogUtils.DialogEnums.EDIT_SHORTCUT); } + @Test + @RequiresFlagsEnabled({Flags.FLAG_CLEANUP_ACCESSIBILITY_WARNING_DIALOG, + com.android.settings.accessibility.Flags.FLAG_EDIT_SHORTCUTS_IN_FULL_SCREEN}) + public void clickShortcutSettingsPreference_warningNotRequired_dontShowWarning_launchActivity() + throws Throwable { + setupServiceWarningRequired(false); + mFragment.mShortcutPreference = new ShortcutPreference(mContext, /* attrs= */null); + doNothing().when(mContext).startActivity(any()); + + mFragment.onSettingsClicked(mFragment.mShortcutPreference); + + ArgumentCaptor captor = ArgumentCaptor.forClass(Intent.class); + verify(mContext).startActivity(captor.capture()); + assertThat(captor.getValue().getExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT)) + .isEqualTo(EditShortcutsPreferenceFragment.class.getName()); + } + private void setupTileService(String packageName, String name, String tileName) { final Intent tileProbe = new Intent(TileService.ACTION_QS_TILE); final ResolveInfo info = new ResolveInfo();