Provide a way to Magnification settings via intent
Framework needs a way to launch magnification settings. bug: 168635084 Test: adb shell am start -a \ "android.settings.ACCESSIBILITY_DETAILS_SETTINGS" \ --es android.intent.extra.COMPONENT_NAME \ "com.android.server.accessibility/Magnification" AccessibilityDetailsSettingsFragmentTest Change-Id: Iafb5ad4802a52e4bf3c443af99cd27ef0da0ea29
This commit is contained in:
@@ -16,6 +16,10 @@
|
||||
|
||||
package com.android.settings.accessibility;
|
||||
|
||||
import static com.android.internal.accessibility.AccessibilityShortcutController.MAGNIFICATION_COMPONENT_NAME;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.spy;
|
||||
@@ -33,11 +37,14 @@ import android.view.accessibility.AccessibilityManager;
|
||||
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
|
||||
import com.android.settings.SettingsActivity;
|
||||
import com.android.settings.testutils.shadow.ShadowFragment;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Captor;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
@@ -61,6 +68,8 @@ public class AccessibilityDetailsSettingsFragmentTest {
|
||||
private Context mContext;
|
||||
private AccessibilityDetailsSettingsFragment mFragment;
|
||||
private ShadowAccessibilityManager mShadowAccessibilityManager;
|
||||
@Captor
|
||||
private ArgumentCaptor<Intent> mIntentArgumentCaptor;
|
||||
@Mock private FragmentActivity mActivity;
|
||||
|
||||
@Before
|
||||
@@ -76,39 +85,43 @@ public class AccessibilityDetailsSettingsFragmentTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onCreate_hasValidExtraComponentName_shouldOpenAccessibilityDetailsSettings() {
|
||||
public void onCreate_hasValidExtraComponentName_launchExpectedFragmentAndFinish() {
|
||||
final Intent intent = new Intent();
|
||||
intent.putExtra(Intent.EXTRA_COMPONENT_NAME, COMPONENT_NAME);
|
||||
doReturn(intent).when(mActivity).getIntent();
|
||||
|
||||
mFragment.onCreate(Bundle.EMPTY);
|
||||
|
||||
verify(mFragment).openAccessibilityDetailsSettingsAndFinish(any());
|
||||
assertStartActivityWithExpectedFragment(mActivity,
|
||||
ToggleAccessibilityServicePreferenceFragment.class.getName());
|
||||
verify(mActivity).finish();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onCreate_hasInvalidExtraComponentName_shouldOpenAccessibilityServicesList() {
|
||||
public void onCreate_hasInvalidExtraComponentName_launchAccessibilitySettingsAndFinish() {
|
||||
final Intent intent = new Intent();
|
||||
intent.putExtra(Intent.EXTRA_COMPONENT_NAME, PACKAGE_NAME + "/.service");
|
||||
doReturn(intent).when(mActivity).getIntent();
|
||||
|
||||
mFragment.onCreate(Bundle.EMPTY);
|
||||
|
||||
verify(mFragment).openAccessibilitySettingsAndFinish();
|
||||
assertStartActivityWithExpectedFragment(mActivity, AccessibilitySettings.class.getName());
|
||||
verify(mActivity).finish();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onCreate_hasNoExtraComponentName_shouldOpenAccessibilityServicesList() {
|
||||
public void onCreate_hasNoExtraComponentName_launchAccessibilitySettingsAndFinish() {
|
||||
final Intent intent = new Intent();
|
||||
doReturn(intent).when(mActivity).getIntent();
|
||||
|
||||
mFragment.onCreate(Bundle.EMPTY);
|
||||
|
||||
verify(mFragment).openAccessibilitySettingsAndFinish();
|
||||
assertStartActivityWithExpectedFragment(mActivity, AccessibilitySettings.class.getName());
|
||||
verify(mActivity).finish();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onCreate_extraComponentNameIsDisallowed_shouldOpenAccessibilityServicesList() {
|
||||
public void onCreate_extraComponentNameIsDisallowed_launchAccessibilitySettingsAndFinish() {
|
||||
final Intent intent = new Intent();
|
||||
intent.putExtra(Intent.EXTRA_COMPONENT_NAME, COMPONENT_NAME);
|
||||
doReturn(intent).when(mActivity).getIntent();
|
||||
@@ -116,7 +129,23 @@ public class AccessibilityDetailsSettingsFragmentTest {
|
||||
|
||||
mFragment.onCreate(Bundle.EMPTY);
|
||||
|
||||
verify(mFragment).openAccessibilitySettingsAndFinish();
|
||||
assertStartActivityWithExpectedFragment(mActivity, AccessibilitySettings.class.getName());
|
||||
verify(mActivity).finish();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onCreate_magnificationComponentName_launchMagnificationFragmentAndFinish() {
|
||||
final Intent intent = new Intent();
|
||||
intent.putExtra(Intent.EXTRA_COMPONENT_NAME,
|
||||
MAGNIFICATION_COMPONENT_NAME.flattenToString());
|
||||
doReturn(intent).when(mActivity).getIntent();
|
||||
|
||||
mFragment.onCreate(Bundle.EMPTY);
|
||||
|
||||
|
||||
assertStartActivityWithExpectedFragment(mActivity,
|
||||
ToggleScreenMagnificationPreferenceFragment.class.getName());
|
||||
verify(mActivity).finish();
|
||||
}
|
||||
|
||||
private AccessibilityServiceInfo getMockAccessibilityServiceInfo() {
|
||||
@@ -148,4 +177,11 @@ public class AccessibilityDetailsSettingsFragmentTest {
|
||||
infoList.add(getMockAccessibilityServiceInfo());
|
||||
return infoList;
|
||||
}
|
||||
|
||||
private void assertStartActivityWithExpectedFragment(Context mockContext, String fragmentName) {
|
||||
verify(mockContext).startActivity(mIntentArgumentCaptor.capture());
|
||||
assertThat(mIntentArgumentCaptor.getValue()
|
||||
.getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))
|
||||
.isEqualTo(fragmentName);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user