Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2241)

Side by Side Diff: third_party/WebKit/Source/platform/fonts/AcceptLanguagesResolverTest.cpp

Issue 2192703002: More LayoutLocale refactor with additional Chinese support (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Comment updated as per drott review Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "platform/fonts/AcceptLanguagesResolver.h" 5 #include "platform/fonts/AcceptLanguagesResolver.h"
6 6
7 #include "platform/LayoutLocale.h"
7 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
8 9
9 namespace blink { 10 namespace blink {
10 11
11 TEST(AcceptLanguagesResolverTest, AcceptLanguagesChanged) 12 TEST(AcceptLanguagesResolverTest, AcceptLanguagesChanged)
12 { 13 {
13 struct { 14 struct {
14 const char* acceptLanguages; 15 const char* acceptLanguages;
15 UScriptCode script; 16 UScriptCode script;
16 const char* locale; 17 const char* locale;
17 } tests[] = { 18 } tests[] = {
18 // Non-Han script cases. 19 // Non-Han script cases.
19 { "", USCRIPT_COMMON, nullptr }, 20 { "", USCRIPT_COMMON, nullptr },
20 { "en-US", USCRIPT_COMMON, nullptr }, 21 { "en-US", USCRIPT_COMMON, nullptr },
21 { ",en-US", USCRIPT_COMMON, nullptr }, 22 { ",en-US", USCRIPT_COMMON, nullptr },
22 23
23 // Single value cases. 24 // Single value cases.
24 { "ja-JP", USCRIPT_KATAKANA_OR_HIRAGANA, "ja-jp" }, 25 { "ja-JP", USCRIPT_KATAKANA_OR_HIRAGANA, "ja-jp" },
25 { "ko-KR", USCRIPT_HANGUL, "ko-kr" }, 26 { "ko-KR", USCRIPT_HANGUL, "ko-kr" },
26 { "zh-CN", USCRIPT_SIMPLIFIED_HAN, "zh-Hans" }, 27 { "zh-CN", USCRIPT_SIMPLIFIED_HAN, "zh-Hans" },
27 { "zh-HK", USCRIPT_TRADITIONAL_HAN, "zh-Hant" }, 28 { "zh-HK", USCRIPT_TRADITIONAL_HAN, "zh-Hant" },
28 { "zh-TW", USCRIPT_TRADITIONAL_HAN, "zh-Hant" }, 29 { "zh-TW", USCRIPT_TRADITIONAL_HAN, "zh-Hant" },
29 30
31 // Language only.
32 { "ja", USCRIPT_KATAKANA_OR_HIRAGANA, "ja-jp" },
33 { "ko", USCRIPT_HANGUL, "ko-kr" },
34 { "zh", USCRIPT_SIMPLIFIED_HAN, "zh-Hans" },
35
30 // Unusual combinations. 36 // Unusual combinations.
31 { "en-JP", USCRIPT_KATAKANA_OR_HIRAGANA, "ja-jp" }, 37 { "en-JP", USCRIPT_KATAKANA_OR_HIRAGANA, "ja-jp" },
32 38
33 // Han scripts not in the first item. 39 // Han scripts not in the first item.
34 { "en-US,ja-JP", USCRIPT_KATAKANA_OR_HIRAGANA, "ja-jp" }, 40 { "en-US,ja-JP", USCRIPT_KATAKANA_OR_HIRAGANA, "ja-jp" },
35 { "en-US,en-JP", USCRIPT_KATAKANA_OR_HIRAGANA, "ja-jp" }, 41 { "en-US,en-JP", USCRIPT_KATAKANA_OR_HIRAGANA, "ja-jp" },
36 42
37 // Multiple Han scripts. The first one wins. 43 // Multiple Han scripts. The first one wins.
38 { "ja-JP,zh-CN", USCRIPT_KATAKANA_OR_HIRAGANA, "ja-jp" }, 44 { "ja-JP,zh-CN", USCRIPT_KATAKANA_OR_HIRAGANA, "ja-jp" },
39 { "zh-TW,ja-JP", USCRIPT_TRADITIONAL_HAN, "zh-Hant" }, 45 { "zh-TW,ja-JP", USCRIPT_TRADITIONAL_HAN, "zh-Hant" },
40 }; 46 };
41 47
42 for (auto& test : tests) { 48 for (const auto& test : tests) {
43 AcceptLanguagesResolver::updateFromAcceptLanguages(test.acceptLanguages) ; 49 const LayoutLocale* locale =
50 AcceptLanguagesResolver::localeForHanFromAcceptLanguages(
51 test.acceptLanguages);
44 52
45 EXPECT_EQ(test.script, AcceptLanguagesResolver::preferredHanScript()) 53 if (test.script == USCRIPT_COMMON) {
46 << test.acceptLanguages; 54 EXPECT_EQ(nullptr, locale) << test.acceptLanguages;
47 EXPECT_STREQ(test.locale, 55 continue;
48 AcceptLanguagesResolver::preferredHanSkFontMgrLocale()) 56 }
57
58 ASSERT_NE(nullptr, locale) << test.acceptLanguages;
59 EXPECT_EQ(test.script, locale->scriptForHan()) << test.acceptLanguages;
60 EXPECT_STRCASEEQ(test.locale, locale->localeForHanForSkFontMgr())
49 << test.acceptLanguages; 61 << test.acceptLanguages;
50 } 62 }
51 } 63 }
52 64
53 } // namespace blink 65 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698