Fix ClearKeySystemTest fails Wifi connection test in emulator.
CTS does not mandate wifi connection. Test for network (wifi and data)
connectivity instead.
Detail
======
Add ConnectionStatus class that implements the IConnectionStatus class.
ConnectionStatus tests if there is network connectivity through wifi or
mobile data.
Also remove methods that are unique to wifi status.
Test: ANDROID_BUILD_TOP= ./android-cts/tools/cts-tradefed run cts -m CtsMediaTestCases --test android.media.cts.ClearKeySystemTest#testClearKeyPlaybackCenc
Test with wifi enable, then test with wifi disabled.
bug: 32505267
Change-Id: I41a744e1484d2e6605f3fba868caa6aacdb07443
diff --git a/tests/tests/media/src/android/media/cts/ClearKeySystemTest.java b/tests/tests/media/src/android/media/cts/ClearKeySystemTest.java
index 7d5742e..69f3ee8 100644
--- a/tests/tests/media/src/android/media/cts/ClearKeySystemTest.java
+++ b/tests/tests/media/src/android/media/cts/ClearKeySystemTest.java
@@ -344,24 +344,25 @@
return;
}
- IConnectionStatus wifiStatus = new WifiStatus(mContext);
- if (!wifiStatus.isEnabled()) {
- throw new Error("Wifi is not enabled, please enable Wifi to run tests.");
+ IConnectionStatus connectionStatus = new ConnectionStatus(mContext);
+ if (!connectionStatus.isAvailable()) {
+ throw new Error("Network is not available, reason: " +
+ connectionStatus.getNotConnectedReason());
}
- // If Wifi is not connected, recheck the status a few times.
+
+ // If device is not online, recheck the status a few times.
int retries = 0;
- while (!wifiStatus.isConnected()) {
+ while (!connectionStatus.isConnected()) {
if (retries++ >= CONNECTION_RETRIES) {
- wifiStatus.printConnectionInfo();
- throw new Error("Wifi is not connected, reason: " +
- wifiStatus.getNotConnectedReason());
+ throw new Error("Device is not online, reason: " +
+ connectionStatus.getNotConnectedReason());
}
try {
Thread.sleep(100);
} catch (InterruptedException e) {
}
}
- wifiStatus.testConnection(videoUrl);
+ connectionStatus.testConnection(videoUrl);
mSessionId = openSession(drm);
mMediaCodecPlayer = new MediaCodecClearKeyPlayer(
diff --git a/tests/tests/media/src/android/media/cts/WifiStatus.java b/tests/tests/media/src/android/media/cts/ConnectionStatus.java
similarity index 77%
rename from tests/tests/media/src/android/media/cts/WifiStatus.java
rename to tests/tests/media/src/android/media/cts/ConnectionStatus.java
index c2577f1..37fc75e 100644
--- a/tests/tests/media/src/android/media/cts/WifiStatus.java
+++ b/tests/tests/media/src/android/media/cts/ConnectionStatus.java
@@ -20,8 +20,6 @@
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
-import android.net.wifi.WifiInfo;
-import android.net.wifi.WifiManager;
import android.util.Log;
import java.io.BufferedReader;
@@ -32,19 +30,17 @@
/**
* A class that implements IConnectionStatus interface
- * to report and test Wifi connection.
+ * to report and test connection status.
*/
-public class WifiStatus implements IConnectionStatus {
+public class ConnectionStatus implements IConnectionStatus {
- private static final String TAG = "WifiStatus";
+ private static final String TAG = "ConnectionStatus";
private ConnectivityManager mConnectivityManager;
- private WifiManager mWifiManager;
- public WifiStatus(Context context) {
+ public ConnectionStatus(Context context) {
mConnectivityManager =
(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
- mWifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
}
public String getNotConnectedReason() {
@@ -52,7 +48,7 @@
if (networkInfo != null) {
return networkInfo.getReason();
} else {
- return "Cannot get network info";
+ return "Network info is not available.";
}
}
@@ -66,22 +62,6 @@
return (networkInfo != null) && networkInfo.isConnected();
}
- public boolean isEnabled() {
- return mWifiManager.isWifiEnabled();
- }
-
- public void printConnectionInfo() {
- WifiInfo wifiInfo = mWifiManager.getConnectionInfo();
- if (wifiInfo == null) {
- throw new Error("Fail to get Wifi connection info");
- }
-
- Log.d(TAG, "ssid=" + wifiInfo.getSSID());
- Log.d(TAG, "frequency=" + wifiInfo.getFrequency() + " " + WifiInfo.FREQUENCY_UNITS);
- Log.d(TAG, "rssi=" + wifiInfo.getRssi() + " dBm");
- Log.d(TAG, "link speed=" + wifiInfo.getLinkSpeed() + " " + WifiInfo.LINK_SPEED_UNITS);
- }
-
/**
* Print lines.
*
@@ -152,14 +132,6 @@
}
public void testConnection(Uri uri) {
- final String GOOG = "www.google.com";
-
- if (pingTest(GOOG)) {
- Log.d(TAG, "Successfully pinged " + GOOG);
- } else {
- Log.e(TAG, "Failed to ping " + GOOG);
- }
-
if (pingTest(uri.getHost())) {
Log.d(TAG, "Successfully pinged " + uri.getHost());
} else {
diff --git a/tests/tests/media/src/android/media/cts/IConnectionStatus.java b/tests/tests/media/src/android/media/cts/IConnectionStatus.java
index 39e2781..17d5ff7 100644
--- a/tests/tests/media/src/android/media/cts/IConnectionStatus.java
+++ b/tests/tests/media/src/android/media/cts/IConnectionStatus.java
@@ -29,10 +29,6 @@
public boolean isConnected();
- public boolean isEnabled();
-
- public void printConnectionInfo();
-
public void testConnection(Uri uri);
}