14a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// Copyright (c) 2010 The Chromium Authors. All rights reserved.
24a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
34a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// found in the LICENSE file.
44a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch
54a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// This file contains unit tests for Windows internationalization funcs.
64a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch
74a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#include "testing/gtest/include/gtest/gtest.h"
84a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch
94a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#include "base/win/i18n.h"
104a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#include "base/win/windows_version.h"
114a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch
124a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochnamespace base {
134a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochnamespace win {
144a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochnamespace i18n {
154a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch
164a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// Tests that at least one user preferred UI language can be obtained.
174a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben MurdochTEST(I18NTest, GetUserPreferredUILanguageList) {
184a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  std::vector<std::wstring> languages;
194a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  EXPECT_TRUE(GetUserPreferredUILanguageList(&languages));
204a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  EXPECT_NE(static_cast<std::vector<std::wstring>::size_type>(0),
214a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch            languages.size());
224a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  for (std::vector<std::wstring>::const_iterator scan = languages.begin(),
234a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          end = languages.end(); scan != end; ++scan) {
244a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch    EXPECT_FALSE((*scan).empty());
254a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  }
264a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch}
274a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch
284a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// Tests that at least one thread preferred UI language can be obtained.
294a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben MurdochTEST(I18NTest, GetThreadPreferredUILanguageList) {
304a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  std::vector<std::wstring> languages;
314a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  EXPECT_TRUE(GetThreadPreferredUILanguageList(&languages));
324a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  EXPECT_NE(static_cast<std::vector<std::wstring>::size_type>(0),
334a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch            languages.size());
344a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  for (std::vector<std::wstring>::const_iterator scan = languages.begin(),
354a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          end = languages.end(); scan != end; ++scan) {
364a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch    EXPECT_FALSE((*scan).empty());
374a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  }
384a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch}
394a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch
404a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch}  // namespace i18n
414a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch}  // namespace win
424a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch}  // namespace base
43