framework: tests: Clean up asec unit tests and add rename tests

Signed-off-by: San Mehat <san@google.com>
This commit is contained in:
San Mehat
2010-02-18 13:19:38 -08:00
parent d970998b0d
commit da2ca7a5b8

View File

@@ -78,6 +78,60 @@ public class AsecTests extends AndroidTestCase {
}
}
private boolean containerExists(String localId) throws RemoteException {
IMountService ms = getMs();
String[] containers = ms.getSecureContainerList();
String fullId = "com.android.unittests.AsecTests." + localId;
for (int i = 0; i < containers.length; i++) {
if (containers[i].equals(fullId)) {
return true;
}
}
return false;
}
private int createContainer(String localId, int size, String key) throws RemoteException {
Assert.assertTrue(isMediaMounted());
String fullId = "com.android.unittests.AsecTests." + localId;
IMountService ms = getMs();
return ms.createSecureContainer(fullId, size, "fat", key, android.os.Process.myUid());
}
private int mountContainer(String localId, String key) throws RemoteException {
Assert.assertTrue(isMediaMounted());
String fullId = "com.android.unittests.AsecTests." + localId;
IMountService ms = getMs();
return ms.mountSecureContainer(fullId, key, android.os.Process.myUid());
}
private int renameContainer(String localId1, String localId2) throws RemoteException {
Assert.assertTrue(isMediaMounted());
String fullId1 = "com.android.unittests.AsecTests." + localId1;
String fullId2 = "com.android.unittests.AsecTests." + localId2;
IMountService ms = getMs();
return ms.renameSecureContainer(fullId1, fullId2);
}
private int unmountContainer(String localId, boolean force) throws RemoteException {
Assert.assertTrue(isMediaMounted());
String fullId = "com.android.unittests.AsecTests." + localId;
IMountService ms = getMs();
return ms.unmountSecureContainer(fullId, force);
}
private int destroyContainer(String localId, boolean force) throws RemoteException {
Assert.assertTrue(isMediaMounted());
String fullId = "com.android.unittests.AsecTests." + localId;
IMountService ms = getMs();
return ms.destroySecureContainer(fullId, force);
}
private IMountService getMs() {
IBinder service = ServiceManager.getService("mount");
if (service != null) {
@@ -100,143 +154,174 @@ public class AsecTests extends AndroidTestCase {
}
public void testCreateContainer() {
Assert.assertTrue(isMediaMounted());
IMountService ms = getMs();
try {
int rc = ms.createSecureContainer("com.android.unittests.AsecTests.testCreateContainer",
4, "fat", "none", android.os.Process.myUid());
Assert.assertEquals(StorageResultCode.OperationSucceeded, rc);
} catch (Exception e) {
failStr(e);
}
}
public void testCreateZeroSizeContainer() {
Assert.assertTrue(isMediaMounted());
IMountService ms = getMs();
try {
int rc = ms.createSecureContainer("com.android.unittests.AsecTests.testCreateZeroSizeContainer",
0, "fat", "none", android.os.Process.myUid());
Assert.assertEquals(StorageResultCode.OperationFailedInternalError, rc);
Assert.assertEquals(StorageResultCode.OperationSucceeded,
createContainer("testCreateContainer", 4, "none"));
Assert.assertEquals(true, containerExists("testCreateContainer"));
} catch (Exception e) {
failStr(e);
}
}
public void testCreateMinSizeContainer() {
Assert.assertTrue(isMediaMounted());
IMountService ms = getMs();
try {
int rc = ms.createSecureContainer("com.android.unittests.AsecTests.testCreateMinSizeContainer",
1, "fat", "none", android.os.Process.myUid());
Assert.assertEquals(StorageResultCode.OperationSucceeded, rc);
Assert.assertEquals(StorageResultCode.OperationSucceeded,
createContainer("testCreateContainer", 1, "none"));
Assert.assertEquals(true, containerExists("testCreateContainer"));
} catch (Exception e) {
failStr(e);
}
}
public void testCreateZeroSizeContainer() {
try {
Assert.assertEquals(StorageResultCode.OperationFailedInternalError,
createContainer("testCreateZeroContainer", 0, "none"));
} catch (Exception e) {
failStr(e);
}
}
public void testCreateDuplicateContainer() {
try {
Assert.assertEquals(StorageResultCode.OperationSucceeded,
createContainer("testCreateDupContainer", 4, "none"));
Assert.assertEquals(StorageResultCode.OperationFailedInternalError,
createContainer("testCreateDupContainer", 4, "none"));
} catch (Exception e) {
failStr(e);
}
}
public void testDestroyContainer() {
Assert.assertTrue(isMediaMounted());
IMountService ms = getMs();
try {
int rc = ms.createSecureContainer("com.android.unittests.AsecTests.testDestroyContainer",
4, "fat", "none", android.os.Process.myUid());
Assert.assertEquals(StorageResultCode.OperationSucceeded, rc);
rc = ms.destroySecureContainer("com.android.unittests.AsecTests.testDestroyContainer", true);
Assert.assertEquals(StorageResultCode.OperationSucceeded, rc);
Assert.assertEquals(StorageResultCode.OperationSucceeded,
createContainer("testDestroyContainer", 4, "none"));
Assert.assertEquals(StorageResultCode.OperationSucceeded,
destroyContainer("testDestroyContainer", false));
} catch (Exception e) {
failStr(e);
}
}
public void testMountContainer() {
Assert.assertTrue(isMediaMounted());
IMountService ms = getMs();
try {
int rc = ms.createSecureContainer(
"com.android.unittests.AsecTests.testMountContainer",
4, "fat", "none", android.os.Process.myUid());
Assert.assertEquals(StorageResultCode.OperationSucceeded, rc);
Assert.assertEquals(StorageResultCode.OperationSucceeded,
createContainer("testMountContainer", 4, "none"));
rc = ms.unmountSecureContainer("com.android.unittests.AsecTests.testMountContainer", false);
Assert.assertEquals(StorageResultCode.OperationSucceeded, rc);
Assert.assertEquals(StorageResultCode.OperationSucceeded,
unmountContainer("testMountContainer", false));
rc = ms.mountSecureContainer("com.android.unittests.AsecTests.testMountContainer", "none",
android.os.Process.myUid());
Assert.assertEquals(StorageResultCode.OperationSucceeded, rc);
Assert.assertEquals(StorageResultCode.OperationSucceeded,
mountContainer("testMountContainer", "none"));
} catch (Exception e) {
failStr(e);
}
}
public void testMountBadKey() {
Assert.assertTrue(isMediaMounted());
IMountService ms = getMs();
try {
int rc = ms.createSecureContainer(
"com.android.unittests.AsecTests.testMountBadKey", 4, "fat",
"00000000000000000000000000000000", android.os.Process.myUid());
Assert.assertEquals(StorageResultCode.OperationSucceeded, rc);
Assert.assertEquals(StorageResultCode.OperationSucceeded,
createContainer("testMountBadKey", 4, "00000000000000000000000000000000"));
rc = ms.unmountSecureContainer("com.android.unittests.AsecTests.testMountBadKey", false);
Assert.assertEquals(StorageResultCode.OperationSucceeded, rc);
Assert.assertEquals(StorageResultCode.OperationSucceeded,
unmountContainer("testMountBadKey", false));
rc = ms.mountSecureContainer(
"com.android.unittests.AsecTests.testMountBadKey",
"00000000000000000000000000000001", 1001);
Assert.assertEquals(StorageResultCode.OperationFailedInternalError, rc);
Assert.assertEquals(StorageResultCode.OperationFailedInternalError,
mountContainer("testMountContainer", "000000000000000000000000000000001"));
rc = ms.mountSecureContainer(
"com.android.unittests.AsecTests.testMountBadKey", "none", 1001);
Assert.assertEquals(StorageResultCode.OperationFailedInternalError, rc);
Assert.assertEquals(StorageResultCode.OperationFailedInternalError,
mountContainer("testMountContainer", "none"));
} catch (Exception e) {
failStr(e);
}
}
public void testUnmountBusyContainer() {
Assert.assertTrue(isMediaMounted());
IMountService ms = getMs();
try {
int rc = ms.createSecureContainer("com.android.unittests.AsecTests.testUnmountBusyContainer",
4, "fat", "none", android.os.Process.myUid());
Assert.assertEquals(StorageResultCode.OperationSucceeded, rc);
Assert.assertEquals(StorageResultCode.OperationSucceeded,
createContainer("testUnmountBusyContainer", 4, "none"));
String path = ms.getSecureContainerPath("com.android.unittests.AsecTests.testUnmountBusyContainer");
Context con = super.getContext();
File f = new File(path, "reference");
FileOutputStream fos = new FileOutputStream(f);
rc = ms.unmountSecureContainer("com.android.unittests.AsecTests.testUnmountBusyContainer", false);
Assert.assertEquals(StorageResultCode.OperationFailedStorageBusy, rc);
fos.close();
rc = ms.unmountSecureContainer("com.android.unittests.AsecTests.testUnmountBusyContainer", false);
Assert.assertEquals(StorageResultCode.OperationSucceeded, rc);
Assert.assertEquals(StorageResultCode.OperationFailedStorageBusy,
unmountContainer("testUnmountBusyContainer", false));
fos.close();
Assert.assertEquals(StorageResultCode.OperationSucceeded,
unmountContainer("testUnmountBusyContainer", false));
} catch (Exception e) {
failStr(e);
}
}
public void testDestroyBusyContainer() {
Assert.assertTrue(isMediaMounted());
IMountService ms = getMs();
try {
int rc = ms.createSecureContainer("com.android.unittests.AsecTests.testUnmountBusyContainer",
4, "fat", "none", android.os.Process.myUid());
Assert.assertEquals(StorageResultCode.OperationSucceeded, rc);
Assert.assertEquals(StorageResultCode.OperationSucceeded,
createContainer("testDestroyBusyContainer", 4, "none"));
String path = ms.getSecureContainerPath("com.android.unittests.AsecTests.testUnmountBusyContainer");
Context con = super.getContext();
String path = ms.getSecureContainerPath("com.android.unittests.AsecTests.testDestroyBusyContainer");
File f = new File(path, "reference");
FileOutputStream fos = new FileOutputStream(f);
rc = ms.destroySecureContainer("com.android.unittests.AsecTests.testUnmountBusyContainer", false);
Assert.assertEquals(StorageResultCode.OperationFailedStorageBusy, rc);
fos.close();
rc = ms.destroySecureContainer("com.android.unittests.AsecTests.testUnmountBusyContainer", false);
Assert.assertEquals(StorageResultCode.OperationSucceeded, rc);
Assert.assertEquals(StorageResultCode.OperationFailedStorageBusy,
destroyContainer("testDestroyBusyContainer", false));
fos.close();
Assert.assertEquals(StorageResultCode.OperationSucceeded,
destroyContainer("testDestroyBusyContainer", false));
} catch (Exception e) {
failStr(e);
}
}
public void testRenameContainer() {
try {
Assert.assertEquals(StorageResultCode.OperationSucceeded,
createContainer("testRenameContainer.1", 4, "none"));
Assert.assertEquals(StorageResultCode.OperationSucceeded,
unmountContainer("testRenameContainer.1", false));
Assert.assertEquals(StorageResultCode.OperationSucceeded,
renameContainer("testRenameContainer.1", "testRenameContainer.2"));
Assert.assertEquals(false, containerExists("testRenameContainer.1"));
Assert.assertEquals(true, containerExists("testRenameContainer.2"));
} catch (Exception e) {
failStr(e);
}
}
public void testRenameMountedContainer() {
try {
Assert.assertEquals(StorageResultCode.OperationSucceeded,
createContainer("testRenameContainer.1", 4, "none"));
Assert.assertEquals(StorageResultCode.OperationFailedStorageMounted,
renameContainer("testRenameContainer.1", "testRenameContainer.2"));
} catch (Exception e) {
failStr(e);
}
}
public void testRenameToExistingContainer() {
try {
Assert.assertEquals(StorageResultCode.OperationSucceeded,
createContainer("testRenameContainer.1", 4, "none"));
Assert.assertEquals(StorageResultCode.OperationSucceeded,
createContainer("testRenameContainer.2", 4, "none"));
Assert.assertEquals(StorageResultCode.OperationFailedStorageMounted,
renameContainer("testRenameContainer.1", "testRenameContainer.2"));
} catch (Exception e) {
failStr(e);
}