Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
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
10
namespace
{
11
12
const
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
90
CXFA_XMLLocale* CreateLocaleHelper(
cppgc
::Heap* heap) {
91
return
CXFA_XMLLocale::Create(heap, ByteStringView(kXMLData).unsigned_span());
92
}
93
94
}
// namespace
95
96
class
CXFA_XMLLocaleTest
:
public
FXGCUnitTest
{};
97
98
TEST_F
(
CXFA_XMLLocaleTest
,
Create
) {
99
auto
* locale = CreateLocaleHelper(heap());
100
EXPECT_TRUE(locale !=
nullptr
);
101
}
102
103
TEST_F
(
CXFA_XMLLocaleTest
,
CreateBadXML
) {
104
auto
* locale = CXFA_XMLLocale::Create(heap(), pdfium::span<uint8_t>());
105
EXPECT_TRUE(locale ==
nullptr
);
106
}
107
108
TEST_F
(
CXFA_XMLLocaleTest
,
GetName
) {
109
auto
* locale = CreateLocaleHelper(heap());
110
ASSERT_TRUE(locale !=
nullptr
);
111
112
EXPECT_EQ(L"en_US", locale->GetName());
113
}
114
115
TEST_F
(
CXFA_XMLLocaleTest
,
GetNumericSymbols
) {
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
126
TEST_F
(
CXFA_XMLLocaleTest
,
GetDateTimeSymbols
) {
127
auto
* locale = CreateLocaleHelper(heap());
128
ASSERT_TRUE(locale !=
nullptr
);
129
130
EXPECT_EQ(L"GyMdkHmsSEDFwWahKzZ", locale->GetDateTimeSymbols());
131
}
132
133
TEST_F
(
CXFA_XMLLocaleTest
,
GetMonthName
) {
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
143
TEST_F
(
CXFA_XMLLocaleTest
,
GetDayName
) {
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
153
TEST_F
(
CXFA_XMLLocaleTest
,
GetMeridiemName
) {
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
161
TEST_F
(
CXFA_XMLLocaleTest
,
GetEraName
) {
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
169
TEST_F
(
CXFA_XMLLocaleTest
,
GetDatePattern
) {
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
185
TEST_F
(
CXFA_XMLLocaleTest
,
GetTimePattern
) {
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
201
TEST_F
(
CXFA_XMLLocaleTest
,
GetNumPattern
) {
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
}
CXFA_XMLLocaleTest
Definition
cxfa_xmllocale_unittest.cpp:96
FXGCUnitTest
Definition
fxgc_unittest.h:11
LocaleIface
Definition
locale_iface.h:12
LocaleIface::NumSubcategory
NumSubcategory
Definition
locale_iface.h:22
LocaleIface::NumSubcategory::kPercent
@ kPercent
Definition
locale_iface.h:23
LocaleIface::NumSubcategory::kInteger
@ kInteger
Definition
locale_iface.h:26
LocaleIface::NumSubcategory::kCurrency
@ kCurrency
Definition
locale_iface.h:24
LocaleIface::NumSubcategory::kDecimal
@ kDecimal
Definition
locale_iface.h:25
LocaleIface::DateTimeSubcategory
DateTimeSubcategory
Definition
locale_iface.h:14
LocaleIface::DateTimeSubcategory::kShort
@ kShort
Definition
locale_iface.h:16
LocaleIface::DateTimeSubcategory::kMedium
@ kMedium
Definition
locale_iface.h:17
LocaleIface::DateTimeSubcategory::kDefault
@ kDefault
Definition
locale_iface.h:15
LocaleIface::DateTimeSubcategory::kLong
@ kLong
Definition
locale_iface.h:19
LocaleIface::DateTimeSubcategory::kFull
@ kFull
Definition
locale_iface.h:18
TEST_F
TEST_F(CXFA_XMLLocaleTest, Create)
Definition
cxfa_xmllocale_unittest.cpp:98
cppgc
Definition
heap.h:12
qtwebengine
src
3rdparty
chromium
third_party
pdfium
xfa
fxfa
parser
cxfa_xmllocale_unittest.cpp
Generated on
for Qt by
1.18.0