Clean up test with Robolectric's way to launch a fragment with an

activity.

Robolectric has shadows for many Android framework's code. With the help
of Robolectric, We don't need
to use mock the return value of every method Activity or Fragment has.

Bug: 283885638
Test: atest AccessibilityDetailsSettingsFragmentTest

Change-Id: I77dfa755e3a1b6a240a06f74b5a6c5984534c831
This commit is contained in:
Chun-Ku Lin
2023-05-23 17:32:44 +00:00
parent 53c0788cc9
commit f4d7518710
2 changed files with 85 additions and 70 deletions

View File

@@ -19,6 +19,7 @@ import org.robolectric.annotation.Implements;
import org.robolectric.shadow.api.Shadow;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -36,6 +37,8 @@ public class ShadowDevicePolicyManager extends org.robolectric.shadows.ShadowDev
private int mPasswordMinLength = 0;
private int mPasswordMinSymbols = 0;
private List<String> mPermittedAccessibilityServices = null;
public void setShortSupportMessageForUser(ComponentName admin, int userHandle, String message) {
mSupportMessagesMap.put(Objects.hash(admin, userHandle), message);
}
@@ -122,6 +125,16 @@ public class ShadowDevicePolicyManager extends org.robolectric.shadows.ShadowDev
mPasswordMinSymbols = numOfSymbols;
}
public void setPermittedAccessibilityServices(List<String> permittedAccessibilityServices) {
mPermittedAccessibilityServices = permittedAccessibilityServices;
}
@Implementation
@Nullable
public List<String> getPermittedAccessibilityServices(int userId) {
return mPermittedAccessibilityServices;
}
public static ShadowDevicePolicyManager getShadow() {
return (ShadowDevicePolicyManager) Shadow.extract(
RuntimeEnvironment.application.getSystemService(DevicePolicyManager.class));