1 /*
2 * Copyright (c) 2020-2021 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include "ui_test_digital_clock.h"
17 #include "common/screen.h"
18 #include "components/ui_digital_clock.h"
19 #include "components/ui_label.h"
20 #include "font/ui_font.h"
21
22 namespace OHOS {
23 namespace {
24 const int16_t GAP = 10;
25 const int16_t TITLE_HEIGHT = 30;
26 const uint16_t DIGITAL_CLOCK_WIDTH = 350;
27 const uint16_t DIGITAL_CLOCK_HEIGHT = 50;
28 } // namespace
29
SetUp()30 void UITestDigitalClock::SetUp()
31 {
32 if (container_ == nullptr) {
33 container_ = new UIScrollView();
34 container_->SetThrowDrag(true);
35 container_->SetHorizontalScrollState(false);
36 container_->Resize(Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight() - BACK_BUTTON_HEIGHT);
37 positionX_ = 50; // 50: init position x
38 positionY_ = 5; // 5: init position y
39 }
40 }
41
TearDown()42 void UITestDigitalClock::TearDown()
43 {
44 UIView* view = static_cast<UIViewGroup*>(container_)->GetChildrenHead();
45 while (view != nullptr) {
46 UIView* tempView = view;
47 view = view->GetNextSibling();
48 if (tempView->GetParent()) {
49 static_cast<UIViewGroup*>(tempView->GetParent())->Remove(tempView);
50 }
51 delete tempView;
52 }
53 delete container_;
54 container_ = nullptr;
55 }
56
InnerTestTitle(const char * title)57 void UITestDigitalClock::InnerTestTitle(const char* title)
58 {
59 UILabel* titleLabel = new UILabel();
60 titleLabel->SetPosition(TEXT_DISTANCE_TO_LEFT_SIDE, positionY_, Screen::GetInstance().GetWidth(),
61 TITLE_LABEL_DEFAULT_HEIGHT);
62 titleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_DEFAULT_SIZE);
63 titleLabel->SetText(title);
64 container_->Add(titleLabel);
65 positionY_ += TITLE_HEIGHT + GAP;
66 }
67
GetTestView()68 const UIView* UITestDigitalClock::GetTestView()
69 {
70 UIKit_UIDigitalClock_Test_Display_001();
71 UIKit_UIDigitalClock_Test_Display_002();
72 UIKit_UIDigitalClock_Test_SetColor();
73 UIKit_UIDigitalClock_Test_DisplayMode_001();
74 UIKit_UIDigitalClock_Test_DisplayMode_002();
75 UIKit_UIDigitalClock_Test_DisplayMode_003();
76 UIKit_UIDigitalClock_Test_DisplayMode_004();
77 UIKit_UIDigitalClock_Test_DisplayLeadingZero();
78 UIKit_UIDigitalClock_Test_SetOpacity();
79 return container_;
80 }
81
UIKit_UIDigitalClock_Test_Display_001()82 void UITestDigitalClock::UIKit_UIDigitalClock_Test_Display_001()
83 {
84 if (container_ != nullptr) {
85 InnerTestTitle("UIDigitalClock效果");
86 UIDigitalClock* dClock = new UIDigitalClock();
87 dClock->SetPosition(positionX_, positionY_);
88 dClock->Resize(DIGITAL_CLOCK_WIDTH, DIGITAL_CLOCK_HEIGHT);
89 dClock->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30); // 30: font size
90 dClock->SetTime24Hour(7, 25, 50); // 7: hour, 25: minute, 50: second
91 container_->Add(dClock);
92 positionY_ += DIGITAL_CLOCK_HEIGHT + GAP;
93 }
94 }
95
UIKit_UIDigitalClock_Test_Display_002()96 void UITestDigitalClock::UIKit_UIDigitalClock_Test_Display_002()
97 {
98 if (container_ != nullptr) {
99 InnerTestTitle("UIDigitalClock效果");
100 UIDigitalClock* dClock = new UIDigitalClock();
101 dClock->SetPosition(positionX_, positionY_);
102 dClock->Resize(DIGITAL_CLOCK_WIDTH, DIGITAL_CLOCK_HEIGHT);
103 dClock->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30); // 30: font size
104 dClock->SetTime24Hour(7, 25, 50); // 7:hour, 25:minute, 50:second
105 container_->Add(dClock);
106 positionY_ += DIGITAL_CLOCK_HEIGHT + GAP;
107 }
108 }
109
UIKit_UIDigitalClock_Test_SetColor()110 void UITestDigitalClock::UIKit_UIDigitalClock_Test_SetColor()
111 {
112 if (container_ != nullptr) {
113 InnerTestTitle("设置Digital Clock颜色");
114 UIDigitalClock* dClock = new UIDigitalClock();
115 dClock->SetPosition(positionX_, positionY_);
116 dClock->Resize(DIGITAL_CLOCK_WIDTH, DIGITAL_CLOCK_HEIGHT);
117 dClock->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30); // 30: font size
118 dClock->SetTime24Hour(7, 25, 50); // 7:hour, 25:minute, 50:second
119 dClock->SetColor(Color::Red());
120 container_->Add(dClock);
121 positionY_ += DIGITAL_CLOCK_HEIGHT + GAP;
122 }
123 }
124
UIKit_UIDigitalClock_Test_DisplayMode_001()125 void UITestDigitalClock::UIKit_UIDigitalClock_Test_DisplayMode_001()
126 {
127 if (container_ != nullptr) {
128 InnerTestTitle("设置Digital Clock仅显示小时、分钟 ");
129 UIDigitalClock* dClock = new UIDigitalClock();
130 dClock->SetPosition(positionX_, positionY_);
131 dClock->Resize(DIGITAL_CLOCK_WIDTH, DIGITAL_CLOCK_HEIGHT);
132 dClock->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30); // 30: font size
133 dClock->SetTime24Hour(17, 25, 50); // 17:hour, 25:minute, 50:second
134 dClock->SetDisplayMode(UIDigitalClock::DISPLAY_12_HOUR_NO_SECONDS);
135 container_->Add(dClock);
136 positionY_ += DIGITAL_CLOCK_HEIGHT + GAP;
137 }
138 }
139
UIKit_UIDigitalClock_Test_DisplayMode_002()140 void UITestDigitalClock::UIKit_UIDigitalClock_Test_DisplayMode_002()
141 {
142 if (container_ != nullptr) {
143 InnerTestTitle("设置Digital Clock 24小时制仅显示小时、分钟 ");
144 UIDigitalClock* dClock = new UIDigitalClock();
145 dClock->SetPosition(positionX_, positionY_);
146 dClock->Resize(DIGITAL_CLOCK_WIDTH, DIGITAL_CLOCK_HEIGHT);
147 dClock->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30); // 30: font size
148 dClock->SetTime24Hour(17, 25, 50); // 17:hour, 25:minute, 50:second
149 dClock->SetDisplayMode(UIDigitalClock::DISPLAY_24_HOUR_NO_SECONDS);
150 container_->Add(dClock);
151 positionY_ += DIGITAL_CLOCK_HEIGHT + GAP;
152 }
153 }
154
UIKit_UIDigitalClock_Test_DisplayMode_003()155 void UITestDigitalClock::UIKit_UIDigitalClock_Test_DisplayMode_003()
156 {
157 if (container_ != nullptr) {
158 InnerTestTitle("设置Digital Clock 12小时制 ");
159 UIDigitalClock* dClock = new UIDigitalClock();
160 dClock->SetPosition(positionX_, positionY_);
161 dClock->Resize(DIGITAL_CLOCK_WIDTH, DIGITAL_CLOCK_HEIGHT);
162 dClock->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30); // 30: font size
163 dClock->SetTime24Hour(17, 25, 50); // 17:hour, 25:minute, 50:second
164 dClock->SetDisplayMode(UIDigitalClock::DISPLAY_12_HOUR);
165 container_->Add(dClock);
166 positionY_ += DIGITAL_CLOCK_HEIGHT + GAP;
167 }
168 }
169
UIKit_UIDigitalClock_Test_DisplayMode_004()170 void UITestDigitalClock::UIKit_UIDigitalClock_Test_DisplayMode_004()
171 {
172 if (container_ != nullptr) {
173 InnerTestTitle("设置Digital Clock 24小时制 ");
174 UIDigitalClock* dClock = new UIDigitalClock();
175 dClock->SetPosition(positionX_, positionY_);
176 dClock->Resize(DIGITAL_CLOCK_WIDTH, DIGITAL_CLOCK_HEIGHT);
177 dClock->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30); // 30: font size
178 dClock->SetTime24Hour(17, 25, 50); // 17:hour, 25:minute, 50:second
179 dClock->SetDisplayMode(UIDigitalClock::DISPLAY_24_HOUR);
180 container_->Add(dClock);
181 positionY_ += DIGITAL_CLOCK_HEIGHT + GAP;
182 }
183 }
184
UIKit_UIDigitalClock_Test_DisplayLeadingZero()185 void UITestDigitalClock::UIKit_UIDigitalClock_Test_DisplayLeadingZero()
186 {
187 if (container_ != nullptr) {
188 InnerTestTitle("设置Digital Clock不显示首位的0 ");
189 UIDigitalClock* dClock = new UIDigitalClock();
190 dClock->SetPosition(positionX_, positionY_);
191 dClock->Resize(DIGITAL_CLOCK_WIDTH, DIGITAL_CLOCK_HEIGHT);
192 dClock->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30); // 30: font size
193 dClock->SetTime24Hour(7, 5, 9); // 7:hour, 5:minute, 9:second
194 dClock->DisplayLeadingZero(false);
195 container_->Add(dClock);
196 positionY_ += DIGITAL_CLOCK_HEIGHT + GAP;
197 }
198 }
199
UIKit_UIDigitalClock_Test_SetOpacity()200 void UITestDigitalClock::UIKit_UIDigitalClock_Test_SetOpacity()
201 {
202 if (container_ != nullptr) {
203 InnerTestTitle("设置Digital Clock透明度 ");
204 UIDigitalClock* dClock = new UIDigitalClock();
205 dClock->SetPosition(positionX_, positionY_);
206 dClock->Resize(DIGITAL_CLOCK_WIDTH, DIGITAL_CLOCK_HEIGHT);
207 dClock->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30); // 30: font size
208 dClock->SetTime24Hour(7, 5, 9); // 7:hour, 5:minute, 9:second
209 dClock->SetOpacity(178); // 178: num of opacity
210 container_->Add(dClock);
211 positionY_ += DIGITAL_CLOCK_HEIGHT + GAP;
212 }
213 }
214 } // namespace OHOS