1e0dac50fSopenharmony_ci/* 2e0dac50fSopenharmony_ci * Copyright (c) 2021-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#include "display_manager.h" 18e0dac50fSopenharmony_ci#include "display_manager_proxy.h" 19e0dac50fSopenharmony_ci#include "screen_manager.h" 20e0dac50fSopenharmony_ci#include "screen_manager_utils.h" 21e0dac50fSopenharmony_ci#include "mock_display_manager_adapter.h" 22e0dac50fSopenharmony_ci#include "singleton_mocker.h" 23e0dac50fSopenharmony_ci#include "scene_board_judgement.h" 24e0dac50fSopenharmony_ci 25e0dac50fSopenharmony_ciusing namespace testing; 26e0dac50fSopenharmony_ciusing namespace testing::ext; 27e0dac50fSopenharmony_ci 28e0dac50fSopenharmony_cinamespace OHOS { 29e0dac50fSopenharmony_cinamespace Rosen { 30e0dac50fSopenharmony_ciusing Mocker = SingletonMocker<ScreenManagerAdapter, MockScreenManagerAdapter>; 31e0dac50fSopenharmony_ciclass ScreenTest : public testing::Test { 32e0dac50fSopenharmony_cipublic: 33e0dac50fSopenharmony_ci static void SetUpTestCase(); 34e0dac50fSopenharmony_ci static void TearDownTestCase(); 35e0dac50fSopenharmony_ci virtual void SetUp() override; 36e0dac50fSopenharmony_ci virtual void TearDown() override; 37e0dac50fSopenharmony_ci 38e0dac50fSopenharmony_ci static sptr<Display> defaultDisplay_; 39e0dac50fSopenharmony_ci static ScreenId defaultScreenId_; 40e0dac50fSopenharmony_ci static sptr<Screen> screen_; 41e0dac50fSopenharmony_ci}; 42e0dac50fSopenharmony_cisptr<Display> ScreenTest::defaultDisplay_ = nullptr; 43e0dac50fSopenharmony_ciScreenId ScreenTest::defaultScreenId_ = SCREEN_ID_INVALID; 44e0dac50fSopenharmony_cisptr<Screen> ScreenTest::screen_ = nullptr; 45e0dac50fSopenharmony_ci 46e0dac50fSopenharmony_civoid ScreenTest::SetUpTestCase() 47e0dac50fSopenharmony_ci{ 48e0dac50fSopenharmony_ci defaultDisplay_ = DisplayManager::GetInstance().GetDefaultDisplay(); 49e0dac50fSopenharmony_ci defaultScreenId_ = static_cast<ScreenId>(defaultDisplay_->GetId()); 50e0dac50fSopenharmony_ci screen_ = ScreenManager::GetInstance().GetScreenById(defaultScreenId_); 51e0dac50fSopenharmony_ci} 52e0dac50fSopenharmony_ci 53e0dac50fSopenharmony_civoid ScreenTest::TearDownTestCase() 54e0dac50fSopenharmony_ci{ 55e0dac50fSopenharmony_ci defaultDisplay_ = nullptr; 56e0dac50fSopenharmony_ci screen_ = nullptr; 57e0dac50fSopenharmony_ci} 58e0dac50fSopenharmony_ci 59e0dac50fSopenharmony_civoid ScreenTest::SetUp() 60e0dac50fSopenharmony_ci{ 61e0dac50fSopenharmony_ci} 62e0dac50fSopenharmony_ci 63e0dac50fSopenharmony_civoid ScreenTest::TearDown() 64e0dac50fSopenharmony_ci{ 65e0dac50fSopenharmony_ci} 66e0dac50fSopenharmony_ci 67e0dac50fSopenharmony_cinamespace { 68e0dac50fSopenharmony_ci/** 69e0dac50fSopenharmony_ci * @tc.name: GetBasicProperty01 70e0dac50fSopenharmony_ci * @tc.desc: Basic property getter test 71e0dac50fSopenharmony_ci * @tc.type: FUNC 72e0dac50fSopenharmony_ci */ 73e0dac50fSopenharmony_ciHWTEST_F(ScreenTest, GetBasicProperty01, Function | SmallTest | Level1) 74e0dac50fSopenharmony_ci{ 75e0dac50fSopenharmony_ci ASSERT_GT(screen_->GetName().size(), 0); 76e0dac50fSopenharmony_ci ASSERT_GT(screen_->GetWidth(), 0); 77e0dac50fSopenharmony_ci ASSERT_GT(screen_->GetHeight(), 0); 78e0dac50fSopenharmony_ci ASSERT_GT(screen_->GetVirtualWidth(), 0); 79e0dac50fSopenharmony_ci ASSERT_GT(screen_->GetVirtualHeight(), 0); 80e0dac50fSopenharmony_ci ASSERT_GT(screen_->GetVirtualPixelRatio(), 0); 81e0dac50fSopenharmony_ci ASSERT_EQ(screen_->IsReal(), true); 82e0dac50fSopenharmony_ci ASSERT_NE(screen_->GetScreenInfo(), nullptr); 83e0dac50fSopenharmony_ci} 84e0dac50fSopenharmony_ci 85e0dac50fSopenharmony_ci/** 86e0dac50fSopenharmony_ci * @tc.name: SetScreenActiveMode01 87e0dac50fSopenharmony_ci * @tc.desc: SetScreenActiveMode with valid modeId and return success 88e0dac50fSopenharmony_ci * @tc.type: FUNC 89e0dac50fSopenharmony_ci */ 90e0dac50fSopenharmony_ciHWTEST_F(ScreenTest, SetScreenActiveMode01, Function | SmallTest | Level1) 91e0dac50fSopenharmony_ci{ 92e0dac50fSopenharmony_ci auto supportedModes = screen_->GetSupportedModes(); 93e0dac50fSopenharmony_ci ASSERT_GT(supportedModes.size(), 0); 94e0dac50fSopenharmony_ci std::unique_ptr<Mocker> m = std::make_unique<Mocker>(); 95e0dac50fSopenharmony_ci EXPECT_CALL(m->Mock(), SetScreenActiveMode(_, _)).Times(1).WillOnce(Return(DMError::DM_OK)); 96e0dac50fSopenharmony_ci DMError res = screen_->SetScreenActiveMode(supportedModes.size() - 1); 97e0dac50fSopenharmony_ci ASSERT_EQ(DMError::DM_OK, res); 98e0dac50fSopenharmony_ci} 99e0dac50fSopenharmony_ci 100e0dac50fSopenharmony_ci/** 101e0dac50fSopenharmony_ci * @tc.name: SetScreenActiveMode02 102e0dac50fSopenharmony_ci * @tc.desc: SetScreenActiveMode with valid modeId and return failed 103e0dac50fSopenharmony_ci * @tc.type: FUNC 104e0dac50fSopenharmony_ci */ 105e0dac50fSopenharmony_ciHWTEST_F(ScreenTest, SetScreenActiveMode02, Function | SmallTest | Level1) 106e0dac50fSopenharmony_ci{ 107e0dac50fSopenharmony_ci auto supportedModes = screen_->GetSupportedModes(); 108e0dac50fSopenharmony_ci ASSERT_GT(supportedModes.size(), 0); 109e0dac50fSopenharmony_ci std::unique_ptr<Mocker> m = std::make_unique<Mocker>(); 110e0dac50fSopenharmony_ci EXPECT_CALL(m->Mock(), SetScreenActiveMode(_, _)).Times(1).WillOnce(Return(DMError::DM_ERROR_NULLPTR)); 111e0dac50fSopenharmony_ci DMError res = screen_->SetScreenActiveMode(supportedModes.size() - 1); 112e0dac50fSopenharmony_ci ASSERT_TRUE(DMError::DM_OK != res); 113e0dac50fSopenharmony_ci} 114e0dac50fSopenharmony_ci 115e0dac50fSopenharmony_ci/** 116e0dac50fSopenharmony_ci * @tc.name: GetScreenSupportedColorGamuts01 117e0dac50fSopenharmony_ci * @tc.desc: GetScreenSupportedColorGamuts 118e0dac50fSopenharmony_ci * @tc.type: FUNC 119e0dac50fSopenharmony_ci */ 120e0dac50fSopenharmony_ciHWTEST_F(ScreenTest, GetScreenSupportedColorGamuts01, Function | SmallTest | Level2) 121e0dac50fSopenharmony_ci{ 122e0dac50fSopenharmony_ci std::unique_ptr<Mocker> m = std::make_unique<Mocker>(); 123e0dac50fSopenharmony_ci EXPECT_CALL(m->Mock(), GetScreenSupportedColorGamuts(_, _)).Times(1).WillOnce(Return(DMError::DM_OK)); 124e0dac50fSopenharmony_ci std::vector<ScreenColorGamut> colorGamuts; 125e0dac50fSopenharmony_ci auto res = screen_->GetScreenSupportedColorGamuts(colorGamuts); 126e0dac50fSopenharmony_ci ASSERT_EQ(DMError::DM_OK, res); 127e0dac50fSopenharmony_ci} 128e0dac50fSopenharmony_ci 129e0dac50fSopenharmony_ci/** 130e0dac50fSopenharmony_ci * @tc.name: GetScreenColorGamut01 131e0dac50fSopenharmony_ci * @tc.desc: GetScreenColorGamut 132e0dac50fSopenharmony_ci * @tc.type: FUNC 133e0dac50fSopenharmony_ci */ 134e0dac50fSopenharmony_ciHWTEST_F(ScreenTest, GetScreenColorGamut01, Function | SmallTest | Level2) 135e0dac50fSopenharmony_ci{ 136e0dac50fSopenharmony_ci std::unique_ptr<Mocker> m = std::make_unique<Mocker>(); 137e0dac50fSopenharmony_ci EXPECT_CALL(m->Mock(), GetScreenColorGamut(_, _)).Times(1).WillOnce(Return(DMError::DM_OK)); 138e0dac50fSopenharmony_ci ScreenColorGamut colorGamut = ScreenColorGamut::COLOR_GAMUT_SRGB; 139e0dac50fSopenharmony_ci auto res = screen_->GetScreenColorGamut(colorGamut); 140e0dac50fSopenharmony_ci ASSERT_EQ(DMError::DM_OK, res); 141e0dac50fSopenharmony_ci} 142e0dac50fSopenharmony_ci 143e0dac50fSopenharmony_ci/** 144e0dac50fSopenharmony_ci * @tc.name: SetScreenColorGamut01 145e0dac50fSopenharmony_ci * @tc.desc: SetScreenColorGamut 146e0dac50fSopenharmony_ci * @tc.type: FUNC 147e0dac50fSopenharmony_ci */ 148e0dac50fSopenharmony_ciHWTEST_F(ScreenTest, SetScreenColorGamut01, Function | SmallTest | Level2) 149e0dac50fSopenharmony_ci{ 150e0dac50fSopenharmony_ci std::unique_ptr<Mocker> m = std::make_unique<Mocker>(); 151e0dac50fSopenharmony_ci EXPECT_CALL(m->Mock(), SetScreenColorGamut(_, _)).Times(1).WillOnce(Return(DMError::DM_OK)); 152e0dac50fSopenharmony_ci ScreenColorGamut colorGamut = ScreenColorGamut::COLOR_GAMUT_SRGB; 153e0dac50fSopenharmony_ci auto res = screen_->SetScreenColorGamut(colorGamut); 154e0dac50fSopenharmony_ci ASSERT_EQ(DMError::DM_OK, res); 155e0dac50fSopenharmony_ci} 156e0dac50fSopenharmony_ci 157e0dac50fSopenharmony_ci/** 158e0dac50fSopenharmony_ci * @tc.name: GetScreenGamutMap01 159e0dac50fSopenharmony_ci * @tc.desc: GetScreenGamutMap 160e0dac50fSopenharmony_ci * @tc.type: FUNC 161e0dac50fSopenharmony_ci */ 162e0dac50fSopenharmony_ciHWTEST_F(ScreenTest, GetScreenGamutMap01, Function | SmallTest | Level2) 163e0dac50fSopenharmony_ci{ 164e0dac50fSopenharmony_ci std::unique_ptr<Mocker> m = std::make_unique<Mocker>(); 165e0dac50fSopenharmony_ci EXPECT_CALL(m->Mock(), GetScreenGamutMap(_, _)).Times(1).WillOnce(Return(DMError::DM_OK)); 166e0dac50fSopenharmony_ci ScreenGamutMap gamutMap = ScreenGamutMap::GAMUT_MAP_CONSTANT; 167e0dac50fSopenharmony_ci auto res = screen_->GetScreenGamutMap(gamutMap); 168e0dac50fSopenharmony_ci ASSERT_EQ(DMError::DM_OK, res); 169e0dac50fSopenharmony_ci} 170e0dac50fSopenharmony_ci 171e0dac50fSopenharmony_ci/** 172e0dac50fSopenharmony_ci * @tc.name: SetScreenGamutMap01 173e0dac50fSopenharmony_ci * @tc.desc: SetScreenGamutMap 174e0dac50fSopenharmony_ci * @tc.type: FUNC 175e0dac50fSopenharmony_ci */ 176e0dac50fSopenharmony_ciHWTEST_F(ScreenTest, SetScreenGamutMap01, Function | SmallTest | Level2) 177e0dac50fSopenharmony_ci{ 178e0dac50fSopenharmony_ci std::unique_ptr<Mocker> m = std::make_unique<Mocker>(); 179e0dac50fSopenharmony_ci EXPECT_CALL(m->Mock(), SetScreenGamutMap(_, _)).Times(1).WillOnce(Return(DMError::DM_OK)); 180e0dac50fSopenharmony_ci ScreenGamutMap gamutMap = ScreenGamutMap::GAMUT_MAP_CONSTANT; 181e0dac50fSopenharmony_ci auto res = screen_->SetScreenGamutMap(gamutMap); 182e0dac50fSopenharmony_ci ASSERT_EQ(DMError::DM_OK, res); 183e0dac50fSopenharmony_ci} 184e0dac50fSopenharmony_ci 185e0dac50fSopenharmony_ci/** 186e0dac50fSopenharmony_ci * @tc.name: SetScreenColorTransform01 187e0dac50fSopenharmony_ci * @tc.desc: SetScreenColorTransform 188e0dac50fSopenharmony_ci * @tc.type: FUNC 189e0dac50fSopenharmony_ci */ 190e0dac50fSopenharmony_ciHWTEST_F(ScreenTest, SetScreenColorTransform01, Function | SmallTest | Level2) 191e0dac50fSopenharmony_ci{ 192e0dac50fSopenharmony_ci std::unique_ptr<Mocker> m = std::make_unique<Mocker>(); 193e0dac50fSopenharmony_ci EXPECT_CALL(m->Mock(), SetScreenColorTransform(_)).Times(1).WillOnce(Return(DMError::DM_OK)); 194e0dac50fSopenharmony_ci auto res = screen_->SetScreenColorTransform(); 195e0dac50fSopenharmony_ci ASSERT_EQ(DMError::DM_OK, res); 196e0dac50fSopenharmony_ci} 197e0dac50fSopenharmony_ci 198e0dac50fSopenharmony_ci/** 199e0dac50fSopenharmony_ci * @tc.name: IsGroup 200e0dac50fSopenharmony_ci * @tc.desc: for interface coverage and check IsGroup 201e0dac50fSopenharmony_ci * @tc.type: FUNC 202e0dac50fSopenharmony_ci */ 203e0dac50fSopenharmony_ciHWTEST_F(ScreenTest, IsGroup, Function | SmallTest | Level2) 204e0dac50fSopenharmony_ci{ 205e0dac50fSopenharmony_ci std::unique_ptr<Mocker> m = std::make_unique<Mocker>(); 206e0dac50fSopenharmony_ci sptr<ScreenInfo> screenInfo = screen_->GetScreenInfo(); 207e0dac50fSopenharmony_ci screenInfo->SetIsScreenGroup(true); 208e0dac50fSopenharmony_ci EXPECT_CALL(m->Mock(), GetScreenInfo(_)).Times(1).WillOnce(Return(screenInfo)); 209e0dac50fSopenharmony_ci ASSERT_EQ(true, screen_->IsGroup()); 210e0dac50fSopenharmony_ci screenInfo->SetIsScreenGroup(false); 211e0dac50fSopenharmony_ci EXPECT_CALL(m->Mock(), GetScreenInfo(_)).Times(1).WillOnce(Return(screenInfo)); 212e0dac50fSopenharmony_ci ASSERT_EQ(false, screen_->IsGroup()); 213e0dac50fSopenharmony_ci} 214e0dac50fSopenharmony_ci 215e0dac50fSopenharmony_ci/** 216e0dac50fSopenharmony_ci * @tc.name: GetParentId 217e0dac50fSopenharmony_ci * @tc.desc: for interface coverage and check GetParentId 218e0dac50fSopenharmony_ci * @tc.type: FUNC 219e0dac50fSopenharmony_ci */ 220e0dac50fSopenharmony_ciHWTEST_F(ScreenTest, GetParentId, Function | SmallTest | Level2) 221e0dac50fSopenharmony_ci{ 222e0dac50fSopenharmony_ci std::unique_ptr<Mocker> m = std::make_unique<Mocker>(); 223e0dac50fSopenharmony_ci sptr<ScreenInfo> screenInfo = screen_->GetScreenInfo(); 224e0dac50fSopenharmony_ci screenInfo->SetParentId(0); 225e0dac50fSopenharmony_ci EXPECT_CALL(m->Mock(), GetScreenInfo(_)).Times(1).WillOnce(Return(screenInfo)); 226e0dac50fSopenharmony_ci ASSERT_EQ(0, screen_->GetParentId()); 227e0dac50fSopenharmony_ci screenInfo->SetParentId(SCREEN_ID_INVALID); 228e0dac50fSopenharmony_ci EXPECT_CALL(m->Mock(), GetScreenInfo(_)).Times(1).WillOnce(Return(screenInfo)); 229e0dac50fSopenharmony_ci ASSERT_EQ(SCREEN_ID_INVALID, screen_->GetParentId()); 230e0dac50fSopenharmony_ci} 231e0dac50fSopenharmony_ci 232e0dac50fSopenharmony_ci/** 233e0dac50fSopenharmony_ci * @tc.name: GetRotation 234e0dac50fSopenharmony_ci * @tc.desc: for interface coverage and check GetRotation 235e0dac50fSopenharmony_ci * @tc.type: FUNC 236e0dac50fSopenharmony_ci */ 237e0dac50fSopenharmony_ciHWTEST_F(ScreenTest, GetRotation, Function | SmallTest | Level2) 238e0dac50fSopenharmony_ci{ 239e0dac50fSopenharmony_ci std::unique_ptr<Mocker> m = std::make_unique<Mocker>(); 240e0dac50fSopenharmony_ci sptr<ScreenInfo> screenInfo = screen_->GetScreenInfo(); 241e0dac50fSopenharmony_ci screenInfo->SetParentId(0); 242e0dac50fSopenharmony_ci EXPECT_CALL(m->Mock(), GetScreenInfo(_)).Times(1).WillOnce(Return(screenInfo)); 243e0dac50fSopenharmony_ci ASSERT_EQ(Rotation::ROTATION_0, screen_->GetRotation()); 244e0dac50fSopenharmony_ci} 245e0dac50fSopenharmony_ci 246e0dac50fSopenharmony_ci/** 247e0dac50fSopenharmony_ci * @tc.name: GetOrientation 248e0dac50fSopenharmony_ci * @tc.desc: for interface coverage and check GetOrientation 249e0dac50fSopenharmony_ci * @tc.type: FUNC 250e0dac50fSopenharmony_ci */ 251e0dac50fSopenharmony_ciHWTEST_F(ScreenTest, GetOrientation, Function | SmallTest | Level2) 252e0dac50fSopenharmony_ci{ 253e0dac50fSopenharmony_ci std::unique_ptr<Mocker> m = std::make_unique<Mocker>(); 254e0dac50fSopenharmony_ci sptr<ScreenInfo> screenInfo = screen_->GetScreenInfo(); 255e0dac50fSopenharmony_ci screenInfo->SetParentId(0); 256e0dac50fSopenharmony_ci EXPECT_CALL(m->Mock(), GetScreenInfo(_)).Times(1).WillOnce(Return(screenInfo)); 257e0dac50fSopenharmony_ci ASSERT_EQ(Orientation::BEGIN, screen_->GetOrientation()); 258e0dac50fSopenharmony_ci} 259e0dac50fSopenharmony_ci 260e0dac50fSopenharmony_ci/** 261e0dac50fSopenharmony_ci * @tc.name: SetOrientation 262e0dac50fSopenharmony_ci * @tc.desc: SetOrientation 263e0dac50fSopenharmony_ci * @tc.type: FUNC 264e0dac50fSopenharmony_ci */ 265e0dac50fSopenharmony_ciHWTEST_F(ScreenTest, SetOrientation, Function | SmallTest | Level2) 266e0dac50fSopenharmony_ci{ 267e0dac50fSopenharmony_ci std::unique_ptr<Mocker> m = std::make_unique<Mocker>(); 268e0dac50fSopenharmony_ci EXPECT_CALL(m->Mock(), SetOrientation(_, _)).Times(1).WillOnce(Return(DMError::DM_OK)); 269e0dac50fSopenharmony_ci Orientation orientation = Orientation{0}; 270e0dac50fSopenharmony_ci auto res = screen_->SetOrientation(orientation); 271e0dac50fSopenharmony_ci ASSERT_EQ(DMError::DM_OK, res); 272e0dac50fSopenharmony_ci} 273e0dac50fSopenharmony_ci 274e0dac50fSopenharmony_ci/** 275e0dac50fSopenharmony_ci * @tc.name: GetPixelFormat 276e0dac50fSopenharmony_ci * @tc.desc: GetPixelFormat 277e0dac50fSopenharmony_ci * @tc.type: FUNC 278e0dac50fSopenharmony_ci */ 279e0dac50fSopenharmony_ciHWTEST_F(ScreenTest, GetPixelFormat, Function | SmallTest | Level2) 280e0dac50fSopenharmony_ci{ 281e0dac50fSopenharmony_ci std::unique_ptr<Mocker> m = std::make_unique<Mocker>(); 282e0dac50fSopenharmony_ci EXPECT_CALL(m->Mock(), GetPixelFormat(_, _)).Times(1).WillOnce(Return(DMError::DM_OK)); 283e0dac50fSopenharmony_ci GraphicPixelFormat pixelFormat = GraphicPixelFormat{GRAPHIC_PIXEL_FMT_CLUT8}; 284e0dac50fSopenharmony_ci auto res = screen_->GetPixelFormat(pixelFormat); 285e0dac50fSopenharmony_ci ASSERT_EQ(DMError::DM_OK, res); 286e0dac50fSopenharmony_ci} 287e0dac50fSopenharmony_ci 288e0dac50fSopenharmony_ci/** 289e0dac50fSopenharmony_ci * @tc.name: SetPixelFormat 290e0dac50fSopenharmony_ci * @tc.desc: SetPixelFormat 291e0dac50fSopenharmony_ci * @tc.type: FUNC 292e0dac50fSopenharmony_ci */ 293e0dac50fSopenharmony_ciHWTEST_F(ScreenTest, SetPixelFormat, Function | SmallTest | Level2) 294e0dac50fSopenharmony_ci{ 295e0dac50fSopenharmony_ci std::unique_ptr<Mocker> m = std::make_unique<Mocker>(); 296e0dac50fSopenharmony_ci EXPECT_CALL(m->Mock(), SetPixelFormat(_, _)).Times(1).WillOnce(Return(DMError::DM_OK)); 297e0dac50fSopenharmony_ci GraphicPixelFormat pixelFormat = GraphicPixelFormat{GRAPHIC_PIXEL_FMT_CLUT8}; 298e0dac50fSopenharmony_ci auto res = screen_->SetPixelFormat(pixelFormat); 299e0dac50fSopenharmony_ci ASSERT_EQ(DMError::DM_OK, res); 300e0dac50fSopenharmony_ci} 301e0dac50fSopenharmony_ci 302e0dac50fSopenharmony_ci/** 303e0dac50fSopenharmony_ci * @tc.name: GetSupportedHDRFormats 304e0dac50fSopenharmony_ci * @tc.desc: GetSupportedHDRFormats 305e0dac50fSopenharmony_ci * @tc.type: FUNC 306e0dac50fSopenharmony_ci */ 307e0dac50fSopenharmony_ciHWTEST_F(ScreenTest, GetSupportedHDRFormats, Function | SmallTest | Level2) 308e0dac50fSopenharmony_ci{ 309e0dac50fSopenharmony_ci std::unique_ptr<Mocker> m = std::make_unique<Mocker>(); 310e0dac50fSopenharmony_ci EXPECT_CALL(m->Mock(), GetSupportedHDRFormats(_, _)).Times(1).WillOnce(Return(DMError::DM_OK)); 311e0dac50fSopenharmony_ci std::vector<ScreenHDRFormat> hdrFormats; 312e0dac50fSopenharmony_ci auto res = screen_->GetSupportedHDRFormats(hdrFormats); 313e0dac50fSopenharmony_ci ASSERT_EQ(DMError::DM_OK, res); 314e0dac50fSopenharmony_ci} 315e0dac50fSopenharmony_ci 316e0dac50fSopenharmony_ci/** 317e0dac50fSopenharmony_ci * @tc.name: GetScreenHDRFormat 318e0dac50fSopenharmony_ci * @tc.desc: GetScreenHDRFormat 319e0dac50fSopenharmony_ci * @tc.type: FUNC 320e0dac50fSopenharmony_ci */ 321e0dac50fSopenharmony_ciHWTEST_F(ScreenTest, GetScreenHDRFormat, Function | SmallTest | Level2) 322e0dac50fSopenharmony_ci{ 323e0dac50fSopenharmony_ci std::unique_ptr<Mocker> m = std::make_unique<Mocker>(); 324e0dac50fSopenharmony_ci EXPECT_CALL(m->Mock(), GetScreenHDRFormat(_, _)).Times(1).WillOnce(Return(DMError::DM_OK)); 325e0dac50fSopenharmony_ci ScreenHDRFormat hdrFormat = ScreenHDRFormat{0}; 326e0dac50fSopenharmony_ci auto res = screen_->GetScreenHDRFormat(hdrFormat); 327e0dac50fSopenharmony_ci ASSERT_EQ(DMError::DM_OK, res); 328e0dac50fSopenharmony_ci} 329e0dac50fSopenharmony_ci 330e0dac50fSopenharmony_ci/** 331e0dac50fSopenharmony_ci * @tc.name: SetScreenHDRFormat 332e0dac50fSopenharmony_ci * @tc.desc: SetScreenHDRFormat 333e0dac50fSopenharmony_ci * @tc.type: FUNC 334e0dac50fSopenharmony_ci */ 335e0dac50fSopenharmony_ciHWTEST_F(ScreenTest, SetScreenHDRFormat, Function | SmallTest | Level2) 336e0dac50fSopenharmony_ci{ 337e0dac50fSopenharmony_ci std::unique_ptr<Mocker> m = std::make_unique<Mocker>(); 338e0dac50fSopenharmony_ci EXPECT_CALL(m->Mock(), SetScreenHDRFormat(_, _)).Times(1).WillOnce(Return(DMError::DM_OK)); 339e0dac50fSopenharmony_ci auto res = screen_->SetScreenHDRFormat(0); 340e0dac50fSopenharmony_ci ASSERT_EQ(DMError::DM_OK, res); 341e0dac50fSopenharmony_ci} 342e0dac50fSopenharmony_ci 343e0dac50fSopenharmony_ci/** 344e0dac50fSopenharmony_ci * @tc.name: GetSupportedColorSpaces 345e0dac50fSopenharmony_ci * @tc.desc: GetSupportedColorSpaces 346e0dac50fSopenharmony_ci * @tc.type: FUNC 347e0dac50fSopenharmony_ci */ 348e0dac50fSopenharmony_ciHWTEST_F(ScreenTest, GetSupportedColorSpaces, Function | SmallTest | Level2) 349e0dac50fSopenharmony_ci{ 350e0dac50fSopenharmony_ci std::unique_ptr<Mocker> m = std::make_unique<Mocker>(); 351e0dac50fSopenharmony_ci EXPECT_CALL(m->Mock(), GetSupportedColorSpaces(_, _)).Times(1).WillOnce(Return(DMError::DM_OK)); 352e0dac50fSopenharmony_ci std::vector<GraphicCM_ColorSpaceType> colorSpaces; 353e0dac50fSopenharmony_ci auto res = screen_->GetSupportedColorSpaces(colorSpaces); 354e0dac50fSopenharmony_ci ASSERT_EQ(DMError::DM_OK, res); 355e0dac50fSopenharmony_ci} 356e0dac50fSopenharmony_ci 357e0dac50fSopenharmony_ci/** 358e0dac50fSopenharmony_ci * @tc.name: GetScreenColorSpace 359e0dac50fSopenharmony_ci * @tc.desc: GetScreenColorSpace 360e0dac50fSopenharmony_ci * @tc.type: FUNC 361e0dac50fSopenharmony_ci */ 362e0dac50fSopenharmony_ciHWTEST_F(ScreenTest, GetScGetScreenColorSpacereenHDRFormat, Function | SmallTest | Level2) 363e0dac50fSopenharmony_ci{ 364e0dac50fSopenharmony_ci std::unique_ptr<Mocker> m = std::make_unique<Mocker>(); 365e0dac50fSopenharmony_ci EXPECT_CALL(m->Mock(), GetScreenColorSpace(_, _)).Times(1).WillOnce(Return(DMError::DM_OK)); 366e0dac50fSopenharmony_ci GraphicCM_ColorSpaceType colorSpace = GraphicCM_ColorSpaceType{GRAPHIC_CM_COLORSPACE_NONE}; 367e0dac50fSopenharmony_ci auto res = screen_->GetScreenColorSpace(colorSpace); 368e0dac50fSopenharmony_ci ASSERT_EQ(DMError::DM_OK, res); 369e0dac50fSopenharmony_ci} 370e0dac50fSopenharmony_ci 371e0dac50fSopenharmony_ci/** 372e0dac50fSopenharmony_ci * @tc.name: SetScreenColorSpace 373e0dac50fSopenharmony_ci * @tc.desc: SetScreenColorSpace 374e0dac50fSopenharmony_ci * @tc.type: FUNC 375e0dac50fSopenharmony_ci */ 376e0dac50fSopenharmony_ciHWTEST_F(ScreenTest, SetScreenColorSpace, Function | SmallTest | Level2) 377e0dac50fSopenharmony_ci{ 378e0dac50fSopenharmony_ci std::unique_ptr<Mocker> m = std::make_unique<Mocker>(); 379e0dac50fSopenharmony_ci EXPECT_CALL(m->Mock(), SetScreenColorSpace(_, _)).Times(1).WillOnce(Return(DMError::DM_OK)); 380e0dac50fSopenharmony_ci GraphicCM_ColorSpaceType colorSpace = GraphicCM_ColorSpaceType{GRAPHIC_CM_COLORSPACE_NONE}; 381e0dac50fSopenharmony_ci auto res = screen_->SetScreenColorSpace(colorSpace); 382e0dac50fSopenharmony_ci ASSERT_EQ(DMError::DM_OK, res); 383e0dac50fSopenharmony_ci} 384e0dac50fSopenharmony_ci 385e0dac50fSopenharmony_ci/** 386e0dac50fSopenharmony_ci * @tc.name: SetDensityDpi01 387e0dac50fSopenharmony_ci * @tc.desc: SetDensityDpi 388e0dac50fSopenharmony_ci * @tc.type: FUNC 389e0dac50fSopenharmony_ci */ 390e0dac50fSopenharmony_ciHWTEST_F(ScreenTest, SetDensityDpi, Function | SmallTest | Level2) 391e0dac50fSopenharmony_ci{ 392e0dac50fSopenharmony_ci auto res = screen_->SetDensityDpi(DOT_PER_INCH_MAXIMUM_VALUE + 1); 393e0dac50fSopenharmony_ci ASSERT_EQ(DMError::DM_ERROR_INVALID_PARAM, res); 394e0dac50fSopenharmony_ci 395e0dac50fSopenharmony_ci res = screen_->SetDensityDpi(100); 396e0dac50fSopenharmony_ci ASSERT_EQ(DMError::DM_OK, res); 397e0dac50fSopenharmony_ci} 398e0dac50fSopenharmony_ci 399e0dac50fSopenharmony_ci/** 400e0dac50fSopenharmony_ci * @tc.name: SetResolution 401e0dac50fSopenharmony_ci * @tc.desc: SetResolution 402e0dac50fSopenharmony_ci * @tc.type: FUNC 403e0dac50fSopenharmony_ci */ 404e0dac50fSopenharmony_ciHWTEST_F(ScreenTest, SetResolution, Function | SmallTest | Level2) 405e0dac50fSopenharmony_ci{ 406e0dac50fSopenharmony_ci std::unique_ptr<Mocker> m = std::make_unique<Mocker>(); 407e0dac50fSopenharmony_ci EXPECT_CALL(m->Mock(), SetResolution(_, _, _, _)).Times(1).WillOnce(Return(DMError::DM_OK)); 408e0dac50fSopenharmony_ci auto res = screen_->SetResolution(0, 0, 1000); 409e0dac50fSopenharmony_ci ASSERT_EQ(DMError::DM_ERROR_INVALID_PARAM, res); 410e0dac50fSopenharmony_ci 411e0dac50fSopenharmony_ci res = screen_->SetResolution(1, 1, 100); 412e0dac50fSopenharmony_ci ASSERT_EQ(DMError::DM_OK, res); 413e0dac50fSopenharmony_ci} 414e0dac50fSopenharmony_ci 415e0dac50fSopenharmony_ci/** 416e0dac50fSopenharmony_ci * @tc.name: SetDensityDpiSystem01 417e0dac50fSopenharmony_ci * @tc.desc: SetDensityDpiSystem 418e0dac50fSopenharmony_ci * @tc.type: FUNC 419e0dac50fSopenharmony_ci */ 420e0dac50fSopenharmony_ciHWTEST_F(ScreenTest, SetDensityDpiSystem, Function | SmallTest | Level2) 421e0dac50fSopenharmony_ci{ 422e0dac50fSopenharmony_ci auto res = screen_->SetDensityDpiSystem(DOT_PER_INCH_MAXIMUM_VALUE + 1); 423e0dac50fSopenharmony_ci ASSERT_EQ(DMError::DM_ERROR_INVALID_PARAM, res); 424e0dac50fSopenharmony_ci 425e0dac50fSopenharmony_ci res = screen_->SetDensityDpiSystem(100); 426e0dac50fSopenharmony_ci if (SceneBoardJudgement::IsSceneBoardEnabled()) { 427e0dac50fSopenharmony_ci ASSERT_EQ(DMError::DM_OK, res); 428e0dac50fSopenharmony_ci } else { 429e0dac50fSopenharmony_ci ASSERT_NE(DMError::DM_OK, res); 430e0dac50fSopenharmony_ci } 431e0dac50fSopenharmony_ci} 432e0dac50fSopenharmony_ci 433e0dac50fSopenharmony_ci/** 434e0dac50fSopenharmony_ci * @tc.name: GetDensityInCurResolution 435e0dac50fSopenharmony_ci * @tc.desc: GetDensityInCurResolution 436e0dac50fSopenharmony_ci * @tc.type: FUNC 437e0dac50fSopenharmony_ci */ 438e0dac50fSopenharmony_ciHWTEST_F(ScreenTest, GetDensityInCurResolution, Function | SmallTest | Level2) 439e0dac50fSopenharmony_ci{ 440e0dac50fSopenharmony_ci std::unique_ptr<Mocker> m = std::make_unique<Mocker>(); 441e0dac50fSopenharmony_ci EXPECT_CALL(m->Mock(), GetDensityInCurResolution(_, _)).Times(1).WillOnce(Return(DMError::DM_OK)); 442e0dac50fSopenharmony_ci float virtualPixelRatio; 443e0dac50fSopenharmony_ci auto res = screen_->GetDensityInCurResolution(virtualPixelRatio); 444e0dac50fSopenharmony_ci ASSERT_EQ(DMError::DM_OK, res); 445e0dac50fSopenharmony_ci} 446e0dac50fSopenharmony_ci} 447e0dac50fSopenharmony_ci} // namespace Rosen 448e0dac50fSopenharmony_ci} // namespace OHOS