From b988fe4ded9067b2e5cb7e3a3937036ce2cb09c8 Mon Sep 17 00:00:00 2001 From: "sky@google.com" Date: Fri, 19 Sep 2008 17:32:18 +0000 Subject: Fixes bug in file_util::ReplaceExtension that could chop off path elements. This was causing some folks bookmarks not to get saved! BUG=1946 TEST=covered by unit tests Review URL: http://codereview.chromium.org/2990 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2412 0039d316-1c4b-4281-b951-d872f2087c98 --- base/file_util_unittest.cc | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'base/file_util_unittest.cc') diff --git a/base/file_util_unittest.cc b/base/file_util_unittest.cc index e5cea3a..c56579a 100644 --- a/base/file_util_unittest.cc +++ b/base/file_util_unittest.cc @@ -819,6 +819,18 @@ TEST_F(FileUtilTest, ReplaceExtensionTest) { } } +// Make sure ReplaceExtension doesn't replace an extension that occurs as one of +// the directory names of the path. +TEST_F(FileUtilTest, ReplaceExtensionTestWithPathSeparators) { + std::wstring path; + file_util::AppendToPath(&path, L"foo.bar"); + file_util::AppendToPath(&path, L"foo"); + // '/foo.bar/foo' with extension '.baz' + std::wstring result_path = path; + file_util::ReplaceExtension(&result_path, L".baz"); + EXPECT_EQ(path + L".baz", result_path); +} + TEST_F(FileUtilTest, FileEnumeratorTest) { // Test an empty directory. file_util::FileEnumerator f0(test_dir_, true, -- cgit v1.1