| Index: content/browser/download/save_package_unittest.cc
|
| diff --git a/content/browser/download/save_package_unittest.cc b/content/browser/download/save_package_unittest.cc
|
| index bdfea94952c415c17e78223e72115b4ca8601a9d..c75a28bf6c75c58962104ac0012876a80cb3cd94 100644
|
| --- a/content/browser/download/save_package_unittest.cc
|
| +++ b/content/browser/download/save_package_unittest.cc
|
| @@ -44,13 +44,6 @@ const uint32_t kMaxFilePathLength = PATH_MAX - 1;
|
| const uint32_t kMaxFileNameLength = NAME_MAX;
|
| #endif
|
|
|
| -// Used to make long filenames.
|
| -std::string long_file_name(
|
| - "EFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz01234567"
|
| - "89ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz012345"
|
| - "6789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz0123"
|
| - "456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789a");
|
| -
|
| bool HasOrdinalNumber(const base::FilePath::StringType& filename) {
|
| base::FilePath::StringType::size_type r_paren_index =
|
| filename.rfind(FPL(')'));
|
| @@ -112,17 +105,11 @@ class SavePackageTest : public RenderViewHostImplTestHarness {
|
| temp_dir_.path().AppendASCII("testfile" HTML_EXTENSION),
|
| temp_dir_.path().AppendASCII("testfile_files"));
|
|
|
| - // We need to construct a path that is *almost* kMaxFilePathLength long
|
| - long_file_name.reserve(kMaxFilePathLength + long_file_name.length());
|
| - while (long_file_name.length() < kMaxFilePathLength)
|
| - long_file_name += long_file_name;
|
| - long_file_name.resize(
|
| - kMaxFilePathLength - 9 - temp_dir_.path().value().length());
|
| -
|
| + base::FilePath::StringType long_file_name = GetLongFileName();
|
| save_package_fail_ = new SavePackage(
|
| contents(), SAVE_PAGE_TYPE_AS_COMPLETE_HTML,
|
| - temp_dir_.path().AppendASCII(long_file_name + HTML_EXTENSION),
|
| - temp_dir_.path().AppendASCII(long_file_name + "_files"));
|
| + temp_dir_.path().Append(long_file_name + FPL_HTML_EXTENSION),
|
| + temp_dir_.path().Append(long_file_name + FPL("_files")));
|
| }
|
|
|
| BrowserContext* CreateBrowserContext() override {
|
| @@ -145,6 +132,13 @@ class SavePackageTest : public RenderViewHostImplTestHarness {
|
| RenderViewHostImplTestHarness::TearDown();
|
| }
|
|
|
| + // Returns a path that is *almost* kMaxFilePathLength long
|
| + base::FilePath::StringType GetLongFileName() const {
|
| + size_t target_length =
|
| + kMaxFilePathLength - 9 - temp_dir_.path().value().length();
|
| + return base::FilePath::StringType(target_length, FPL('a'));
|
| + }
|
| +
|
| private:
|
| // SavePackage for successfully generating file name.
|
| scoped_refptr<SavePackage> save_package_success_;
|
| @@ -237,19 +231,21 @@ TEST_F(SavePackageTest, TestUnSuccessfullyGenerateSavePackageFilename) {
|
| #endif
|
| TEST_F(SavePackageTest, MAYBE_TestLongSavePackageFilename) {
|
| const std::string base_url("http://www.google.com/");
|
| - const std::string long_file = long_file_name + ".css";
|
| - const std::string url = base_url + long_file;
|
| + const base::FilePath::StringType long_file_name =
|
| + GetLongFileName() + FPL(".css");
|
| + const std::string url =
|
| + base_url + base::FilePath(long_file_name).AsUTF8Unsafe();
|
|
|
| base::FilePath::StringType filename;
|
| // Test that the filename is successfully shortened to fit.
|
| ASSERT_TRUE(GetGeneratedFilename(true, std::string(), url, false, &filename));
|
| - EXPECT_TRUE(filename.length() < long_file.length());
|
| + EXPECT_TRUE(filename.length() < long_file_name.length());
|
| EXPECT_FALSE(HasOrdinalNumber(filename));
|
|
|
| // Test that the filename is successfully shortened to fit, and gets an
|
| // an ordinal appended.
|
| ASSERT_TRUE(GetGeneratedFilename(true, std::string(), url, false, &filename));
|
| - EXPECT_TRUE(filename.length() < long_file.length());
|
| + EXPECT_TRUE(filename.length() < long_file_name.length());
|
| EXPECT_TRUE(HasOrdinalNumber(filename));
|
|
|
| // Test that the filename is successfully shortened to fit, and gets a
|
| @@ -257,7 +253,7 @@ TEST_F(SavePackageTest, MAYBE_TestLongSavePackageFilename) {
|
| base::FilePath::StringType filename2;
|
| ASSERT_TRUE(
|
| GetGeneratedFilename(true, std::string(), url, false, &filename2));
|
| - EXPECT_TRUE(filename2.length() < long_file.length());
|
| + EXPECT_TRUE(filename2.length() < long_file_name.length());
|
| EXPECT_TRUE(HasOrdinalNumber(filename2));
|
| EXPECT_NE(filename, filename2);
|
| }
|
| @@ -271,12 +267,7 @@ TEST_F(SavePackageTest, MAYBE_TestLongSavePackageFilename) {
|
| TEST_F(SavePackageTest, MAYBE_TestLongSafePureFilename) {
|
| const base::FilePath save_dir(FPL("test_dir"));
|
| const base::FilePath::StringType ext(FPL_HTML_EXTENSION);
|
| - base::FilePath::StringType filename =
|
| -#if defined(OS_WIN)
|
| - base::ASCIIToUTF16(long_file_name);
|
| -#else
|
| - long_file_name;
|
| -#endif
|
| + base::FilePath::StringType filename = GetLongFileName();
|
|
|
| // Test that the filename + extension doesn't exceed kMaxFileNameLength
|
| uint32_t max_path = SavePackage::GetMaxPathLengthForDirectory(save_dir);
|
|
|