Merge "Moving the error messages from slice to panel's subtitle" into sc-dev

This commit is contained in:
SongFerng Wang
2021-03-18 04:58:50 +00:00
committed by Android (Google) Code Review
6 changed files with 237 additions and 137 deletions

View File

@@ -34,7 +34,6 @@ import android.net.Network;
import android.net.NetworkCapabilities;
import android.net.Uri;
import android.os.PersistableBundle;
import android.provider.Settings;
import android.telephony.CarrierConfigManager;
import android.telephony.ServiceState;
import android.telephony.SubscriptionInfo;
@@ -43,8 +42,6 @@ import android.telephony.TelephonyManager;
import android.text.Html;
import androidx.slice.Slice;
import androidx.slice.builders.GridRowBuilder;
import androidx.slice.builders.GridRowBuilder.CellBuilder;
import androidx.slice.builders.ListBuilder;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
@@ -114,20 +111,6 @@ public class ProviderModelSliceHelperTest {
mProviderModelSliceHelper = new MockProviderModelSliceHelper(mContext, testCustomSliceable);
}
@Test
public void createMessageGridRow_inputTheResourceId_verifyTitle() {
int messageResId = ResourcesUtils.getResourcesId(mContext, "string",
"non_carrier_network_unavailable");
CharSequence title = ResourcesUtils.getResourcesString(mContext,
"non_carrier_network_unavailable");
GridRowBuilder testGridRow = mProviderModelSliceHelper.createMessageGridRow(messageResId,
Settings.ACTION_AIRPLANE_MODE_SETTINGS);
List<CellBuilder> cellItem = testGridRow.getCells();
assertThat(cellItem.get(0).getTitle()).isEqualTo(title);
}
@Test
public void getConnectedWifiItem_inputListInvolveOneConnectedWifiItem_verifyReturnItem() {
when(mWifiSliceItem1.getConnectedState()).thenReturn(WifiEntry.CONNECTED_STATE_CONNECTED);

View File

@@ -22,7 +22,6 @@ import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.eq;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
@@ -42,7 +41,6 @@ import android.telephony.TelephonyManager;
import androidx.slice.Slice;
import androidx.slice.SliceProvider;
import androidx.slice.builders.GridRowBuilder;
import androidx.slice.builders.ListBuilder;
import androidx.slice.builders.SliceAction;
import androidx.slice.widget.SliceLiveData;
@@ -97,12 +95,6 @@ public class ProviderModelSliceTest {
private WifiSliceItem mMockWifiSliceItem3;
@Mock
ListBuilder.RowBuilder mMockCarrierRowBuild;
@Mock
ListBuilder.HeaderBuilder mMockHeader;
@Mock
GridRowBuilder mMockGridRowBuilderNonCarrierNetworkUnavailable;
@Mock
GridRowBuilder mMockGridRowBuilderAllNetworkUnavailable;
private FakeFeatureFactory mFeatureFactory;
@Mock
@@ -147,35 +139,7 @@ public class ProviderModelSliceTest {
@Test
@UiThreadTest
public void getSlice_noWorkerAndNoCarrier_getOneHeaderOneGridRowWithAllNetworkUnavailable() {
mWifiList.clear();
mMockProviderModelSlice = new MockProviderModelSlice(mContext, null);
mockHelperCondition(false, false, false, null);
final Slice slice = mMockProviderModelSlice.getSlice();
assertThat(slice).isNotNull();
verify(mListBuilder, times(1)).setHeader(mMockHeader);
verify(mListBuilder, times(1)).addGridRow(mMockGridRowBuilderAllNetworkUnavailable);
}
@Test
@UiThreadTest
public void getSlice_noWifiAndNoCarrier_getOneHeaderOneGridRowWithAllNetworkUnavailable() {
mWifiList.clear();
mMockNetworkProviderWorker.updateSelfResults(null);
mockHelperCondition(false, false, false, null);
final Slice slice = mMockProviderModelSlice.getSlice();
assertThat(slice).isNotNull();
verify(mListBuilder, times(1)).setHeader(mMockHeader);
verify(mListBuilder, times(1)).addGridRow(mMockGridRowBuilderAllNetworkUnavailable);
}
@Test
@UiThreadTest
public void getSlice_noWifiAndHasCarrierNoData_oneCarrierOneGridRowWithAllNetworkUnavailable() {
public void getSlice_noWifiAndHasCarrierNoData_oneCarrier() {
mWifiList.clear();
mMockNetworkProviderWorker.updateSelfResults(null);
mockHelperCondition(false, true, false, null);
@@ -184,12 +148,11 @@ public class ProviderModelSliceTest {
assertThat(slice).isNotNull();
verify(mListBuilder, times(1)).addRow(mMockCarrierRowBuild);
verify(mListBuilder, times(1)).addGridRow(mMockGridRowBuilderAllNetworkUnavailable);
}
@Test
@UiThreadTest
public void getSlice_noWifiAndNoCarrier_oneCarrierOneGridRowWithNonCarrierNetworkUnavailable() {
public void getSlice_noWifiAndNoCarrier_oneCarrier() {
mWifiList.clear();
mMockProviderModelSlice = new MockProviderModelSlice(mContext, null);
mockHelperCondition(false, true, true, null);
@@ -198,7 +161,6 @@ public class ProviderModelSliceTest {
assertThat(slice).isNotNull();
verify(mListBuilder, times(1)).addRow(mMockCarrierRowBuild);
verify(mListBuilder, times(1)).addGridRow(mMockGridRowBuilderNonCarrierNetworkUnavailable);
}
@Test
@@ -331,19 +293,6 @@ public class ProviderModelSliceTest {
private void mockBuilder() {
SliceAction mockSliceAction = getPrimarySliceAction();
when(mMockHeader.getTitle()).thenReturn("mockHeader");
when(mMockHeader.getPrimaryAction()).thenReturn(mockSliceAction);
when(mProviderModelSliceHelper.createHeader(anyString())).thenReturn(mMockHeader);
int resId = ResourcesUtils.getResourcesId(mContext, "string",
"non_carrier_network_unavailable");
when(mProviderModelSliceHelper.createMessageGridRow(eq(resId), anyString())).thenReturn(
mMockGridRowBuilderNonCarrierNetworkUnavailable);
resId = ResourcesUtils.getResourcesId(mContext, "string",
"all_network_unavailable");
when(mProviderModelSliceHelper.createMessageGridRow(eq(resId), anyString())).thenReturn(
mMockGridRowBuilderAllNetworkUnavailable);
when(mMockCarrierRowBuild.getTitle()).thenReturn("mockRow");
when(mMockCarrierRowBuild.getPrimaryAction()).thenReturn(mockSliceAction);
when(mProviderModelSliceHelper.createCarrierRow(anyString())).thenReturn(

View File

@@ -22,15 +22,19 @@ import static org.mockito.Mockito.clearInvocations;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.content.Context;
import android.net.Uri;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiManager;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.android.settings.network.AirplaneModePreferenceController;
import com.android.settings.network.InternetUpdater;
import com.android.settings.network.ProviderModelSliceHelper;
import com.android.settings.slices.CustomSliceRegistry;
import com.android.settings.testutils.ResourcesUtils;
@@ -42,6 +46,7 @@ import org.mockito.Mock;
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
import java.util.ArrayList;
import java.util.List;
@RunWith(AndroidJUnit4.class)
@@ -55,6 +60,12 @@ public class InternetConnectivityPanelTest {
ApplicationProvider.getApplicationContext(), "wifi_is_turned_on_subtitle");
public static final String BUTTON_SETTINGS = ResourcesUtils.getResourcesString(
ApplicationProvider.getApplicationContext(), "settings_button");
public static final String SUBTITLE_NON_CARRIER_NETWORK_UNAVAILABLE =
ResourcesUtils.getResourcesString(ApplicationProvider.getApplicationContext(),
"non_carrier_network_unavailable");
public static final String SUBTITLE_ALL_NETWORK_UNAVAILABLE =
ResourcesUtils.getResourcesString(ApplicationProvider.getApplicationContext(),
"all_network_unavailable");
@Rule
public final MockitoRule mMocks = MockitoJUnit.rule();
@@ -62,6 +73,10 @@ public class InternetConnectivityPanelTest {
PanelContentCallback mPanelContentCallback;
@Mock
InternetUpdater mInternetUpdater;
@Mock
private WifiManager mWifiManager;
@Mock
private ProviderModelSliceHelper mProviderModelSliceHelper;
private Context mContext;
private InternetConnectivityPanel mPanel;
@@ -69,11 +84,14 @@ public class InternetConnectivityPanelTest {
@Before
public void setUp() {
mContext = spy(ApplicationProvider.getApplicationContext());
when(mContext.getApplicationContext()).thenReturn(mContext);
when(mContext.getSystemService(WifiManager.class)).thenReturn(mWifiManager);
mPanel = InternetConnectivityPanel.create(mContext);
mPanel.registerCallback(mPanelContentCallback);
mPanel.mIsProviderModelEnabled = true;
mPanel.mInternetUpdater = mInternetUpdater;
mPanel.mProviderModelSliceHelper = mProviderModelSliceHelper;
}
@Test
@@ -90,13 +108,6 @@ public class InternetConnectivityPanelTest {
assertThat(mPanel.getTitle()).isEqualTo(TITLE_APM);
}
@Test
public void getSubTitle_apmOff_shouldBeNull() {
doReturn(false).when(mInternetUpdater).isAirplaneModeOn();
assertThat(mPanel.getSubTitle()).isNull();
}
@Test
public void getSubTitle_apmOnWifiOff_shouldBeNull() {
doReturn(true).when(mInternetUpdater).isAirplaneModeOn();
@@ -110,9 +121,43 @@ public class InternetConnectivityPanelTest {
doReturn(true).when(mInternetUpdater).isAirplaneModeOn();
doReturn(true).when(mInternetUpdater).isWifiEnabled();
mPanel.updatePanelTitle();
assertThat(mPanel.getSubTitle()).isEqualTo(SUBTITLE_WIFI_IS_TURNED_ON);
}
@Test
public void getSubTitle_apmOffWifiOnNoWifiListHasCarrierData_NonCarrierNetworkUnavailable() {
List wifiList = new ArrayList<ScanResult>();
mockCondition(false, true, true, true, wifiList);
mPanel.updatePanelTitle();
assertThat(mPanel.getSubTitle()).isEqualTo(SUBTITLE_NON_CARRIER_NETWORK_UNAVAILABLE);
}
@Test
public void getSubTitle_apmOffWifiOnNoWifiListNoCarrierData_AllNetworkUnavailable() {
List wifiList = new ArrayList<ScanResult>();
mockCondition(false, true, false, true, wifiList);
mPanel.updatePanelTitle();
assertThat(mPanel.getSubTitle()).isEqualTo(SUBTITLE_ALL_NETWORK_UNAVAILABLE);
}
@Test
public void getSubTitle_apmOffWifiOnTwoWifiItemsNoCarrierData_shouldBeNull() {
List wifiList = new ArrayList<ScanResult>();
wifiList.add(new ScanResult());
wifiList.add(new ScanResult());
mockCondition(false, true, false, true, wifiList);
mPanel.updatePanelTitle();
assertThat(mPanel.getSubTitle()).isNull();
}
@Test
public void getCustomizedButtonTitle_apmOff_shouldBeSettings() {
doReturn(false).when(mInternetUpdater).isAirplaneModeOn();
@@ -244,4 +289,13 @@ public class InternetConnectivityPanelTest {
verify(mPanelContentCallback).onCustomizedButtonStateChanged();
}
private void mockCondition(boolean airplaneMode, boolean hasCarrier,
boolean isDataSimActive, boolean isWifiEnabled, List<ScanResult> wifiItems) {
doReturn(airplaneMode).when(mInternetUpdater).isAirplaneModeOn();
when(mProviderModelSliceHelper.hasCarrier()).thenReturn(hasCarrier);
when(mProviderModelSliceHelper.isDataSimActive()).thenReturn(isDataSimActive);
doReturn(isWifiEnabled).when(mInternetUpdater).isWifiEnabled();
doReturn(wifiItems).when(mWifiManager).getScanResults();
}
}