i18n_unittest.cc 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. // Copyright (c) 2010 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. // This file contains unit tests for Windows internationalization funcs.
  5. #include "base/win/i18n.h"
  6. #include <stddef.h>
  7. #include <string.h>
  8. #include "base/strings/string_util.h"
  9. #include "base/win/windows_version.h"
  10. #include "testing/gtest/include/gtest/gtest.h"
  11. namespace base {
  12. namespace win {
  13. namespace i18n {
  14. // Tests that at least one user preferred UI language can be obtained.
  15. TEST(I18NTest, GetUserPreferredUILanguageList) {
  16. std::vector<std::wstring> languages;
  17. EXPECT_TRUE(GetUserPreferredUILanguageList(&languages));
  18. EXPECT_FALSE(languages.empty());
  19. for (const auto& language : languages) {
  20. EXPECT_FALSE(language.empty());
  21. // Ensure there's no extra trailing 0 characters.
  22. EXPECT_EQ(language.size(), wcslen(language.c_str()));
  23. }
  24. }
  25. // Tests that at least one thread preferred UI language can be obtained.
  26. TEST(I18NTest, GetThreadPreferredUILanguageList) {
  27. std::vector<std::wstring> languages;
  28. EXPECT_TRUE(GetThreadPreferredUILanguageList(&languages));
  29. EXPECT_FALSE(languages.empty());
  30. for (const auto& language : languages) {
  31. EXPECT_FALSE(language.empty());
  32. EXPECT_EQ(language.size(), wcslen(language.c_str()));
  33. }
  34. }
  35. // Tests that GetThreadPreferredUILanguageList appends to the given vector
  36. // rather than replacing it.
  37. TEST(I18NTest, GetUserPreferredUILanguageListAppends) {
  38. std::vector<std::wstring> languages{std::wstring(L"dummylang")};
  39. EXPECT_TRUE(GetUserPreferredUILanguageList(&languages));
  40. ASSERT_GT(languages.size(), 1U);
  41. EXPECT_EQ(languages[0], L"dummylang");
  42. }
  43. // Tests that GetThreadPreferredUILanguageList appends to the given vector
  44. // rather than replacing it.
  45. TEST(I18NTest, GetThreadPreferredUILanguageListAppends) {
  46. std::vector<std::wstring> languages{std::wstring(L"dummylang")};
  47. EXPECT_TRUE(GetThreadPreferredUILanguageList(&languages));
  48. ASSERT_GT(languages.size(), 1U);
  49. EXPECT_EQ(languages[0], L"dummylang");
  50. }
  51. } // namespace i18n
  52. } // namespace win
  53. } // namespace base