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.
4
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"
10
11 namespace base {
12 namespace i18n {
13
TEST(TransliteratorTest,LowerCorrect)14 TEST(TransliteratorTest, LowerCorrect) {
15 UParseError parseErr;
16 UErrorCode err = U_ZERO_ERROR;
17 std::unique_ptr<icu::Transliterator> transliterator(
18 icu::Transliterator::createInstance("Lower", UTRANS_FORWARD,
19 parseErr, err));
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ñåţîöñåļîžåţîöñ");
24 }
25
TEST(TransliteratorTest,LatinASCIICorrect)26 TEST(TransliteratorTest, LatinASCIICorrect) {
27 UParseError parseErr;
28 UErrorCode err = U_ZERO_ERROR;
29 std::unique_ptr<icu::Transliterator> transliterator(
30 icu::Transliterator::createInstance("Latin-ASCII", UTRANS_FORWARD,
31 parseErr, err));
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");
36 }
37
TEST(TransliteratorTest,LowerLatinASCIICorrect)38 TEST(TransliteratorTest, LowerLatinASCIICorrect) {
39 UParseError parseErr;
40 UErrorCode err = U_ZERO_ERROR;
41 std::unique_ptr<icu::Transliterator> transliterator(
42 icu::Transliterator::createInstance("Lower;Latin-ASCII", UTRANS_FORWARD,
43 parseErr, err));
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");
48 }
49
50 } // namespace i18n
51 } // namespace base
52