summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLucas Lin <lucaslin@google.com>2020-11-17 12:43:30 +0000
committerLucas Lin <lucaslin@google.com>2020-11-18 09:52:58 +0000
commit0a97fe3faaf1a7bc69030ac60e55b865ebd20d27 (patch)
tree2c440b972ac4114afa739fe17bd0c54f60cc8da8
parentb72c2c4547df3955c9c0afb8f0087937d39bd737 (diff)
downloadbase-0a97fe3faaf1a7bc69030ac60e55b865ebd20d27.tar.gz
Separate 2 tests to verify canBeSatisfiedBy()
In Android R, NetworkSpecifier#satisfiedBy() has changed to NetworkSpecifier#canBeSatisfiedBy(), but its subclass - MatchAllNetworkSpecifier hasn't. In Android S, both of MatchAllNetworkSpecifier and NetworkSpecifier has changed satisfiedBy() to canBeSatisfiedBy(). So if running the latest CTS on R device, it will verify NetworkSpecifier#canBeSatisfiedBy() instead of MatchAllNetworkSpecifier#satisfiedBy() and get the unexpected result. The fix is to separate 2 tests to verify canBeSatisfiedBy(), one is for Android R or older version and the other is for Android S+. Bug: 172401624 Test: Run MatchAllNetworkSpecifierTest on Android R and S. Change-Id: I9aeddaa3e331f609bbdba8ab0c2d6e014123f242 Merged-In: I1391bae9a0fc0298beb8fe80b5f388b492244566
-rw-r--r--tests/net/common/java/android/net/MatchAllNetworkSpecifierTest.kt30
1 files changed, 25 insertions, 5 deletions
diff --git a/tests/net/common/java/android/net/MatchAllNetworkSpecifierTest.kt b/tests/net/common/java/android/net/MatchAllNetworkSpecifierTest.kt
index a50f0461fae6..a67156a74d18 100644
--- a/tests/net/common/java/android/net/MatchAllNetworkSpecifierTest.kt
+++ b/tests/net/common/java/android/net/MatchAllNetworkSpecifierTest.kt
@@ -19,13 +19,19 @@ package android.net
import android.net.wifi.aware.DiscoverySession
import android.net.wifi.aware.PeerHandle
import android.net.wifi.aware.WifiAwareNetworkSpecifier
+import android.os.Build
import androidx.test.filters.SmallTest
import androidx.test.runner.AndroidJUnit4
import com.android.testutils.assertParcelSane
+import com.android.testutils.DevSdkIgnoreRule
+import com.android.testutils.DevSdkIgnoreRule.IgnoreAfter
+import com.android.testutils.DevSdkIgnoreRule.IgnoreUpTo
import java.lang.IllegalStateException
+import org.junit.Assert.assertFalse
+import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mockito
@@ -33,18 +39,32 @@ import org.mockito.Mockito
@RunWith(AndroidJUnit4::class)
@SmallTest
class MatchAllNetworkSpecifierTest {
+ @Rule @JvmField
+ val ignoreRule: DevSdkIgnoreRule = DevSdkIgnoreRule()
+
+ private val specifier = MatchAllNetworkSpecifier()
+ private val discoverySession = Mockito.mock(DiscoverySession::class.java)
+ private val peerHandle = Mockito.mock(PeerHandle::class.java)
+ private val wifiAwareNetworkSpecifier = WifiAwareNetworkSpecifier.Builder(discoverySession,
+ peerHandle).build()
+
@Test
fun testParcel() {
assertParcelSane(MatchAllNetworkSpecifier(), 0)
}
+ @Test @IgnoreAfter(Build.VERSION_CODES.R)
+ fun testCanBeSatisfiedBy_BeforeS() {
+ // MatchAllNetworkSpecifier didn't follow its parent class to change the satisfiedBy() to
+ // canBeSatisfiedBy(), so if a caller calls MatchAllNetworkSpecifier#canBeSatisfiedBy(), the
+ // NetworkSpecifier#canBeSatisfiedBy() will be called actually, and false will be returned.
+ // Although it's not meeting the expectation, the behavior still needs to be verified.
+ assertFalse(specifier.canBeSatisfiedBy(wifiAwareNetworkSpecifier))
+ }
+
@Test(expected = IllegalStateException::class)
+ @IgnoreUpTo(Build.VERSION_CODES.R)
fun testCanBeSatisfiedBy() {
- val specifier = MatchAllNetworkSpecifier()
- val discoverySession = Mockito.mock(DiscoverySession::class.java)
- val peerHandle = Mockito.mock(PeerHandle::class.java)
- val wifiAwareNetworkSpecifier = WifiAwareNetworkSpecifier.Builder(discoverySession,
- peerHandle).build()
specifier.canBeSatisfiedBy(wifiAwareNetworkSpecifier)
}
}