Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
cxfa_xmllocale_unittest.cpp
Go to the documentation of this file.
1// Copyright 2018 The PDFium 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 "xfa/fxfa/parser/cxfa_xmllocale.h"
6
7#include "testing/fxgc_unittest.h"
8#include "testing/gtest/include/gtest/gtest.h"
9
10namespace {
11
12const char kXMLData[] =
13 "<locale name=\"en_US\" desc=\"English(America)\">"
14 "<calendarSymbols name=\"gregorian\"><monthNames><month>January</month>"
15 "<month>February</month>"
16 "<month>March</month>"
17 "<month>April</month>"
18 "<month>May</month>"
19 "<month>June</month>"
20 "<month>July</month>"
21 "<month>August</month>"
22 "<month>September</month>"
23 "<month>October</month>"
24 "<month>November</month>"
25 "<month>December</month>"
26 "</monthNames>"
27 "<monthNames abbr=\"1\"><month>Jan</month>"
28 "<month>Feb</month>"
29 "<month>Mar</month>"
30 "<month>Apr</month>"
31 "<month>May</month>"
32 "<month>Jun</month>"
33 "<month>Jul</month>"
34 "<month>Aug</month>"
35 "<month>Sep</month>"
36 "<month>Oct</month>"
37 "<month>Nov</month>"
38 "<month>Dec</month>"
39 "</monthNames>"
40 "<dayNames><day>Sunday</day>"
41 "<day>Monday</day>"
42 "<day>Tuesday</day>"
43 "<day>Wednesday</day>"
44 "<day>Thursday</day>"
45 "<day>Friday</day>"
46 "<day>Saturday</day>"
47 "</dayNames>"
48 "<dayNames abbr=\"1\"><day>Sun</day>"
49 "<day>Mon</day>"
50 "<day>Tue</day>"
51 "<day>Wed</day>"
52 "<day>Thu</day>"
53 "<day>Fri</day>"
54 "<day>Sat</day>"
55 "</dayNames>"
56 "<meridiemNames><meridiem>AM</meridiem>"
57 "<meridiem>PM</meridiem>"
58 "</meridiemNames>"
59 "<eraNames><era>BC</era>"
60 "<era>AD</era>"
61 "</eraNames>"
62 "</calendarSymbols>"
63 "<datePatterns><datePattern name=\"full\">EEEE, MMMM D, YYYY</datePattern>"
64 "<datePattern name=\"long\">MMMM D, YYYY</datePattern>"
65 "<datePattern name=\"med\">MMM D, YYYY</datePattern>"
66 "<datePattern name=\"short\">M/D/YY</datePattern>"
67 "</datePatterns>"
68 "<timePatterns><timePattern name=\"full\">h:MM:SS A Z</timePattern>"
69 "<timePattern name=\"long\">h:MM:SS A Z</timePattern>"
70 "<timePattern name=\"med\">h:MM:SS A</timePattern>"
71 "<timePattern name=\"short\">h:MM A</timePattern>"
72 "</timePatterns>"
73 "<dateTimeSymbols>GyMdkHmsSEDFwWahKzZ</dateTimeSymbols>"
74 "<numberPatterns><numberPattern name=\"numeric\">z,zz9.zzz</numberPattern>"
75 "<numberPattern name=\"currency\">$z,zz9.99|($z,zz9.99)</numberPattern>"
76 "<numberPattern name=\"percent\">z,zz9%</numberPattern>"
77 "</numberPatterns>"
78 "<numberSymbols><numberSymbol name=\"decimal\">.</numberSymbol>"
79 "<numberSymbol name=\"grouping\">,</numberSymbol>"
80 "<numberSymbol name=\"percent\">%</numberSymbol>"
81 "<numberSymbol name=\"minus\">-</numberSymbol>"
82 "<numberSymbol name=\"zero\">0</numberSymbol>"
83 "</numberSymbols>"
84 "<currencySymbols><currencySymbol name=\"symbol\">$</currencySymbol>"
85 "<currencySymbol name=\"isoname\">USD</currencySymbol>"
86 "<currencySymbol name=\"decimal\">.</currencySymbol>"
87 "</currencySymbols>"
88 "</locale>";
89
90CXFA_XMLLocale* CreateLocaleHelper(cppgc::Heap* heap) {
91 return CXFA_XMLLocale::Create(heap, ByteStringView(kXMLData).unsigned_span());
92}
93
94} // namespace
95
97
99 auto* locale = CreateLocaleHelper(heap());
100 EXPECT_TRUE(locale != nullptr);
101}
102
104 auto* locale = CXFA_XMLLocale::Create(heap(), pdfium::span<uint8_t>());
105 EXPECT_TRUE(locale == nullptr);
106}
107
109 auto* locale = CreateLocaleHelper(heap());
110 ASSERT_TRUE(locale != nullptr);
111
112 EXPECT_EQ(L"en_US", locale->GetName());
113}
114
116 auto* locale = CreateLocaleHelper(heap());
117 ASSERT_TRUE(locale != nullptr);
118
119 EXPECT_EQ(L".", locale->GetDecimalSymbol());
120 EXPECT_EQ(L",", locale->GetGroupingSymbol());
121 EXPECT_EQ(L"%", locale->GetPercentSymbol());
122 EXPECT_EQ(L"-", locale->GetMinusSymbol());
123 EXPECT_EQ(L"$", locale->GetCurrencySymbol());
124}
125
127 auto* locale = CreateLocaleHelper(heap());
128 ASSERT_TRUE(locale != nullptr);
129
130 EXPECT_EQ(L"GyMdkHmsSEDFwWahKzZ", locale->GetDateTimeSymbols());
131}
132
134 auto* locale = CreateLocaleHelper(heap());
135 ASSERT_TRUE(locale != nullptr);
136
137 EXPECT_EQ(L"", locale->GetMonthName(24, false));
138 EXPECT_EQ(L"", locale->GetMonthName(-5, false));
139 EXPECT_EQ(L"Feb", locale->GetMonthName(1, true));
140 EXPECT_EQ(L"February", locale->GetMonthName(1, false));
141}
142
144 auto* locale = CreateLocaleHelper(heap());
145 ASSERT_TRUE(locale != nullptr);
146
147 EXPECT_EQ(L"", locale->GetDayName(24, false));
148 EXPECT_EQ(L"", locale->GetDayName(-5, false));
149 EXPECT_EQ(L"Mon", locale->GetDayName(1, true));
150 EXPECT_EQ(L"Monday", locale->GetDayName(1, false));
151}
152
154 auto* locale = CreateLocaleHelper(heap());
155 ASSERT_TRUE(locale != nullptr);
156
157 EXPECT_EQ(L"AM", locale->GetMeridiemName(true));
158 EXPECT_EQ(L"PM", locale->GetMeridiemName(false));
159}
160
162 auto* locale = CreateLocaleHelper(heap());
163 ASSERT_TRUE(locale != nullptr);
164
165 EXPECT_EQ(L"AD", locale->GetEraName(true));
166 EXPECT_EQ(L"BC", locale->GetEraName(false));
167}
168
170 auto* locale = CreateLocaleHelper(heap());
171 ASSERT_TRUE(locale != nullptr);
172
173 EXPECT_EQ(L"M/D/YY",
174 locale->GetDatePattern(LocaleIface::DateTimeSubcategory::kShort));
175 EXPECT_EQ(L"MMM D, YYYY",
176 locale->GetDatePattern(LocaleIface::DateTimeSubcategory::kDefault));
177 EXPECT_EQ(L"MMM D, YYYY",
178 locale->GetDatePattern(LocaleIface::DateTimeSubcategory::kMedium));
179 EXPECT_EQ(L"EEEE, MMMM D, YYYY",
180 locale->GetDatePattern(LocaleIface::DateTimeSubcategory::kFull));
181 EXPECT_EQ(L"MMMM D, YYYY",
182 locale->GetDatePattern(LocaleIface::DateTimeSubcategory::kLong));
183}
184
186 auto* locale = CreateLocaleHelper(heap());
187 ASSERT_TRUE(locale != nullptr);
188
189 EXPECT_EQ(L"h:MM A",
190 locale->GetTimePattern(LocaleIface::DateTimeSubcategory::kShort));
191 EXPECT_EQ(L"h:MM:SS A",
192 locale->GetTimePattern(LocaleIface::DateTimeSubcategory::kDefault));
193 EXPECT_EQ(L"h:MM:SS A",
194 locale->GetTimePattern(LocaleIface::DateTimeSubcategory::kMedium));
195 EXPECT_EQ(L"h:MM:SS A Z",
196 locale->GetTimePattern(LocaleIface::DateTimeSubcategory::kFull));
197 EXPECT_EQ(L"h:MM:SS A Z",
198 locale->GetTimePattern(LocaleIface::DateTimeSubcategory::kLong));
199}
200
202 auto* locale = CreateLocaleHelper(heap());
203 ASSERT_TRUE(locale != nullptr);
204
205 EXPECT_EQ(L"z,zzz,zzz,zzz,zzz,zzz%",
206 locale->GetNumPattern(LocaleIface::NumSubcategory::kPercent));
207 EXPECT_EQ(L"$z,zzz,zzz,zzz,zzz,zz9.99",
208 locale->GetNumPattern(LocaleIface::NumSubcategory::kCurrency));
209 EXPECT_EQ(L"z,zzz,zzz,zzz,zzz,zz9.zzz",
210 locale->GetNumPattern(LocaleIface::NumSubcategory::kDecimal));
211 EXPECT_EQ(L"z,zzz,zzz,zzz,zzz,zzz",
212 locale->GetNumPattern(LocaleIface::NumSubcategory::kInteger));
213}
TEST_F(CXFA_XMLLocaleTest, Create)
Definition heap.h:12