summaryrefslogtreecommitdiffstats
path: root/chrome/common/win_util_unittest.cc
diff options
context:
space:
mode:
authorfinnur@google.com <finnur@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-12-09 20:30:43 +0000
committerfinnur@google.com <finnur@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-12-09 20:30:43 +0000
commit78a3c05468ae5f05463288f2f4de125913ae4a34 (patch)
tree41bf3a936f89250d1c1ddda3414d5f448dc20920 /chrome/common/win_util_unittest.cc
parentcf4dbfb85d57b9b801a1b3d986e39b041c8e8d36 (diff)
downloadchromium_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.cc42
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);
+ }
+}