diff options
author | Weng Su <wengsu@google.com> | 2021-04-29 10:20:11 +0800 |
---|---|---|
committer | Weng Su <wengsu@google.com> | 2021-05-10 05:27:59 +0000 |
commit | c407a2d9f89143f239e5c2ac4c2daf6a3d6a13aa (patch) | |
tree | 5d5082be077f10af4c0f35f356f55ee439018567 /tests/unit | |
parent | b4a9916adf89cadf01ff6a7027708112673f632e (diff) | |
download | Settings-c407a2d9f89143f239e5c2ac4c2daf6a3d6a13aa.tar.gz |
[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
Diffstat (limited to 'tests/unit')
-rw-r--r-- | tests/unit/src/com/android/settings/panel/InternetConnectivityPanelTest.java | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/tests/unit/src/com/android/settings/panel/InternetConnectivityPanelTest.java b/tests/unit/src/com/android/settings/panel/InternetConnectivityPanelTest.java index 0da8464d95c..d2ef4519b63 100644 --- a/tests/unit/src/com/android/settings/panel/InternetConnectivityPanelTest.java +++ b/tests/unit/src/com/android/settings/panel/InternetConnectivityPanelTest.java @@ -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) { |