CtsJobSchedulerTestCases: Fix issues in android.jobscheduler.cts.ConnectivityConstraintTest

1.android.jobscheduler.cts.ConnectivityConstraintTest#testConnectivityConstraintExecutes_withWifi
2.android.jobscheduler.cts.ConnectivityConstraintTest#testUnmeteredConstraintExecutes_withWifi
3.android.jobscheduler.cts.ConnectivityConstraintTest#testMeteredConstraintExecutes_withWifi

Bug:143000256
Test: run cts-on-gsi -m CtsJobSchedulerTestCases -t android.jobscheduler.cts.ConnectivityConstraintTest#testConnectivityConstraintExecutes_withWifi
Test: run cts-on-gsi -m CtsJobSchedulerTestCases -t android.jobscheduler.cts.ConnectivityConstraintTest#testUnmeteredConstraintExecutes_withWifi
Test: run cts-on-gsi -m CtsJobSchedulerTestCases -t android.jobscheduler.cts.ConnectivityConstraintTest#testMeteredConstraintExecutes_withWifi
Change-Id: I1329390722cb5db498a6769e915287c71677ee78
Merged-In: I028c9d3040cd63ac7a611e882d1dfad53a8231a2
diff --git a/tests/JobScheduler/src/android/jobscheduler/cts/ConnectivityConstraintTest.java b/tests/JobScheduler/src/android/jobscheduler/cts/ConnectivityConstraintTest.java
index e092a0d..7f7d870 100644
--- a/tests/JobScheduler/src/android/jobscheduler/cts/ConnectivityConstraintTest.java
+++ b/tests/JobScheduler/src/android/jobscheduler/cts/ConnectivityConstraintTest.java
@@ -80,10 +80,12 @@
         mBuilder =
                 new JobInfo.Builder(CONNECTIVITY_JOB_ID, kJobServiceComponent);
 
-        mInitialWiFiState = mWifiManager.isWifiEnabled();
         mInitialRestrictBackground = SystemUtil
                 .runShellCommand(getInstrumentation(), RESTRICT_BACKGROUND_GET_CMD)
                 .contains("enabled");
+        if (mHasWifi) {
+            mInitialWiFiState = mWifiManager.isWifiEnabled();
+        }
     }
 
     @Override
@@ -94,26 +96,24 @@
         if (mInitialRestrictBackground) {
             SystemUtil.runShellCommand(getInstrumentation(), RESTRICT_BACKGROUND_ON_CMD);
         }
-
         // Ensure that we leave WiFi in its previous state.
-        if (mWifiManager.isWifiEnabled() == mInitialWiFiState) {
-            return;
-        }
-        NetworkInfo.State expectedState = mInitialWiFiState ?
-                NetworkInfo.State.CONNECTED : NetworkInfo.State.DISCONNECTED;
-        ConnectivityActionReceiver receiver =
-                new ConnectivityActionReceiver(ConnectivityManager.TYPE_WIFI,
-                        expectedState);
-        IntentFilter filter = new IntentFilter();
-        filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
-        mContext.registerReceiver(receiver, filter);
+        if (mHasWifi && (mWifiManager.isWifiEnabled() != mInitialWiFiState)) {
+            NetworkInfo.State expectedState = mInitialWiFiState ?
+                    NetworkInfo.State.CONNECTED : NetworkInfo.State.DISCONNECTED;
+            ConnectivityActionReceiver receiver =
+                    new ConnectivityActionReceiver(ConnectivityManager.TYPE_WIFI,
+                            expectedState);
+            IntentFilter filter = new IntentFilter();
+            filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
+            mContext.registerReceiver(receiver, filter);
 
-        assertTrue(mWifiManager.setWifiEnabled(mInitialWiFiState));
-        receiver.waitForStateChange();
-        assertTrue("Failure to restore previous WiFi state",
+            assertTrue(mWifiManager.setWifiEnabled(mInitialWiFiState));
+            receiver.waitForStateChange();
+            assertTrue("Failure to restore previous WiFi state",
                 mWifiManager.isWifiEnabled() == mInitialWiFiState);
 
-        mContext.unregisterReceiver(receiver);
+            mContext.unregisterReceiver(receiver);
+        }
 
         super.tearDown();
     }