Merge "AppSecurityTests: Do not delete in WhiteLists."
diff --git a/hostsidetests/appsecurity/test-apps/ExternalStorageApp/src/com/android/cts/externalstorageapp/CommonExternalStorageTest.java b/hostsidetests/appsecurity/test-apps/ExternalStorageApp/src/com/android/cts/externalstorageapp/CommonExternalStorageTest.java
index f38236b..5b4d9f7 100644
--- a/hostsidetests/appsecurity/test-apps/ExternalStorageApp/src/com/android/cts/externalstorageapp/CommonExternalStorageTest.java
+++ b/hostsidetests/appsecurity/test-apps/ExternalStorageApp/src/com/android/cts/externalstorageapp/CommonExternalStorageTest.java
@@ -274,8 +274,38 @@
}
}
+ private static boolean isWhiteList(File file) {
+ final String[] whiteLists = {
+ "autorun.inf", ".android_secure", "android_secure"
+ };
+ if (file.getParentFile().getAbsolutePath().equals(
+ Environment.getExternalStorageDirectory().getAbsolutePath())) {
+ for (String whiteList : whiteLists) {
+ if (file.getName().equalsIgnoreCase(whiteList)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ private static File[] removeWhiteList(File[] files) {
+ List<File> fileList = new ArrayList<File>();
+ if (files == null) {
+ return null;
+ }
+
+ for (File file : files) {
+ if (!isWhiteList(file)) {
+ fileList.add(file);
+ }
+ }
+ return fileList.toArray(new File[fileList.size()]);
+ }
+
public static void deleteContents(File dir) throws IOException {
File[] files = dir.listFiles();
+ files = removeWhiteList(files);
if (files != null) {
for (File file : files) {
if (file.isDirectory()) {
@@ -283,7 +313,9 @@
}
assertTrue(file.delete());
}
- assertEquals(0, dir.listFiles().length);
+
+ File[] dirs = removeWhiteList(dir.listFiles());
+ assertEquals(0, dirs.length);
}
}