OSDN Git Service

Fix RemoveAccountPreferenceControllerTest
authorjeffreyhuang <jeffreyhuang@google.com>
Wed, 22 Nov 2017 21:55:35 +0000 (13:55 -0800)
committerjeffreyhuang <jeffreyhuang@google.com>
Wed, 22 Nov 2017 22:19:15 +0000 (14:19 -0800)
 - prevent the test from hanging due to passing a deep fragment mock

Test: make RunSettingsRoboTests -j40
Change-Id: I60b6f32b19563dbcd25eda9d98a8c0266480a3f9

tests/robotests/src/com/android/settings/accounts/RemoveAccountPreferenceControllerTest.java

index d4e866f..8250340 100644 (file)
@@ -40,6 +40,7 @@ import android.os.Handler;
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.support.v14.preference.PreferenceFragment;
+import android.support.v7.preference.PreferenceManager;
 import android.support.v7.preference.PreferenceScreen;
 import android.widget.Button;
 
@@ -60,7 +61,7 @@ import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowApplication;
 
 @RunWith(SettingsRobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O)
 public class RemoveAccountPreferenceControllerTest {
 
     private static final String KEY_REMOVE_ACCOUNT = "remove_account";
@@ -70,9 +71,11 @@ public class RemoveAccountPreferenceControllerTest {
     private AccountManager mAccountManager;
     @Mock
     private DevicePolicyManagerWrapper mDevicePolicyManager;
-    @Mock(answer = RETURNS_DEEP_STUBS)
+    @Mock
     private PreferenceFragment mFragment;
     @Mock
+    private PreferenceManager mPreferenceManager;
+    @Mock
     private PreferenceScreen mScreen;
     @Mock
     private FragmentManager mFragmentManager;
@@ -92,7 +95,8 @@ public class RemoveAccountPreferenceControllerTest {
         mContext = spy(shadowContext.getApplicationContext());
 
         when(mFragment.getPreferenceScreen()).thenReturn(mScreen);
-        when(mFragment.getPreferenceManager().getContext()).thenReturn(mContext);
+        when(mFragment.getPreferenceManager()).thenReturn(mPreferenceManager);
+        when(mPreferenceManager.getContext()).thenReturn(mContext);
         when(mFragment.getFragmentManager()).thenReturn(mFragmentManager);
         when(mFragmentManager.beginTransaction()).thenReturn(mFragmentTransaction);
         when(mAccountManager.getAuthenticatorTypesAsUser(anyInt())).thenReturn(