Merge "Add some tests back which were removed for fixing kotlin nullable errors" into main
This commit is contained in:
@@ -22,6 +22,7 @@ import androidx.test.filters.SmallTest
|
|||||||
import androidx.test.runner.AndroidJUnit4
|
import androidx.test.runner.AndroidJUnit4
|
||||||
import com.android.testutils.DevSdkIgnoreRule
|
import com.android.testutils.DevSdkIgnoreRule
|
||||||
import com.android.testutils.DevSdkIgnoreRule.IgnoreUpTo
|
import com.android.testutils.DevSdkIgnoreRule.IgnoreUpTo
|
||||||
|
import com.android.testutils.NonNullTestUtils
|
||||||
import java.net.InetAddress
|
import java.net.InetAddress
|
||||||
import java.util.Arrays
|
import java.util.Arrays
|
||||||
import org.junit.Assert.assertEquals
|
import org.junit.Assert.assertEquals
|
||||||
@@ -50,34 +51,47 @@ class KeepalivePacketDataTest {
|
|||||||
|
|
||||||
// Add for test because constructor of KeepalivePacketData is protected.
|
// Add for test because constructor of KeepalivePacketData is protected.
|
||||||
private inner class TestKeepalivePacketData(
|
private inner class TestKeepalivePacketData(
|
||||||
srcAddress: InetAddress = TEST_SRC_ADDRV4,
|
srcAddress: InetAddress? = TEST_SRC_ADDRV4,
|
||||||
srcPort: Int = TEST_SRC_PORT,
|
srcPort: Int = TEST_SRC_PORT,
|
||||||
dstAddress: InetAddress = TEST_DST_ADDRV4,
|
dstAddress: InetAddress? = TEST_DST_ADDRV4,
|
||||||
dstPort: Int = TEST_DST_PORT,
|
dstPort: Int = TEST_DST_PORT,
|
||||||
data: ByteArray = TESTBYTES
|
data: ByteArray = TESTBYTES
|
||||||
) : KeepalivePacketData(srcAddress, srcPort, dstAddress, dstPort, data)
|
) : KeepalivePacketData(NonNullTestUtils.nullUnsafe(srcAddress), srcPort,
|
||||||
|
NonNullTestUtils.nullUnsafe(dstAddress), dstPort, data)
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@IgnoreUpTo(Build.VERSION_CODES.Q)
|
@IgnoreUpTo(Build.VERSION_CODES.Q)
|
||||||
fun testConstructor() {
|
fun testConstructor() {
|
||||||
var data: TestKeepalivePacketData
|
try {
|
||||||
|
TestKeepalivePacketData(srcAddress = null)
|
||||||
|
fail("Null src address should cause exception")
|
||||||
|
} catch (e: InvalidPacketException) {
|
||||||
|
assertEquals(e.error, ERROR_INVALID_IP_ADDRESS)
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
data = TestKeepalivePacketData(dstAddress = TEST_ADDRV6)
|
TestKeepalivePacketData(dstAddress = null)
|
||||||
|
fail("Null dst address should cause exception")
|
||||||
|
} catch (e: InvalidPacketException) {
|
||||||
|
assertEquals(e.error, ERROR_INVALID_IP_ADDRESS)
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
TestKeepalivePacketData(dstAddress = TEST_ADDRV6)
|
||||||
fail("Ip family mismatched should cause exception")
|
fail("Ip family mismatched should cause exception")
|
||||||
} catch (e: InvalidPacketException) {
|
} catch (e: InvalidPacketException) {
|
||||||
assertEquals(e.error, ERROR_INVALID_IP_ADDRESS)
|
assertEquals(e.error, ERROR_INVALID_IP_ADDRESS)
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
data = TestKeepalivePacketData(srcPort = INVALID_PORT)
|
TestKeepalivePacketData(srcPort = INVALID_PORT)
|
||||||
fail("Invalid srcPort should cause exception")
|
fail("Invalid srcPort should cause exception")
|
||||||
} catch (e: InvalidPacketException) {
|
} catch (e: InvalidPacketException) {
|
||||||
assertEquals(e.error, ERROR_INVALID_PORT)
|
assertEquals(e.error, ERROR_INVALID_PORT)
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
data = TestKeepalivePacketData(dstPort = INVALID_PORT)
|
TestKeepalivePacketData(dstPort = INVALID_PORT)
|
||||||
fail("Invalid dstPort should cause exception")
|
fail("Invalid dstPort should cause exception")
|
||||||
} catch (e: InvalidPacketException) {
|
} catch (e: InvalidPacketException) {
|
||||||
assertEquals(e.error, ERROR_INVALID_PORT)
|
assertEquals(e.error, ERROR_INVALID_PORT)
|
||||||
|
|||||||
@@ -16,12 +16,12 @@
|
|||||||
|
|
||||||
package android.net.cts
|
package android.net.cts
|
||||||
|
|
||||||
import android.os.Build
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.net.ConnectivityManager
|
import android.net.ConnectivityManager
|
||||||
import android.net.NetworkInfo
|
import android.net.NetworkInfo
|
||||||
import android.net.NetworkInfo.DetailedState
|
import android.net.NetworkInfo.DetailedState
|
||||||
import android.net.NetworkInfo.State
|
import android.net.NetworkInfo.State
|
||||||
|
import android.os.Build
|
||||||
import android.telephony.TelephonyManager
|
import android.telephony.TelephonyManager
|
||||||
import androidx.test.filters.SmallTest
|
import androidx.test.filters.SmallTest
|
||||||
import androidx.test.platform.app.InstrumentationRegistry
|
import androidx.test.platform.app.InstrumentationRegistry
|
||||||
@@ -29,16 +29,17 @@ import androidx.test.runner.AndroidJUnit4
|
|||||||
import com.android.modules.utils.build.SdkLevel
|
import com.android.modules.utils.build.SdkLevel
|
||||||
import com.android.testutils.DevSdkIgnoreRule
|
import com.android.testutils.DevSdkIgnoreRule
|
||||||
import com.android.testutils.DevSdkIgnoreRule.IgnoreUpTo
|
import com.android.testutils.DevSdkIgnoreRule.IgnoreUpTo
|
||||||
|
import com.android.testutils.NonNullTestUtils
|
||||||
|
import kotlin.reflect.jvm.isAccessible
|
||||||
|
import kotlin.test.assertFails
|
||||||
|
import kotlin.test.assertFailsWith
|
||||||
import org.junit.Assert.assertEquals
|
import org.junit.Assert.assertEquals
|
||||||
import org.junit.Assert.assertNotNull
|
import org.junit.Assert.assertNotNull
|
||||||
import org.junit.Assert.assertNull
|
import org.junit.Assert.assertNull
|
||||||
import org.junit.Assert.assertTrue
|
import org.junit.Assert.assertTrue
|
||||||
import org.junit.Rule
|
import org.junit.Rule
|
||||||
import org.junit.runner.RunWith
|
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import kotlin.reflect.jvm.isAccessible
|
import org.junit.runner.RunWith
|
||||||
import kotlin.test.assertFails
|
|
||||||
import kotlin.test.assertFailsWith
|
|
||||||
|
|
||||||
const val TYPE_MOBILE = ConnectivityManager.TYPE_MOBILE
|
const val TYPE_MOBILE = ConnectivityManager.TYPE_MOBILE
|
||||||
const val TYPE_WIFI = ConnectivityManager.TYPE_WIFI
|
const val TYPE_WIFI = ConnectivityManager.TYPE_WIFI
|
||||||
@@ -104,6 +105,15 @@ class NetworkInfoTest {
|
|||||||
NetworkInfo(ConnectivityManager.MAX_NETWORK_TYPE + 1,
|
NetworkInfo(ConnectivityManager.MAX_NETWORK_TYPE + 1,
|
||||||
TelephonyManager.NETWORK_TYPE_LTE, MOBILE_TYPE_NAME, LTE_SUBTYPE_NAME)
|
TelephonyManager.NETWORK_TYPE_LTE, MOBILE_TYPE_NAME, LTE_SUBTYPE_NAME)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (SdkLevel.isAtLeastT()) {
|
||||||
|
assertFailsWith<NullPointerException> {
|
||||||
|
NetworkInfo(NonNullTestUtils.nullUnsafe<NetworkInfo>(null))
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Doesn't immediately crash on S-
|
||||||
|
NetworkInfo(NonNullTestUtils.nullUnsafe<NetworkInfo>(null))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -126,11 +136,23 @@ class NetworkInfoTest {
|
|||||||
constructor.isAccessible = true
|
constructor.isAccessible = true
|
||||||
val incorrectDetailedState = constructor.newInstance("any", 200) as DetailedState
|
val incorrectDetailedState = constructor.newInstance("any", 200) as DetailedState
|
||||||
if (SdkLevel.isAtLeastT()) {
|
if (SdkLevel.isAtLeastT()) {
|
||||||
|
assertFailsWith<NullPointerException> {
|
||||||
|
NetworkInfo(NonNullTestUtils.nullUnsafe<NetworkInfo>(null))
|
||||||
|
}
|
||||||
|
assertFailsWith<NullPointerException> {
|
||||||
|
networkInfo.setDetailedState(NonNullTestUtils.nullUnsafe<DetailedState>(null),
|
||||||
|
"reason", "extraInfo")
|
||||||
|
}
|
||||||
// This actually throws ArrayOutOfBoundsException because of the implementation of
|
// This actually throws ArrayOutOfBoundsException because of the implementation of
|
||||||
// EnumMap, but that's an implementation detail so accept any crash.
|
// EnumMap, but that's an implementation detail so accept any crash.
|
||||||
assertFails {
|
assertFails {
|
||||||
networkInfo.setDetailedState(incorrectDetailedState, "reason", "extraInfo")
|
networkInfo.setDetailedState(incorrectDetailedState, "reason", "extraInfo")
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
// Doesn't immediately crash on S-
|
||||||
|
NetworkInfo(NonNullTestUtils.nullUnsafe<NetworkInfo>(null))
|
||||||
|
networkInfo.setDetailedState(NonNullTestUtils.nullUnsafe<DetailedState>(null),
|
||||||
|
"reason", "extraInfo")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ import android.os.Build
|
|||||||
import android.telephony.TelephonyManager
|
import android.telephony.TelephonyManager
|
||||||
import com.android.testutils.DevSdkIgnoreRule
|
import com.android.testutils.DevSdkIgnoreRule
|
||||||
import com.android.testutils.DevSdkIgnoreRunner
|
import com.android.testutils.DevSdkIgnoreRunner
|
||||||
|
import com.android.testutils.NonNullTestUtils
|
||||||
import com.android.testutils.assertParcelSane
|
import com.android.testutils.assertParcelSane
|
||||||
import kotlin.test.assertEquals
|
import kotlin.test.assertEquals
|
||||||
import kotlin.test.assertFalse
|
import kotlin.test.assertFalse
|
||||||
@@ -218,6 +219,19 @@ class NetworkTemplateTest {
|
|||||||
templateNullWifiKey.assertDoesNotMatch(identWifiNullKey)
|
templateNullWifiKey.assertDoesNotMatch(identWifiNullKey)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@DevSdkIgnoreRule.IgnoreAfter(Build.VERSION_CODES.TIRAMISU)
|
||||||
|
@Test
|
||||||
|
fun testBuildTemplateMobileAll_nullSubscriberId() {
|
||||||
|
val templateMobileAllWithNullImsi =
|
||||||
|
buildTemplateMobileAll(NonNullTestUtils.nullUnsafe<String>(null))
|
||||||
|
val setWithNull = HashSet<String?>().apply {
|
||||||
|
add(null)
|
||||||
|
}
|
||||||
|
val templateFromBuilder = NetworkTemplate.Builder(MATCH_MOBILE).setMeteredness(METERED_YES)
|
||||||
|
.setSubscriberIds(setWithNull).build()
|
||||||
|
assertEquals(templateFromBuilder, templateMobileAllWithNullImsi)
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testMobileMatches() {
|
fun testMobileMatches() {
|
||||||
val templateMobileImsi1 = buildTemplateMobileAll(TEST_IMSI1)
|
val templateMobileImsi1 = buildTemplateMobileAll(TEST_IMSI1)
|
||||||
|
|||||||
Reference in New Issue
Block a user