am 22b78ac2: Test that system directories aren\'t writable.
Merge commit '22b78ac2326f39822696e334f1ccb0287328b59a' into gingerbread-plus-aosp
* commit '22b78ac2326f39822696e334f1ccb0287328b59a':
Test that system directories aren't writable.
diff --git a/tests/tests/permission/src/android/permission/cts/FileSystemPermissionTest.java b/tests/tests/permission/src/android/permission/cts/FileSystemPermissionTest.java
index 18f7f57..971286b 100644
--- a/tests/tests/permission/src/android/permission/cts/FileSystemPermissionTest.java
+++ b/tests/tests/permission/src/android/permission/cts/FileSystemPermissionTest.java
@@ -16,10 +16,12 @@
package android.permission.cts;
+import android.os.Environment;
import android.test.AndroidTestCase;
import java.io.File;
import java.io.FileOutputStream;
+import java.io.IOException;
/**
* Verify certain permissions on the filesystem
@@ -65,4 +67,32 @@
assertTrue(myDir.delete());
}
}
+
+ public void testDataDirectoryNotWritable() throws Exception {
+ assertDirectoryNotWritable(Environment.getDataDirectory());
+ }
+
+ public void testAndroidRootDirectoryNotWritable() throws Exception {
+ assertDirectoryNotWritable(Environment.getRootDirectory());
+ }
+
+ public void testDownloadCacheDirectoryNotWritable() throws Exception {
+ assertDirectoryNotWritable(Environment.getDownloadCacheDirectory());
+ }
+
+ public void testRootDirectoryNotWritable() throws Exception {
+ assertDirectoryNotWritable(new File("/"));
+ }
+
+ private static void assertDirectoryNotWritable(File directory) throws Exception {
+ File toCreate = new File(directory, "hello");
+ try {
+ toCreate.createNewFile();
+ fail("Expected \"java.io.IOException: Permission denied\""
+ + " while examining " + toCreate.getAbsolutePath());
+ } catch (IOException e) {
+ // It's expected we'll get a "Permission denied" exception.
+ }
+ toCreate.delete();
+ }
}