Move Magnification Mode Settings to the main page
We move the mode settings because currently there is only one item in the settings page. To fully test all logic, we don't use fragament anymore in the controllerTest, and test the interaction between the controller and the fragment in the test of these two fragments. Bug: 182992338 Test: atest ToggleScreenMagnificationPreferenceFragmentTest atest MagnificationModePreferenceControllerTest atest MagnificationSettingsFragmentTest manually test Change-Id: Ia6b0ea4f116f3215407637d7aeaddb8d8196d8fb
This commit is contained in:
@@ -18,23 +18,78 @@ package com.android.settings.accessibility;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import android.content.Context;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.anyInt;
|
||||
import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
import androidx.test.core.app.ApplicationProvider;
|
||||
|
||||
import com.android.settings.DialogCreatable;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.testutils.XmlTestUtils;
|
||||
import com.android.settings.testutils.shadow.ShadowDashboardFragment;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Answers;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.annotation.Config;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/** Tests for {@link MagnificationSettingsFragment} */
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@Config(shadows = ShadowDashboardFragment.class)
|
||||
public class MagnificationSettingsFragmentTest {
|
||||
|
||||
private final Context mContext = ApplicationProvider.getApplicationContext();
|
||||
private MagnificationSettingsFragment mFragment;
|
||||
private PreferenceScreen mScreen;
|
||||
|
||||
@Before
|
||||
public void setup() {
|
||||
mContext.setTheme(R.style.Theme_AppCompat);
|
||||
mFragment = spy(new MagnificationSettingsFragment());
|
||||
mScreen = new PreferenceScreen(mContext, null);
|
||||
|
||||
doReturn(mContext).when(mFragment).getContext();
|
||||
doReturn(mScreen).when(mFragment).getPreferenceScreen();
|
||||
doReturn(mock(FragmentManager.class, Answers.RETURNS_DEEP_STUBS)).when(
|
||||
mFragment).getChildFragmentManager();
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void showPreferenceOnTheScreen_setDialogHelper() {
|
||||
showPreferenceOnTheScreen(null);
|
||||
|
||||
verify(mFragment).setDialogDelegate(any(MagnificationModePreferenceController.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onCreateDialog_setDialogDelegate_invokeDialogDelegate() {
|
||||
final DialogCreatable dialogDelegate = mock(DialogCreatable.class, RETURNS_DEEP_STUBS);
|
||||
when(dialogDelegate.getDialogMetricsCategory(anyInt())).thenReturn(1);
|
||||
|
||||
mFragment.setDialogDelegate(dialogDelegate);
|
||||
|
||||
mFragment.onCreateDialog(1);
|
||||
mFragment.getDialogMetricsCategory(1);
|
||||
|
||||
verify(dialogDelegate).onCreateDialog(1);
|
||||
verify(dialogDelegate).getDialogMetricsCategory(1);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getNonIndexableKeys_existInXmlLayout() {
|
||||
@@ -46,4 +101,10 @@ public class MagnificationSettingsFragmentTest {
|
||||
R.xml.accessibility_magnification_service_settings);
|
||||
assertThat(keys).containsAtLeastElementsIn(niks);
|
||||
}
|
||||
|
||||
private void showPreferenceOnTheScreen(Bundle savedInstanceState) {
|
||||
mFragment.onAttach(mContext);
|
||||
mFragment.onCreate(savedInstanceState);
|
||||
mFragment.onResume();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user