[dali_2.3.19] Merge branch 'devel/master'
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit-internal / utc-Dali-Text-AbstractStyleCharacterRun.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/internal/text/bounded-paragraph-run.h>
24 #include <dali-toolkit/internal/text/character-spacing-character-run.h>
25 #include <dali-toolkit/internal/text/color-run.h>
26 #include <dali-toolkit/internal/text/font-description-run.h>
27 #include <dali-toolkit/internal/text/strikethrough-character-run.h>
28 #include <dali-toolkit/internal/text/underlined-character-run.h>
29
30 using namespace Dali;
31 using namespace Toolkit;
32 using namespace Text;
33
34 // Tests the following functions for AbstractStyleCharacterRun.
35 //  CharacterIndex GetStartCharacterIndex() const;
36 //  Length GetNumberOfCharacters() const;
37 //  CharacterIndex GetEndCharacterIndex() const;
38
39 template<typename TYPE_OF_RUN>
40 void TestAbstractStyleCharacterRunEmptyCharacterRun(std::string test_name)
41 {
42   tet_infoline(" TestAbstractStyleCharacterRunEmptyCharacterRun ");
43   std::cout << "  testing " << test_name << std::endl;
44
45   tet_infoline(" Default Constructor ");
46   TYPE_OF_RUN abstractStyleCharacterRun;
47
48   tet_infoline(" AbstractStyleCharacterRun_GetStartCharacterIndex ");
49   DALI_TEST_EQUALS(abstractStyleCharacterRun.GetStartCharacterIndex(), 0u, TEST_LOCATION);
50
51   tet_infoline(" AbstractStyleCharacterRun_GetNumberOfCharacters ");
52   DALI_TEST_EQUALS(abstractStyleCharacterRun.GetNumberOfCharacters(), 0u, TEST_LOCATION);
53
54   tet_infoline(" AbstractStyleCharacterRun_GetEndCharacterIndex ");
55   DALI_TEST_EQUALS(abstractStyleCharacterRun.GetEndCharacterIndex(), 0u, TEST_LOCATION);
56 }
57
58 template<typename TYPE_OF_RUN>
59 void TestAbstractStyleCharacterRunOneCharacter(std::string test_name)
60 {
61   tet_infoline(" TestAbstractStyleCharacterRunOneCharacter ");
62   std::cout << "  testing " << test_name << std::endl;
63
64   TYPE_OF_RUN abstractStyleCharacterRun;
65   abstractStyleCharacterRun.characterRun.numberOfCharacters = 1u;
66   tet_infoline(" AbstractStyleCharacterRun_GetStartCharacterIndex ");
67   DALI_TEST_EQUALS(abstractStyleCharacterRun.GetStartCharacterIndex(), 0u, TEST_LOCATION);
68
69   tet_infoline(" AbstractStyleCharacterRun_GetNumberOfCharacters ");
70   DALI_TEST_EQUALS(abstractStyleCharacterRun.GetNumberOfCharacters(), 1u, TEST_LOCATION);
71
72   tet_infoline(" AbstractStyleCharacterRun_GetEndCharacterIndex ");
73   DALI_TEST_EQUALS(abstractStyleCharacterRun.GetEndCharacterIndex(), 0u, TEST_LOCATION);
74
75   abstractStyleCharacterRun.characterRun.characterIndex = 5u;
76   tet_infoline(" AbstractStyleCharacterRun_GetStartCharacterIndex ");
77   DALI_TEST_EQUALS(abstractStyleCharacterRun.GetStartCharacterIndex(), 5u, TEST_LOCATION);
78
79   tet_infoline(" AbstractStyleCharacterRun_GetNumberOfCharacters ");
80   DALI_TEST_EQUALS(abstractStyleCharacterRun.GetNumberOfCharacters(), 1u, TEST_LOCATION);
81
82   tet_infoline(" AbstractStyleCharacterRun_GetEndCharacterIndex ");
83   DALI_TEST_EQUALS(abstractStyleCharacterRun.GetEndCharacterIndex(), 5u, TEST_LOCATION);
84 }
85
86 template<typename TYPE_OF_RUN>
87 void TestAbstractStyleCharacterRunMoreThanOneCharacter(std::string test_name)
88 {
89   tet_infoline(" TestAbstractStyleCharacterRunOneCharacter ");
90   std::cout << "  testing " << test_name << std::endl;
91
92   TYPE_OF_RUN abstractStyleCharacterRun;
93   abstractStyleCharacterRun.characterRun.numberOfCharacters = 15u;
94   tet_infoline(" AbstractStyleCharacterRun_GetStartCharacterIndex ");
95   DALI_TEST_EQUALS(abstractStyleCharacterRun.GetStartCharacterIndex(), 0u, TEST_LOCATION);
96
97   tet_infoline(" AbstractStyleCharacterRun_GetNumberOfCharacters ");
98   DALI_TEST_EQUALS(abstractStyleCharacterRun.GetNumberOfCharacters(), 15u, TEST_LOCATION);
99
100   tet_infoline(" AbstractStyleCharacterRun_GetEndCharacterIndex ");
101   DALI_TEST_EQUALS(abstractStyleCharacterRun.GetEndCharacterIndex(), 14u, TEST_LOCATION);
102
103   abstractStyleCharacterRun.characterRun.characterIndex = 5u;
104   tet_infoline(" AbstractStyleCharacterRun_GetStartCharacterIndex ");
105   DALI_TEST_EQUALS(abstractStyleCharacterRun.GetStartCharacterIndex(), 5u, TEST_LOCATION);
106
107   tet_infoline(" AbstractStyleCharacterRun_GetNumberOfCharacters ");
108   DALI_TEST_EQUALS(abstractStyleCharacterRun.GetNumberOfCharacters(), 15u, TEST_LOCATION);
109
110   tet_infoline(" AbstractStyleCharacterRun_GetEndCharacterIndex ");
111   DALI_TEST_EQUALS(abstractStyleCharacterRun.GetEndCharacterIndex(), 19u, TEST_LOCATION);
112 }
113
114 int UtcDaliTextAbstractStyleCharacterRun(void)
115 {
116   ToolkitTestApplication application;
117   tet_infoline(" UtcDaliTextAbstractStyleCharacterRun");
118
119   TestAbstractStyleCharacterRunEmptyCharacterRun<Dali::Toolkit::Text::ColorRun>("ColorRun");
120   TestAbstractStyleCharacterRunEmptyCharacterRun<Dali::Toolkit::Text::CharacterSpacingCharacterRun>("CharacterSpacingCharacterRun");
121   TestAbstractStyleCharacterRunEmptyCharacterRun<Dali::Toolkit::Text::FontDescriptionRun>("FontDescriptionRun");
122   TestAbstractStyleCharacterRunEmptyCharacterRun<Dali::Toolkit::Text::UnderlinedCharacterRun>("UnderlinedCharacterRun");
123   TestAbstractStyleCharacterRunEmptyCharacterRun<Dali::Toolkit::Text::StrikethroughCharacterRun>("StrikethroughCharacterRun");
124   TestAbstractStyleCharacterRunEmptyCharacterRun<Dali::Toolkit::Text::BoundedParagraphRun>("BoundedParagraphRun");
125
126   TestAbstractStyleCharacterRunOneCharacter<Dali::Toolkit::Text::ColorRun>("ColorRun");
127   TestAbstractStyleCharacterRunOneCharacter<Dali::Toolkit::Text::CharacterSpacingCharacterRun>("CharacterSpacingCharacterRun");
128   TestAbstractStyleCharacterRunOneCharacter<Dali::Toolkit::Text::FontDescriptionRun>("FontDescriptionRun");
129   TestAbstractStyleCharacterRunOneCharacter<Dali::Toolkit::Text::UnderlinedCharacterRun>("UnderlinedCharacterRun");
130   TestAbstractStyleCharacterRunOneCharacter<Dali::Toolkit::Text::StrikethroughCharacterRun>("StrikethroughCharacterRun");
131   TestAbstractStyleCharacterRunOneCharacter<Dali::Toolkit::Text::BoundedParagraphRun>("BoundedParagraphRun");
132
133   TestAbstractStyleCharacterRunMoreThanOneCharacter<Dali::Toolkit::Text::ColorRun>("ColorRun");
134   TestAbstractStyleCharacterRunMoreThanOneCharacter<Dali::Toolkit::Text::CharacterSpacingCharacterRun>("CharacterSpacingCharacterRun");
135   TestAbstractStyleCharacterRunMoreThanOneCharacter<Dali::Toolkit::Text::FontDescriptionRun>("FontDescriptionRun");
136   TestAbstractStyleCharacterRunMoreThanOneCharacter<Dali::Toolkit::Text::UnderlinedCharacterRun>("UnderlinedCharacterRun");
137   TestAbstractStyleCharacterRunMoreThanOneCharacter<Dali::Toolkit::Text::StrikethroughCharacterRun>("StrikethroughCharacterRun");
138   TestAbstractStyleCharacterRunMoreThanOneCharacter<Dali::Toolkit::Text::BoundedParagraphRun>("BoundedParagraphRun");
139
140   END_TEST;
141 }