From 944d87d1791a210c73ef261370a37a835b06272f Mon Sep 17 00:00:00 2001 From: Remi NGUYEN VAN Date: Fri, 16 Apr 2021 17:40:58 +0900 Subject: [PATCH] Add a test for ConnectivityFrameworkInitializer The test verifies that system services were registered, meaning that ConnectivityFrameworkInitializer.registerServiceWrappers ran successfully on startup, and that calling it afterwards throws. Test: atest ConnectivityFrameworkInitializerTest Change-Id: I485b0dbd2e9dc557560a2b7bee2cff54c7f66c93 --- .../ConnectivityFrameworkInitializerTest.kt | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 tests/cts/net/src/android/net/cts/ConnectivityFrameworkInitializerTest.kt diff --git a/tests/cts/net/src/android/net/cts/ConnectivityFrameworkInitializerTest.kt b/tests/cts/net/src/android/net/cts/ConnectivityFrameworkInitializerTest.kt new file mode 100644 index 0000000000..d687eaad01 --- /dev/null +++ b/tests/cts/net/src/android/net/cts/ConnectivityFrameworkInitializerTest.kt @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.net.cts + +import android.Manifest.permission.MANAGE_TEST_NETWORKS +import android.net.ConnectivityDiagnosticsManager +import android.net.ConnectivityFrameworkInitializer +import android.net.ConnectivityManager +import android.net.TestNetworkManager +import android.os.Build +import androidx.test.platform.app.InstrumentationRegistry +import com.android.testutils.DevSdkIgnoreRule +import com.android.testutils.DevSdkIgnoreRunner +import com.android.testutils.runAsShell +import org.junit.Test +import org.junit.runner.RunWith +import kotlin.test.assertNotNull + +@RunWith(DevSdkIgnoreRunner::class) +// ConnectivityFrameworkInitializer was added in S +@DevSdkIgnoreRule.IgnoreUpTo(Build.VERSION_CODES.R) +class ConnectivityFrameworkInitializerTest { + @Test + fun testServicesRegistered() { + val ctx = InstrumentationRegistry.getInstrumentation().context as android.content.Context + assertNotNull(ctx.getSystemService(ConnectivityManager::class.java), + "ConnectivityManager not registered") + assertNotNull(ctx.getSystemService(ConnectivityDiagnosticsManager::class.java), + "ConnectivityDiagnosticsManager not registered") + + runAsShell(MANAGE_TEST_NETWORKS) { + assertNotNull(ctx.getSystemService(TestNetworkManager::class.java), + "TestNetworkManager not registered") + } + // Do not test for DnsResolverServiceManager as it is internal to Connectivity, and + // CTS does not have permission to get it anyway. + } + + // registerServiceWrappers can only be called during initialization and should throw otherwise + @Test(expected = IllegalStateException::class) + fun testThrows() { + ConnectivityFrameworkInitializer.registerServiceWrappers() + } +} \ No newline at end of file