shell_dialogs_win_unittest.cc revision c407dc5cd9bdc5668497f21b26b09d988ab439de
1c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Copyright (c) 2010 The Chromium Authors. All rights reserved.
2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be
3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file.
4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
5c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/shell_dialogs.h"
6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "testing/gtest/include/gtest/gtest.h"
7c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
8c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochTEST(AppendExtensionIfNeeded, EndingInPeriod_ExtensionAppended) {
9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  const std::wstring filename = L"sample.txt.";
10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  const std::wstring filter_selected = L"*.txt";
11c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  const std::wstring suggested_ext = L"txt";
12c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  const std::wstring actual_filename = AppendExtensionIfNeeded(filename,
14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      filter_selected, suggested_ext);
15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  ASSERT_EQ(L"sample.txt.txt", actual_filename);
17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}
18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
19c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochTEST(AppendExtensionIfNeeded, UnknownMimeType_ExtensionAppended) {
20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  const std::wstring filename = L"sample.unknown-mime-type";
21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  const std::wstring filter_selected = L"*.txt";
22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  const std::wstring suggested_ext = L"txt";
23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  const std::wstring actual_filename = AppendExtensionIfNeeded(filename,
25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      filter_selected, suggested_ext);
26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
27c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  ASSERT_EQ(L"sample.unknown-mime-type.txt", actual_filename);
28c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}
29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
30c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochTEST(AppendExtensionIfNeeded, RecognizableMimeType_NoExtensionAppended) {
31c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  const std::wstring filename = L"sample.html";
32c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  const std::wstring filter_selected = L"*.txt";
33c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  const std::wstring suggested_ext = L"txt";
34c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
35c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  const std::wstring actual_filename = AppendExtensionIfNeeded(filename,
36c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      filter_selected, suggested_ext);
37c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
38c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  ASSERT_EQ(L"sample.html", actual_filename);
39c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}
40c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
41c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochTEST(AppendExtensionIfNeeded, OnlyPeriods_ExtensionAppended) {
42c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  const std::wstring filename = L"...";
43c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  const std::wstring filter_selected = L"*.txt";
44c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  const std::wstring suggested_ext = L"txt";
45c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
46c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  const std::wstring actual_filename = AppendExtensionIfNeeded(filename,
47c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      filter_selected, suggested_ext);
48c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
49c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  ASSERT_EQ(L"...txt", actual_filename);
50c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}
51c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
52c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochTEST(AppendExtensionIfNeeded, EqualToExtension_ExtensionAppended) {
53c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  const std::wstring filename = L"txt";
54c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  const std::wstring filter_selected = L"*.txt";
55c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  const std::wstring suggested_ext = L"txt";
56c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
57c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  const std::wstring actual_filename = AppendExtensionIfNeeded(filename,
58c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      filter_selected, suggested_ext);
59c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
60c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  ASSERT_EQ(L"txt.txt", actual_filename);
61c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}
62c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
63c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochTEST(AppendExtensionIfNeeded, AllFilesFilter_NoExtensionAppended) {
64c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  const std::wstring filename = L"sample.unknown-mime-type";
65c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  const std::wstring filter_selected = L"*.*";
66c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  const std::wstring suggested_ext;
67c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
68c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  const std::wstring actual_filename = AppendExtensionIfNeeded(filename,
69c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      filter_selected, suggested_ext);
70c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
71c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  ASSERT_EQ(L"sample.unknown-mime-type", actual_filename);
72c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}
73