1 // Copyright 2021 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "build/build_config.h"
6 #include "base/i18n/unicodestring.h"
7 #include "testing/gtest/include/gtest/gtest.h"
8 #include "third_party/icu/source/common/unicode/ustring.h"
9 #include "third_party/icu/source/i18n/unicode/translit.h"
14 TEST(TransliteratorTest, LowerCorrect) {
16 UErrorCode err = U_ZERO_ERROR;
17 std::unique_ptr<icu::Transliterator> transliterator(
18 icu::Transliterator::createInstance("Lower", UTRANS_FORWARD,
20 ASSERT_TRUE(U_SUCCESS(err));
21 icu::UnicodeString text(u"ÎÑŢÉRÑÅŢÎÖÑÅĻÎŽÅŢÎÖÑ");
22 transliterator->transliterate(text);
23 EXPECT_EQ(base::i18n::UnicodeStringToString16(text), u"îñţérñåţîöñåļîžåţîöñ");
26 TEST(TransliteratorTest, LatinASCIICorrect) {
28 UErrorCode err = U_ZERO_ERROR;
29 std::unique_ptr<icu::Transliterator> transliterator(
30 icu::Transliterator::createInstance("Latin-ASCII", UTRANS_FORWARD,
32 ASSERT_TRUE(U_SUCCESS(err));
33 icu::UnicodeString text(u"ÎÑŢÉRÑÅŢÎÖÑÅĻÎŽÅŢÎÖÑ");
34 transliterator->transliterate(text);
35 EXPECT_EQ(base::i18n::UnicodeStringToString16(text), u"INTERNATIONALIZATION");
38 TEST(TransliteratorTest, LowerLatinASCIICorrect) {
40 UErrorCode err = U_ZERO_ERROR;
41 std::unique_ptr<icu::Transliterator> transliterator(
42 icu::Transliterator::createInstance("Lower;Latin-ASCII", UTRANS_FORWARD,
44 ASSERT_TRUE(U_SUCCESS(err));
45 icu::UnicodeString text(u"ÎÑŢÉRÑÅŢÎÖÑÅĻÎŽÅŢÎÖÑ");
46 transliterator->transliterate(text);
47 EXPECT_EQ(base::i18n::UnicodeStringToString16(text), u"internationalization");