diff options
author | Lucas Lin <lucaslin@google.com> | 2020-11-17 12:43:30 +0000 |
---|---|---|
committer | Lucas Lin <lucaslin@google.com> | 2020-11-18 09:52:58 +0000 |
commit | 0a97fe3faaf1a7bc69030ac60e55b865ebd20d27 (patch) | |
tree | 2c440b972ac4114afa739fe17bd0c54f60cc8da8 | |
parent | b72c2c4547df3955c9c0afb8f0087937d39bd737 (diff) | |
download | base-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.kt | 30 |
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) } } |