private void setActiveNetworkInfo(NetworkInfo networkInfo) { Shadows.shadowOf(connectivityManager).setActiveNetworkInfo(networkInfo); }
/** * @see #setActiveNetworkInfo(NetworkInfo) * @see #setNetworkInfo(int, NetworkInfo) */ @Implementation(minSdk = M) protected Network getActiveNetwork() { if (defaultNetworkActive) { return netIdToNetwork.get(getActiveNetworkInfo().getType()); } return null; }
@Implementation(minSdk = LOLLIPOP) protected void requestNetwork( NetworkRequest request, ConnectivityManager.NetworkCallback networkCallback) { registerNetworkCallback(request, networkCallback); }
@Test public void shouldNotCheckForConnectivityBeforeBackingUpWithNewScheduler() throws Exception { when(preferences.isUseOldScheduler()).thenReturn(false); Intent intent = new Intent(REGULAR.name()); shadowConnectivityManager.setActiveNetworkInfo(null); shadowConnectivityManager.setBackgroundDataSetting(true); service.handleIntent(intent); verify(backupTask).execute(any(BackupConfig.class)); }
@Test public void shouldGetAndSetBackgroundDataSetting() throws Exception { assertThat(connectivityManager.getBackgroundDataSetting()).isFalse(); shadowOf(connectivityManager).setBackgroundDataSetting(true); assertThat(connectivityManager.getBackgroundDataSetting()).isTrue(); }
@Test @Config(minSdk = LOLLIPOP) public void getAllNetworks_shouldReturnAddedNetworks() throws Exception { // Let's start clear. shadowOf(connectivityManager).clearAllNetworks(); // Add a "VPN network". Network vpnNetwork = ShadowNetwork.newInstance(123); NetworkInfo vpnNetworkInfo = ShadowNetworkInfo.newInstance( NetworkInfo.DetailedState.CONNECTED, ConnectivityManager.TYPE_VPN, 0, true, NetworkInfo.State.CONNECTED); shadowOf(connectivityManager).addNetwork(vpnNetwork, vpnNetworkInfo); Network[] networks = connectivityManager.getAllNetworks(); assertThat(networks).asList().hasSize(1); Network returnedNetwork = networks[0]; assertThat(returnedNetwork).isSameAs(vpnNetwork); NetworkInfo returnedNetworkInfo = connectivityManager.getNetworkInfo(returnedNetwork); assertThat(returnedNetworkInfo).isSameAs(vpnNetworkInfo); }
@Test @Config(minSdk = LOLLIPOP) public void getNetworkInfo_shouldReturnAddedNetwork() throws Exception { Network vpnNetwork = ShadowNetwork.newInstance(123); NetworkInfo vpnNetworkInfo = ShadowNetworkInfo.newInstance( NetworkInfo.DetailedState.CONNECTED, ConnectivityManager.TYPE_VPN, 0, true, NetworkInfo.State.CONNECTED); shadowOf(connectivityManager).addNetwork(vpnNetwork, vpnNetworkInfo); NetworkInfo returnedNetworkInfo = connectivityManager.getNetworkInfo(vpnNetwork); assertThat(returnedNetworkInfo).isSameAs(vpnNetworkInfo); }
@Test public void shouldCheckForWifiConnectivityAndNetworkType() throws Exception { Intent intent = new Intent(); when(preferences.isWifiOnly()).thenReturn(true); shadowConnectivityManager.setBackgroundDataSetting(true); shadowConnectivityManager.setActiveNetworkInfo(connectedViaEdge()); shadowWifiManager.setWifiEnabled(true); service.handleIntent(intent); verifyZeroInteractions(backupTask); assertThat(service.getState().exception).isInstanceOf(RequiresWifiException.class); }
@Test public void shouldCheckForLoginCredentials() throws Exception { Intent intent = new Intent(); when(authPreferences.isLoginInformationSet()).thenReturn(false); shadowConnectivityManager.setBackgroundDataSetting(true); service.handleIntent(intent); verifyZeroInteractions(backupTask); assertThat(service.getState().exception).isInstanceOf(RequiresLoginException.class); }
@Test public void setActiveNetworkInfo_shouldSetActiveNetworkInfo() throws Exception { shadowOf(connectivityManager).setActiveNetworkInfo(null); assertThat(connectivityManager.getActiveNetworkInfo()).isNull(); shadowOf(connectivityManager) .setActiveNetworkInfo( ShadowNetworkInfo.newInstance( null, ConnectivityManager.TYPE_MOBILE_HIPRI, TelephonyManager.NETWORK_TYPE_EDGE, true, NetworkInfo.State.DISCONNECTED)); NetworkInfo info = connectivityManager.getActiveNetworkInfo(); assertThat(info.getType()).isEqualTo(ConnectivityManager.TYPE_MOBILE_HIPRI); assertThat(info.getSubtype()).isEqualTo(TelephonyManager.NETWORK_TYPE_EDGE); assertThat(info.isAvailable()).isTrue(); assertThat(info.isConnected()).isFalse(); }
@Implementation @Override public NetworkInfo getActiveNetworkInfo() { if (!isNetworkPermissionGranted) { throw new SecurityException(); } return super.getActiveNetworkInfo(); } }
@Test public void shouldCheckForWifiConnectivity() throws Exception { Intent intent = new Intent(); when(preferences.isWifiOnly()).thenReturn(true); shadowConnectivityManager.setBackgroundDataSetting(true); shadowWifiManager.setWifiEnabled(false); service.handleIntent(intent); verifyZeroInteractions(backupTask); assertThat(service.getState().exception).isInstanceOf(RequiresWifiException.class); }
@Implementation(minSdk = LOLLIPOP) protected void registerNetworkCallback( NetworkRequest request, ConnectivityManager.NetworkCallback networkCallback) { registerNetworkCallback(request, networkCallback, null); }
@Test public void testNoActiveNetwork() { shadowOf((ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE)).setActiveNetworkInfo(null); assertFalse(AppUtils.isOnWiFi(context)); }
/** * @see #setActiveNetworkInfo(NetworkInfo) * @see #setNetworkInfo(int, NetworkInfo) */ @Implementation(minSdk = M) protected Network getActiveNetwork() { if (defaultNetworkActive) { return netIdToNetwork.get(getActiveNetworkInfo().getType()); } return null; }
@Test public void shouldCheckForEnabledDataTypes() throws Exception { when(dataTypePreferences.enabled()).thenReturn(EnumSet.noneOf(DataType.class)); Intent intent = new Intent(); when(authPreferences.isLoginInformationSet()).thenReturn(true); shadowConnectivityManager.setBackgroundDataSetting(true); service.handleIntent(intent); verifyZeroInteractions(backupTask); assertThat(service.getState().exception).isInstanceOf(BackupDisabledException.class); assertThat(service.getState().state).isEqualTo(SmsSyncState.FINISHED_BACKUP); }
@Implementation(minSdk = LOLLIPOP) protected void requestNetwork( NetworkRequest request, ConnectivityManager.NetworkCallback networkCallback) { registerNetworkCallback(request, networkCallback); }
@Test public void isActiveNetworkMetered_noActiveNetwork() { shadowOf(connectivityManager).setActiveNetworkInfo(null); assertThat(connectivityManager.isActiveNetworkMetered()).isFalse(); }
@Implementation(minSdk = M) public Network getActiveNetwork() { return netIdToNetwork.get(getActiveNetworkInfo().getType()); }
@Test public void shouldScheduleNextRegularBackupAfterFinished() throws Exception { shadowConnectivityManager.setBackgroundDataSetting(true); Intent intent = new Intent(REGULAR.name()); service.handleIntent(intent); verify(backupTask).execute(any(BackupConfig.class)); service.backupStateChanged(service.transition(SmsSyncState.FINISHED_BACKUP, null)); verify(backupJobs).scheduleRegular(); assertThat(shadowOf(service).isStoppedBySelf()).isTrue(); assertThat(shadowOf(service).isForegroundStopped()).isTrue(); }