Logo Search packages:      
Sourcecode: chromium-browser version File versions  Download package

shell_dialogs_win_unittest.cc

// Copyright (c) 2010 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chrome/browser/shell_dialogs.h"
#include "testing/gtest/include/gtest/gtest.h"

TEST(AppendExtensionIfNeeded, EndingInPeriod_ExtensionAppended) {
  const std::wstring filename = L"sample.txt.";
  const std::wstring filter_selected = L"*.txt";
  const std::wstring suggested_ext = L"txt";

  const std::wstring actual_filename = AppendExtensionIfNeeded(filename,
      filter_selected, suggested_ext);

  ASSERT_EQ(L"sample.txt.txt", actual_filename);
}

TEST(AppendExtensionIfNeeded, UnknownMimeType_ExtensionAppended) {
  const std::wstring filename = L"sample.unknown-mime-type";
  const std::wstring filter_selected = L"*.txt";
  const std::wstring suggested_ext = L"txt";

  const std::wstring actual_filename = AppendExtensionIfNeeded(filename,
      filter_selected, suggested_ext);

  ASSERT_EQ(L"sample.unknown-mime-type.txt", actual_filename);
}

TEST(AppendExtensionIfNeeded, RecognizableMimeType_NoExtensionAppended) {
  const std::wstring filename = L"sample.html";
  const std::wstring filter_selected = L"*.txt";
  const std::wstring suggested_ext = L"txt";

  const std::wstring actual_filename = AppendExtensionIfNeeded(filename,
      filter_selected, suggested_ext);

  ASSERT_EQ(L"sample.html", actual_filename);
}

TEST(AppendExtensionIfNeeded, OnlyPeriods_ExtensionAppended) {
  const std::wstring filename = L"...";
  const std::wstring filter_selected = L"*.txt";
  const std::wstring suggested_ext = L"txt";

  const std::wstring actual_filename = AppendExtensionIfNeeded(filename,
      filter_selected, suggested_ext);

  ASSERT_EQ(L"...txt", actual_filename);
}

TEST(AppendExtensionIfNeeded, EqualToExtension_ExtensionAppended) {
  const std::wstring filename = L"txt";
  const std::wstring filter_selected = L"*.txt";
  const std::wstring suggested_ext = L"txt";

  const std::wstring actual_filename = AppendExtensionIfNeeded(filename,
      filter_selected, suggested_ext);

  ASSERT_EQ(L"txt.txt", actual_filename);
}

TEST(AppendExtensionIfNeeded, AllFilesFilter_NoExtensionAppended) {
  const std::wstring filename = L"sample.unknown-mime-type";
  const std::wstring filter_selected = L"*.*";
  const std::wstring suggested_ext;

  const std::wstring actual_filename = AppendExtensionIfNeeded(filename,
      filter_selected, suggested_ext);

  ASSERT_EQ(L"sample.unknown-mime-type", actual_filename);
}

TEST(AppendExtensionIfNeeded, StripsDotsForUnknownSelectedMimeType) {
  const std::wstring filename = L"product";
  const std::wstring filter_selected = L"*.unknown-extension.";
  const std::wstring suggested_ext = L"html";

  const std::wstring actual_filename = AppendExtensionIfNeeded(filename,
      filter_selected, suggested_ext);

  ASSERT_EQ(L"product.html", actual_filename);
}

TEST(AppendExtensionIfNeeded, EqualToExtension_NoDoubleExtension) {
  // Make sure we don't add a duplicate extension like .tbl.tbl for
  // files that the system doesn't have a mime type for.
  const std::wstring filename = L"product.tbl";
  const std::wstring filter_selected = L"*.tbl";
  const std::wstring suggested_ext = L"tbl";

  const std::wstring actual_filename = AppendExtensionIfNeeded(filename,
      filter_selected, suggested_ext);

  ASSERT_EQ(L"product.tbl", actual_filename);
}

Generated by  Doxygen 1.6.0   Back to index