• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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