Merge "Skip data saver related tests if the device doesn't support it." into oc-dev am: a61bc6a566

am: 21ec60f4db

Change-Id: Ifeb83797fc6c22fd735b9a1346941b49a651764c
This commit is contained in:
Sudheer Shanka
2017-04-18 04:33:56 +00:00
committed by android-build-merger
2 changed files with 49 additions and 2 deletions

View File

@@ -100,6 +100,7 @@ abstract class AbstractRestrictBackgroundNetworkTestCase extends Instrumentation
protected ConnectivityManager mCm;
protected WifiManager mWfm;
protected int mUid;
private int mMyUid;
private String mMeteredWifi;
private MyServiceClient mServiceClient;
private boolean mHasWatch;
@@ -115,7 +116,7 @@ abstract class AbstractRestrictBackgroundNetworkTestCase extends Instrumentation
mCm = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
mWfm = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE);
mUid = getUid(TEST_APP2_PKG);
final int myUid = getUid(mContext.getPackageName());
mMyUid = getUid(mContext.getPackageName());
mServiceClient = new MyServiceClient(mContext);
mServiceClient.bind();
mHasWatch = mContext.getPackageManager().hasSystemFeature(
@@ -128,7 +129,7 @@ abstract class AbstractRestrictBackgroundNetworkTestCase extends Instrumentation
mSupported = setUpActiveNetworkMeteringState();
Log.i(TAG, "Apps status on " + getName() + ":\n"
+ "\ttest app: uid=" + myUid + ", state=" + getProcessStateByUid(myUid) + "\n"
+ "\ttest app: uid=" + mMyUid + ", state=" + getProcessStateByUid(mMyUid) + "\n"
+ "\tapp2: uid=" + mUid + ", state=" + getProcessStateByUid(mUid));
}
@@ -204,6 +205,21 @@ abstract class AbstractRestrictBackgroundNetworkTestCase extends Instrumentation
assertEquals("wrong status", toString(expectedStatus), actualStatus);
}
protected void assertMyRestrictBackgroundStatus(int expectedStatus) throws Exception {
final int actualStatus = mCm.getRestrictBackgroundStatus();
assertEquals("Wrong status", toString(expectedStatus), toString(actualStatus));
}
protected boolean isMyRestrictBackgroundStatus(int expectedStatus) throws Exception {
final int actualStatus = mCm.getRestrictBackgroundStatus();
if (expectedStatus != actualStatus) {
Log.d(TAG, "Expected: " + toString(expectedStatus)
+ " but actual: " + toString(actualStatus));
return false;
}
return true;
}
protected void assertBackgroundNetworkAccess(boolean expectAllowed) throws Exception {
assertBackgroundState(); // Sanity check.
assertNetworkAccess(expectAllowed);

View File

@@ -20,16 +20,21 @@ import static android.net.ConnectivityManager.RESTRICT_BACKGROUND_STATUS_DISABLE
import static android.net.ConnectivityManager.RESTRICT_BACKGROUND_STATUS_ENABLED;
import static android.net.ConnectivityManager.RESTRICT_BACKGROUND_STATUS_WHITELISTED;
import android.util.Log;
public class DataSaverModeTest extends AbstractRestrictBackgroundNetworkTestCase {
private static final String[] REQUIRED_WHITELISTED_PACKAGES = {
"com.android.providers.downloads"
};
private boolean mIsDataSaverSupported;
@Override
public void setUp() throws Exception {
super.setUp();
mIsDataSaverSupported = isDataSaverSupported();
if (!isSupported()) return;
// Set initial state.
@@ -59,6 +64,32 @@ public class DataSaverModeTest extends AbstractRestrictBackgroundNetworkTestCase
return setMeteredNetwork();
}
@Override
protected boolean isSupported() throws Exception {
if (!mIsDataSaverSupported) {
Log.i(TAG, "Skipping " + getClass() + "." + getName()
+ "() because device does not support Data Saver Mode");
}
return mIsDataSaverSupported && super.isSupported();
}
/**
* As per CDD requirements, if the device doesn't support data saver mode then
* ConnectivityManager.getRestrictBackgroundStatus() will always return
* RESTRICT_BACKGROUND_STATUS_DISABLED. So, enable the data saver mode and check if
* ConnectivityManager.getRestrictBackgroundStatus() for an app in background returns
* RESTRICT_BACKGROUND_STATUS_DISABLED or not.
*/
private boolean isDataSaverSupported() throws Exception {
assertMyRestrictBackgroundStatus(RESTRICT_BACKGROUND_STATUS_DISABLED);
try {
setRestrictBackground(true);
return !isMyRestrictBackgroundStatus(RESTRICT_BACKGROUND_STATUS_DISABLED);
} finally {
setRestrictBackground(false);
}
}
public void testGetRestrictBackgroundStatus_disabled() throws Exception {
if (!isSupported()) return;