[Provider Model] Add progress bar to internet panel
- Show progress bar when Wi-Fi scanning - Show "Searching for networks..." sub-title when Wi-Fi scanning - Remove "Wi-Fi" from searching networks string Bug: 178774497 Test: manual test atest -c InternetConnectivityPanelTest make RunSettingsRoboTests ROBOTEST_FILTER=PanelFragmentTest Change-Id: Ic05b939bef3b106845fe90db41eb09f0e15756f4
This commit is contained in:
@@ -18,8 +18,12 @@ package com.android.settings.panel;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.anyLong;
|
||||
import static org.mockito.Mockito.clearInvocations;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
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;
|
||||
@@ -28,6 +32,7 @@ import android.content.Context;
|
||||
import android.net.Uri;
|
||||
import android.net.wifi.ScanResult;
|
||||
import android.net.wifi.WifiManager;
|
||||
import android.os.Handler;
|
||||
|
||||
import androidx.test.core.app.ApplicationProvider;
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||
@@ -70,6 +75,8 @@ public class InternetConnectivityPanelTest {
|
||||
@Rule
|
||||
public final MockitoRule mMocks = MockitoJUnit.rule();
|
||||
@Mock
|
||||
Handler mMainThreadHandler;
|
||||
@Mock
|
||||
PanelContentCallback mPanelContentCallback;
|
||||
@Mock
|
||||
InternetUpdater mInternetUpdater;
|
||||
@@ -85,6 +92,7 @@ public class InternetConnectivityPanelTest {
|
||||
public void setUp() {
|
||||
mContext = spy(ApplicationProvider.getApplicationContext());
|
||||
when(mContext.getApplicationContext()).thenReturn(mContext);
|
||||
when(mContext.getMainThreadHandler()).thenReturn(mMainThreadHandler);
|
||||
when(mContext.getSystemService(WifiManager.class)).thenReturn(mWifiManager);
|
||||
|
||||
mPanel = InternetConnectivityPanel.create(mContext);
|
||||
@@ -310,6 +318,65 @@ public class InternetConnectivityPanelTest {
|
||||
verify(mPanelContentCallback).onCustomizedButtonStateChanged();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void showProgressBar_wifiDisabled_hideProgress() {
|
||||
mPanel.mIsProgressBarVisible = true;
|
||||
doReturn(false).when(mInternetUpdater).isWifiEnabled();
|
||||
clearInvocations(mPanelContentCallback);
|
||||
|
||||
mPanel.showProgressBar();
|
||||
|
||||
assertThat(mPanel.isProgressBarVisible()).isFalse();
|
||||
verify(mPanelContentCallback).onProgressBarVisibleChanged();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void showProgressBar_noWifiScanResults_showProgressForever() {
|
||||
mPanel.mIsProgressBarVisible = false;
|
||||
doReturn(true).when(mInternetUpdater).isWifiEnabled();
|
||||
List<ScanResult> noWifiScanResults = new ArrayList<>();
|
||||
doReturn(noWifiScanResults).when(mWifiManager).getScanResults();
|
||||
clearInvocations(mPanelContentCallback);
|
||||
|
||||
mPanel.showProgressBar();
|
||||
|
||||
assertThat(mPanel.isProgressBarVisible()).isTrue();
|
||||
verify(mPanelContentCallback).onProgressBarVisibleChanged();
|
||||
verify(mPanelContentCallback).onHeaderChanged();
|
||||
verify(mMainThreadHandler, never())
|
||||
.postDelayed(any() /* mHideProgressBarRunnable */, anyLong());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void showProgressBar_hasWifiScanResults_showProgressDelayedHide() {
|
||||
mPanel.mIsProgressBarVisible = false;
|
||||
doReturn(true).when(mInternetUpdater).isWifiEnabled();
|
||||
List<ScanResult> hasWifiScanResults = mock(ArrayList.class);
|
||||
doReturn(1).when(hasWifiScanResults).size();
|
||||
doReturn(hasWifiScanResults).when(mWifiManager).getScanResults();
|
||||
clearInvocations(mPanelContentCallback);
|
||||
|
||||
mPanel.showProgressBar();
|
||||
|
||||
assertThat(mPanel.isProgressBarVisible()).isTrue();
|
||||
verify(mPanelContentCallback).onProgressBarVisibleChanged();
|
||||
verify(mPanelContentCallback).onHeaderChanged();
|
||||
verify(mMainThreadHandler).postDelayed(any() /* mHideProgressBarRunnable */, anyLong());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setProgressBarVisible_onProgressBarVisibleChanged() {
|
||||
mPanel.mIsProgressBarVisible = false;
|
||||
doReturn(true).when(mInternetUpdater).isWifiEnabled();
|
||||
clearInvocations(mPanelContentCallback);
|
||||
|
||||
mPanel.setProgressBarVisible(true);
|
||||
|
||||
assertThat(mPanel.mIsProgressBarVisible).isTrue();
|
||||
verify(mPanelContentCallback).onProgressBarVisibleChanged();
|
||||
verify(mPanelContentCallback).onHeaderChanged();
|
||||
}
|
||||
|
||||
private void mockCondition(boolean airplaneMode, boolean hasCarrier,
|
||||
boolean isDataSimActive, boolean isMobileDataEnabled, boolean isServiceInService,
|
||||
boolean isWifiEnabled, List<ScanResult> wifiItems) {
|
||||
|
Reference in New Issue
Block a user