diff options
author | finnur@google.com <finnur@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-12-09 20:30:43 +0000 |
---|---|---|
committer | finnur@google.com <finnur@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-12-09 20:30:43 +0000 |
commit | 78a3c05468ae5f05463288f2f4de125913ae4a34 (patch) | |
tree | 41bf3a936f89250d1c1ddda3414d5f448dc20920 /chrome/common/win_util_unittest.cc | |
parent | cf4dbfb85d57b9b801a1b3d986e39b041c8e8d36 (diff) | |
download | chromium_src-78a3c05468ae5f05463288f2f4de125913ae4a34.zip chromium_src-78a3c05468ae5f05463288f2f4de125913ae4a34.tar.gz chromium_src-78a3c05468ae5f05463288f2f4de125913ae4a34.tar.bz2 |
Adding a unit test for the AppendExtensionIfNeeded part
of the SaveFileAsWithFilter function (after splitting
it out to a separate function).
Review URL: http://codereview.chromium.org/13637
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6618 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/common/win_util_unittest.cc')
-rw-r--r-- | chrome/common/win_util_unittest.cc | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/chrome/common/win_util_unittest.cc b/chrome/common/win_util_unittest.cc index 016e391..2452c31 100644 --- a/chrome/common/win_util_unittest.cc +++ b/chrome/common/win_util_unittest.cc @@ -50,3 +50,45 @@ TEST(WinUtilTest, EnsureRectIsVisibleInRect) { EXPECT_EQ(gfx::Rect(20, 20, 100, 380), child_rect); } } + +static const struct filename_case { + const wchar_t* filename; + const wchar_t* filter_selected; + const wchar_t* suggested_ext; + const wchar_t* result; +} filename_cases[] = { + // Test a specific filter (*.jpg). + {L"f", L"*.jpg", L"jpg", L"f.jpg"}, + {L"f.", L"*.jpg", L"jpg", L"f..jpg"}, + {L"f..", L"*.jpg", L"jpg", L"f...jpg"}, + {L"f.jpeg", L"*.jpg", L"jpg", L"f.jpeg"}, + // Further guarantees. + {L"f.jpg.jpg", L"*.jpg", L"jpg", L"f.jpg.jpg"}, + {L"f.exe.jpg", L"*.jpg", L"jpg", L"f.exe.jpg"}, + {L"f.jpg.exe", L"*.jpg", L"jpg", L"f.jpg.exe.jpg"}, + {L"f.exe..", L"*.jpg", L"jpg", L"f.exe...jpg"}, + {L"f.jpg..", L"*.jpg", L"jpg", L"f.jpg...jpg"}, + // Test the All Files filter (*.jpg). + {L"f", L"*.*", L"jpg", L"f"}, + {L"f.", L"*.*", L"jpg", L"f"}, + {L"f..", L"*.*", L"jpg", L"f"}, + {L"f.jpg", L"*.*", L"jpg", L"f.jpg"}, + {L"f.jpeg", L"*.*", L"jpg", L"f.jpeg"}, // Same MIME type (diff. ext). + // Test the empty filter, which should behave identically to the + // All Files filter. + {L"f", L"", L"jpg", L"f"}, + {L"f.", L"", L"jpg", L"f"}, + {L"f..", L"", L"jpg", L"f"}, + {L"f.jpg", L"", L"jpg", L"f.jpg"}, + {L"f.jpeg", L"", L"jpg", L"f.jpeg"}, +}; + +TEST(WinUtilTest, AppendingExtensions) { + for (unsigned int i = 0; i < arraysize(filename_cases); ++i) { + const filename_case& value = filename_cases[i]; + std::wstring result = + win_util::AppendExtensionIfNeeded(value.filename, value.filter_selected, + value.suggested_ext); + EXPECT_EQ(value.result, result); + } +} |