/* * Copyright (c) 2022 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include "hdf_base.h" #include "osal_time.h" #include "v1_0/light_interface_proxy.h" #include "light_type.h" using namespace OHOS::HDI::Light::V1_0; using namespace testing::ext; namespace { constexpr uint32_t g_sleepTime = 30; constexpr int32_t g_minLightId = HDF_LIGHT_ID_BATTERY; constexpr int32_t g_maxLightId = HDF_LIGHT_ID_ATTENTION; constexpr int32_t g_onTime = 500; constexpr int32_t g_offTime = 500; sptr g_lightInterface = nullptr; } class HdfLightHdiTest : public testing::Test { public: static void SetUpTestCase(); static void TearDownTestCase(); void SetUp(); void TearDown(); }; void HdfLightHdiTest::SetUpTestCase() { g_lightInterface = ILightInterface::Get(); } void HdfLightHdiTest::TearDownTestCase() { } void HdfLightHdiTest::SetUp() { } void HdfLightHdiTest::TearDown() { } /** * @tc.name: CheckLightInstanceIsEmpty * @tc.desc: Creat a light instance. The instance is not empty. * @tc.type: FUNC * @tc.require: #I4NN4Z */ HWTEST_F(HdfLightHdiTest, CheckLightInstanceIsEmpty, TestSize.Level1) { ASSERT_NE(nullptr, g_lightInterface); } /** * @tc.name: GetLightInfo001 * @tc.desc: Get light info. * @tc.type: FUNC * @tc.require: #I4NN4Z */ HWTEST_F(HdfLightHdiTest, GetLightInfo001, TestSize.Level1) { ASSERT_NE(nullptr, g_lightInterface); std::vector info; int32_t ret = g_lightInterface->GetLightInfo(info); EXPECT_EQ(0, ret); printf("get light list num[%zu]\n\r", info.size()); for (auto iter : info) { EXPECT_GE(iter.lightId, g_minLightId); EXPECT_LE(iter.lightId, g_maxLightId); } } /** * @tc.name: TurnOnLight001 * @tc.desc: TurnOnLight. * @tc.type: FUNC * @tc.require: #I4NN4Z */ HWTEST_F(HdfLightHdiTest, TurnOnLight001, TestSize.Level1) { ASSERT_NE(nullptr, g_lightInterface); std::vector info; int32_t ret = g_lightInterface->GetLightInfo(info); EXPECT_EQ(HDF_SUCCESS, ret); printf("get light list num[%zu]\n\r", info.size()); for (auto iter : info) { EXPECT_GE(iter.lightId, g_minLightId); EXPECT_LE(iter.lightId, g_maxLightId); HdfLightEffect effect; effect.lightBrightness = 0xFFFF0000; effect.flashEffect.flashMode = HDF_LIGHT_FLASH_NONE; int32_t ret = g_lightInterface->TurnOnLight(iter.lightId, effect); EXPECT_EQ(HDF_SUCCESS, ret); OsalSleep(g_sleepTime); ret = g_lightInterface->TurnOffLight(iter.lightId); EXPECT_EQ(HDF_SUCCESS, ret); } } /** * @tc.name: TurnOnLight002 * @tc.desc: TurnOnLight. * @tc.type: FUNC * @tc.require: #I4NN4Z */ HWTEST_F(HdfLightHdiTest, TurnOnLight002, TestSize.Level1) { ASSERT_NE(nullptr, g_lightInterface); std::vector info; int32_t ret = g_lightInterface->GetLightInfo(info); EXPECT_EQ(0, ret); printf("get light list num[%zu]\n\r", info.size()); for (auto iter : info) { EXPECT_GE(iter.lightId, g_minLightId); EXPECT_LE(iter.lightId, g_maxLightId); HdfLightEffect effect; effect.lightBrightness = 0xFFFF0000; effect.flashEffect.flashMode = HDF_LIGHT_FLASH_BUTT; int32_t ret = g_lightInterface->TurnOnLight(iter.lightId, effect); EXPECT_EQ(LIGHT_NOT_FLASH, ret); } } /** * @tc.name: TurnOnLight003 * @tc.desc: TurnOnLight. * @tc.type: FUNC * @tc.require: #I4NN4Z */ HWTEST_F(HdfLightHdiTest, TurnOnLight003, TestSize.Level1) { ASSERT_NE(nullptr, g_lightInterface); std::vector info; int32_t ret = g_lightInterface->GetLightInfo(info); EXPECT_EQ(0, ret); printf("get light list num[%zu]\n\r", info.size()); for (auto iter : info) { EXPECT_GE(iter.lightId, g_minLightId); EXPECT_LE(iter.lightId, g_maxLightId); HdfLightEffect effect; effect.lightBrightness = 0xFFFF0000; effect.flashEffect.flashMode = HDF_LIGHT_FLASH_TIMED; effect.flashEffect.onTime = g_onTime; effect.flashEffect.offTime = g_offTime; int32_t ret = g_lightInterface->TurnOnLight(iter.lightId, effect); EXPECT_EQ(HDF_SUCCESS, ret); OsalSleep(g_sleepTime); ret = g_lightInterface->TurnOffLight(iter.lightId); EXPECT_EQ(HDF_SUCCESS, ret); } } /** * @tc.name: DisableLight001 * @tc.desc: DisableLight. * @tc.type: FUNC * @tc.require: #I4NN4Z */ HWTEST_F(HdfLightHdiTest, DisableLight001, TestSize.Level1) { ASSERT_NE(nullptr, g_lightInterface); HdfLightEffect effect; int32_t ret = g_lightInterface->TurnOnLight(HDF_LIGHT_ID_BUTT, effect); EXPECT_EQ(LIGHT_NOT_SUPPORT, ret); ret = g_lightInterface->TurnOffLight(HDF_LIGHT_ID_BUTT); EXPECT_EQ(LIGHT_NOT_SUPPORT, ret); }