summaryrefslogtreecommitdiff
path: root/tests/java/com/android/server/ethernet/EthernetServiceImplTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'tests/java/com/android/server/ethernet/EthernetServiceImplTest.java')
-rw-r--r--tests/java/com/android/server/ethernet/EthernetServiceImplTest.java372
1 files changed, 0 insertions, 372 deletions
diff --git a/tests/java/com/android/server/ethernet/EthernetServiceImplTest.java b/tests/java/com/android/server/ethernet/EthernetServiceImplTest.java
deleted file mode 100644
index dd1f1ed..0000000
--- a/tests/java/com/android/server/ethernet/EthernetServiceImplTest.java
+++ /dev/null
@@ -1,372 +0,0 @@
-/*
- * 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 com.android.server.ethernet;
-
-import static android.net.NetworkCapabilities.TRANSPORT_TEST;
-
-import static org.junit.Assert.assertThrows;
-import static org.junit.Assert.fail;
-
-import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.ArgumentMatchers.isNull;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.doThrow;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.reset;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.Manifest;
-import android.annotation.NonNull;
-import android.content.Context;
-import android.content.pm.PackageManager;
-import android.net.INetworkInterfaceOutcomeReceiver;
-import android.net.EthernetNetworkUpdateRequest;
-import android.net.IpConfiguration;
-import android.net.NetworkCapabilities;
-import android.os.Handler;
-
-import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-
-@RunWith(AndroidJUnit4.class)
-@SmallTest
-public class EthernetServiceImplTest {
- private static final String TEST_IFACE = "test123";
- private static final EthernetNetworkUpdateRequest UPDATE_REQUEST =
- new EthernetNetworkUpdateRequest.Builder()
- .setIpConfiguration(new IpConfiguration())
- .setNetworkCapabilities(new NetworkCapabilities.Builder().build())
- .build();
- private static final EthernetNetworkUpdateRequest UPDATE_REQUEST_WITHOUT_CAPABILITIES =
- new EthernetNetworkUpdateRequest.Builder()
- .setIpConfiguration(new IpConfiguration())
- .build();
- private static final EthernetNetworkUpdateRequest UPDATE_REQUEST_WITHOUT_IP_CONFIG =
- new EthernetNetworkUpdateRequest.Builder()
- .setNetworkCapabilities(new NetworkCapabilities.Builder().build())
- .build();
- private static final INetworkInterfaceOutcomeReceiver NULL_LISTENER = null;
- private EthernetServiceImpl mEthernetServiceImpl;
- @Mock private Context mContext;
- @Mock private Handler mHandler;
- @Mock private EthernetTracker mEthernetTracker;
- @Mock private PackageManager mPackageManager;
-
- @Before
- public void setup() {
- MockitoAnnotations.initMocks(this);
- doReturn(mPackageManager).when(mContext).getPackageManager();
- mEthernetServiceImpl = new EthernetServiceImpl(mContext, mHandler, mEthernetTracker);
- mEthernetServiceImpl.mStarted.set(true);
- toggleAutomotiveFeature(true);
- shouldTrackIface(TEST_IFACE, true);
- }
-
- private void toggleAutomotiveFeature(final boolean isEnabled) {
- doReturn(isEnabled)
- .when(mPackageManager).hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE);
- }
-
- private void shouldTrackIface(@NonNull final String iface, final boolean shouldTrack) {
- doReturn(shouldTrack).when(mEthernetTracker).isTrackingInterface(iface);
- }
-
- @Test
- public void testSetConfigurationRejectsWhenEthNotStarted() {
- mEthernetServiceImpl.mStarted.set(false);
- assertThrows(IllegalStateException.class, () -> {
- mEthernetServiceImpl.setConfiguration("" /* iface */, new IpConfiguration());
- });
- }
-
- @Test
- public void testUpdateConfigurationRejectsWhenEthNotStarted() {
- mEthernetServiceImpl.mStarted.set(false);
- assertThrows(IllegalStateException.class, () -> {
- mEthernetServiceImpl.updateConfiguration(
- "" /* iface */, UPDATE_REQUEST, null /* listener */);
- });
- }
-
- @Test
- public void testConnectNetworkRejectsWhenEthNotStarted() {
- mEthernetServiceImpl.mStarted.set(false);
- assertThrows(IllegalStateException.class, () -> {
- mEthernetServiceImpl.connectNetwork("" /* iface */, null /* listener */);
- });
- }
-
- @Test
- public void testDisconnectNetworkRejectsWhenEthNotStarted() {
- mEthernetServiceImpl.mStarted.set(false);
- assertThrows(IllegalStateException.class, () -> {
- mEthernetServiceImpl.disconnectNetwork("" /* iface */, null /* listener */);
- });
- }
-
- @Test
- public void testUpdateConfigurationRejectsNullIface() {
- assertThrows(NullPointerException.class, () -> {
- mEthernetServiceImpl.updateConfiguration(null, UPDATE_REQUEST, NULL_LISTENER);
- });
- }
-
- @Test
- public void testConnectNetworkRejectsNullIface() {
- assertThrows(NullPointerException.class, () -> {
- mEthernetServiceImpl.connectNetwork(null /* iface */, NULL_LISTENER);
- });
- }
-
- @Test
- public void testDisconnectNetworkRejectsNullIface() {
- assertThrows(NullPointerException.class, () -> {
- mEthernetServiceImpl.disconnectNetwork(null /* iface */, NULL_LISTENER);
- });
- }
-
- @Test
- public void testUpdateConfigurationWithCapabilitiesRejectsWithoutAutomotiveFeature() {
- toggleAutomotiveFeature(false);
- assertThrows(UnsupportedOperationException.class, () -> {
- mEthernetServiceImpl.updateConfiguration(TEST_IFACE, UPDATE_REQUEST, NULL_LISTENER);
- });
- }
-
- @Test
- public void testUpdateConfigurationWithCapabilitiesWithAutomotiveFeature() {
- toggleAutomotiveFeature(false);
- mEthernetServiceImpl.updateConfiguration(TEST_IFACE, UPDATE_REQUEST_WITHOUT_CAPABILITIES,
- NULL_LISTENER);
- verify(mEthernetTracker).updateConfiguration(eq(TEST_IFACE),
- eq(UPDATE_REQUEST_WITHOUT_CAPABILITIES.getIpConfiguration()),
- eq(UPDATE_REQUEST_WITHOUT_CAPABILITIES.getNetworkCapabilities()), isNull());
- }
-
- @Test
- public void testConnectNetworkRejectsWithoutAutomotiveFeature() {
- toggleAutomotiveFeature(false);
- assertThrows(UnsupportedOperationException.class, () -> {
- mEthernetServiceImpl.connectNetwork("" /* iface */, NULL_LISTENER);
- });
- }
-
- @Test
- public void testDisconnectNetworkRejectsWithoutAutomotiveFeature() {
- toggleAutomotiveFeature(false);
- assertThrows(UnsupportedOperationException.class, () -> {
- mEthernetServiceImpl.disconnectNetwork("" /* iface */, NULL_LISTENER);
- });
- }
-
- private void denyManageEthPermission() {
- doThrow(new SecurityException("")).when(mContext)
- .enforceCallingOrSelfPermission(
- eq(Manifest.permission.MANAGE_ETHERNET_NETWORKS), anyString());
- }
-
- private void denyManageTestNetworksPermission() {
- doThrow(new SecurityException("")).when(mContext)
- .enforceCallingOrSelfPermission(
- eq(Manifest.permission.MANAGE_TEST_NETWORKS), anyString());
- }
-
- @Test
- public void testUpdateConfigurationRejectsWithoutManageEthPermission() {
- denyManageEthPermission();
- assertThrows(SecurityException.class, () -> {
- mEthernetServiceImpl.updateConfiguration(TEST_IFACE, UPDATE_REQUEST, NULL_LISTENER);
- });
- }
-
- @Test
- public void testConnectNetworkRejectsWithoutManageEthPermission() {
- denyManageEthPermission();
- assertThrows(SecurityException.class, () -> {
- mEthernetServiceImpl.connectNetwork(TEST_IFACE, NULL_LISTENER);
- });
- }
-
- @Test
- public void testDisconnectNetworkRejectsWithoutManageEthPermission() {
- denyManageEthPermission();
- assertThrows(SecurityException.class, () -> {
- mEthernetServiceImpl.disconnectNetwork(TEST_IFACE, NULL_LISTENER);
- });
- }
-
- private void enableTestInterface() {
- when(mEthernetTracker.isValidTestInterface(eq(TEST_IFACE))).thenReturn(true);
- }
-
- @Test
- public void testUpdateConfigurationRejectsTestRequestWithoutTestPermission() {
- enableTestInterface();
- denyManageTestNetworksPermission();
- assertThrows(SecurityException.class, () -> {
- mEthernetServiceImpl.updateConfiguration(TEST_IFACE, UPDATE_REQUEST, NULL_LISTENER);
- });
- }
-
- @Test
- public void testConnectNetworkRejectsTestRequestWithoutTestPermission() {
- enableTestInterface();
- denyManageTestNetworksPermission();
- assertThrows(SecurityException.class, () -> {
- mEthernetServiceImpl.connectNetwork(TEST_IFACE, NULL_LISTENER);
- });
- }
-
- @Test
- public void testDisconnectNetworkRejectsTestRequestWithoutTestPermission() {
- enableTestInterface();
- denyManageTestNetworksPermission();
- assertThrows(SecurityException.class, () -> {
- mEthernetServiceImpl.disconnectNetwork(TEST_IFACE, NULL_LISTENER);
- });
- }
-
- @Test
- public void testUpdateConfiguration() {
- mEthernetServiceImpl.updateConfiguration(TEST_IFACE, UPDATE_REQUEST, NULL_LISTENER);
- verify(mEthernetTracker).updateConfiguration(
- eq(TEST_IFACE),
- eq(UPDATE_REQUEST.getIpConfiguration()),
- eq(UPDATE_REQUEST.getNetworkCapabilities()), eq(NULL_LISTENER));
- }
-
- @Test
- public void testConnectNetwork() {
- mEthernetServiceImpl.connectNetwork(TEST_IFACE, NULL_LISTENER);
- verify(mEthernetTracker).connectNetwork(eq(TEST_IFACE), eq(NULL_LISTENER));
- }
-
- @Test
- public void testDisconnectNetwork() {
- mEthernetServiceImpl.disconnectNetwork(TEST_IFACE, NULL_LISTENER);
- verify(mEthernetTracker).disconnectNetwork(eq(TEST_IFACE), eq(NULL_LISTENER));
- }
-
- @Test
- public void testUpdateConfigurationAcceptsTestRequestWithNullCapabilities() {
- enableTestInterface();
- final EthernetNetworkUpdateRequest request =
- new EthernetNetworkUpdateRequest
- .Builder()
- .setIpConfiguration(new IpConfiguration()).build();
- mEthernetServiceImpl.updateConfiguration(TEST_IFACE, request, NULL_LISTENER);
- verify(mEthernetTracker).updateConfiguration(eq(TEST_IFACE),
- eq(request.getIpConfiguration()),
- eq(request.getNetworkCapabilities()), isNull());
- }
-
- @Test
- public void testUpdateConfigurationAcceptsRequestWithNullIpConfiguration() {
- mEthernetServiceImpl.updateConfiguration(TEST_IFACE, UPDATE_REQUEST_WITHOUT_IP_CONFIG,
- NULL_LISTENER);
- verify(mEthernetTracker).updateConfiguration(eq(TEST_IFACE),
- eq(UPDATE_REQUEST_WITHOUT_IP_CONFIG.getIpConfiguration()),
- eq(UPDATE_REQUEST_WITHOUT_IP_CONFIG.getNetworkCapabilities()), isNull());
- }
-
- @Test
- public void testUpdateConfigurationRejectsInvalidTestRequest() {
- enableTestInterface();
- assertThrows(IllegalArgumentException.class, () -> {
- mEthernetServiceImpl.updateConfiguration(TEST_IFACE, UPDATE_REQUEST, NULL_LISTENER);
- });
- }
-
- private EthernetNetworkUpdateRequest createTestNetworkUpdateRequest() {
- final NetworkCapabilities nc = new NetworkCapabilities
- .Builder(UPDATE_REQUEST.getNetworkCapabilities())
- .addTransportType(TRANSPORT_TEST).build();
-
- return new EthernetNetworkUpdateRequest
- .Builder(UPDATE_REQUEST)
- .setNetworkCapabilities(nc).build();
- }
-
- @Test
- public void testUpdateConfigurationForTestRequestDoesNotRequireAutoOrEthernetPermission() {
- enableTestInterface();
- toggleAutomotiveFeature(false);
- denyManageEthPermission();
- final EthernetNetworkUpdateRequest request = createTestNetworkUpdateRequest();
-
- mEthernetServiceImpl.updateConfiguration(TEST_IFACE, request, NULL_LISTENER);
- verify(mEthernetTracker).updateConfiguration(
- eq(TEST_IFACE),
- eq(request.getIpConfiguration()),
- eq(request.getNetworkCapabilities()), eq(NULL_LISTENER));
- }
-
- @Test
- public void testConnectNetworkForTestRequestDoesNotRequireAutoOrNetPermission() {
- enableTestInterface();
- toggleAutomotiveFeature(false);
- denyManageEthPermission();
-
- mEthernetServiceImpl.connectNetwork(TEST_IFACE, NULL_LISTENER);
- verify(mEthernetTracker).connectNetwork(eq(TEST_IFACE), eq(NULL_LISTENER));
- }
-
- @Test
- public void testDisconnectNetworkForTestRequestDoesNotRequireAutoOrNetPermission() {
- enableTestInterface();
- toggleAutomotiveFeature(false);
- denyManageEthPermission();
-
- mEthernetServiceImpl.disconnectNetwork(TEST_IFACE, NULL_LISTENER);
- verify(mEthernetTracker).disconnectNetwork(eq(TEST_IFACE), eq(NULL_LISTENER));
- }
-
- private void denyPermissions(String... permissions) {
- for (String permission: permissions) {
- doReturn(PackageManager.PERMISSION_DENIED).when(mContext)
- .checkCallingOrSelfPermission(eq(permission));
- }
- }
-
- @Test
- public void testSetEthernetEnabled() {
- denyPermissions(android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK);
- mEthernetServiceImpl.setEthernetEnabled(true);
- verify(mEthernetTracker).setEthernetEnabled(true);
- reset(mEthernetTracker);
-
- denyPermissions(Manifest.permission.NETWORK_STACK);
- mEthernetServiceImpl.setEthernetEnabled(false);
- verify(mEthernetTracker).setEthernetEnabled(false);
- reset(mEthernetTracker);
-
- denyPermissions(Manifest.permission.NETWORK_SETTINGS);
- try {
- mEthernetServiceImpl.setEthernetEnabled(true);
- fail("Should get SecurityException");
- } catch (SecurityException e) { }
- verify(mEthernetTracker, never()).setEthernetEnabled(false);
- }
-}