Merge "testRetryWithoutNetworkTee test fails due to the presence of ethernet network" am: e603815ef2

Original change: https://android-review.googlesource.com/c/platform/packages/apps/RemoteProvisioner/+/2302232

Change-Id: I3df78319f43fdbc7e5765800349c7df9cea3a092
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/tests/unittests/src/com/android/remoteprovisioner/unittest/ServerToSystemTest.java b/tests/unittests/src/com/android/remoteprovisioner/unittest/ServerToSystemTest.java
index f9f5fa7..9cafa86 100644
--- a/tests/unittests/src/com/android/remoteprovisioner/unittest/ServerToSystemTest.java
+++ b/tests/unittests/src/com/android/remoteprovisioner/unittest/ServerToSystemTest.java
@@ -34,7 +34,9 @@
 import android.Manifest;
 import android.app.ActivityThread;
 import android.content.Context;
+import android.content.pm.PackageManager;
 import android.net.ConnectivityManager;
+import android.net.EthernetManager;
 import android.net.NetworkInfo;
 import android.os.ServiceManager;
 import android.os.SystemProperties;
@@ -515,8 +517,23 @@
         Assert.fail("Failed to successfully " + (enable ? "enable" : "disable") + " airplane mode");
     }
 
+    private void setEthernetEnabled(boolean enable) throws Exception {
+        // Whether the device running these tests supports ethernet.
+        EthernetManager mEthernetManager = sContext.getSystemService(EthernetManager.class);
+        boolean mHasEthernet = sContext.getPackageManager()
+                .hasSystemFeature(PackageManager.FEATURE_ETHERNET);
+        if (mHasEthernet) {
+            try (PermissionContext c = TestApis.permissions().withPermission(
+                    Manifest.permission.NETWORK_SETTINGS)) {
+                // Enable/Disable the ethernet as it can not be controlled by airplane mode.
+                mEthernetManager.setEthernetEnabled(enable);
+            }
+        }
+    }
+
     @Test
     public void testRetryWithoutNetworkTee() throws Exception {
+        setEthernetEnabled(false);
         setAirplaneMode(true);
         try (ForceRkpOnlyContext c = new ForceRkpOnlyContext()) {
             assertPoolStatus(0, 0, 0, 0, mDuration, TRUSTED_ENVIRONMENT);
@@ -530,6 +547,7 @@
             Assert.assertEquals(KeyStoreException.RETRY_WHEN_CONNECTIVITY_AVAILABLE,
                     keyStoreException.getRetryPolicy());
         } finally {
+            setEthernetEnabled(true);
             setAirplaneMode(false);
         }
     }