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