summaryrefslogtreecommitdiffstats
path: root/core/tests
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2015-06-11 19:13:37 -0700
committerJeff Sharkey <jsharkey@android.com>2015-06-11 19:16:27 -0700
commit4f5e8b3ca489245005b76176ac6d28f5f184f3fe (patch)
tree2b7975f534d07dfc7759cd5461630457b31759f5 /core/tests
parent47b872d9c36347382dd24ad5c3f70490d8fcbb23 (diff)
downloadframeworks_base-4f5e8b3ca489245005b76176ac6d28f5f184f3fe.zip
frameworks_base-4f5e8b3ca489245005b76176ac6d28f5f184f3fe.tar.gz
frameworks_base-4f5e8b3ca489245005b76176ac6d28f5f184f3fe.tar.bz2
Valid filenames have length limits!
ext4 filenames are at most 255 bytes. vfat filenames are bit more lax, but we're often saving them on ext4 through a FUSE daemon, so limit them the same way. Since package names are used as directory names, verify that they're valid filenames. Tests to verify behavior. Bug: 18689171 Change-Id: If7df4c40d352954510b71de4ff05d78259c721ed
Diffstat (limited to 'core/tests')
-rw-r--r--core/tests/coretests/src/android/os/FileUtilsTest.java12
1 files changed, 12 insertions, 0 deletions
diff --git a/core/tests/coretests/src/android/os/FileUtilsTest.java b/core/tests/coretests/src/android/os/FileUtilsTest.java
index ee9e2e4..ac5abad 100644
--- a/core/tests/coretests/src/android/os/FileUtilsTest.java
+++ b/core/tests/coretests/src/android/os/FileUtilsTest.java
@@ -232,6 +232,18 @@ public class FileUtilsTest extends AndroidTestCase {
assertEquals("foo_bar__baz", FileUtils.buildValidFatFilename("foo?bar**baz"));
}
+ public void testTrimFilename() throws Exception {
+ assertEquals("short.txt", FileUtils.trimFilename("short.txt", 16));
+ assertEquals("extrem...eme.txt", FileUtils.trimFilename("extremelylongfilename.txt", 16));
+
+ final String unicode = "a\u03C0\u03C0\u03C0\u03C0z";
+ assertEquals("a\u03C0\u03C0\u03C0\u03C0z", FileUtils.trimFilename(unicode, 10));
+ assertEquals("a\u03C0...\u03C0z", FileUtils.trimFilename(unicode, 9));
+ assertEquals("a...\u03C0z", FileUtils.trimFilename(unicode, 8));
+ assertEquals("a...\u03C0z", FileUtils.trimFilename(unicode, 7));
+ assertEquals("a...z", FileUtils.trimFilename(unicode, 6));
+ }
+
public void testBuildUniqueFile_normal() throws Exception {
assertNameEquals("test.jpg", FileUtils.buildUniqueFile(mTarget, "image/jpeg", "test"));
assertNameEquals("test.jpg", FileUtils.buildUniqueFile(mTarget, "image/jpeg", "test.jpg"));