blob: 4e3282e6c44c983d211d894d15ed8bd8b0af748b [file] [log] [blame]
/*
* Copyright (C) 2020 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 android.os.cts;
import static org.junit.Assert.assertTrue;
import android.platform.test.annotations.AppModeFull;
import com.android.tradefed.testtype.DeviceJUnit4ClassRunner;
import com.android.tradefed.testtype.junit4.BaseHostJUnit4Test;
import org.junit.Test;
import org.junit.runner.RunWith;
/**
* Runs the host side tests for Environment.java
*/
@RunWith(DeviceJUnit4ClassRunner.class)
@AppModeFull
public class EnvironmentHostTests extends BaseHostJUnit4Test {
private static final String MANAGE_EXTERNAL_STORAGE_APP_OP = "android:manage_external_storage";
/**
* Runs the given phase of Test by calling into the device.
* Throws an exception if the test phase fails.
*/
private void runDeviceTest(String phase) throws Exception {
assertTrue(runDeviceTests("android.cts.environment",
"android.cts.environment.EnvironmentTest", phase));
}
private String executeShellCommand(String cmd) throws Exception {
return getDevice().executeShellCommand(cmd);
}
private void setAppOp(String appOp, boolean val) throws Exception {
executeShellCommand("cmd appops set --uid android.cts.environment "
+ appOp + (val ? " allow" : " deny"));
}
@Test
public void testIsExternalStorageManager() throws Exception {
// By default, this test app is not an external storage manager
runDeviceTest("testIsExternalStorageManagerFalse");
try {
setAppOp(MANAGE_EXTERNAL_STORAGE_APP_OP, true);
runDeviceTest("testIsExternalStorageManagerTrue");
} finally {
setAppOp(MANAGE_EXTERNAL_STORAGE_APP_OP, false);
}
}
}