1094332d3Sopenharmony_ci/* 2094332d3Sopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd. 3094332d3Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4094332d3Sopenharmony_ci * you may not use this file except in compliance with the License. 5094332d3Sopenharmony_ci * You may obtain a copy of the License at 6094332d3Sopenharmony_ci * 7094332d3Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8094332d3Sopenharmony_ci * 9094332d3Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10094332d3Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11094332d3Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12094332d3Sopenharmony_ci * See the License for the specific language governing permissions and 13094332d3Sopenharmony_ci * limitations under the License. 14094332d3Sopenharmony_ci */ 15094332d3Sopenharmony_ci 16094332d3Sopenharmony_ci#include <cmath> 17094332d3Sopenharmony_ci#include <cstdio> 18094332d3Sopenharmony_ci#include <gtest/gtest.h> 19094332d3Sopenharmony_ci#include <securec.h> 20094332d3Sopenharmony_ci#include "hdf_base.h" 21094332d3Sopenharmony_ci#include "hdf_log.h" 22094332d3Sopenharmony_ci#include "osal_time.h" 23094332d3Sopenharmony_ci#include "v1_0/ilight_interface.h" 24094332d3Sopenharmony_ci#include "light_type.h" 25094332d3Sopenharmony_ci 26094332d3Sopenharmony_ci#define HDF_LOG_TAG "hdi_unittest_light" 27094332d3Sopenharmony_ci#define TEST_FUNC_IN HDF_LOGI("%{public}s in", testing::UnitTest::GetInstance()->current_test_info()->name()) 28094332d3Sopenharmony_ci 29094332d3Sopenharmony_ciusing namespace OHOS::HDI::Light::V1_0; 30094332d3Sopenharmony_ciusing namespace testing::ext; 31094332d3Sopenharmony_ci 32094332d3Sopenharmony_cinamespace { 33094332d3Sopenharmony_ci constexpr uint32_t g_sleepTime = 3; 34094332d3Sopenharmony_ci constexpr int32_t ON_TIME = 500; 35094332d3Sopenharmony_ci constexpr int32_t OFF_TIME = 100; 36094332d3Sopenharmony_ci std::vector<HdfLightInfo> g_info; 37094332d3Sopenharmony_ci sptr<ILightInterface> g_lightInterface = nullptr; 38094332d3Sopenharmony_ci} 39094332d3Sopenharmony_ci 40094332d3Sopenharmony_ciclass HdiUnitTestLight : public testing::Test { 41094332d3Sopenharmony_cipublic: 42094332d3Sopenharmony_ci static void SetUpTestSuite(); 43094332d3Sopenharmony_ci static void TearDownTestSuite(); 44094332d3Sopenharmony_ci void SetUp(); 45094332d3Sopenharmony_ci void TearDown(); 46094332d3Sopenharmony_ci}; 47094332d3Sopenharmony_ci 48094332d3Sopenharmony_civoid HdiUnitTestLight::SetUpTestSuite() 49094332d3Sopenharmony_ci{ 50094332d3Sopenharmony_ci g_lightInterface = ILightInterface::Get(); 51094332d3Sopenharmony_ci} 52094332d3Sopenharmony_ci 53094332d3Sopenharmony_civoid HdiUnitTestLight::TearDownTestSuite() 54094332d3Sopenharmony_ci{ 55094332d3Sopenharmony_ci} 56094332d3Sopenharmony_ci 57094332d3Sopenharmony_civoid HdiUnitTestLight::SetUp() 58094332d3Sopenharmony_ci{ 59094332d3Sopenharmony_ci} 60094332d3Sopenharmony_ci 61094332d3Sopenharmony_civoid HdiUnitTestLight::TearDown() 62094332d3Sopenharmony_ci{ 63094332d3Sopenharmony_ci} 64094332d3Sopenharmony_ci 65094332d3Sopenharmony_cistatic int32_t IsSupportedLightId(int32_t lightId) 66094332d3Sopenharmony_ci{ 67094332d3Sopenharmony_ci TEST_FUNC_IN; 68094332d3Sopenharmony_ci EXPECT_GT(g_info.size(), 0); 69094332d3Sopenharmony_ci 70094332d3Sopenharmony_ci bool result = std::any_of(g_info.begin(), g_info.end(), 71094332d3Sopenharmony_ci [lightId](const HdfLightInfo &info) {return info.lightId == lightId;}); 72094332d3Sopenharmony_ci if (result) { 73094332d3Sopenharmony_ci return HDF_SUCCESS; 74094332d3Sopenharmony_ci } 75094332d3Sopenharmony_ci 76094332d3Sopenharmony_ci return HDF_ERR_NOT_SUPPORT; 77094332d3Sopenharmony_ci} 78094332d3Sopenharmony_ci 79094332d3Sopenharmony_cistatic void LightTest(int32_t lightId, int32_t lightFlashMode, HdfLightEffect &effect) 80094332d3Sopenharmony_ci{ 81094332d3Sopenharmony_ci TEST_FUNC_IN; 82094332d3Sopenharmony_ci if (lightFlashMode != HDF_LIGHT_FLASH_NONE) { 83094332d3Sopenharmony_ci effect.flashEffect.onTime = ON_TIME; 84094332d3Sopenharmony_ci effect.flashEffect.offTime = OFF_TIME; 85094332d3Sopenharmony_ci } 86094332d3Sopenharmony_ci effect.flashEffect.flashMode = lightFlashMode; 87094332d3Sopenharmony_ci 88094332d3Sopenharmony_ci int32_t ans = IsSupportedLightId(lightId); 89094332d3Sopenharmony_ci int32_t ret = g_lightInterface->TurnOnLight(lightId, effect); 90094332d3Sopenharmony_ci EXPECT_EQ(ans, ret); 91094332d3Sopenharmony_ci 92094332d3Sopenharmony_ci OsalSleep(g_sleepTime); 93094332d3Sopenharmony_ci 94094332d3Sopenharmony_ci ret = g_lightInterface->TurnOffLight(lightId); 95094332d3Sopenharmony_ci EXPECT_EQ(ans, ret); 96094332d3Sopenharmony_ci} 97094332d3Sopenharmony_ci 98094332d3Sopenharmony_ci/** 99094332d3Sopenharmony_ci * @tc.name: CheckLightInstanceIsEmpty 100094332d3Sopenharmony_ci * @tc.desc: Create a light instance. The instance is not empty. 101094332d3Sopenharmony_ci * @tc.type: FUNC 102094332d3Sopenharmony_ci * @tc.require: #IAU5KS 103094332d3Sopenharmony_ci */ 104094332d3Sopenharmony_ciHWTEST_F(HdiUnitTestLight, CheckLightInstanceIsEmpty001, TestSize.Level1) 105094332d3Sopenharmony_ci{ 106094332d3Sopenharmony_ci TEST_FUNC_IN; 107094332d3Sopenharmony_ci ASSERT_NE(nullptr, g_lightInterface); 108094332d3Sopenharmony_ci} 109094332d3Sopenharmony_ci 110094332d3Sopenharmony_ci/** 111094332d3Sopenharmony_ci * @tc.name: GetLightInfo001 112094332d3Sopenharmony_ci * @tc.desc: Get light info. 113094332d3Sopenharmony_ci * @tc.type: FUNC 114094332d3Sopenharmony_ci * @tc.require: #IAU5KS 115094332d3Sopenharmony_ci */ 116094332d3Sopenharmony_ciHWTEST_F(HdiUnitTestLight, GetLightInfo001, TestSize.Level1) 117094332d3Sopenharmony_ci{ 118094332d3Sopenharmony_ci TEST_FUNC_IN; 119094332d3Sopenharmony_ci ASSERT_NE(nullptr, g_lightInterface); 120094332d3Sopenharmony_ci 121094332d3Sopenharmony_ci int32_t ret = g_lightInterface->GetLightInfo(g_info); 122094332d3Sopenharmony_ci EXPECT_EQ(HDF_SUCCESS, ret); 123094332d3Sopenharmony_ci EXPECT_GT(g_info.size(), 0); 124094332d3Sopenharmony_ci 125094332d3Sopenharmony_ci printf("get light list num[%zu]\n\r", g_info.size()); 126094332d3Sopenharmony_ci for (auto iter : g_info) { 127094332d3Sopenharmony_ci printf("lightId[%d], name[%s], number[%d], type[%d]\n\r", iter.lightId, iter.lightName.c_str(), 128094332d3Sopenharmony_ci iter.lightNumber, iter.lightType); 129094332d3Sopenharmony_ci } 130094332d3Sopenharmony_ci} 131094332d3Sopenharmony_ci 132094332d3Sopenharmony_ci/** 133094332d3Sopenharmony_ci * @tc.name: TurnOnLightBatteryAlwaysOnRed001 134094332d3Sopenharmony_ci * @tc.desc: The power indicator is steady red. 135094332d3Sopenharmony_ci * @tc.type: FUNC 136094332d3Sopenharmony_ci * @tc.require: #IAU5KS 137094332d3Sopenharmony_ci */ 138094332d3Sopenharmony_ciHWTEST_F(HdiUnitTestLight, TurnOnLightBatteryAlwaysOnRed001, TestSize.Level1) 139094332d3Sopenharmony_ci{ 140094332d3Sopenharmony_ci TEST_FUNC_IN; 141094332d3Sopenharmony_ci ASSERT_NE(nullptr, g_lightInterface); 142094332d3Sopenharmony_ci 143094332d3Sopenharmony_ci HdfLightEffect effect = { 144094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.r = 255, 145094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.g = 0, 146094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.b = 0, 147094332d3Sopenharmony_ci }; 148094332d3Sopenharmony_ci 149094332d3Sopenharmony_ci LightTest(HDF_LIGHT_ID_BATTERY, HDF_LIGHT_FLASH_NONE, effect); 150094332d3Sopenharmony_ci} 151094332d3Sopenharmony_ci 152094332d3Sopenharmony_ci/** 153094332d3Sopenharmony_ci * @tc.name: TurnOnLightBatteryAlwaysOnGreen001 154094332d3Sopenharmony_ci * @tc.desc: The power indicator is steady green. 155094332d3Sopenharmony_ci * @tc.type: FUNC 156094332d3Sopenharmony_ci * @tc.require: #IAU5KS 157094332d3Sopenharmony_ci */ 158094332d3Sopenharmony_ciHWTEST_F(HdiUnitTestLight, TurnOnLightBatteryAlwaysOnGreen001, TestSize.Level1) 159094332d3Sopenharmony_ci{ 160094332d3Sopenharmony_ci TEST_FUNC_IN; 161094332d3Sopenharmony_ci ASSERT_NE(nullptr, g_lightInterface); 162094332d3Sopenharmony_ci 163094332d3Sopenharmony_ci HdfLightEffect effect = { 164094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.r = 0, 165094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.g = 255, 166094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.b = 0, 167094332d3Sopenharmony_ci }; 168094332d3Sopenharmony_ci 169094332d3Sopenharmony_ci LightTest(HDF_LIGHT_ID_BATTERY, HDF_LIGHT_FLASH_NONE, effect); 170094332d3Sopenharmony_ci} 171094332d3Sopenharmony_ci 172094332d3Sopenharmony_ci/** 173094332d3Sopenharmony_ci * @tc.name: TurnOnLightBatteryAlwaysOnBlue001 174094332d3Sopenharmony_ci * @tc.desc: The power indicator is steady blue. 175094332d3Sopenharmony_ci * @tc.type: FUNC 176094332d3Sopenharmony_ci * @tc.require: #IAU5KS 177094332d3Sopenharmony_ci */ 178094332d3Sopenharmony_ciHWTEST_F(HdiUnitTestLight, TurnOnLightBatteryAlwaysOnBlue001, TestSize.Level1) 179094332d3Sopenharmony_ci{ 180094332d3Sopenharmony_ci TEST_FUNC_IN; 181094332d3Sopenharmony_ci ASSERT_NE(nullptr, g_lightInterface); 182094332d3Sopenharmony_ci 183094332d3Sopenharmony_ci HdfLightEffect effect = { 184094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.r = 0, 185094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.g = 0, 186094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.b = 255, 187094332d3Sopenharmony_ci }; 188094332d3Sopenharmony_ci 189094332d3Sopenharmony_ci LightTest(HDF_LIGHT_ID_BATTERY, HDF_LIGHT_FLASH_NONE, effect); 190094332d3Sopenharmony_ci} 191094332d3Sopenharmony_ci 192094332d3Sopenharmony_ci/** 193094332d3Sopenharmony_ci * @tc.name: TurnOnLightBatteryAlwaysOnWhite001 194094332d3Sopenharmony_ci * @tc.desc: The power indicator is steady white. 195094332d3Sopenharmony_ci * @tc.type: FUNC 196094332d3Sopenharmony_ci * @tc.require: #IAU5KS 197094332d3Sopenharmony_ci */ 198094332d3Sopenharmony_ciHWTEST_F(HdiUnitTestLight, TurnOnLightBatteryAlwaysOnWhite001, TestSize.Level1) 199094332d3Sopenharmony_ci{ 200094332d3Sopenharmony_ci TEST_FUNC_IN; 201094332d3Sopenharmony_ci ASSERT_NE(nullptr, g_lightInterface); 202094332d3Sopenharmony_ci 203094332d3Sopenharmony_ci HdfLightEffect effect = { 204094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.r = 255, 205094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.g = 255, 206094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.b = 255, 207094332d3Sopenharmony_ci }; 208094332d3Sopenharmony_ci 209094332d3Sopenharmony_ci LightTest(HDF_LIGHT_ID_BATTERY, HDF_LIGHT_FLASH_NONE, effect); 210094332d3Sopenharmony_ci} 211094332d3Sopenharmony_ci 212094332d3Sopenharmony_ci/** 213094332d3Sopenharmony_ci * @tc.name: TurnOnLightBatteryBlinkRed001 214094332d3Sopenharmony_ci * @tc.desc: The power indicator is blinking red. 215094332d3Sopenharmony_ci * @tc.type: FUNC 216094332d3Sopenharmony_ci * @tc.require: #IAU5KS 217094332d3Sopenharmony_ci */ 218094332d3Sopenharmony_ciHWTEST_F(HdiUnitTestLight, TurnOnLightBatteryBlinkRed001, TestSize.Level1) 219094332d3Sopenharmony_ci{ 220094332d3Sopenharmony_ci TEST_FUNC_IN; 221094332d3Sopenharmony_ci ASSERT_NE(nullptr, g_lightInterface); 222094332d3Sopenharmony_ci 223094332d3Sopenharmony_ci HdfLightEffect effect = { 224094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.r = 255, 225094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.g = 0, 226094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.b = 0, 227094332d3Sopenharmony_ci }; 228094332d3Sopenharmony_ci 229094332d3Sopenharmony_ci LightTest(HDF_LIGHT_ID_BATTERY, HDF_LIGHT_FLASH_BLINK, effect); 230094332d3Sopenharmony_ci} 231094332d3Sopenharmony_ci 232094332d3Sopenharmony_ci/** 233094332d3Sopenharmony_ci * @tc.name: TurnOnLightBatteryBlinkGreen001 234094332d3Sopenharmony_ci * @tc.desc: The power indicator is blinking green. 235094332d3Sopenharmony_ci * @tc.type: FUNC 236094332d3Sopenharmony_ci * @tc.require: #IAU5KS 237094332d3Sopenharmony_ci */ 238094332d3Sopenharmony_ciHWTEST_F(HdiUnitTestLight, TurnOnLightBatteryBlinkGreen001, TestSize.Level1) 239094332d3Sopenharmony_ci{ 240094332d3Sopenharmony_ci TEST_FUNC_IN; 241094332d3Sopenharmony_ci ASSERT_NE(nullptr, g_lightInterface); 242094332d3Sopenharmony_ci 243094332d3Sopenharmony_ci HdfLightEffect effect = { 244094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.r = 0, 245094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.g = 255, 246094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.b = 0, 247094332d3Sopenharmony_ci }; 248094332d3Sopenharmony_ci 249094332d3Sopenharmony_ci LightTest(HDF_LIGHT_ID_BATTERY, HDF_LIGHT_FLASH_BLINK, effect); 250094332d3Sopenharmony_ci} 251094332d3Sopenharmony_ci 252094332d3Sopenharmony_ci/** 253094332d3Sopenharmony_ci * @tc.name: TurnOnLightBatteryBlinkBlue001 254094332d3Sopenharmony_ci * @tc.desc: The power indicator is blinking blue. 255094332d3Sopenharmony_ci * @tc.type: FUNC 256094332d3Sopenharmony_ci * @tc.require: #IAU5KS 257094332d3Sopenharmony_ci */ 258094332d3Sopenharmony_ciHWTEST_F(HdiUnitTestLight, TurnOnLightBatteryBlinkBlue001, TestSize.Level1) 259094332d3Sopenharmony_ci{ 260094332d3Sopenharmony_ci HDF_LOGI("%{public}s in", testing::UnitTest::GetInstance()->current_test_info()->name()); 261094332d3Sopenharmony_ci ASSERT_NE(nullptr, g_lightInterface); 262094332d3Sopenharmony_ci 263094332d3Sopenharmony_ci HdfLightEffect effect = { 264094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.r = 0, 265094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.g = 0, 266094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.b = 255, 267094332d3Sopenharmony_ci }; 268094332d3Sopenharmony_ci 269094332d3Sopenharmony_ci LightTest(HDF_LIGHT_ID_BATTERY, HDF_LIGHT_FLASH_BLINK, effect); 270094332d3Sopenharmony_ci} 271094332d3Sopenharmony_ci 272094332d3Sopenharmony_ci/** 273094332d3Sopenharmony_ci * @tc.name: TurnOnLightBatteryBlinkWhite001 274094332d3Sopenharmony_ci * @tc.desc: The power indicator is blinking white. 275094332d3Sopenharmony_ci * @tc.type: FUNC 276094332d3Sopenharmony_ci * @tc.require: #IAU5KS 277094332d3Sopenharmony_ci */ 278094332d3Sopenharmony_ciHWTEST_F(HdiUnitTestLight, TurnOnLightBatteryBlinkWhite001, TestSize.Level1) 279094332d3Sopenharmony_ci{ 280094332d3Sopenharmony_ci TEST_FUNC_IN; 281094332d3Sopenharmony_ci ASSERT_NE(nullptr, g_lightInterface); 282094332d3Sopenharmony_ci 283094332d3Sopenharmony_ci HdfLightEffect effect = { 284094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.r = 255, 285094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.g = 255, 286094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.b = 255, 287094332d3Sopenharmony_ci }; 288094332d3Sopenharmony_ci 289094332d3Sopenharmony_ci LightTest(HDF_LIGHT_ID_BATTERY, HDF_LIGHT_FLASH_BLINK, effect); 290094332d3Sopenharmony_ci} 291094332d3Sopenharmony_ci 292094332d3Sopenharmony_ci/** 293094332d3Sopenharmony_ci * @tc.name: TurnOnLightBatteryGradientRed001 294094332d3Sopenharmony_ci * @tc.desc: The power indicator red light gradients. 295094332d3Sopenharmony_ci * @tc.type: FUNC 296094332d3Sopenharmony_ci * @tc.require: #IAU5KS 297094332d3Sopenharmony_ci */ 298094332d3Sopenharmony_ciHWTEST_F(HdiUnitTestLight, TurnOnLightBatteryGradientRed001, TestSize.Level1) 299094332d3Sopenharmony_ci{ 300094332d3Sopenharmony_ci TEST_FUNC_IN; 301094332d3Sopenharmony_ci ASSERT_NE(nullptr, g_lightInterface); 302094332d3Sopenharmony_ci 303094332d3Sopenharmony_ci HdfLightEffect effect = { 304094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.r = 255, 305094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.g = 0, 306094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.b = 0, 307094332d3Sopenharmony_ci }; 308094332d3Sopenharmony_ci 309094332d3Sopenharmony_ci LightTest(HDF_LIGHT_ID_BATTERY, HDF_LIGHT_FLASH_GRADIENT, effect); 310094332d3Sopenharmony_ci} 311094332d3Sopenharmony_ci 312094332d3Sopenharmony_ci/** 313094332d3Sopenharmony_ci * @tc.name: TurnOnLightBatteryGradientGreen001 314094332d3Sopenharmony_ci * @tc.desc: The power indicator green light gradients. 315094332d3Sopenharmony_ci * @tc.type: FUNC 316094332d3Sopenharmony_ci * @tc.require: #IAU5KS 317094332d3Sopenharmony_ci */ 318094332d3Sopenharmony_ciHWTEST_F(HdiUnitTestLight, TurnOnLightBatteryGradientGreen001, TestSize.Level1) 319094332d3Sopenharmony_ci{ 320094332d3Sopenharmony_ci TEST_FUNC_IN; 321094332d3Sopenharmony_ci ASSERT_NE(nullptr, g_lightInterface); 322094332d3Sopenharmony_ci 323094332d3Sopenharmony_ci HdfLightEffect effect = { 324094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.r = 0, 325094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.g = 255, 326094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.b = 0, 327094332d3Sopenharmony_ci }; 328094332d3Sopenharmony_ci 329094332d3Sopenharmony_ci LightTest(HDF_LIGHT_ID_BATTERY, HDF_LIGHT_FLASH_GRADIENT, effect); 330094332d3Sopenharmony_ci} 331094332d3Sopenharmony_ci 332094332d3Sopenharmony_ci/** 333094332d3Sopenharmony_ci * @tc.name: TurnOnLightBatteryGradientBlue001 334094332d3Sopenharmony_ci * @tc.desc: The power indicator blue light gradients. 335094332d3Sopenharmony_ci * @tc.type: FUNC 336094332d3Sopenharmony_ci * @tc.require: #IAU5KS 337094332d3Sopenharmony_ci */ 338094332d3Sopenharmony_ciHWTEST_F(HdiUnitTestLight, TurnOnLightBatteryGradientBlue001, TestSize.Level1) 339094332d3Sopenharmony_ci{ 340094332d3Sopenharmony_ci TEST_FUNC_IN; 341094332d3Sopenharmony_ci ASSERT_NE(nullptr, g_lightInterface); 342094332d3Sopenharmony_ci 343094332d3Sopenharmony_ci HdfLightEffect effect = { 344094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.r = 0, 345094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.g = 0, 346094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.b = 255, 347094332d3Sopenharmony_ci }; 348094332d3Sopenharmony_ci 349094332d3Sopenharmony_ci LightTest(HDF_LIGHT_ID_BATTERY, HDF_LIGHT_FLASH_GRADIENT, effect); 350094332d3Sopenharmony_ci} 351094332d3Sopenharmony_ci 352094332d3Sopenharmony_ci/** 353094332d3Sopenharmony_ci * @tc.name: TurnOnLightBatteryGradientWhite001 354094332d3Sopenharmony_ci * @tc.desc: The power indicator white light gradients. 355094332d3Sopenharmony_ci * @tc.type: FUNC 356094332d3Sopenharmony_ci * @tc.require: #IAU5KS 357094332d3Sopenharmony_ci */ 358094332d3Sopenharmony_ciHWTEST_F(HdiUnitTestLight, TurnOnLightBatteryGradientWhite001, TestSize.Level1) 359094332d3Sopenharmony_ci{ 360094332d3Sopenharmony_ci TEST_FUNC_IN; 361094332d3Sopenharmony_ci ASSERT_NE(nullptr, g_lightInterface); 362094332d3Sopenharmony_ci 363094332d3Sopenharmony_ci HdfLightEffect effect = { 364094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.r = 255, 365094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.g = 255, 366094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.b = 255, 367094332d3Sopenharmony_ci }; 368094332d3Sopenharmony_ci 369094332d3Sopenharmony_ci LightTest(HDF_LIGHT_ID_BATTERY, HDF_LIGHT_FLASH_GRADIENT, effect); 370094332d3Sopenharmony_ci} 371094332d3Sopenharmony_ci 372094332d3Sopenharmony_ci/** 373094332d3Sopenharmony_ci * @tc.name: TurnOnLightNotificationsAlwaysOnRed001 374094332d3Sopenharmony_ci * @tc.desc: The notification light is steady red. 375094332d3Sopenharmony_ci * @tc.type: FUNC 376094332d3Sopenharmony_ci * @tc.require: #IAU5KS 377094332d3Sopenharmony_ci */ 378094332d3Sopenharmony_ciHWTEST_F(HdiUnitTestLight, TurnOnLightNotificationsAlwaysOnRed001, TestSize.Level1) 379094332d3Sopenharmony_ci{ 380094332d3Sopenharmony_ci TEST_FUNC_IN; 381094332d3Sopenharmony_ci ASSERT_NE(nullptr, g_lightInterface); 382094332d3Sopenharmony_ci 383094332d3Sopenharmony_ci HdfLightEffect effect = { 384094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.r = 255, 385094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.g = 0, 386094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.b = 0, 387094332d3Sopenharmony_ci }; 388094332d3Sopenharmony_ci 389094332d3Sopenharmony_ci LightTest(HDF_LIGHT_ID_NOTIFICATIONS, HDF_LIGHT_FLASH_NONE, effect); 390094332d3Sopenharmony_ci} 391094332d3Sopenharmony_ci 392094332d3Sopenharmony_ci/** 393094332d3Sopenharmony_ci * @tc.name: TurnOnLightNotificationsAlwaysOnGreen001 394094332d3Sopenharmony_ci * @tc.desc: The notification light is steady green. 395094332d3Sopenharmony_ci * @tc.type: FUNC 396094332d3Sopenharmony_ci * @tc.require: #IAU5KS 397094332d3Sopenharmony_ci */ 398094332d3Sopenharmony_ciHWTEST_F(HdiUnitTestLight, TurnOnLightNotificationsAlwaysOnGreen001, TestSize.Level1) 399094332d3Sopenharmony_ci{ 400094332d3Sopenharmony_ci TEST_FUNC_IN; 401094332d3Sopenharmony_ci ASSERT_NE(nullptr, g_lightInterface); 402094332d3Sopenharmony_ci 403094332d3Sopenharmony_ci HdfLightEffect effect = { 404094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.r = 0, 405094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.g = 255, 406094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.b = 0, 407094332d3Sopenharmony_ci }; 408094332d3Sopenharmony_ci 409094332d3Sopenharmony_ci LightTest(HDF_LIGHT_ID_NOTIFICATIONS, HDF_LIGHT_FLASH_NONE, effect); 410094332d3Sopenharmony_ci} 411094332d3Sopenharmony_ci 412094332d3Sopenharmony_ci/** 413094332d3Sopenharmony_ci * @tc.name: TurnOnLightNotificationsAlwaysOnBlue001 414094332d3Sopenharmony_ci * @tc.desc: The notification light is steady blue. 415094332d3Sopenharmony_ci * @tc.type: FUNC 416094332d3Sopenharmony_ci * @tc.require: #IAU5KS 417094332d3Sopenharmony_ci */ 418094332d3Sopenharmony_ciHWTEST_F(HdiUnitTestLight, TurnOnLightNotificationsAlwaysOnBlue001, TestSize.Level1) 419094332d3Sopenharmony_ci{ 420094332d3Sopenharmony_ci TEST_FUNC_IN; 421094332d3Sopenharmony_ci ASSERT_NE(nullptr, g_lightInterface); 422094332d3Sopenharmony_ci 423094332d3Sopenharmony_ci HdfLightEffect effect = { 424094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.r = 0, 425094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.g = 0, 426094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.b = 255, 427094332d3Sopenharmony_ci }; 428094332d3Sopenharmony_ci 429094332d3Sopenharmony_ci LightTest(HDF_LIGHT_ID_NOTIFICATIONS, HDF_LIGHT_FLASH_NONE, effect); 430094332d3Sopenharmony_ci} 431094332d3Sopenharmony_ci 432094332d3Sopenharmony_ci/** 433094332d3Sopenharmony_ci * @tc.name: TurnOnLightNotificationsAlwaysOnWhite001 434094332d3Sopenharmony_ci * @tc.desc: The notification light is steady white. 435094332d3Sopenharmony_ci * @tc.type: FUNC 436094332d3Sopenharmony_ci * @tc.require: #IAU5KS 437094332d3Sopenharmony_ci */ 438094332d3Sopenharmony_ciHWTEST_F(HdiUnitTestLight, TurnOnLightNotificationsAlwaysOnWhite001, TestSize.Level1) 439094332d3Sopenharmony_ci{ 440094332d3Sopenharmony_ci TEST_FUNC_IN; 441094332d3Sopenharmony_ci ASSERT_NE(nullptr, g_lightInterface); 442094332d3Sopenharmony_ci 443094332d3Sopenharmony_ci HdfLightEffect effect = { 444094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.r = 255, 445094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.g = 255, 446094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.b = 255, 447094332d3Sopenharmony_ci }; 448094332d3Sopenharmony_ci 449094332d3Sopenharmony_ci LightTest(HDF_LIGHT_ID_NOTIFICATIONS, HDF_LIGHT_FLASH_NONE, effect); 450094332d3Sopenharmony_ci} 451094332d3Sopenharmony_ci 452094332d3Sopenharmony_ci/** 453094332d3Sopenharmony_ci * @tc.name: TurnOnLightNotificationsBlinkRed001 454094332d3Sopenharmony_ci * @tc.desc: Notification light blinking red. 455094332d3Sopenharmony_ci * @tc.type: FUNC 456094332d3Sopenharmony_ci * @tc.require: #IAU5KS 457094332d3Sopenharmony_ci */ 458094332d3Sopenharmony_ciHWTEST_F(HdiUnitTestLight, TurnOnLightNotificationsBlinkRed001, TestSize.Level1) 459094332d3Sopenharmony_ci{ 460094332d3Sopenharmony_ci TEST_FUNC_IN; 461094332d3Sopenharmony_ci ASSERT_NE(nullptr, g_lightInterface); 462094332d3Sopenharmony_ci 463094332d3Sopenharmony_ci HdfLightEffect effect = { 464094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.r = 255, 465094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.g = 0, 466094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.b = 0, 467094332d3Sopenharmony_ci }; 468094332d3Sopenharmony_ci 469094332d3Sopenharmony_ci LightTest(HDF_LIGHT_ID_NOTIFICATIONS, HDF_LIGHT_FLASH_BLINK, effect); 470094332d3Sopenharmony_ci} 471094332d3Sopenharmony_ci 472094332d3Sopenharmony_ci/** 473094332d3Sopenharmony_ci * @tc.name: TurnOnLightNotificationsBlinkGreen001 474094332d3Sopenharmony_ci * @tc.desc: Notification light blinking green. 475094332d3Sopenharmony_ci * @tc.type: FUNC 476094332d3Sopenharmony_ci * @tc.require: #IAU5KS 477094332d3Sopenharmony_ci */ 478094332d3Sopenharmony_ciHWTEST_F(HdiUnitTestLight, TurnOnLightNotificationsBlinkGreen001, TestSize.Level1) 479094332d3Sopenharmony_ci{ 480094332d3Sopenharmony_ci TEST_FUNC_IN; 481094332d3Sopenharmony_ci ASSERT_NE(nullptr, g_lightInterface); 482094332d3Sopenharmony_ci 483094332d3Sopenharmony_ci HdfLightEffect effect = { 484094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.r = 0, 485094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.g = 255, 486094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.b = 0, 487094332d3Sopenharmony_ci }; 488094332d3Sopenharmony_ci 489094332d3Sopenharmony_ci LightTest(HDF_LIGHT_ID_NOTIFICATIONS, HDF_LIGHT_FLASH_BLINK, effect); 490094332d3Sopenharmony_ci} 491094332d3Sopenharmony_ci 492094332d3Sopenharmony_ci/** 493094332d3Sopenharmony_ci * @tc.name: TurnOnLightNotificationsBlinkBlue001 494094332d3Sopenharmony_ci * @tc.desc: Notification light blinking blue. 495094332d3Sopenharmony_ci * @tc.type: FUNC 496094332d3Sopenharmony_ci * @tc.require: #IAU5KS 497094332d3Sopenharmony_ci */ 498094332d3Sopenharmony_ciHWTEST_F(HdiUnitTestLight, TurnOnLightNotificationsBlinkBlue001, TestSize.Level1) 499094332d3Sopenharmony_ci{ 500094332d3Sopenharmony_ci TEST_FUNC_IN; 501094332d3Sopenharmony_ci ASSERT_NE(nullptr, g_lightInterface); 502094332d3Sopenharmony_ci 503094332d3Sopenharmony_ci HdfLightEffect effect = { 504094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.r = 0, 505094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.g = 0, 506094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.b = 255, 507094332d3Sopenharmony_ci }; 508094332d3Sopenharmony_ci 509094332d3Sopenharmony_ci LightTest(HDF_LIGHT_ID_NOTIFICATIONS, HDF_LIGHT_FLASH_BLINK, effect); 510094332d3Sopenharmony_ci} 511094332d3Sopenharmony_ci 512094332d3Sopenharmony_ci/** 513094332d3Sopenharmony_ci * @tc.name: TurnOnLightNotificationsBlinkWhite001 514094332d3Sopenharmony_ci * @tc.desc: Notification light blinking white. 515094332d3Sopenharmony_ci * @tc.type: FUNC 516094332d3Sopenharmony_ci * @tc.require: #IAU5KS 517094332d3Sopenharmony_ci */ 518094332d3Sopenharmony_ciHWTEST_F(HdiUnitTestLight, TurnOnLightNotificationsBlinkWhite001, TestSize.Level1) 519094332d3Sopenharmony_ci{ 520094332d3Sopenharmony_ci TEST_FUNC_IN; 521094332d3Sopenharmony_ci ASSERT_NE(nullptr, g_lightInterface); 522094332d3Sopenharmony_ci 523094332d3Sopenharmony_ci HdfLightEffect effect = { 524094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.r = 255, 525094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.g = 255, 526094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.b = 255, 527094332d3Sopenharmony_ci }; 528094332d3Sopenharmony_ci 529094332d3Sopenharmony_ci LightTest(HDF_LIGHT_ID_NOTIFICATIONS, HDF_LIGHT_FLASH_BLINK, effect); 530094332d3Sopenharmony_ci} 531094332d3Sopenharmony_ci 532094332d3Sopenharmony_ci/** 533094332d3Sopenharmony_ci * @tc.name: TurnOnLightNotificationsGradientRed001 534094332d3Sopenharmony_ci * @tc.desc: Notification light gradient red. 535094332d3Sopenharmony_ci * @tc.type: FUNC 536094332d3Sopenharmony_ci * @tc.require: #IAU5KS 537094332d3Sopenharmony_ci */ 538094332d3Sopenharmony_ciHWTEST_F(HdiUnitTestLight, TurnOnLightNotificationsGradientRed001, TestSize.Level1) 539094332d3Sopenharmony_ci{ 540094332d3Sopenharmony_ci TEST_FUNC_IN; 541094332d3Sopenharmony_ci ASSERT_NE(nullptr, g_lightInterface); 542094332d3Sopenharmony_ci 543094332d3Sopenharmony_ci HdfLightEffect effect = { 544094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.r = 255, 545094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.g = 0, 546094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.b = 0, 547094332d3Sopenharmony_ci }; 548094332d3Sopenharmony_ci 549094332d3Sopenharmony_ci LightTest(HDF_LIGHT_ID_NOTIFICATIONS, HDF_LIGHT_FLASH_GRADIENT, effect); 550094332d3Sopenharmony_ci} 551094332d3Sopenharmony_ci 552094332d3Sopenharmony_ci/** 553094332d3Sopenharmony_ci * @tc.name: TurnOnLightNotificationsGradientGreen001 554094332d3Sopenharmony_ci * @tc.desc: Notification light gradient green. 555094332d3Sopenharmony_ci * @tc.type: FUNC 556094332d3Sopenharmony_ci * @tc.require: #IAU5KS 557094332d3Sopenharmony_ci */ 558094332d3Sopenharmony_ciHWTEST_F(HdiUnitTestLight, TurnOnLightNotificationsGradientGreen001, TestSize.Level1) 559094332d3Sopenharmony_ci{ 560094332d3Sopenharmony_ci TEST_FUNC_IN; 561094332d3Sopenharmony_ci ASSERT_NE(nullptr, g_lightInterface); 562094332d3Sopenharmony_ci 563094332d3Sopenharmony_ci HdfLightEffect effect = { 564094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.r = 0, 565094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.g = 255, 566094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.b = 0, 567094332d3Sopenharmony_ci }; 568094332d3Sopenharmony_ci 569094332d3Sopenharmony_ci LightTest(HDF_LIGHT_ID_NOTIFICATIONS, HDF_LIGHT_FLASH_GRADIENT, effect); 570094332d3Sopenharmony_ci} 571094332d3Sopenharmony_ci 572094332d3Sopenharmony_ci/** 573094332d3Sopenharmony_ci * @tc.name: TurnOnLightNotificationsGradientBlue001 574094332d3Sopenharmony_ci * @tc.desc: Notification light gradient blue. 575094332d3Sopenharmony_ci * @tc.type: FUNC 576094332d3Sopenharmony_ci * @tc.require: #IAU5KS 577094332d3Sopenharmony_ci */ 578094332d3Sopenharmony_ciHWTEST_F(HdiUnitTestLight, TurnOnLightNotificationsGradientBlue001, TestSize.Level1) 579094332d3Sopenharmony_ci{ 580094332d3Sopenharmony_ci TEST_FUNC_IN; 581094332d3Sopenharmony_ci ASSERT_NE(nullptr, g_lightInterface); 582094332d3Sopenharmony_ci 583094332d3Sopenharmony_ci HdfLightEffect effect = { 584094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.r = 0, 585094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.g = 0, 586094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.b = 255, 587094332d3Sopenharmony_ci }; 588094332d3Sopenharmony_ci 589094332d3Sopenharmony_ci LightTest(HDF_LIGHT_ID_NOTIFICATIONS, HDF_LIGHT_FLASH_GRADIENT, effect); 590094332d3Sopenharmony_ci} 591094332d3Sopenharmony_ci 592094332d3Sopenharmony_ci/** 593094332d3Sopenharmony_ci * @tc.name: TurnOnLightNotificationsGradientWhite001 594094332d3Sopenharmony_ci * @tc.desc: Notification light gradient white. 595094332d3Sopenharmony_ci * @tc.type: FUNC 596094332d3Sopenharmony_ci * @tc.require: #IAU5KS 597094332d3Sopenharmony_ci */ 598094332d3Sopenharmony_ciHWTEST_F(HdiUnitTestLight, TurnOnLightNotificationsGradientWhite001, TestSize.Level1) 599094332d3Sopenharmony_ci{ 600094332d3Sopenharmony_ci TEST_FUNC_IN; 601094332d3Sopenharmony_ci ASSERT_NE(nullptr, g_lightInterface); 602094332d3Sopenharmony_ci 603094332d3Sopenharmony_ci HdfLightEffect effect = { 604094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.r = 255, 605094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.g = 255, 606094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.b = 255, 607094332d3Sopenharmony_ci }; 608094332d3Sopenharmony_ci 609094332d3Sopenharmony_ci LightTest(HDF_LIGHT_ID_NOTIFICATIONS, HDF_LIGHT_FLASH_GRADIENT, effect); 610094332d3Sopenharmony_ci} 611094332d3Sopenharmony_ci 612094332d3Sopenharmony_ci/** 613094332d3Sopenharmony_ci * @tc.name: TurnOnLightAttention001 614094332d3Sopenharmony_ci * @tc.desc: The reserved indicator is not supported currently. 615094332d3Sopenharmony_ci * @tc.type: FUNC 616094332d3Sopenharmony_ci * @tc.require: #IAU5KS 617094332d3Sopenharmony_ci */ 618094332d3Sopenharmony_ciHWTEST_F(HdiUnitTestLight, TurnOnLightAttention001, TestSize.Level1) 619094332d3Sopenharmony_ci{ 620094332d3Sopenharmony_ci TEST_FUNC_IN; 621094332d3Sopenharmony_ci ASSERT_NE(nullptr, g_lightInterface); 622094332d3Sopenharmony_ci 623094332d3Sopenharmony_ci HdfLightEffect effect = { 624094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.r = 255, 625094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.g = 0, 626094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.b = 0, 627094332d3Sopenharmony_ci }; 628094332d3Sopenharmony_ci 629094332d3Sopenharmony_ci LightTest(HDF_LIGHT_ID_ATTENTION, HDF_LIGHT_FLASH_NONE, effect); 630094332d3Sopenharmony_ci} 631094332d3Sopenharmony_ci 632094332d3Sopenharmony_ci/** 633094332d3Sopenharmony_ci * @tc.name: TurnOnMultiLights001 634094332d3Sopenharmony_ci * @tc.desc: Turn on multiple lights. 635094332d3Sopenharmony_ci * @tc.type: FUNC 636094332d3Sopenharmony_ci * @tc.require: #IAU5KS 637094332d3Sopenharmony_ci */ 638094332d3Sopenharmony_ciHWTEST_F(HdiUnitTestLight, TurnOnMultiLights001, TestSize.Level1) 639094332d3Sopenharmony_ci{ 640094332d3Sopenharmony_ci TEST_FUNC_IN; 641094332d3Sopenharmony_ci ASSERT_NE(nullptr, g_lightInterface); 642094332d3Sopenharmony_ci 643094332d3Sopenharmony_ci int32_t lightId = HDF_LIGHT_ID_NOTIFICATIONS; 644094332d3Sopenharmony_ci struct HdfLightColor color = { 645094332d3Sopenharmony_ci .colorValue.rgbColor.r = 255, 646094332d3Sopenharmony_ci .colorValue.rgbColor.g = 255, 647094332d3Sopenharmony_ci .colorValue.rgbColor.b = 255, 648094332d3Sopenharmony_ci }; 649094332d3Sopenharmony_ci std::vector<HdfLightColor> lightColor; 650094332d3Sopenharmony_ci lightColor.push_back(color); 651094332d3Sopenharmony_ci 652094332d3Sopenharmony_ci int32_t ret = IsSupportedLightId(lightId); 653094332d3Sopenharmony_ci EXPECT_EQ(HDF_SUCCESS, ret); 654094332d3Sopenharmony_ci 655094332d3Sopenharmony_ci ret = g_lightInterface->TurnOnMultiLights(lightId, lightColor); 656094332d3Sopenharmony_ci EXPECT_EQ(HDF_SUCCESS, ret); 657094332d3Sopenharmony_ci 658094332d3Sopenharmony_ci OsalSleep(g_sleepTime); 659094332d3Sopenharmony_ci 660094332d3Sopenharmony_ci ret = g_lightInterface->TurnOffLight(lightId); 661094332d3Sopenharmony_ci EXPECT_EQ(HDF_SUCCESS, ret); 662094332d3Sopenharmony_ci} 663094332d3Sopenharmony_ci 664094332d3Sopenharmony_ci/** 665094332d3Sopenharmony_ci * @tc.name: TurnOnMultiLights002 666094332d3Sopenharmony_ci * @tc.desc: Turn on multiple lights. 667094332d3Sopenharmony_ci * @tc.type: FUNC 668094332d3Sopenharmony_ci * @tc.require: #IAU5KS 669094332d3Sopenharmony_ci */ 670094332d3Sopenharmony_ciHWTEST_F(HdiUnitTestLight, TurnOnMultiLights002, TestSize.Level1) 671094332d3Sopenharmony_ci{ 672094332d3Sopenharmony_ci TEST_FUNC_IN; 673094332d3Sopenharmony_ci ASSERT_NE(nullptr, g_lightInterface); 674094332d3Sopenharmony_ci 675094332d3Sopenharmony_ci int32_t lightId = HDF_LIGHT_ID_BATTERY; 676094332d3Sopenharmony_ci struct HdfLightColor color1 = { 677094332d3Sopenharmony_ci .colorValue.rgbColor.r = 255, 678094332d3Sopenharmony_ci .colorValue.rgbColor.g = 255, 679094332d3Sopenharmony_ci .colorValue.rgbColor.b = 255, 680094332d3Sopenharmony_ci }; 681094332d3Sopenharmony_ci struct HdfLightColor color2 = { 682094332d3Sopenharmony_ci .colorValue.rgbColor.r = 255, 683094332d3Sopenharmony_ci .colorValue.rgbColor.g = 255, 684094332d3Sopenharmony_ci .colorValue.rgbColor.b = 0, 685094332d3Sopenharmony_ci }; 686094332d3Sopenharmony_ci std::vector<HdfLightColor> lightColor; 687094332d3Sopenharmony_ci lightColor.push_back(color1); 688094332d3Sopenharmony_ci lightColor.push_back(color2); 689094332d3Sopenharmony_ci 690094332d3Sopenharmony_ci int32_t ret = IsSupportedLightId(lightId); 691094332d3Sopenharmony_ci EXPECT_EQ(HDF_SUCCESS, ret); 692094332d3Sopenharmony_ci 693094332d3Sopenharmony_ci ret = g_lightInterface->TurnOnMultiLights(lightId, lightColor); 694094332d3Sopenharmony_ci EXPECT_EQ(HDF_ERR_INVALID_PARAM, ret); 695094332d3Sopenharmony_ci 696094332d3Sopenharmony_ci OsalSleep(g_sleepTime); 697094332d3Sopenharmony_ci 698094332d3Sopenharmony_ci ret = g_lightInterface->TurnOffLight(lightId); 699094332d3Sopenharmony_ci EXPECT_EQ(HDF_SUCCESS, ret); 700094332d3Sopenharmony_ci} 701094332d3Sopenharmony_ci 702094332d3Sopenharmony_ci/** 703094332d3Sopenharmony_ci * @tc.name: TurnOnLightBlinkException001 704094332d3Sopenharmony_ci * @tc.desc: The ontime setting is abnormal in blinking mode. 705094332d3Sopenharmony_ci * @tc.type: FUNC 706094332d3Sopenharmony_ci * @tc.require: #IAU5KS 707094332d3Sopenharmony_ci */ 708094332d3Sopenharmony_ciHWTEST_F(HdiUnitTestLight, TurnOnLightBlinkException001, TestSize.Level1) 709094332d3Sopenharmony_ci{ 710094332d3Sopenharmony_ci TEST_FUNC_IN; 711094332d3Sopenharmony_ci ASSERT_NE(nullptr, g_lightInterface); 712094332d3Sopenharmony_ci 713094332d3Sopenharmony_ci int32_t lightId = HDF_LIGHT_ID_NOTIFICATIONS; 714094332d3Sopenharmony_ci HdfLightEffect effect = { 715094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.r = 255, 716094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.g = 255, 717094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.b = 255, 718094332d3Sopenharmony_ci .flashEffect.onTime = -1, 719094332d3Sopenharmony_ci .flashEffect.offTime = OFF_TIME, 720094332d3Sopenharmony_ci .flashEffect.flashMode = HDF_LIGHT_FLASH_BLINK, 721094332d3Sopenharmony_ci }; 722094332d3Sopenharmony_ci 723094332d3Sopenharmony_ci int32_t ret = IsSupportedLightId(lightId); 724094332d3Sopenharmony_ci EXPECT_EQ(HDF_SUCCESS, ret); 725094332d3Sopenharmony_ci 726094332d3Sopenharmony_ci ret = g_lightInterface->TurnOnLight(lightId, effect); 727094332d3Sopenharmony_ci EXPECT_EQ(HDF_ERR_INVALID_PARAM, ret); 728094332d3Sopenharmony_ci 729094332d3Sopenharmony_ci OsalSleep(g_sleepTime); 730094332d3Sopenharmony_ci 731094332d3Sopenharmony_ci ret = g_lightInterface->TurnOffLight(lightId); 732094332d3Sopenharmony_ci EXPECT_EQ(HDF_SUCCESS, ret); 733094332d3Sopenharmony_ci} 734094332d3Sopenharmony_ci 735094332d3Sopenharmony_ci/** 736094332d3Sopenharmony_ci * @tc.name: TurnOnLightBlinkException002 737094332d3Sopenharmony_ci * @tc.desc: The offtime setting is abnormal in blinking mode. 738094332d3Sopenharmony_ci * @tc.type: FUNC 739094332d3Sopenharmony_ci * @tc.require: #IAU5KS 740094332d3Sopenharmony_ci */ 741094332d3Sopenharmony_ciHWTEST_F(HdiUnitTestLight, TurnOnLightBlinkException002, TestSize.Level1) 742094332d3Sopenharmony_ci{ 743094332d3Sopenharmony_ci TEST_FUNC_IN; 744094332d3Sopenharmony_ci ASSERT_NE(nullptr, g_lightInterface); 745094332d3Sopenharmony_ci 746094332d3Sopenharmony_ci int32_t lightId = HDF_LIGHT_ID_NOTIFICATIONS; 747094332d3Sopenharmony_ci HdfLightEffect effect = { 748094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.r = 255, 749094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.g = 255, 750094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.b = 255, 751094332d3Sopenharmony_ci .flashEffect.onTime = ON_TIME, 752094332d3Sopenharmony_ci .flashEffect.offTime = -1, 753094332d3Sopenharmony_ci .flashEffect.flashMode = HDF_LIGHT_FLASH_BLINK, 754094332d3Sopenharmony_ci }; 755094332d3Sopenharmony_ci 756094332d3Sopenharmony_ci int32_t ret = IsSupportedLightId(lightId); 757094332d3Sopenharmony_ci EXPECT_EQ(HDF_SUCCESS, ret); 758094332d3Sopenharmony_ci 759094332d3Sopenharmony_ci ret = g_lightInterface->TurnOnLight(lightId, effect); 760094332d3Sopenharmony_ci EXPECT_EQ(HDF_ERR_INVALID_PARAM, ret); 761094332d3Sopenharmony_ci 762094332d3Sopenharmony_ci OsalSleep(g_sleepTime); 763094332d3Sopenharmony_ci 764094332d3Sopenharmony_ci ret = g_lightInterface->TurnOffLight(lightId); 765094332d3Sopenharmony_ci EXPECT_EQ(HDF_SUCCESS, ret); 766094332d3Sopenharmony_ci} 767094332d3Sopenharmony_ci 768094332d3Sopenharmony_ci/** 769094332d3Sopenharmony_ci * @tc.name: TurnOnLightGradientException001 770094332d3Sopenharmony_ci * @tc.desc: The ontime setting is abnormal in gradient mode. 771094332d3Sopenharmony_ci * @tc.type: FUNC 772094332d3Sopenharmony_ci * @tc.require: #IAU5KS 773094332d3Sopenharmony_ci */ 774094332d3Sopenharmony_ciHWTEST_F(HdiUnitTestLight, TurnOnLightGradientException001, TestSize.Level1) 775094332d3Sopenharmony_ci{ 776094332d3Sopenharmony_ci TEST_FUNC_IN; 777094332d3Sopenharmony_ci ASSERT_NE(nullptr, g_lightInterface); 778094332d3Sopenharmony_ci 779094332d3Sopenharmony_ci int32_t lightId = HDF_LIGHT_ID_NOTIFICATIONS; 780094332d3Sopenharmony_ci HdfLightEffect effect = { 781094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.r = 255, 782094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.g = 255, 783094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.b = 255, 784094332d3Sopenharmony_ci .flashEffect.onTime = -1, 785094332d3Sopenharmony_ci .flashEffect.offTime = OFF_TIME, 786094332d3Sopenharmony_ci .flashEffect.flashMode = HDF_LIGHT_FLASH_GRADIENT, 787094332d3Sopenharmony_ci }; 788094332d3Sopenharmony_ci 789094332d3Sopenharmony_ci int32_t ret = IsSupportedLightId(lightId); 790094332d3Sopenharmony_ci EXPECT_EQ(HDF_SUCCESS, ret); 791094332d3Sopenharmony_ci 792094332d3Sopenharmony_ci ret = g_lightInterface->TurnOnLight(lightId, effect); 793094332d3Sopenharmony_ci EXPECT_EQ(HDF_ERR_INVALID_PARAM, ret); 794094332d3Sopenharmony_ci 795094332d3Sopenharmony_ci OsalSleep(g_sleepTime); 796094332d3Sopenharmony_ci 797094332d3Sopenharmony_ci ret = g_lightInterface->TurnOffLight(lightId); 798094332d3Sopenharmony_ci EXPECT_EQ(HDF_SUCCESS, ret); 799094332d3Sopenharmony_ci} 800094332d3Sopenharmony_ci 801094332d3Sopenharmony_ci/** 802094332d3Sopenharmony_ci * @tc.name: TurnOnLightGradientException002 803094332d3Sopenharmony_ci * @tc.desc: The offtime setting is abnormal in gradient mode. 804094332d3Sopenharmony_ci * @tc.type: FUNC 805094332d3Sopenharmony_ci * @tc.require: #IAU5KS 806094332d3Sopenharmony_ci */ 807094332d3Sopenharmony_ciHWTEST_F(HdiUnitTestLight, TurnOnLightGradientException002, TestSize.Level1) 808094332d3Sopenharmony_ci{ 809094332d3Sopenharmony_ci TEST_FUNC_IN; 810094332d3Sopenharmony_ci ASSERT_NE(nullptr, g_lightInterface); 811094332d3Sopenharmony_ci 812094332d3Sopenharmony_ci int32_t lightId = HDF_LIGHT_ID_NOTIFICATIONS; 813094332d3Sopenharmony_ci HdfLightEffect effect = { 814094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.r = 255, 815094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.g = 255, 816094332d3Sopenharmony_ci .lightColor.colorValue.rgbColor.b = 255, 817094332d3Sopenharmony_ci .flashEffect.onTime = ON_TIME, 818094332d3Sopenharmony_ci .flashEffect.offTime = -1, 819094332d3Sopenharmony_ci .flashEffect.flashMode = HDF_LIGHT_FLASH_GRADIENT, 820094332d3Sopenharmony_ci }; 821094332d3Sopenharmony_ci 822094332d3Sopenharmony_ci int32_t ret = IsSupportedLightId(lightId); 823094332d3Sopenharmony_ci EXPECT_EQ(HDF_SUCCESS, ret); 824094332d3Sopenharmony_ci 825094332d3Sopenharmony_ci ret = g_lightInterface->TurnOnLight(lightId, effect); 826094332d3Sopenharmony_ci EXPECT_EQ(HDF_ERR_INVALID_PARAM, ret); 827094332d3Sopenharmony_ci 828094332d3Sopenharmony_ci OsalSleep(g_sleepTime); 829094332d3Sopenharmony_ci 830094332d3Sopenharmony_ci ret = g_lightInterface->TurnOffLight(lightId); 831094332d3Sopenharmony_ci EXPECT_EQ(HDF_SUCCESS, ret); 832094332d3Sopenharmony_ci} 833