diff options
author | Jeff Sharkey <jsharkey@android.com> | 2015-06-11 19:13:37 -0700 |
---|---|---|
committer | Jeff Sharkey <jsharkey@android.com> | 2015-06-11 19:16:27 -0700 |
commit | 4f5e8b3ca489245005b76176ac6d28f5f184f3fe (patch) | |
tree | 2b7975f534d07dfc7759cd5461630457b31759f5 /core/tests | |
parent | 47b872d9c36347382dd24ad5c3f70490d8fcbb23 (diff) | |
download | frameworks_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.java | 12 |
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")); |