Merge "Fix an argument to the legacy broadcast" am: 157c444fcf

am: 40b6f96f8d

Change-Id: I0fc408d546ae9d72b7dd9415e502252b484d4329
This commit is contained in:
Chalard Jean
2019-04-22 18:12:27 -07:00
committed by android-build-merger
2 changed files with 27 additions and 6 deletions

View File

@@ -736,19 +736,18 @@ public class ConnectivityService extends IConnectivityManager.Stub
} }
} }
final DetailedState state = DetailedState.DISCONNECTED;
if (wasFirstNetwork || wasDefault) { if (wasFirstNetwork || wasDefault) {
maybeLogBroadcast(nai, state, type, wasDefault); maybeLogBroadcast(nai, DetailedState.DISCONNECTED, type, wasDefault);
mService.sendLegacyNetworkBroadcast(nai, state, type); mService.sendLegacyNetworkBroadcast(nai, DetailedState.DISCONNECTED, type);
} }
if (!list.isEmpty() && wasFirstNetwork) { if (!list.isEmpty() && wasFirstNetwork) {
if (DBG) log("Other network available for type " + type + if (DBG) log("Other network available for type " + type +
", sending connected broadcast"); ", sending connected broadcast");
final NetworkAgentInfo replacement = list.get(0); final NetworkAgentInfo replacement = list.get(0);
maybeLogBroadcast(replacement, state, type, mService.isDefaultNetwork(replacement)); maybeLogBroadcast(replacement, DetailedState.CONNECTED, type,
mService.sendLegacyNetworkBroadcast(replacement, state, type); mService.isDefaultNetwork(replacement));
mService.sendLegacyNetworkBroadcast(replacement, DetailedState.CONNECTED, type);
} }
} }

View File

@@ -20,6 +20,8 @@ import android.net.ConnectivityManager.TYPE_ETHERNET
import android.net.ConnectivityManager.TYPE_MOBILE import android.net.ConnectivityManager.TYPE_MOBILE
import android.net.ConnectivityManager.TYPE_WIFI import android.net.ConnectivityManager.TYPE_WIFI
import android.net.ConnectivityManager.TYPE_WIMAX import android.net.ConnectivityManager.TYPE_WIMAX
import android.net.NetworkInfo.DetailedState.CONNECTED
import android.net.NetworkInfo.DetailedState.DISCONNECTED
import androidx.test.filters.SmallTest import androidx.test.filters.SmallTest
import androidx.test.runner.AndroidJUnit4 import androidx.test.runner.AndroidJUnit4
import com.android.server.ConnectivityService.LegacyTypeTracker import com.android.server.ConnectivityService.LegacyTypeTracker
@@ -32,8 +34,12 @@ import org.junit.Assert.fail
import org.junit.Test import org.junit.Test
import org.junit.runner.RunWith import org.junit.runner.RunWith
import org.mockito.ArgumentMatchers.any import org.mockito.ArgumentMatchers.any
import org.mockito.ArgumentMatchers.anyInt
import org.mockito.Mockito.doReturn import org.mockito.Mockito.doReturn
import org.mockito.Mockito.mock import org.mockito.Mockito.mock
import org.mockito.Mockito.never
import org.mockito.Mockito.reset
import org.mockito.Mockito.verify
const val UNSUPPORTED_TYPE = TYPE_WIMAX const val UNSUPPORTED_TYPE = TYPE_WIMAX
@@ -89,4 +95,20 @@ class LegacyTypeTrackerTest {
mTracker.add(UNSUPPORTED_TYPE, mobileNai) mTracker.add(UNSUPPORTED_TYPE, mobileNai)
assertNull(mTracker.getNetworkForType(UNSUPPORTED_TYPE)) assertNull(mTracker.getNetworkForType(UNSUPPORTED_TYPE))
} }
@Test
fun testBroadcastOnDisconnect() {
val mobileNai1 = mock(NetworkAgentInfo::class.java)
val mobileNai2 = mock(NetworkAgentInfo::class.java)
doReturn(false).`when`(mMockService).isDefaultNetwork(mobileNai1)
mTracker.add(TYPE_MOBILE, mobileNai1)
verify(mMockService).sendLegacyNetworkBroadcast(mobileNai1, CONNECTED, TYPE_MOBILE)
reset(mMockService)
doReturn(false).`when`(mMockService).isDefaultNetwork(mobileNai2)
mTracker.add(TYPE_MOBILE, mobileNai2)
verify(mMockService, never()).sendLegacyNetworkBroadcast(any(), any(), anyInt())
mTracker.remove(TYPE_MOBILE, mobileNai1, false /* wasDefault */)
verify(mMockService).sendLegacyNetworkBroadcast(mobileNai1, DISCONNECTED, TYPE_MOBILE)
verify(mMockService).sendLegacyNetworkBroadcast(mobileNai2, CONNECTED, TYPE_MOBILE)
}
} }