Spannable: Add FontSpan
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / utc-Dali-Text-FontSpan.cpp
1 /*
2  * Copyright (c) 2022 Samsung Electronics Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17
18 #include <stdlib.h>
19 #include <unistd.h>
20 #include <iostream>
21
22 #include <dali-toolkit-test-suite-utils.h>
23 #include <dali-toolkit/dali-toolkit.h>
24 #include <dali-toolkit/devel-api/text/spans/font-span.h>
25
26 using namespace Dali;
27 using namespace Toolkit;
28
29 int UtcDaliToolkitTextFontSpanNew(void)
30 {
31   ToolkitTestApplication application;
32   tet_infoline(" UtcDaliToolkitTextFontSpanNew");
33
34   auto fontSpan = Text::FontSpan::New("DejaVu Sans",
35                                       45.0f,
36                                       Dali::TextAbstraction::FontWeight::BOLD,
37                                       Dali::TextAbstraction::FontWidth::CONDENSED,
38                                       Dali::TextAbstraction::FontSlant::ITALIC);
39   DALI_TEST_CHECK(fontSpan);
40
41   END_TEST;
42 }
43
44 int UtcDaliToolkitTextGetFamilyName(void)
45 {
46   ToolkitTestApplication application;
47   tet_infoline(" UtcDaliToolkitTextGetFamilyName");
48
49   auto fontSpan = Text::FontSpan::New("DejaVu Sans",
50                                       45.0f,
51                                       Dali::TextAbstraction::FontWeight::BOLD,
52                                       Dali::TextAbstraction::FontWidth::CONDENSED,
53                                       Dali::TextAbstraction::FontSlant::ITALIC);
54   DALI_TEST_CHECK(fontSpan);
55
56   DALI_TEST_EQUALS("DejaVu Sans", fontSpan.GetFamilyName(), TEST_LOCATION);
57
58   END_TEST;
59 }
60
61 int UtcDaliToolkitTextIsFamilyNameDefined(void)
62 {
63   ToolkitTestApplication application;
64   tet_infoline(" UtcDaliToolkitTextIsFamilyNameDefined");
65
66   auto fontSpan = Text::FontSpan::New("DejaVu Sans",
67                                       45.0f,
68                                       Dali::TextAbstraction::FontWeight::BOLD,
69                                       Dali::TextAbstraction::FontWidth::CONDENSED,
70                                       Dali::TextAbstraction::FontSlant::ITALIC);
71   DALI_TEST_CHECK(fontSpan);
72
73   DALI_TEST_EQUALS(true, fontSpan.IsFamilyNameDefined(), TEST_LOCATION);
74
75   END_TEST;
76 }
77
78 int UtcDaliToolkitTextGetWeight(void)
79 {
80   ToolkitTestApplication application;
81   tet_infoline(" UtcDaliToolkitTextGetWeight");
82
83   auto fontSpan = Text::FontSpan::New("DejaVu Sans",
84                                       45.0f,
85                                       Dali::TextAbstraction::FontWeight::BOLD,
86                                       Dali::TextAbstraction::FontWidth::CONDENSED,
87                                       Dali::TextAbstraction::FontSlant::ITALIC);
88   DALI_TEST_CHECK(fontSpan);
89
90   DALI_TEST_EQUALS(Dali::TextAbstraction::FontWeight::BOLD, fontSpan.GetWeight(), TEST_LOCATION);
91
92   END_TEST;
93 }
94
95 int UtcDaliToolkitTextIsWeightDefined(void)
96 {
97   ToolkitTestApplication application;
98   tet_infoline(" UtcDaliToolkitTextIsWeightDefined");
99
100   auto fontSpan = Text::FontSpan::New("DejaVu Sans",
101                                       45.0f,
102                                       Dali::TextAbstraction::FontWeight::BOLD,
103                                       Dali::TextAbstraction::FontWidth::CONDENSED,
104                                       Dali::TextAbstraction::FontSlant::ITALIC);
105   DALI_TEST_CHECK(fontSpan);
106
107   DALI_TEST_EQUALS(true, fontSpan.IsWeightDefined(), TEST_LOCATION);
108
109   END_TEST;
110 }
111
112 int UtcDaliToolkitTextGetWidth(void)
113 {
114   ToolkitTestApplication application;
115   tet_infoline(" UtcDaliToolkitTextGetWidth");
116
117   auto fontSpan = Text::FontSpan::New("DejaVu Sans",
118                                       45.0f,
119                                       Dali::TextAbstraction::FontWeight::BOLD,
120                                       Dali::TextAbstraction::FontWidth::CONDENSED,
121                                       Dali::TextAbstraction::FontSlant::ITALIC);
122   DALI_TEST_CHECK(fontSpan);
123
124   DALI_TEST_EQUALS(Dali::TextAbstraction::FontWidth::CONDENSED, fontSpan.GetWidth(), TEST_LOCATION);
125
126   END_TEST;
127 }
128
129 int UtcDaliToolkitTextIsWidthDefined(void)
130 {
131   ToolkitTestApplication application;
132   tet_infoline(" UtcDaliToolkitTextIsWidthDefined");
133
134   auto fontSpan = Text::FontSpan::New("DejaVu Sans",
135                                       45.0f,
136                                       Dali::TextAbstraction::FontWeight::BOLD,
137                                       Dali::TextAbstraction::FontWidth::CONDENSED,
138                                       Dali::TextAbstraction::FontSlant::ITALIC);
139   DALI_TEST_CHECK(fontSpan);
140
141   DALI_TEST_EQUALS(true, fontSpan.IsWidthDefined(), TEST_LOCATION);
142
143   END_TEST;
144 }
145
146 int UtcDaliToolkitTextGetSlant(void)
147 {
148   ToolkitTestApplication application;
149   tet_infoline(" UtcDaliToolkitTextGetSlant");
150
151   auto fontSpan = Text::FontSpan::New("DejaVu Sans",
152                                       45.0f,
153                                       Dali::TextAbstraction::FontWeight::BOLD,
154                                       Dali::TextAbstraction::FontWidth::CONDENSED,
155                                       Dali::TextAbstraction::FontSlant::ITALIC);
156   DALI_TEST_CHECK(fontSpan);
157
158   DALI_TEST_EQUALS(Dali::TextAbstraction::FontSlant::ITALIC, fontSpan.GetSlant(), TEST_LOCATION);
159
160   END_TEST;
161 }
162
163 int UtcDaliToolkitTextIsSlantDefined(void)
164 {
165   ToolkitTestApplication application;
166   tet_infoline(" UtcDaliToolkitTextIsSlantDefined");
167
168   auto fontSpan = Text::FontSpan::New("DejaVu Sans",
169                                       45.0f,
170                                       Dali::TextAbstraction::FontWeight::BOLD,
171                                       Dali::TextAbstraction::FontWidth::CONDENSED,
172                                       Dali::TextAbstraction::FontSlant::ITALIC);
173   DALI_TEST_CHECK(fontSpan);
174
175   DALI_TEST_EQUALS(true, fontSpan.IsSlantDefined(), TEST_LOCATION);
176
177   END_TEST;
178 }
179
180 int UtcDaliToolkitTextGetSize(void)
181 {
182   ToolkitTestApplication application;
183   tet_infoline(" UtcDaliToolkitTextGetSize");
184
185   auto fontSpan = Text::FontSpan::New("DejaVu Sans",
186                                       45.0f,
187                                       Dali::TextAbstraction::FontWeight::BOLD,
188                                       Dali::TextAbstraction::FontWidth::CONDENSED,
189                                       Dali::TextAbstraction::FontSlant::ITALIC);
190   DALI_TEST_CHECK(fontSpan);
191
192   DALI_TEST_EQUALS(45.0f, fontSpan.GetSize(), TEST_LOCATION);
193
194   END_TEST;
195 }
196
197 int UtcDaliToolkitTextIsSizeDefined(void)
198 {
199   ToolkitTestApplication application;
200   tet_infoline(" UtcDaliToolkitTextIsSizeDefined");
201
202   auto fontSpan = Text::FontSpan::New("DejaVu Sans",
203                                       45.0f,
204                                       Dali::TextAbstraction::FontWeight::BOLD,
205                                       Dali::TextAbstraction::FontWidth::CONDENSED,
206                                       Dali::TextAbstraction::FontSlant::ITALIC);
207   DALI_TEST_CHECK(fontSpan);
208
209   DALI_TEST_EQUALS(true, fontSpan.IsSizeDefined(), TEST_LOCATION);
210
211   END_TEST;
212 }
213
214 int UtcDaliToolkitTextFontSpanDownCast(void)
215 {
216   ToolkitTestApplication application;
217   tet_infoline(" UtcDaliToolkitTextFontSpanDownCast");
218
219   Text::BaseSpan baseSpan = Text::FontSpan::New("DejaVu Sans",
220                                                 45.0f,
221                                                 Dali::TextAbstraction::FontWeight::BOLD,
222                                                 Dali::TextAbstraction::FontWidth::CONDENSED,
223                                                 Dali::TextAbstraction::FontSlant::ITALIC);
224   DALI_TEST_CHECK(baseSpan);
225
226   Text::FontSpan greenSpan = Text::FontSpan::DownCast(baseSpan);
227   DALI_TEST_CHECK(greenSpan);
228
229   END_TEST;
230 }