Merge "Revert "Revert "[Settings] Remove dependency of TelephonyIntents"""

This commit is contained in:
TreeHugger Robot
2020-02-04 17:56:39 +00:00
committed by Android (Google) Code Review
3 changed files with 109 additions and 20 deletions

View File

@@ -33,14 +33,19 @@ import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.robolectric.Shadows.shadowOf;
import android.content.Context;
import android.net.Uri;
import android.os.Bundle;
import android.provider.Settings;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.util.ArrayMap;
import android.util.FeatureFlagUtils;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.android.settings.core.FeatureFlags;
import com.android.settings.homepage.contextualcards.conditional.ConditionContextualCardController;
import com.android.settings.homepage.contextualcards.conditional.ConditionFooterContextualCard;
@@ -58,8 +63,9 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.shadows.ShadowSubscriptionManager;
import org.robolectric.shadows.ShadowTelephonyManager;
import java.util.ArrayList;
import java.util.Arrays;
@@ -67,8 +73,9 @@ import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@RunWith(RobolectricTestRunner.class)
@RunWith(AndroidJUnit4.class)
public class ContextualCardManagerTest {
private static final int SUB_ID = 2;
private static final String TEST_SLICE_URI = "context://test/test";
private static final String TEST_SLICE_NAME = "test_name";
@@ -79,6 +86,8 @@ public class ContextualCardManagerTest {
Lifecycle mLifecycle;
private Context mContext;
private ShadowSubscriptionManager mShadowSubscriptionManager;
private ShadowTelephonyManager mShadowTelephonyManager;
private ContextualCardManager mManager;
@Before
@@ -86,6 +95,16 @@ public class ContextualCardManagerTest {
MockitoAnnotations.initMocks(this);
mContext = RuntimeEnvironment.application;
FeatureFlagUtils.setEnabled(mContext, FeatureFlags.CONDITIONAL_CARDS, true);
mShadowSubscriptionManager = shadowOf(
mContext.getSystemService(SubscriptionManager.class));
mShadowSubscriptionManager.setDefaultDataSubscriptionId(SUB_ID);
final TelephonyManager telephonyManager =
mContext.getSystemService(TelephonyManager.class);
mShadowTelephonyManager = shadowOf(telephonyManager);
mShadowTelephonyManager.setTelephonyManagerForSubscriptionId(SUB_ID, telephonyManager);
mManager = new ContextualCardManager(mContext, mLifecycle, null /* bundle */);
}

View File

@@ -18,7 +18,13 @@ package com.android.settings.homepage.contextualcards;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.when;
import static org.robolectric.Shadows.shadowOf;
import android.content.Context;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import androidx.lifecycle.LifecycleOwner;
@@ -27,11 +33,17 @@ import com.android.settingslib.core.lifecycle.Lifecycle;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.shadow.api.Shadow;
import org.robolectric.shadows.ShadowSubscriptionManager;
import org.robolectric.shadows.ShadowTelephonyManager;
@RunWith(RobolectricTestRunner.class)
public class ControllerRendererPoolTest {
private static final int SUB_ID = 1;
private static final int UNSUPPORTED_CARD_TYPE = -99999;
private static final int UNSUPPORTED_VIEW_TYPE = -99999;
@@ -41,12 +53,27 @@ public class ControllerRendererPoolTest {
private Lifecycle mLifecycle;
private LifecycleOwner mLifecycleOwner;
@Mock
private TelephonyManager mTelephonyMgr;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
mContext = RuntimeEnvironment.application;
mLifecycleOwner = () -> mLifecycle;
mLifecycle = new Lifecycle(mLifecycleOwner);
// SubscriptionManager and TelephonyManager for CellularDataConditionController
ShadowSubscriptionManager shadowSubscriptionMgr = shadowOf(
mContext.getSystemService(SubscriptionManager.class));
shadowSubscriptionMgr.setDefaultDataSubscriptionId(SUB_ID);
ShadowTelephonyManager shadowTelephonyMgr = Shadow.extract(
mContext.getSystemService(TelephonyManager.class));
shadowTelephonyMgr.setTelephonyManagerForSubscriptionId(SUB_ID, mTelephonyMgr);
when(mTelephonyMgr.createForSubscriptionId(anyInt())).thenReturn(mTelephonyMgr);
mPool = new ControllerRendererPool();
}