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