Loading src/com/android/settings/print/PrintSettingPreferenceController.java +7 −2 Original line number Diff line number Diff line Loading @@ -60,6 +60,7 @@ public class PrintSettingPreferenceController extends BasePreferenceController i @Override public int getAvailabilityStatus() { return mPackageManager.hasSystemFeature(PackageManager.FEATURE_PRINTING) && mPrintManager != null ? AVAILABLE : UNSUPPORTED_ON_DEVICE; } Loading @@ -71,13 +72,17 @@ public class PrintSettingPreferenceController extends BasePreferenceController i @Override public void onStart() { if (mPrintManager != null) { mPrintManager.addPrintJobStateChangeListener(this); } } @Override public void onStop() { if (mPrintManager != null) { mPrintManager.removePrintJobStateChangeListener(this); } } @Override public void onPrintJobStateChanged(PrintJobId printJobId) { Loading tests/robotests/src/com/android/settings/print/PrintSettingsPreferenceControllerTest.java +44 −0 Original line number Diff line number Diff line Loading @@ -19,14 +19,19 @@ package com.android.settings.print; import static androidx.lifecycle.Lifecycle.Event.ON_START; import static androidx.lifecycle.Lifecycle.Event.ON_STOP; import static com.android.settings.core.BasePreferenceController.AVAILABLE; import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.content.Context; import android.content.pm.PackageManager; import android.os.UserManager; import android.print.PrintJob; import android.print.PrintJobInfo; Loading Loading @@ -61,6 +66,8 @@ public class PrintSettingsPreferenceControllerTest { private UserManager mUserManager; @Mock private RestrictedPreference mPreference; @Mock private PackageManager mPackageManager; private Context mContext; private PrintSettingPreferenceController mController; Loading @@ -77,6 +84,7 @@ public class PrintSettingsPreferenceControllerTest { mLifecycleOwner = () -> mLifecycle; mLifecycle = new Lifecycle(mLifecycleOwner); ReflectionHelpers.setField(mController, "mPrintManager", mPrintManager); ReflectionHelpers.setField(mController, "mPackageManager", mPackageManager); mLifecycle.addObserver(mController); } Loading @@ -89,6 +97,17 @@ public class PrintSettingsPreferenceControllerTest { verify(mPrintManager).removePrintJobStateChangeListener(mController); } @Test public void onStartStop_printManagerIsNull_doNothing() { ReflectionHelpers.setField(mController, "mPrintManager", null); mLifecycle.handleLifecycleEvent(ON_START); mLifecycle.handleLifecycleEvent(ON_STOP); verify(mPrintManager, never()).addPrintJobStateChangeListener(mController); verify(mPrintManager, never()).removePrintJobStateChangeListener(mController); } @Test public void updateState_hasActiveJob_shouldSetSummaryToNumberOfJobs() { final List<PrintJob> printJobs = new ArrayList<>(); Loading Loading @@ -133,4 +152,29 @@ public class PrintSettingsPreferenceControllerTest { mController.updateState(mPreference); verify(mPreference).checkRestrictionAndSetDisabled(UserManager.DISALLOW_PRINTING); } @Test public void getAvailabilityStatus_hasFeature_returnsAvailable() { when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_PRINTING)) .thenReturn(true); assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE); } @Test public void getAvailabilityStatus_noFeature_returnsUnsupported() { when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_PRINTING)) .thenReturn(false); assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE); } @Test public void getAvailabilityStatus_printManagerIsNull_returnsUnsupported() { ReflectionHelpers.setField(mController, "mPrintManager", null); when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_PRINTING)) .thenReturn(true); assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE); } } Loading
src/com/android/settings/print/PrintSettingPreferenceController.java +7 −2 Original line number Diff line number Diff line Loading @@ -60,6 +60,7 @@ public class PrintSettingPreferenceController extends BasePreferenceController i @Override public int getAvailabilityStatus() { return mPackageManager.hasSystemFeature(PackageManager.FEATURE_PRINTING) && mPrintManager != null ? AVAILABLE : UNSUPPORTED_ON_DEVICE; } Loading @@ -71,13 +72,17 @@ public class PrintSettingPreferenceController extends BasePreferenceController i @Override public void onStart() { if (mPrintManager != null) { mPrintManager.addPrintJobStateChangeListener(this); } } @Override public void onStop() { if (mPrintManager != null) { mPrintManager.removePrintJobStateChangeListener(this); } } @Override public void onPrintJobStateChanged(PrintJobId printJobId) { Loading
tests/robotests/src/com/android/settings/print/PrintSettingsPreferenceControllerTest.java +44 −0 Original line number Diff line number Diff line Loading @@ -19,14 +19,19 @@ package com.android.settings.print; import static androidx.lifecycle.Lifecycle.Event.ON_START; import static androidx.lifecycle.Lifecycle.Event.ON_STOP; import static com.android.settings.core.BasePreferenceController.AVAILABLE; import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.content.Context; import android.content.pm.PackageManager; import android.os.UserManager; import android.print.PrintJob; import android.print.PrintJobInfo; Loading Loading @@ -61,6 +66,8 @@ public class PrintSettingsPreferenceControllerTest { private UserManager mUserManager; @Mock private RestrictedPreference mPreference; @Mock private PackageManager mPackageManager; private Context mContext; private PrintSettingPreferenceController mController; Loading @@ -77,6 +84,7 @@ public class PrintSettingsPreferenceControllerTest { mLifecycleOwner = () -> mLifecycle; mLifecycle = new Lifecycle(mLifecycleOwner); ReflectionHelpers.setField(mController, "mPrintManager", mPrintManager); ReflectionHelpers.setField(mController, "mPackageManager", mPackageManager); mLifecycle.addObserver(mController); } Loading @@ -89,6 +97,17 @@ public class PrintSettingsPreferenceControllerTest { verify(mPrintManager).removePrintJobStateChangeListener(mController); } @Test public void onStartStop_printManagerIsNull_doNothing() { ReflectionHelpers.setField(mController, "mPrintManager", null); mLifecycle.handleLifecycleEvent(ON_START); mLifecycle.handleLifecycleEvent(ON_STOP); verify(mPrintManager, never()).addPrintJobStateChangeListener(mController); verify(mPrintManager, never()).removePrintJobStateChangeListener(mController); } @Test public void updateState_hasActiveJob_shouldSetSummaryToNumberOfJobs() { final List<PrintJob> printJobs = new ArrayList<>(); Loading Loading @@ -133,4 +152,29 @@ public class PrintSettingsPreferenceControllerTest { mController.updateState(mPreference); verify(mPreference).checkRestrictionAndSetDisabled(UserManager.DISALLOW_PRINTING); } @Test public void getAvailabilityStatus_hasFeature_returnsAvailable() { when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_PRINTING)) .thenReturn(true); assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE); } @Test public void getAvailabilityStatus_noFeature_returnsUnsupported() { when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_PRINTING)) .thenReturn(false); assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE); } @Test public void getAvailabilityStatus_printManagerIsNull_returnsUnsupported() { ReflectionHelpers.setField(mController, "mPrintManager", null); when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_PRINTING)) .thenReturn(true); assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE); } }