summaryrefslogtreecommitdiffstats
path: root/webkit/fileapi/file_system_path_manager_unittest.cc
diff options
context:
space:
mode:
authorericu@google.com <ericu@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-28 01:21:30 +0000
committerericu@google.com <ericu@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-28 01:21:30 +0000
commit24099a743011d05a0077df37a3e9a1b13f62ff1a (patch)
tree70ef06c7496e6fc67116c56c5bebf4bf1fd2b9da /webkit/fileapi/file_system_path_manager_unittest.cc
parent054702d224472e01faf94482e2219ff1cd2b1aa7 (diff)
downloadchromium_src-24099a743011d05a0077df37a3e9a1b13f62ff1a.zip
chromium_src-24099a743011d05a0077df37a3e9a1b13f62ff1a.tar.gz
chromium_src-24099a743011d05a0077df37a3e9a1b13f62ff1a.tar.bz2
Remove old filesystem naming restrictions, as per the new spec.
I retain backslash as illegal, as it's currently a real pain to support. BUG=none TEST=unit tests Review URL: http://codereview.chromium.org/7084008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@87131 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/fileapi/file_system_path_manager_unittest.cc')
-rw-r--r--webkit/fileapi/file_system_path_manager_unittest.cc102
1 files changed, 63 insertions, 39 deletions
diff --git a/webkit/fileapi/file_system_path_manager_unittest.cc b/webkit/fileapi/file_system_path_manager_unittest.cc
index cfdd5ca..122487e 100644
--- a/webkit/fileapi/file_system_path_manager_unittest.cc
+++ b/webkit/fileapi/file_system_path_manager_unittest.cc
@@ -107,21 +107,24 @@ const struct IsRestrictedNameTest {
FilePath::StringType name;
bool expected_dangerous;
} kIsRestrictedNameTestCases[] = {
- // Name that has restricted names in it.
- { FILE_PATH_LITERAL("con"), true, },
- { FILE_PATH_LITERAL("Con.txt"), true, },
- { FILE_PATH_LITERAL("Prn.png"), true, },
- { FILE_PATH_LITERAL("AUX"), true, },
- { FILE_PATH_LITERAL("nUl."), true, },
- { FILE_PATH_LITERAL("coM1"), true, },
- { FILE_PATH_LITERAL("COM3.com"), true, },
- { FILE_PATH_LITERAL("cOM7"), true, },
- { FILE_PATH_LITERAL("com9"), true, },
- { FILE_PATH_LITERAL("lpT1"), true, },
- { FILE_PATH_LITERAL("LPT4.com"), true, },
- { FILE_PATH_LITERAL("lPT8"), true, },
- { FILE_PATH_LITERAL("lPT9"), true, },
- // Similar but safe cases.
+
+ // Names that contain strings that used to be restricted, but are now allowed.
+ { FILE_PATH_LITERAL("con"), false, },
+ { FILE_PATH_LITERAL("Con.txt"), false, },
+ { FILE_PATH_LITERAL("Prn.png"), false, },
+ { FILE_PATH_LITERAL("AUX"), false, },
+ { FILE_PATH_LITERAL("nUl."), false, },
+ { FILE_PATH_LITERAL("coM1"), false, },
+ { FILE_PATH_LITERAL("COM3.com"), false, },
+ { FILE_PATH_LITERAL("cOM7"), false, },
+ { FILE_PATH_LITERAL("com9"), false, },
+ { FILE_PATH_LITERAL("lpT1"), false, },
+ { FILE_PATH_LITERAL("LPT4.com"), false, },
+ { FILE_PATH_LITERAL("lPT8"), false, },
+ { FILE_PATH_LITERAL("lPT9"), false, },
+ { FILE_PATH_LITERAL("com1."), false, },
+
+ // Similar cases that have always been allowed.
{ FILE_PATH_LITERAL("con3"), false, },
{ FILE_PATH_LITERAL("PrnImage.png"), false, },
{ FILE_PATH_LITERAL("AUXX"), false, },
@@ -131,14 +134,15 @@ const struct IsRestrictedNameTest {
{ FILE_PATH_LITERAL("lpT0"), false, },
{ FILE_PATH_LITERAL("LPT.com"), false, },
- // Ends with period or whitespace.
- { FILE_PATH_LITERAL("b "), true, },
- { FILE_PATH_LITERAL("b\t"), true, },
- { FILE_PATH_LITERAL("b\n"), true, },
- { FILE_PATH_LITERAL("b\r\n"), true, },
- { FILE_PATH_LITERAL("b."), true, },
- { FILE_PATH_LITERAL("b.."), true, },
- // Similar but safe cases.
+ // Ends with period or whitespace--used to be banned, now OK.
+ { FILE_PATH_LITERAL("b "), false, },
+ { FILE_PATH_LITERAL("b\t"), false, },
+ { FILE_PATH_LITERAL("b\n"), false, },
+ { FILE_PATH_LITERAL("b\r\n"), false, },
+ { FILE_PATH_LITERAL("b."), false, },
+ { FILE_PATH_LITERAL("b.."), false, },
+
+ // Similar cases that have always been allowed.
{ FILE_PATH_LITERAL("b c"), false, },
{ FILE_PATH_LITERAL("b\tc"), false, },
{ FILE_PATH_LITERAL("b\nc"), false, },
@@ -148,27 +152,47 @@ const struct IsRestrictedNameTest {
{ FILE_PATH_LITERAL("b..c"), false, },
// Name that has restricted chars in it.
+ { FILE_PATH_LITERAL("\\"), true, },
+ { FILE_PATH_LITERAL("/"), true, },
{ FILE_PATH_LITERAL("a\\b"), true, },
{ FILE_PATH_LITERAL("a/b"), true, },
- { FILE_PATH_LITERAL("a<b"), true, },
- { FILE_PATH_LITERAL("a>b"), true, },
- { FILE_PATH_LITERAL("a:b"), true, },
- { FILE_PATH_LITERAL("a?b"), true, },
- { FILE_PATH_LITERAL("a|b"), true, },
{ FILE_PATH_LITERAL("ab\\"), true, },
- { FILE_PATH_LITERAL("ab/.txt"), true, },
- { FILE_PATH_LITERAL("ab<.txt"), true, },
- { FILE_PATH_LITERAL("ab>.txt"), true, },
- { FILE_PATH_LITERAL("ab:.txt"), true, },
- { FILE_PATH_LITERAL("ab?.txt"), true, },
- { FILE_PATH_LITERAL("ab|.txt"), true, },
+ { FILE_PATH_LITERAL("ab/"), true, },
{ FILE_PATH_LITERAL("\\ab"), true, },
{ FILE_PATH_LITERAL("/ab"), true, },
- { FILE_PATH_LITERAL("<ab"), true, },
- { FILE_PATH_LITERAL(">ab"), true, },
- { FILE_PATH_LITERAL(":ab"), true, },
- { FILE_PATH_LITERAL("?ab"), true, },
- { FILE_PATH_LITERAL("|ab"), true, },
+ { FILE_PATH_LITERAL("ab/.txt"), true, },
+ { FILE_PATH_LITERAL("ab\\.txt"), true, },
+
+ // Names that contain chars that were formerly restricted, now OK.
+ { FILE_PATH_LITERAL("a<b"), false, },
+ { FILE_PATH_LITERAL("a>b"), false, },
+ { FILE_PATH_LITERAL("a:b"), false, },
+ { FILE_PATH_LITERAL("a?b"), false, },
+ { FILE_PATH_LITERAL("a|b"), false, },
+ { FILE_PATH_LITERAL("ab<.txt"), false, },
+ { FILE_PATH_LITERAL("ab>.txt"), false, },
+ { FILE_PATH_LITERAL("ab:.txt"), false, },
+ { FILE_PATH_LITERAL("ab?.txt"), false, },
+ { FILE_PATH_LITERAL("ab|.txt"), false, },
+ { FILE_PATH_LITERAL("<ab"), false, },
+ { FILE_PATH_LITERAL(">ab"), false, },
+ { FILE_PATH_LITERAL(":ab"), false, },
+ { FILE_PATH_LITERAL("?ab"), false, },
+ { FILE_PATH_LITERAL("|ab"), false, },
+
+ // Names that are restricted still.
+ { FILE_PATH_LITERAL(".."), true, },
+ { FILE_PATH_LITERAL("."), true, },
+
+ // Similar but safe cases.
+ { FILE_PATH_LITERAL(" ."), false, },
+ { FILE_PATH_LITERAL(". "), false, },
+ { FILE_PATH_LITERAL(" . "), false, },
+ { FILE_PATH_LITERAL(" .."), false, },
+ { FILE_PATH_LITERAL(".. "), false, },
+ { FILE_PATH_LITERAL(" .. "), false, },
+ { FILE_PATH_LITERAL("b."), false, },
+ { FILE_PATH_LITERAL(".b"), false, },
};
FilePath UTF8ToFilePath(const std::string& str) {