diff options
author | mark@chromium.org <mark@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-22 19:34:25 +0000 |
---|---|---|
committer | mark@chromium.org <mark@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-22 19:34:25 +0000 |
commit | 19abd36fc075d1ddbb8adfb1af78f63b1116bd0a (patch) | |
tree | fb8be24364078d2d3b17bddd76e2e48865574214 /chrome/browser/download | |
parent | 69d51f9ca40eb561881fdbd45cad3dad0f3bb075 (diff) | |
download | chromium_src-19abd36fc075d1ddbb8adfb1af78f63b1116bd0a.zip chromium_src-19abd36fc075d1ddbb8adfb1af78f63b1116bd0a.tar.gz chromium_src-19abd36fc075d1ddbb8adfb1af78f63b1116bd0a.tar.bz2 |
A few more #ifdefs for platform-specific behaviors to port this test to mac.
Haven't tested outside of mac yet, so the guard for GetSafeFilename is still present for linux. Trybot should be run to make sure it passed in Win.
BUG=21632
TEST=none
Review URL: http://codereview.chromium.org/296001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29797 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/download')
-rw-r--r-- | chrome/browser/download/download_manager_unittest.cc | 131 |
1 files changed, 79 insertions, 52 deletions
diff --git a/chrome/browser/download/download_manager_unittest.cc b/chrome/browser/download/download_manager_unittest.cc index a5058cf..7a4a9bd 100644 --- a/chrome/browser/download/download_manager_unittest.cc +++ b/chrome/browser/download/download_manager_unittest.cc @@ -14,6 +14,23 @@ #include <locale.h> #endif +#if defined(OS_WIN) +#define JPEG_EXT L".jpg" +#define HTML_EXT L".htm" +#define TXT_EXT L".txt" +#define TAR_EXT L".tar" +#elif defined(OS_MACOSX) +#define JPEG_EXT L".jpeg" +#define HTML_EXT L".html" +#define TXT_EXT L".txt" +#define TAR_EXT L".tar" +#else +#define JPEG_EXT L"" +#define HTML_EXT L"" +#define TXT_EXT L"" +#define TAR_EXT L"" +#endif + class DownloadManagerTest : public testing::Test { public: DownloadManagerTest() { @@ -71,11 +88,7 @@ const struct { // No useful information in disposition or URL, use default {"", "http://www.truncated.com/path/", "text/plain", -#if defined(OS_LINUX) - L"download" -#else - L"download.txt" -#endif + L"download" TXT_EXT }, // A normal avi should get .avi and not .avi.avi @@ -94,7 +107,8 @@ const struct { {"filename=my-cat", "http://www.example.com/my-cat", "image/jpeg", - L"my-cat.jpg"}, + L"my-cat" JPEG_EXT + }, {"filename=my-cat", "http://www.example.com/my-cat", @@ -104,7 +118,8 @@ const struct { {"filename=my-cat", "http://www.example.com/my-cat", "text/html", - L"my-cat.htm"}, + L"my-cat" HTML_EXT + }, {"filename=my-cat", "http://www.example.com/my-cat", @@ -203,11 +218,7 @@ const struct { {"filename=.hidden", "http://www.evil.com/.hidden", "text/plain", -#if defined(OS_LINUX) - L"hidden" -#else - L"hidden.txt" -#endif + L"hidden" TXT_EXT }, {"filename=trailing.", @@ -219,11 +230,7 @@ const struct { {"filename=trailing.", "http://www.evil.com/trailing.", "text/plain", -#if defined(OS_LINUX) - L"trailing" -#else - L"trailing.txt" -#endif + L"trailing" TXT_EXT }, {"filename=.", @@ -245,21 +252,13 @@ const struct { {"a_file_name.txt", "http://www.evil.com/", "image/jpeg", -#if defined(OS_LINUX) - L"download" -#else - L"download.jpg" -#endif + L"download" JPEG_EXT }, {"filename=", "http://www.evil.com/", "image/jpeg", -#if defined(OS_LINUX) - L"download" -#else - L"download.jpg" -#endif + L"download" JPEG_EXT }, {"filename=simple", @@ -365,17 +364,20 @@ const struct { {"filename=source.srf", "http://www.hotmail.com", "image/jpeg", -#if defined(OS_WIN) - L"source.srf.jpg" -#else - L"source.srf" -#endif -}, + L"source.srf" JPEG_EXT + }, {"filename=source.jpg", "http://www.hotmail.com", "application/x-javascript", - L"source.jpg"}, +#if defined(OS_WIN) + L"source.jpg" +#elif defined(OS_MACOSX) + L"source.jpg.js" +#else + L"source.jpg" +#endif + }, // NetUtilTest.{GetSuggestedFilename, GetFileNameFromCD} test these // more thoroughly. Tested below are a small set of samples. @@ -399,11 +401,7 @@ const struct { {"attachment; filename==?iiso88591?Q?caf=EG?=", "http://www.example.com/test%20123", "image/jpeg", -#if defined(OS_LINUX) - L"test 123" -#else - L"test 123.jpg" -#endif + L"test 123" JPEG_EXT }, {"malformed_disposition", @@ -415,11 +413,7 @@ const struct { {"attachment; filename==?iso88591?Q?caf=E3?", "http://www.google.com/path1/path2/", "image/jpeg", -#if defined(OS_LINUX) - L"download" -#else - L"download.jpg" -#endif + L"download" JPEG_EXT }, // Issue=5772. @@ -442,11 +436,7 @@ const struct { {"", "http://www.example.com/bar.bogus", "application/x-tar", -#if defined(OS_LINUX) - L"bar.bogus" -#else - L"bar.bogus.tar" -#endif + L"bar.bogus" TAR_EXT }, // http://code.google.com/p/chromium/issues/detail?id=20337 @@ -509,6 +499,7 @@ const struct { const char* mime_type; const FilePath::CharType* expected_path; } kSafeFilenameCases[] = { +#if defined(OS_WIN) { FILE_PATH_LITERAL("C:\\foo\\bar.htm"), "text/html", FILE_PATH_LITERAL("C:\\foo\\bar.htm") }, @@ -543,12 +534,48 @@ const struct { { FILE_PATH_LITERAL("C:\\foo\\con"), "text/html", FILE_PATH_LITERAL("C:\\foo\\_con.htm") }, +#else + { FILE_PATH_LITERAL("/foo/bar.htm"), + "text/html", + FILE_PATH_LITERAL("/foo/bar.htm") }, + { FILE_PATH_LITERAL("/foo/bar.html"), + "text/html", + FILE_PATH_LITERAL("/foo/bar.html") }, + { FILE_PATH_LITERAL("/foo/bar"), + "text/html", + FILE_PATH_LITERAL("/foo/bar.html") }, + + { FILE_PATH_LITERAL("/bar.html"), + "image/png", + FILE_PATH_LITERAL("/bar.html.png") }, + { FILE_PATH_LITERAL("/bar"), + "image/png", + FILE_PATH_LITERAL("/bar.png") }, + + { FILE_PATH_LITERAL("/foo/bar.exe"), + "text/html", + FILE_PATH_LITERAL("/foo/bar.exe.html") }, + { FILE_PATH_LITERAL("/foo/bar.exe"), + "image/gif", + FILE_PATH_LITERAL("/foo/bar.exe.gif") }, + + { FILE_PATH_LITERAL("/foo/google.com"), + "text/html", + FILE_PATH_LITERAL("/foo/google.com.html") }, + + { FILE_PATH_LITERAL("/foo/con.htm"), + "text/html", + FILE_PATH_LITERAL("/foo/con.htm") }, + { FILE_PATH_LITERAL("/foo/con"), + "text/html", + FILE_PATH_LITERAL("/foo/con.html") }, +#endif // OS_WIN }; } // namespace -#if defined(OS_WIN) -// TODO(port): port to non-Windows. +#if !defined(OS_LINUX) +// TODO(port): port to Linux. TEST_F(DownloadManagerTest, GetSafeFilename) { for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kSafeFilenameCases); ++i) { FilePath path(kSafeFilenameCases[i].path); @@ -557,4 +584,4 @@ TEST_F(DownloadManagerTest, GetSafeFilename) { EXPECT_EQ(kSafeFilenameCases[i].expected_path, path.value()); } } -#endif // OS_WIN +#endif // OS_LINUX |