• 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 "components/ui_image_animator.h"
17 
18 #include <climits>
19 #include <gtest/gtest.h>
20 #include "gfx_utils/file.h"
21 #include "test_resource_config.h"
22 
23 using namespace testing::ext;
24 namespace OHOS {
25 namespace {
26     const Point INIT_POS = { 50, 50 };
27     const int16_t INIT_WIDTH = 94;
28     const int16_t INIT_HEIGHT = 94;
29     const uint8_t IMAGE_SIZE = 3;
30 }
31 
32 class UIImageAnimatorViewTest : public testing::Test {
33 public:
34     static void SetUpTestCase(void);
35     static void TearDownTestCase(void);
36     static UIImageAnimatorView* imageAnimator_;
37 };
38 
39 UIImageAnimatorView* UIImageAnimatorViewTest::imageAnimator_ = nullptr;
40 
SetUpTestCase(void)41 void UIImageAnimatorViewTest::SetUpTestCase(void)
42 {
43     if (imageAnimator_ == nullptr) {
44         imageAnimator_ = new UIImageAnimatorView();
45     }
46 }
47 
TearDownTestCase(void)48 void UIImageAnimatorViewTest::TearDownTestCase(void)
49 {
50     if (imageAnimator_ != nullptr) {
51         delete imageAnimator_;
52         imageAnimator_ = nullptr;
53     }
54 }
55 
56 static ImageAnimatorInfo g_imageAnimatorInfo[IMAGE_SIZE] = {
57     { BLUE_RGB888_IMAGE_PATH, INIT_POS, INIT_WIDTH, INIT_HEIGHT, IMG_SRC_FILE_PATH },
58     { BLUE_ARGB8888_IMAGE_PATH, INIT_POS, INIT_WIDTH, INIT_HEIGHT, IMG_SRC_FILE_PATH },
59     { BLUE_RGB565_IMAGE_PATH, INIT_POS, INIT_WIDTH, INIT_HEIGHT, IMG_SRC_FILE_PATH },
60 };
61 
62 /**
63  * @tc.name: UIImageAnimatorViewGetViewType_001
64  * @tc.desc: Verify GetViewType function, equal.
65  * @tc.type: FUNC
66  * @tc.require: AR000DSMQL
67  */
68 HWTEST_F(UIImageAnimatorViewTest, UIImageAnimatorViewGetViewType_001, TestSize.Level1)
69 {
70     if (imageAnimator_ == nullptr) {
71         EXPECT_EQ(1, 0);
72         return;
73     }
74     EXPECT_EQ(imageAnimator_->GetViewType(), UI_IMAGE_ANIMATOR_VIEW);
75 }
76 
77 /**
78  * @tc.name: UIImageAnimatorViewSetTimeOfPause_001
79  * @tc.desc: Verify SetTimeOfPause function, equal.
80  * @tc.type: FUNC
81  * @tc.require: AR000DSMQL
82  */
83 HWTEST_F(UIImageAnimatorViewTest, UIImageAnimatorViewSetTimeOfPause_001, TestSize.Level1)
84 {
85     if (imageAnimator_ == nullptr) {
86         EXPECT_EQ(1, 0);
87         return;
88     }
89     uint16_t timeOfPause = 1;
90 
91     imageAnimator_->SetTimeOfPause(timeOfPause);
92     EXPECT_EQ(imageAnimator_->GetTimeOfPause(), timeOfPause);
93 }
94 
95 /**
96  * @tc.name: UIImageAnimatorViewSetTimeOfUpdate_001
97  * @tc.desc: Verify SetTimeOfUpdate function, equal.
98  * @tc.type: FUNC
99  * @tc.require: AR000DSMQL
100  */
101 HWTEST_F(UIImageAnimatorViewTest, UIImageAnimatorViewSetTimeOfUpdate_001, TestSize.Level1)
102 {
103     if (imageAnimator_ == nullptr) {
104         EXPECT_EQ(1, 0);
105         return;
106     }
107     const uint16_t animatorTime = 300;
108 
109     imageAnimator_->SetTimeOfUpdate(animatorTime);
110     EXPECT_EQ(imageAnimator_->GetTimeOfUpdate(), animatorTime);
111 }
112 
113 /**
114  * @tc.name: UIImageAnimatorViewSetImageAnimatorSrc_001
115  * @tc.desc: Verify SetImageAnimatorSrc function, equal.
116  * @tc.type: FUNC
117  * @tc.require: AR000DSMQL
118  */
119 HWTEST_F(UIImageAnimatorViewTest, UIImageAnimatorViewSetImageAnimatorSrc_001, TestSize.Level1)
120 {
121     if (imageAnimator_ == nullptr) {
122         EXPECT_EQ(1, 0);
123         return;
124     }
125     const uint8_t imageSize = IMAGE_SIZE;
126 
127     imageAnimator_->SetImageAnimatorSrc(g_imageAnimatorInfo, imageSize);
128     EXPECT_EQ(imageAnimator_->GetImageAnimatorImageNum(), imageSize);
129 }
130 
131 /**
132  * @tc.name: UIImageAnimatorViewSetImageAnimatorSrc_002
133  * @tc.desc: Verify SetImageAnimatorSrc function, equal.
134  * @tc.type: FUNC
135  * @tc.require: AR000DSMPV
136  */
137 HWTEST_F(UIImageAnimatorViewTest, UIImageAnimatorViewSetImageAnimatorSrc_002, TestSize.Level1)
138 {
139     if (imageAnimator_ == nullptr) {
140         EXPECT_EQ(1, 0);
141         return;
142     }
143     ImageAnimatorInfo* info = &g_imageAnimatorInfo[0];
144     imageAnimator_->SetImageAnimatorSrc(g_imageAnimatorInfo, IMAGE_SIZE);
145 
146     EXPECT_EQ(imageAnimator_->GetImageAnimatorSrc(), info);
147 }
148 
149 /**
150  * @tc.name: UIImageAnimatorViewSetSizeFixed_001
151  * @tc.desc: Verify SetSizeFixed function, equal.
152  * @tc.type: FUNC
153  * @tc.require: AR000DSMPV
154  */
155 HWTEST_F(UIImageAnimatorViewTest, UIImageAnimatorViewSetSizeFixed_001, TestSize.Level1)
156 {
157     if (imageAnimator_ == nullptr) {
158         EXPECT_EQ(1, 0);
159         return;
160     }
161     bool fixed = true;
162 
163     imageAnimator_->SetSizeFixed(fixed);
164     EXPECT_EQ(imageAnimator_->IsSizeFixed(), fixed);
165 }
166 
167 /**
168  * @tc.name: UIImageAnimatorViewSetRepeat_001
169  * @tc.desc: Verify SetRepeat function, equal.
170  * @tc.type: FUNC
171  * @tc.require: AR000DSMPV
172  */
173 HWTEST_F(UIImageAnimatorViewTest, UIImageAnimatorViewSetRepeat_001, TestSize.Level1)
174 {
175     if (imageAnimator_ == nullptr) {
176         EXPECT_EQ(1, 0);
177         return;
178     }
179     bool repeat = true;
180 
181     imageAnimator_->SetRepeat(repeat);
182     EXPECT_EQ(imageAnimator_->IsRepeat(), repeat);
183 }
184 
185 /**
186  * @tc.name: UIImageAnimatorViewSetReverse_001
187  * @tc.desc: Verify SetReverse function, equal.
188  * @tc.type: FUNC
189  * @tc.require: AR000DSMPV
190  */
191 HWTEST_F(UIImageAnimatorViewTest, UIImageAnimatorViewSetReverse_001, TestSize.Level1)
192 {
193     if (imageAnimator_ == nullptr) {
194         EXPECT_EQ(1, 0);
195         return;
196     }
197     bool reverse = true;
198 
199     imageAnimator_->SetReverse(reverse);
200     EXPECT_EQ(imageAnimator_->IsReverse(), reverse);
201 }
202 
203 /**
204  * @tc.name: UIImageAnimatorViewSetStartPosition_001
205  * @tc.desc: Verify SetStartPosition function, equal.
206  * @tc.type: FUNC
207  * @tc.require: AR000DSMPV
208  */
209 HWTEST_F(UIImageAnimatorViewTest, UIImageAnimatorViewSetStartPosition_001, TestSize.Level1)
210 {
211     if (imageAnimator_ == nullptr) {
212         EXPECT_EQ(1, 0);
213         return;
214     }
215     uint8_t state = Animator::STOP;
216 
217     EXPECT_EQ(imageAnimator_->GetState(), state);
218 }
219 
220 /**
221  * @tc.name: UIImageAnimatorViewStart_010
222  * @tc.desc: Verify Start function, equal.
223  * @tc.type: FUNC
224  * @tc.require: AR000DSMPV
225  */
226 HWTEST_F(UIImageAnimatorViewTest, UIImageAnimatorViewStart_001, TestSize.Level1)
227 {
228     if (imageAnimator_ == nullptr) {
229         EXPECT_EQ(1, 0);
230         return;
231     }
232     imageAnimator_->Start();
233     EXPECT_EQ(imageAnimator_->GetState(), Animator::START);
234 }
235 
236 /**
237  * @tc.name: UIImageAnimatorViewStop_001
238  * @tc.desc: Verify Stop function, equal.
239  * @tc.type: FUNC
240  * @tc.require: AR000DSMPV
241  */
242 HWTEST_F(UIImageAnimatorViewTest, UIImageAnimatorViewStop_001, TestSize.Level1)
243 {
244     if (imageAnimator_ == nullptr) {
245         EXPECT_EQ(1, 0);
246         return;
247     }
248     imageAnimator_->Stop();
249     EXPECT_EQ(imageAnimator_->GetState(), Animator::STOP);
250 }
251 
252 /**
253  * @tc.name: UIImageAnimatorViewPause_001
254  * @tc.desc: Verify Pause function, equal.
255  * @tc.type: FUNC
256  * @tc.require: AR000DSMPV
257  */
258 HWTEST_F(UIImageAnimatorViewTest, UIImageAnimatorViewPause_001, TestSize.Level1)
259 {
260     if (imageAnimator_ == nullptr) {
261         EXPECT_EQ(1, 0);
262         return;
263     }
264     imageAnimator_->Pause();
265     EXPECT_EQ(imageAnimator_->GetState(), Animator::PAUSE);
266 }
267 
268 /**
269  * @tc.name: UIImageAnimatorViewResume_001
270  * @tc.desc: Verify Resume function, equal.
271  * @tc.type: FUNC
272  * @tc.require: AR000DSMPV
273  */
274 HWTEST_F(UIImageAnimatorViewTest, UIImageAnimatorViewResume_001, TestSize.Level1)
275 {
276     if (imageAnimator_ == nullptr) {
277         EXPECT_EQ(1, 0);
278         return;
279     }
280     imageAnimator_->Resume();
281     EXPECT_EQ(imageAnimator_->GetState(), Animator::START);
282 }
283 
284 /**
285  * @tc.name: UIImageAnimatorViewSetFillMode_001
286  * @tc.desc: Verify SetFillMode function, equal.
287  * @tc.type: FUNC
288  * @tc.require: SR000F3PEF
289  */
290 HWTEST_F(UIImageAnimatorViewTest, UIImageAnimatorViewSetFillMode_001, TestSize.Level0)
291 {
292     if (imageAnimator_ == nullptr) {
293         EXPECT_EQ(1, 0);
294         return;
295     }
296 
297     imageAnimator_->SetImageAnimatorSrc(g_imageAnimatorInfo, IMAGE_SIZE);
298     imageAnimator_->SetFillMode(true);
299     imageAnimator_->SetReverse(false);
300     imageAnimator_->Start();
301     imageAnimator_->Stop();
302     EXPECT_STREQ(imageAnimator_->GetPath(), g_imageAnimatorInfo[2].imagePath); // 2: the last image
303 }
304 
305 /**
306  * @tc.name: UIImageAnimatorViewSetFillMode_002
307  * @tc.desc: Verify SetFillMode function, equal.
308  * @tc.type: FUNC
309  * @tc.require: AR000F4E5J
310  */
311 HWTEST_F(UIImageAnimatorViewTest, UIImageAnimatorViewSetFillMode_002, TestSize.Level1)
312 {
313     if (imageAnimator_ == nullptr) {
314         EXPECT_EQ(1, 0);
315         return;
316     }
317 
318     imageAnimator_->SetImageAnimatorSrc(g_imageAnimatorInfo, IMAGE_SIZE);
319     imageAnimator_->SetFillMode(true);
320     imageAnimator_->SetReverse(true);
321     imageAnimator_->Start();
322     imageAnimator_->Stop();
323     EXPECT_STREQ(imageAnimator_->GetPath(), g_imageAnimatorInfo[0].imagePath);
324 }
325 
326 /**
327  * @tc.name: UIImageAnimatorViewSetFillMode_003
328  * @tc.desc: Verify SetFillMode function, equal.
329  * @tc.type: FUNC
330  * @tc.require: AR000F4E5J
331  */
332 HWTEST_F(UIImageAnimatorViewTest, UIImageAnimatorViewSetFillMode_003, TestSize.Level1)
333 {
334     if (imageAnimator_ == nullptr) {
335         EXPECT_EQ(1, 0);
336         return;
337     }
338 
339     imageAnimator_->SetImageAnimatorSrc(g_imageAnimatorInfo, IMAGE_SIZE);
340     imageAnimator_->SetFillMode(false);
341     imageAnimator_->SetReverse(false);
342     imageAnimator_->Start();
343     imageAnimator_->Stop();
344     EXPECT_STREQ(imageAnimator_->GetPath(), g_imageAnimatorInfo[0].imagePath);
345 }
346 
347 /**
348  * @tc.name: UIImageAnimatorViewSetFillMode_004
349  * @tc.desc: Verify SetFillMode function, equal.
350  * @tc.type: FUNC
351  * @tc.require: AR000F4E5J
352  */
353 HWTEST_F(UIImageAnimatorViewTest, UIImageAnimatorViewSetFillMode_004, TestSize.Level1)
354 {
355     if (imageAnimator_ == nullptr) {
356         EXPECT_EQ(1, 0);
357         return;
358     }
359 
360     imageAnimator_->SetImageAnimatorSrc(g_imageAnimatorInfo, IMAGE_SIZE);
361     imageAnimator_->SetFillMode(false);
362     imageAnimator_->SetReverse(true);
363     imageAnimator_->Start();
364     imageAnimator_->Stop();
365     EXPECT_STREQ(imageAnimator_->GetPath(), g_imageAnimatorInfo[2].imagePath); // 2: the last image
366 }
367 
368 /**
369  * @tc.name: UIImageAnimatorViewSetImageAnimatorSrc_003
370  * @tc.desc: Verify SetImageAnimatorSrc function, equal.
371  */
372 HWTEST_F(UIImageAnimatorViewTest, UIImageAnimatorViewSetImageAnimatorSrc_003, TestSize.Level1)
373 {
374     if (imageAnimator_ == nullptr) {
375         EXPECT_EQ(1, 0);
376         return;
377     }
378     const uint8_t imageSize = IMAGE_SIZE;
379     const uint16_t timeOfUpdate = 1;
380 
381     imageAnimator_->SetImageAnimatorSrc(g_imageAnimatorInfo, imageSize, timeOfUpdate);
382     EXPECT_EQ(imageAnimator_->GetTimeOfUpdate(), timeOfUpdate);
383 }
384 
385 /**
386  * @tc.name: UIImageAnimatorViewSetRepeatTimes_001
387  * @tc.desc: Verify SetRepeatTimes function, equal.
388  */
389 HWTEST_F(UIImageAnimatorViewTest, UIImageAnimatorViewSetRepeatTimes_001, TestSize.Level1)
390 {
391     if (imageAnimator_ == nullptr) {
392         EXPECT_EQ(1, 0);
393         return;
394     }
395     uint32_t times = 1;
396 
397     imageAnimator_->SetRepeatTimes(times);
398     EXPECT_EQ(imageAnimator_->GetRepeatTimes(), times);
399 }
400 } // namespace OHOS
401