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 "components/ui_digital_clock.h"
17 #include <climits>
18 #include <gtest/gtest.h>
19
20 using namespace testing::ext;
21
22 namespace OHOS {
23 namespace {
24 const uint8_t CURRENT_HOUR = 14;
25 const uint8_t CURRENT_MINUTE = 40;
26 const uint8_t CURRENT_SECOND = 30;
27 const uint8_t HALF_DAY_IN_HOUR = 12;
28 }
29
30 class UIDigitalClockTest : public testing::Test {
31 public:
32 static void SetUpTestCase(void);
33 static void TearDownTestCase(void);
34 static UIDigitalClock* digitalClock_;
35 };
36
37 UIDigitalClock* UIDigitalClockTest::digitalClock_ = nullptr;
38
SetUpTestCase(void)39 void UIDigitalClockTest::SetUpTestCase(void)
40 {
41 if (digitalClock_ == nullptr) {
42 digitalClock_ = new UIDigitalClock();
43 }
44 }
45
TearDownTestCase(void)46 void UIDigitalClockTest::TearDownTestCase(void)
47 {
48 if (digitalClock_ != nullptr) {
49 delete digitalClock_;
50 digitalClock_ = nullptr;
51 }
52 }
53
54 /**
55 * @tc.name: UIDigitalClockGetViewType_001
56 * @tc.desc: Verify GetViewType function, equal.
57 * @tc.type: FUNC
58 * @tc.require: AR000EEMQ4
59 */
60 HWTEST_F(UIDigitalClockTest, UIDigitalClockGetViewType_001, TestSize.Level1)
61 {
62 if (digitalClock_ == nullptr) {
63 EXPECT_EQ(1, 0);
64 return;
65 }
66 EXPECT_EQ(digitalClock_->GetViewType(), UI_DIGITAL_CLOCK);
67 }
68
69 /**
70 * @tc.name: UIDigitalClockSetFontId_001
71 * @tc.desc: Verify SetFontId function, equal.
72 * @tc.type: FUNC
73 * @tc.require: AR000EEMQ4
74 */
75 HWTEST_F(UIDigitalClockTest, UIDigitalClockSetFontId_001, TestSize.Level1)
76 {
77 if (digitalClock_ == nullptr) {
78 EXPECT_EQ(1, 0);
79 return;
80 }
81 const uint16_t fontId = 10;
82 digitalClock_->SetFontId(fontId);
83 EXPECT_EQ(digitalClock_->GetStyle(STYLE_TEXT_FONT), fontId);
84 }
85
86 /**
87 * @tc.name: UIDigitalClockSetDisplayMode_001
88 * @tc.desc: Verify SetDisplayMode function, equal.
89 * @tc.type: FUNC
90 * @tc.require: AR000EEMQ4
91 */
92 HWTEST_F(UIDigitalClockTest, UIDigitalClockSetDisplayMode_001, TestSize.Level0)
93 {
94 if (digitalClock_ == nullptr) {
95 EXPECT_EQ(1, 0);
96 return;
97 }
98 digitalClock_->SetDisplayMode(UIDigitalClock::DisplayMode::DISPLAY_12_HOUR_NO_SECONDS);
99 EXPECT_EQ(digitalClock_->GetDisplayMode(), UIDigitalClock::DisplayMode::DISPLAY_12_HOUR_NO_SECONDS);
100 digitalClock_->SetDisplayMode(UIDigitalClock::DisplayMode::DISPLAY_24_HOUR_NO_SECONDS);
101 EXPECT_EQ(digitalClock_->GetDisplayMode(), UIDigitalClock::DisplayMode::DISPLAY_24_HOUR_NO_SECONDS);
102 digitalClock_->SetDisplayMode(UIDigitalClock::DisplayMode::DISPLAY_12_HOUR);
103 EXPECT_EQ(digitalClock_->GetDisplayMode(), UIDigitalClock::DisplayMode::DISPLAY_12_HOUR);
104 digitalClock_->SetDisplayMode(UIDigitalClock::DisplayMode::DISPLAY_24_HOUR);
105 EXPECT_EQ(digitalClock_->GetDisplayMode(), UIDigitalClock::DisplayMode::DISPLAY_24_HOUR);
106 }
107
108 /**
109 * @tc.name: UIDigitalClockSetOpacity_001
110 * @tc.desc: Verify SetOpacity function, equal.
111 * @tc.type: FUNC
112 * @tc.require: AR000EEMQ4
113 */
114 HWTEST_F(UIDigitalClockTest, UIDigitalClockSetOpacity_001, TestSize.Level1)
115 {
116 if (digitalClock_ == nullptr) {
117 EXPECT_EQ(1, 0);
118 return;
119 }
120 digitalClock_->SetOpacity(OPA_OPAQUE);
121 EXPECT_EQ(digitalClock_->GetOpacity(), OPA_OPAQUE);
122 }
123
124 /**
125 * @tc.name: UIDigitalClockSetTime24Hour_001
126 * @tc.desc: Verify SetTime24Hour function, equal.
127 * @tc.type: FUNC
128 * @tc.require: AR000EEMQ4
129 */
130 HWTEST_F(UIDigitalClockTest, UIDigitalClockSetTime24Hour_001, TestSize.Level1)
131 {
132 if (digitalClock_ == nullptr) {
133 EXPECT_EQ(1, 0);
134 return;
135 }
136 digitalClock_->SetTime24Hour(CURRENT_HOUR, CURRENT_MINUTE, CURRENT_SECOND);
137 EXPECT_EQ(digitalClock_->GetCurrentHour(), CURRENT_HOUR);
138 EXPECT_EQ(digitalClock_->GetCurrentMinute(), CURRENT_MINUTE);
139 EXPECT_EQ(digitalClock_->GetCurrentSecond(), CURRENT_SECOND);
140 }
141
142 /**
143 * @tc.name: UIDigitalClockSetTime12Hour_001
144 * @tc.desc: Verify SetTime12Hour function, equal.
145 * @tc.type: FUNC
146 * @tc.require: AR000EEMQ4
147 */
148 HWTEST_F(UIDigitalClockTest, UIDigitalClockSetTime12Hour_001, TestSize.Level1)
149 {
150 if (digitalClock_ == nullptr) {
151 EXPECT_EQ(1, 0);
152 return;
153 }
154 digitalClock_->SetTime12Hour(CURRENT_HOUR, CURRENT_MINUTE, CURRENT_SECOND, true);
155 EXPECT_EQ(digitalClock_->GetCurrentHour(), CURRENT_HOUR - HALF_DAY_IN_HOUR);
156 EXPECT_EQ(digitalClock_->GetCurrentMinute(), CURRENT_MINUTE);
157 EXPECT_EQ(digitalClock_->GetCurrentSecond(), CURRENT_SECOND);
158 }
159
160 /**
161 * @tc.name: UIDigitalClockSetTime12Hour_002
162 * @tc.desc: Verify SetTime12Hour function, equal.
163 * @tc.type: FUNC
164 * @tc.require: AR000EEMQ4
165 */
166 HWTEST_F(UIDigitalClockTest, UIDigitalClockSetTime12Hour_002, TestSize.Level1)
167 {
168 if (digitalClock_ == nullptr) {
169 EXPECT_EQ(1, 0);
170 return;
171 }
172 digitalClock_->SetTime12Hour(CURRENT_HOUR, CURRENT_MINUTE, CURRENT_SECOND, false);
173 EXPECT_EQ(digitalClock_->GetCurrentHour(), CURRENT_HOUR);
174 EXPECT_EQ(digitalClock_->GetCurrentMinute(), CURRENT_MINUTE);
175 EXPECT_EQ(digitalClock_->GetCurrentSecond(), CURRENT_SECOND);
176 }
177
178 /**
179 * @tc.name: UIDigitalClockSetFont_001
180 * @tc.desc: Verify SetFont function, equal.
181 */
182 HWTEST_F(UIDigitalClockTest, UIDigitalClockSetFont_001, TestSize.Level1)
183 {
184 if (digitalClock_ == nullptr) {
185 EXPECT_EQ(1, 0);
186 return;
187 }
188 uint8_t size = 10;
189 const char* name = "xxx";
190 digitalClock_->SetFont(name, size);
191 digitalClock_->UpdateClock(false);
192 Text* text = new Text();
193 EXPECT_EQ(text->GetFontId(), 0);
194 delete text;
195 text = nullptr;
196 }
197
198 /**
199 * @tc.name: UIDigitalClockSetColor_001
200 * @tc.desc: Verify SetColor function, equal.
201 */
202 HWTEST_F(UIDigitalClockTest, UIDigitalClockSetColor_001, TestSize.Level1)
203 {
204 if (digitalClock_ == nullptr) {
205 EXPECT_EQ(1, 0);
206 return;
207 }
208 ColorType color = Color::Red();
209 digitalClock_->SetColor(color);
210 EXPECT_EQ(digitalClock_->GetColor().full, color.full);
211 }
212
213 /**
214 * @tc.name: UIDigitalClockDisplayLeadingZero_001
215 * @tc.desc: Verify DisplayLeadingZero function, equal.
216 */
217 HWTEST_F(UIDigitalClockTest, UIDigitalClockDisplayLeadingZero_001, TestSize.Level1)
218 {
219 if (digitalClock_ == nullptr) {
220 EXPECT_EQ(1, 0);
221 return;
222 }
223 bool flag = false;
224 digitalClock_->DisplayLeadingZero(flag);
225 EXPECT_EQ(digitalClock_->GetLeadingZero(), flag);
226 }
227 }
228