diff options
| -rw-r--r-- | core/tests/coretests/src/android/os/storage/StorageManagerBaseTest.java | 54 | ||||
| -rw-r--r-- | core/tests/coretests/src/android/os/storage/StorageManagerIntegrationTest.java | 94 |
2 files changed, 42 insertions, 106 deletions
diff --git a/core/tests/coretests/src/android/os/storage/StorageManagerBaseTest.java b/core/tests/coretests/src/android/os/storage/StorageManagerBaseTest.java index 90cb9a5a8f6f..56629d4c4494 100644 --- a/core/tests/coretests/src/android/os/storage/StorageManagerBaseTest.java +++ b/core/tests/coretests/src/android/os/storage/StorageManagerBaseTest.java @@ -18,24 +18,21 @@ package android.os.storage; import android.content.Context; import android.content.res.Resources; -import android.content.res.Resources.NotFoundException; -import android.os.Environment; -import android.os.SystemClock; import android.test.InstrumentationTestCase; import android.util.Log; -import android.os.Environment; -import android.os.FileUtils; -import android.os.storage.OnObbStateChangeListener; -import android.os.storage.StorageManager; + +import libcore.io.Streams; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; +import java.io.FileOutputStream; import java.io.FileReader; -import java.io.InputStream; import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; import java.io.StringReader; public class StorageManagerBaseTest extends InstrumentationTestCase { @@ -219,46 +216,21 @@ public class StorageManagerBaseTest extends InstrumentationTestCase { } /** - * Helper to copy a raw resource file to an actual specified file - * - * @param rawResId The raw resource ID of the OBB resource file - * @param outFile A File representing the file we want to copy the OBB to - * @throws NotFoundException If the resource file could not be found - */ - private void copyRawToFile(int rawResId, File outFile) throws NotFoundException { - Resources res = mContext.getResources(); - InputStream is = null; - try { - is = res.openRawResource(rawResId); - } catch (NotFoundException e) { - Log.i(LOG_TAG, "Failed to load resource with id: " + rawResId); - throw e; - } - FileUtils.setPermissions(outFile.getPath(), FileUtils.S_IRWXU | FileUtils.S_IRWXG - | FileUtils.S_IRWXO, -1, -1); - assertTrue(FileUtils.copyToFile(is, outFile)); - FileUtils.setPermissions(outFile.getPath(), FileUtils.S_IRWXU | FileUtils.S_IRWXG - | FileUtils.S_IRWXO, -1, -1); - } - - /** * Creates an OBB file (with the given name), into the app's standard files directory * * @param name The name of the OBB file we want to create/write to * @param rawResId The raw resource ID of the OBB file in the package * @return A {@link File} representing the file to write to */ - protected File createObbFile(String name, int rawResId) { - File outFile = null; - try { - final File filesDir = mContext.getFilesDir(); - outFile = new File(filesDir, name); - copyRawToFile(rawResId, outFile); - } catch (NotFoundException e) { - if (outFile != null) { - outFile.delete(); - } + protected File createObbFile(String name, int rawResId) throws IOException, Resources.NotFoundException { + final File outFile = new File(mContext.getObbDir(), name); + outFile.delete(); + + try (InputStream in = mContext.getResources().openRawResource(rawResId); + OutputStream out = new FileOutputStream(outFile)) { + Streams.copy(in, out); } + return outFile; } diff --git a/core/tests/coretests/src/android/os/storage/StorageManagerIntegrationTest.java b/core/tests/coretests/src/android/os/storage/StorageManagerIntegrationTest.java index fbba6fffcd8e..5f8bd03ad50d 100644 --- a/core/tests/coretests/src/android/os/storage/StorageManagerIntegrationTest.java +++ b/core/tests/coretests/src/android/os/storage/StorageManagerIntegrationTest.java @@ -16,61 +16,27 @@ package android.os.storage; -import android.content.Context; -import android.os.Environment; -import android.os.ProxyFileDescriptorCallback; import android.os.ParcelFileDescriptor; +import android.os.ProxyFileDescriptorCallback; import android.system.ErrnoException; -import android.system.Os; -import android.test.InstrumentationTestCase; import android.test.suitebuilder.annotation.LargeTest; -import android.test.suitebuilder.annotation.Suppress; import android.util.Log; import com.android.frameworks.coretests.R; -import com.android.internal.os.FuseAppLoop; -import java.io.DataInputStream; -import java.io.IOException; -import java.util.concurrent.ThreadFactory; -import java.io.File; -import java.io.FileInputStream; -import junit.framework.AssertionFailedError; +import java.io.File; +import java.util.concurrent.ThreadFactory; public class StorageManagerIntegrationTest extends StorageManagerBaseTest { - - private static String LOG_TAG = "StorageManagerBaseTest.StorageManagerIntegrationTest"; - protected File mFile = null; - - /** - * {@inheritDoc} - */ - @Override - public void setUp() throws Exception { - super.setUp(); - mContext = getInstrumentation().getContext(); - mFile = null; - } - - /** - * {@inheritDoc} - */ - @Override - protected void tearDown() throws Exception { - if (mFile != null) { - mFile.delete(); - mFile = null; - } - super.tearDown(); - } + private static String LOG_TAG = "StorageManagerIntegrationTest"; /** * Tests mounting a single OBB file and verifies its contents. */ @LargeTest - public void testMountSingleObb() { - mFile = createObbFile(OBB_FILE_1, R.raw.obb_file1); - String filePath = mFile.getAbsolutePath(); + public void testMountSingleObb() throws Exception { + final File file = createObbFile(OBB_FILE_1, R.raw.obb_file1); + String filePath = file.getAbsolutePath(); mountObb(filePath); verifyObb1Contents(filePath); unmountObb(filePath, DONT_FORCE); @@ -80,7 +46,7 @@ public class StorageManagerIntegrationTest extends StorageManagerBaseTest { * Tests mounting several OBB files and verifies its contents. */ @LargeTest - public void testMountMultipleObb() { + public void testMountMultipleObb() throws Exception { File file1 = null; File file2 = null; File file3 = null; @@ -120,9 +86,9 @@ public class StorageManagerIntegrationTest extends StorageManagerBaseTest { * Tests mounting a single encrypted OBB file and verifies its contents. */ @LargeTest - public void testMountSingleEncryptedObb() { - mFile = createObbFile(OBB_FILE_3_ENCRYPTED, R.raw.obb_enc_file100_orig3); - String filePath = mFile.getAbsolutePath(); + public void testMountSingleEncryptedObb() throws Exception { + final File file = createObbFile(OBB_FILE_3_ENCRYPTED, R.raw.obb_enc_file100_orig3); + String filePath = file.getAbsolutePath(); mountObb(filePath, OBB_FILE_3_PASSWORD, OnObbStateChangeListener.MOUNTED); verifyObb3Contents(filePath); unmountObb(filePath, DONT_FORCE); @@ -132,19 +98,17 @@ public class StorageManagerIntegrationTest extends StorageManagerBaseTest { * Tests mounting a single encrypted OBB file using an invalid password. */ @LargeTest - @Suppress // Failing. - public void testMountSingleEncryptedObbInvalidPassword() { - mFile = createObbFile("bad password@$%#@^*(!&)", R.raw.obb_enc_file100_orig3); - String filePath = mFile.getAbsolutePath(); - mountObb(filePath, OBB_FILE_3_PASSWORD, OnObbStateChangeListener.ERROR_COULD_NOT_MOUNT); - unmountObb(filePath, DONT_FORCE); + public void testMountSingleEncryptedObbInvalidPassword() throws Exception { + final File file = createObbFile("bad password@$%#@^*(!&)", R.raw.obb_enc_file100_orig3); + String filePath = file.getAbsolutePath(); + mountObb(filePath, OBB_FILE_1_PASSWORD, OnObbStateChangeListener.ERROR_COULD_NOT_MOUNT); } /** * Tests simultaneously mounting 2 encrypted OBBs with different keys and verifies contents. */ @LargeTest - public void testMountTwoEncryptedObb() { + public void testMountTwoEncryptedObb() throws Exception { File file3 = null; File file1 = null; try { @@ -174,9 +138,9 @@ public class StorageManagerIntegrationTest extends StorageManagerBaseTest { * Tests that we can not force unmount when a file is currently open on the OBB. */ @LargeTest - public void testUnmount_DontForce() { - mFile = createObbFile(OBB_FILE_1, R.raw.obb_file1); - String obbFilePath = mFile.getAbsolutePath(); + public void testUnmount_DontForce() throws Exception { + final File file = createObbFile(OBB_FILE_1, R.raw.obb_file1); + String obbFilePath = file.getAbsolutePath(); MountingObbThread mountingThread = new MountingObbThread(obbFilePath, OBB_FILE_1_CONTENTS_1); @@ -218,9 +182,9 @@ public class StorageManagerIntegrationTest extends StorageManagerBaseTest { * Tests mounting a single OBB that isn't signed. */ @LargeTest - public void testMountUnsignedObb() { - mFile = createObbFile(OBB_FILE_2_UNSIGNED, R.raw.obb_file2_nosign); - String filePath = mFile.getAbsolutePath(); + public void testMountUnsignedObb() throws Exception { + final File file = createObbFile(OBB_FILE_2_UNSIGNED, R.raw.obb_file2_nosign); + String filePath = file.getAbsolutePath(); mountObb(filePath, OBB_FILE_2_UNSIGNED, OnObbStateChangeListener.ERROR_INTERNAL); } @@ -228,9 +192,9 @@ public class StorageManagerIntegrationTest extends StorageManagerBaseTest { * Tests mounting a single OBB that is signed with a different package. */ @LargeTest - public void testMountBadPackageNameObb() { - mFile = createObbFile(OBB_FILE_3_BAD_PACKAGENAME, R.raw.obb_file3_bad_packagename); - String filePath = mFile.getAbsolutePath(); + public void testMountBadPackageNameObb() throws Exception { + final File file = createObbFile(OBB_FILE_3_BAD_PACKAGENAME, R.raw.obb_file3_bad_packagename); + String filePath = file.getAbsolutePath(); mountObb(filePath, OBB_FILE_3_BAD_PACKAGENAME, OnObbStateChangeListener.ERROR_PERMISSION_DENIED); } @@ -239,9 +203,9 @@ public class StorageManagerIntegrationTest extends StorageManagerBaseTest { * Tests remounting a single OBB that has already been mounted. */ @LargeTest - public void testRemountObb() { - mFile = createObbFile(OBB_FILE_1, R.raw.obb_file1); - String filePath = mFile.getAbsolutePath(); + public void testRemountObb() throws Exception { + final File file = createObbFile(OBB_FILE_1, R.raw.obb_file1); + String filePath = file.getAbsolutePath(); mountObb(filePath); verifyObb1Contents(filePath); mountObb(filePath, null, OnObbStateChangeListener.ERROR_ALREADY_MOUNTED); @@ -291,4 +255,4 @@ public class StorageManagerIntegrationTest extends StorageManagerBaseTest { return thread; } } -}
\ No newline at end of file +} |