1e0dac50fSopenharmony_ci/* 2e0dac50fSopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd. 3e0dac50fSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4e0dac50fSopenharmony_ci * you may not use this file except in compliance with the License. 5e0dac50fSopenharmony_ci * You may obtain a copy of the License at 6e0dac50fSopenharmony_ci * 7e0dac50fSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8e0dac50fSopenharmony_ci * 9e0dac50fSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10e0dac50fSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11e0dac50fSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12e0dac50fSopenharmony_ci * See the License for the specific language governing permissions and 13e0dac50fSopenharmony_ci * limitations under the License. 14e0dac50fSopenharmony_ci */ 15e0dac50fSopenharmony_ci 16e0dac50fSopenharmony_ci#include <gtest/gtest.h> 17e0dac50fSopenharmony_ci 18e0dac50fSopenharmony_ci#include "abstract_display.h" 19e0dac50fSopenharmony_ci#include "abstract_screen_controller.h" 20e0dac50fSopenharmony_ci 21e0dac50fSopenharmony_ciusing namespace testing; 22e0dac50fSopenharmony_ciusing namespace testing::ext; 23e0dac50fSopenharmony_ci 24e0dac50fSopenharmony_cinamespace OHOS { 25e0dac50fSopenharmony_cinamespace Rosen { 26e0dac50fSopenharmony_ciclass AbstractDisplayTest : public testing::Test { 27e0dac50fSopenharmony_cipublic: 28e0dac50fSopenharmony_ci static void SetUpTestCase(); 29e0dac50fSopenharmony_ci static void TearDownTestCase(); 30e0dac50fSopenharmony_ci void SetUp() override; 31e0dac50fSopenharmony_ci void TearDown() override; 32e0dac50fSopenharmony_ci 33e0dac50fSopenharmony_ci DisplayId id = 1; 34e0dac50fSopenharmony_ci std::string name = "abstract_display_test"; 35e0dac50fSopenharmony_ci SupportedScreenModes modesInfo; 36e0dac50fSopenharmony_ci std::recursive_mutex mutex; 37e0dac50fSopenharmony_ci sptr<AbstractScreenController> absController; 38e0dac50fSopenharmony_ci sptr<AbstractScreen> absScreen; 39e0dac50fSopenharmony_ci sptr<AbstractDisplay> absDisplay; 40e0dac50fSopenharmony_ci sptr<AbstractDisplay> absDisplay2; 41e0dac50fSopenharmony_ci sptr<AbstractDisplay> absDisplay3; 42e0dac50fSopenharmony_ci sptr<AbstractDisplay> absDisplay4; 43e0dac50fSopenharmony_ci}; 44e0dac50fSopenharmony_ci 45e0dac50fSopenharmony_civoid AbstractDisplayTest::SetUpTestCase() 46e0dac50fSopenharmony_ci{ 47e0dac50fSopenharmony_ci} 48e0dac50fSopenharmony_ci 49e0dac50fSopenharmony_civoid AbstractDisplayTest::TearDownTestCase() 50e0dac50fSopenharmony_ci{ 51e0dac50fSopenharmony_ci} 52e0dac50fSopenharmony_ci 53e0dac50fSopenharmony_civoid AbstractDisplayTest::SetUp() 54e0dac50fSopenharmony_ci{ 55e0dac50fSopenharmony_ci modesInfo.width_ = 2160; 56e0dac50fSopenharmony_ci modesInfo.height_ = 1600; 57e0dac50fSopenharmony_ci modesInfo.refreshRate_ = 60; 58e0dac50fSopenharmony_ci sptr<SupportedScreenModes> info = new SupportedScreenModes(modesInfo); 59e0dac50fSopenharmony_ci absController = nullptr; 60e0dac50fSopenharmony_ci absScreen = new AbstractScreen(absController, name, 1, 1); 61e0dac50fSopenharmony_ci absDisplay = new AbstractDisplay(id, info, absScreen); 62e0dac50fSopenharmony_ci modesInfo.width_ = 800; 63e0dac50fSopenharmony_ci modesInfo.height_ = 2560; 64e0dac50fSopenharmony_ci absDisplay2 = new AbstractDisplay(id, info, absScreen); 65e0dac50fSopenharmony_ci modesInfo.width_ = 2560; 66e0dac50fSopenharmony_ci modesInfo.height_ = 2560; 67e0dac50fSopenharmony_ci absDisplay3 = new AbstractDisplay(id, info, absScreen); 68e0dac50fSopenharmony_ci modesInfo.width_ = 2560; 69e0dac50fSopenharmony_ci modesInfo.height_ = 1600; 70e0dac50fSopenharmony_ci absDisplay4 = new AbstractDisplay(id, info, absScreen); 71e0dac50fSopenharmony_ci} 72e0dac50fSopenharmony_ci 73e0dac50fSopenharmony_civoid AbstractDisplayTest::TearDown() 74e0dac50fSopenharmony_ci{ 75e0dac50fSopenharmony_ci} 76e0dac50fSopenharmony_ci 77e0dac50fSopenharmony_cinamespace { 78e0dac50fSopenharmony_ci/** 79e0dac50fSopenharmony_ci * @tc.name: BindAbstractScreen 80e0dac50fSopenharmony_ci * @tc.desc: BindAbstractScreen test 81e0dac50fSopenharmony_ci * @tc.type: FUNC 82e0dac50fSopenharmony_ci */ 83e0dac50fSopenharmony_ciHWTEST_F(AbstractDisplayTest, BindAbstractScreen01, Function | SmallTest | Level3) 84e0dac50fSopenharmony_ci{ 85e0dac50fSopenharmony_ci sptr<AbstractScreen> abstractScreen = nullptr; 86e0dac50fSopenharmony_ci ASSERT_EQ(false, absDisplay->BindAbstractScreen(abstractScreen)); 87e0dac50fSopenharmony_ci} 88e0dac50fSopenharmony_ci/** 89e0dac50fSopenharmony_ci * @tc.name: BindAbstractScreen 90e0dac50fSopenharmony_ci * @tc.desc: BindAbstractScreen test 91e0dac50fSopenharmony_ci * @tc.type: FUNC 92e0dac50fSopenharmony_ci */ 93e0dac50fSopenharmony_ciHWTEST_F(AbstractDisplayTest, BindAbstractScreen02, Function | SmallTest | Level3) 94e0dac50fSopenharmony_ci{ 95e0dac50fSopenharmony_ci sptr<AbstractScreen> abstractScreen = absScreen; 96e0dac50fSopenharmony_ci abstractScreen->activeIdx_ = -1; 97e0dac50fSopenharmony_ci ASSERT_EQ(false, absDisplay->BindAbstractScreen(abstractScreen)); 98e0dac50fSopenharmony_ci} 99e0dac50fSopenharmony_ci/** 100e0dac50fSopenharmony_ci * @tc.name: CalculateXYDpi 101e0dac50fSopenharmony_ci * @tc.desc: CalculateXYDpi test 102e0dac50fSopenharmony_ci * @tc.type: FUNC 103e0dac50fSopenharmony_ci */ 104e0dac50fSopenharmony_ciHWTEST_F(AbstractDisplayTest, CalculateXYDpi, Function | SmallTest | Level3) 105e0dac50fSopenharmony_ci{ 106e0dac50fSopenharmony_ci uint32_t phyWidth = 0; 107e0dac50fSopenharmony_ci uint32_t phyHeight = 0; 108e0dac50fSopenharmony_ci absDisplay->CalculateXYDpi(phyWidth, phyHeight); 109e0dac50fSopenharmony_ci phyWidth = 1; 110e0dac50fSopenharmony_ci absDisplay->CalculateXYDpi(phyWidth, phyHeight); 111e0dac50fSopenharmony_ci phyHeight = 1; 112e0dac50fSopenharmony_ci absDisplay->CalculateXYDpi(phyWidth, phyHeight); 113e0dac50fSopenharmony_ci phyWidth = 0; 114e0dac50fSopenharmony_ci absDisplay->CalculateXYDpi(phyWidth, phyHeight); 115e0dac50fSopenharmony_ci ASSERT_EQ(1, absDisplay->phyHeight_); 116e0dac50fSopenharmony_ci} 117e0dac50fSopenharmony_ci/** 118e0dac50fSopenharmony_ci * @tc.name: GetRefreshRate 119e0dac50fSopenharmony_ci * @tc.desc: GetRefreshRate test 120e0dac50fSopenharmony_ci * @tc.type: FUNC 121e0dac50fSopenharmony_ci */ 122e0dac50fSopenharmony_ciHWTEST_F(AbstractDisplayTest, GetRefreshRate, Function | SmallTest | Level3) 123e0dac50fSopenharmony_ci{ 124e0dac50fSopenharmony_ci uint32_t refreshRate = 1; 125e0dac50fSopenharmony_ci absDisplay->SetRefreshRate(refreshRate); 126e0dac50fSopenharmony_ci absDisplay->GetRefreshRate(); 127e0dac50fSopenharmony_ci ASSERT_EQ(1, absDisplay->refreshRate_); 128e0dac50fSopenharmony_ci} 129e0dac50fSopenharmony_ci/** 130e0dac50fSopenharmony_ci * @tc.name: GetOffsetX 131e0dac50fSopenharmony_ci * @tc.desc: GetOffsetX test 132e0dac50fSopenharmony_ci * @tc.type: FUNC 133e0dac50fSopenharmony_ci */ 134e0dac50fSopenharmony_ciHWTEST_F(AbstractDisplayTest, GetOffsetX, Function | SmallTest | Level3) 135e0dac50fSopenharmony_ci{ 136e0dac50fSopenharmony_ci int32_t offsetX = 1; 137e0dac50fSopenharmony_ci absDisplay->SetOffsetX(offsetX); 138e0dac50fSopenharmony_ci ASSERT_EQ(1, absDisplay->GetOffsetX()); 139e0dac50fSopenharmony_ci} 140e0dac50fSopenharmony_ci/** 141e0dac50fSopenharmony_ci * @tc.name: GetOffsetY 142e0dac50fSopenharmony_ci * @tc.desc: GetOffsetX test 143e0dac50fSopenharmony_ci * @tc.type: FUNC 144e0dac50fSopenharmony_ci */ 145e0dac50fSopenharmony_ciHWTEST_F(AbstractDisplayTest, GetOffsetY, Function | SmallTest | Level3) 146e0dac50fSopenharmony_ci{ 147e0dac50fSopenharmony_ci int32_t offsetY = 1; 148e0dac50fSopenharmony_ci absDisplay->SetOffsetY(offsetY); 149e0dac50fSopenharmony_ci ASSERT_EQ(1, absDisplay->GetOffsetY()); 150e0dac50fSopenharmony_ci} 151e0dac50fSopenharmony_ci/** 152e0dac50fSopenharmony_ci * @tc.name: UpdateXDpi 153e0dac50fSopenharmony_ci * @tc.desc: UpdateXDpi test 154e0dac50fSopenharmony_ci * @tc.type: FUNC 155e0dac50fSopenharmony_ci */ 156e0dac50fSopenharmony_ciHWTEST_F(AbstractDisplayTest, UpdateXDpi, Function | SmallTest | Level3) 157e0dac50fSopenharmony_ci{ 158e0dac50fSopenharmony_ci uint32_t phyWidth = UINT32_MAX; 159e0dac50fSopenharmony_ci uint32_t phyHeight = 0; 160e0dac50fSopenharmony_ci absDisplay->CalculateXYDpi(phyWidth, phyHeight); 161e0dac50fSopenharmony_ci absDisplay->UpdateXDpi(); 162e0dac50fSopenharmony_ci ASSERT_EQ(UINT32_MAX, absDisplay->phyWidth_); 163e0dac50fSopenharmony_ci} 164e0dac50fSopenharmony_ci/** 165e0dac50fSopenharmony_ci * @tc.name: UpdateYDpi 166e0dac50fSopenharmony_ci * @tc.desc: UpdateYDpi test 167e0dac50fSopenharmony_ci * @tc.type: FUNC 168e0dac50fSopenharmony_ci */ 169e0dac50fSopenharmony_ciHWTEST_F(AbstractDisplayTest, UpdateYDpi, Function | SmallTest | Level3) 170e0dac50fSopenharmony_ci{ 171e0dac50fSopenharmony_ci uint32_t phyWidth = UINT32_MAX; 172e0dac50fSopenharmony_ci uint32_t phyHeight = UINT32_MAX; 173e0dac50fSopenharmony_ci absDisplay->CalculateXYDpi(phyWidth, phyHeight); 174e0dac50fSopenharmony_ci absDisplay->UpdateYDpi(); 175e0dac50fSopenharmony_ci ASSERT_EQ(UINT32_MAX, absDisplay->phyHeight_); 176e0dac50fSopenharmony_ci} 177e0dac50fSopenharmony_ci/** 178e0dac50fSopenharmony_ci * @tc.name: SetId 179e0dac50fSopenharmony_ci * @tc.desc: SetId test 180e0dac50fSopenharmony_ci * @tc.type: FUNC 181e0dac50fSopenharmony_ci */ 182e0dac50fSopenharmony_ciHWTEST_F(AbstractDisplayTest, SetId, Function | SmallTest | Level3) 183e0dac50fSopenharmony_ci{ 184e0dac50fSopenharmony_ci DisplayId id = 1; 185e0dac50fSopenharmony_ci absDisplay->SetId(id); 186e0dac50fSopenharmony_ci ASSERT_EQ(1, absDisplay->GetId()); 187e0dac50fSopenharmony_ci} 188e0dac50fSopenharmony_ci/** 189e0dac50fSopenharmony_ci * @tc.name: SetDisplayOrientation 190e0dac50fSopenharmony_ci * @tc.desc: SetDisplayOrientation test 191e0dac50fSopenharmony_ci * @tc.type: FUNC 192e0dac50fSopenharmony_ci */ 193e0dac50fSopenharmony_ciHWTEST_F(AbstractDisplayTest, SetDisplayOrientation, Function | SmallTest | Level3) 194e0dac50fSopenharmony_ci{ 195e0dac50fSopenharmony_ci DisplayOrientation displayOrientation = DisplayOrientation::PORTRAIT; 196e0dac50fSopenharmony_ci absDisplay->SetDisplayOrientation(displayOrientation); 197e0dac50fSopenharmony_ci ASSERT_EQ(DisplayOrientation::PORTRAIT, absDisplay->GetDisplayOrientation()); 198e0dac50fSopenharmony_ci} 199e0dac50fSopenharmony_ci/** 200e0dac50fSopenharmony_ci * @tc.name: GetRotationAndGetOrientation 201e0dac50fSopenharmony_ci * @tc.desc: GetRotationAndGetOrientation test 202e0dac50fSopenharmony_ci * @tc.type: FUNC 203e0dac50fSopenharmony_ci */ 204e0dac50fSopenharmony_ciHWTEST_F(AbstractDisplayTest, GetRotationAndGetOrientation, Function | SmallTest | Level3) 205e0dac50fSopenharmony_ci{ 206e0dac50fSopenharmony_ci DisplayId id = 1; 207e0dac50fSopenharmony_ci absDisplay->SetId(id); 208e0dac50fSopenharmony_ci absDisplay->GetRotation(); 209e0dac50fSopenharmony_ci absDisplay->GetOrientation(); 210e0dac50fSopenharmony_ci ASSERT_EQ(1, absDisplay->GetId()); 211e0dac50fSopenharmony_ci} 212e0dac50fSopenharmony_ci/** 213e0dac50fSopenharmony_ci * @tc.name: SetFreezeFlag 214e0dac50fSopenharmony_ci * @tc.desc: SetFreezeFlag test 215e0dac50fSopenharmony_ci * @tc.type: FUNC 216e0dac50fSopenharmony_ci */ 217e0dac50fSopenharmony_ciHWTEST_F(AbstractDisplayTest, SetFreezeFlag, Function | SmallTest | Level3) 218e0dac50fSopenharmony_ci{ 219e0dac50fSopenharmony_ci FreezeFlag freezeFlag = FreezeFlag::FREEZING; 220e0dac50fSopenharmony_ci absDisplay->SetFreezeFlag(freezeFlag); 221e0dac50fSopenharmony_ci ASSERT_EQ(FreezeFlag::FREEZING, absDisplay->GetFreezeFlag()); 222e0dac50fSopenharmony_ci} 223e0dac50fSopenharmony_ci} 224e0dac50fSopenharmony_ci} // namespace Rosen 225e0dac50fSopenharmony_ci} // namespace OHOS 226