• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021-2022 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include "screen_test.h"
17 #include "mock_display_manager_adapter.h"
18 #include "singleton_mocker.h"
19 
20 using namespace testing;
21 using namespace testing::ext;
22 
23 namespace OHOS {
24 namespace Rosen {
25 using Mocker = SingletonMocker<ScreenManagerAdapter, MockScreenManagerAdapter>;
26 
27 sptr<Display> ScreenTest::defaultDisplay_ = nullptr;
28 ScreenId ScreenTest::defaultScreenId_ = SCREEN_ID_INVALID;
29 
SetUpTestCase()30 void ScreenTest::SetUpTestCase()
31 {
32     defaultDisplay_ = DisplayManager::GetInstance().GetDefaultDisplay();
33     defaultScreenId_ = static_cast<ScreenId>(defaultDisplay_->GetId());
34 }
35 
TearDownTestCase()36 void ScreenTest::TearDownTestCase()
37 {
38 }
39 
SetUp()40 void ScreenTest::SetUp()
41 {
42 }
43 
TearDown()44 void ScreenTest::TearDown()
45 {
46 }
47 
48 namespace {
49 /**
50  * @tc.name: SetScreenActiveMode01
51  * @tc.desc: SetScreenActiveMode with valid modeId and return success
52  * @tc.type: FUNC
53  */
54 HWTEST_F(ScreenTest, SetScreenActiveMode01, Function | SmallTest | Level1)
55 {
56     auto screen = ScreenManager::GetInstance().GetScreenById(defaultScreenId_);
57     auto supportedModes = screen->GetSupportedModes();
58     ASSERT_GT(supportedModes.size(), 0);
59     std::unique_ptr<Mocker> m = std::make_unique<Mocker>();
60     EXPECT_CALL(m->Mock(), SetScreenActiveMode(_, _)).Times(1).WillOnce(Return(true));
61     bool res = screen->SetScreenActiveMode(supportedModes.size() - 1);
62     ASSERT_EQ(true, res);
63 }
64 
65 /**
66  * @tc.name: SetScreenActiveMode02
67  * @tc.desc: SetScreenActiveMode with valid modeId and return failed
68  * @tc.type: FUNC
69  */
70 HWTEST_F(ScreenTest, SetScreenActiveMode02, Function | SmallTest | Level1)
71 {
72     auto screen = ScreenManager::GetInstance().GetScreenById(defaultScreenId_);
73     auto supportedModes = screen->GetSupportedModes();
74     ASSERT_GT(supportedModes.size(), 0);
75     std::unique_ptr<Mocker> m = std::make_unique<Mocker>();
76     EXPECT_CALL(m->Mock(), SetScreenActiveMode(_, _)).Times(1).WillOnce(Return(false));
77     bool res = screen->SetScreenActiveMode(supportedModes.size() - 1);
78     ASSERT_EQ(false, res);
79 }
80 
81 /**
82  * @tc.name: GetScreenSupportedColorGamuts01
83  * @tc.desc: GetScreenSupportedColorGamuts
84  * @tc.type: FUNC
85  */
86 HWTEST_F(ScreenTest, GetScreenSupportedColorGamuts01, Function | SmallTest | Level2)
87 {
88     auto screen = ScreenManager::GetInstance().GetScreenById(defaultScreenId_);
89     std::unique_ptr<Mocker> m = std::make_unique<Mocker>();
90     EXPECT_CALL(m->Mock(), GetScreenSupportedColorGamuts(_, _)).Times(1).WillOnce(Return(DMError::DM_OK));
91     std::vector<ScreenColorGamut> colorGamuts;
92     auto res = screen->GetScreenSupportedColorGamuts(colorGamuts);
93     ASSERT_EQ(DMError::DM_OK, res);
94 }
95 
96 /**
97  * @tc.name: GetScreenColorGamut01
98  * @tc.desc: GetScreenColorGamut
99  * @tc.type: FUNC
100  */
101 HWTEST_F(ScreenTest, GetScreenColorGamut01, Function | SmallTest | Level2)
102 {
103     auto screen = ScreenManager::GetInstance().GetScreenById(defaultScreenId_);
104     std::unique_ptr<Mocker> m = std::make_unique<Mocker>();
105     EXPECT_CALL(m->Mock(), GetScreenColorGamut(_, _)).Times(1).WillOnce(Return(DMError::DM_OK));
106     ScreenColorGamut colorGamut = ScreenColorGamut::COLOR_GAMUT_SRGB;
107     auto res = screen->GetScreenColorGamut(colorGamut);
108     ASSERT_EQ(DMError::DM_OK, res);
109 }
110 
111 /**
112  * @tc.name: SetScreenColorGamut01
113  * @tc.desc: SetScreenColorGamut
114  * @tc.type: FUNC
115  */
116 HWTEST_F(ScreenTest, SetScreenColorGamut01, Function | SmallTest | Level2)
117 {
118     auto screen = ScreenManager::GetInstance().GetScreenById(defaultScreenId_);
119     std::unique_ptr<Mocker> m = std::make_unique<Mocker>();
120     EXPECT_CALL(m->Mock(), SetScreenColorGamut(_, _)).Times(1).WillOnce(Return(DMError::DM_OK));
121     ScreenColorGamut colorGamut = ScreenColorGamut::COLOR_GAMUT_SRGB;
122     auto res = screen->SetScreenColorGamut(colorGamut);
123     ASSERT_EQ(DMError::DM_OK, res);
124 }
125 
126 /**
127  * @tc.name: GetScreenGamutMap01
128  * @tc.desc: GetScreenGamutMap
129  * @tc.type: FUNC
130  */
131 HWTEST_F(ScreenTest, GetScreenGamutMap01, Function | SmallTest | Level2)
132 {
133     auto screen = ScreenManager::GetInstance().GetScreenById(defaultScreenId_);
134     std::unique_ptr<Mocker> m = std::make_unique<Mocker>();
135     EXPECT_CALL(m->Mock(), GetScreenGamutMap(_, _)).Times(1).WillOnce(Return(DMError::DM_OK));
136     ScreenGamutMap gamutMap = ScreenGamutMap::GAMUT_MAP_CONSTANT;
137     auto res = screen->GetScreenGamutMap(gamutMap);
138     ASSERT_EQ(DMError::DM_OK, res);
139 }
140 
141 /**
142  * @tc.name: SetScreenGamutMap01
143  * @tc.desc: SetScreenGamutMap
144  * @tc.type: FUNC
145  */
146 HWTEST_F(ScreenTest, SetScreenGamutMap01, Function | SmallTest | Level2)
147 {
148     auto screen = ScreenManager::GetInstance().GetScreenById(defaultScreenId_);
149     std::unique_ptr<Mocker> m = std::make_unique<Mocker>();
150     EXPECT_CALL(m->Mock(), SetScreenGamutMap(_, _)).Times(1).WillOnce(Return(DMError::DM_OK));
151     ScreenGamutMap gamutMap = ScreenGamutMap::GAMUT_MAP_CONSTANT;
152     auto res = screen->SetScreenGamutMap(gamutMap);
153     ASSERT_EQ(DMError::DM_OK, res);
154 }
155 
156 /**
157  * @tc.name: SetScreenColorTransform01
158  * @tc.desc: SetScreenColorTransform
159  * @tc.type: FUNC
160  */
161 HWTEST_F(ScreenTest, SetScreenColorTransform01, Function | SmallTest | Level2)
162 {
163     auto screen = ScreenManager::GetInstance().GetScreenById(defaultScreenId_);
164     std::unique_ptr<Mocker> m = std::make_unique<Mocker>();
165     EXPECT_CALL(m->Mock(), SetScreenColorTransform(_)).Times(1).WillOnce(Return(DMError::DM_OK));
166     auto res = screen->SetScreenColorTransform();
167     ASSERT_EQ(DMError::DM_OK, res);
168 }
169 }
170 } // namespace Rosen
171 } // namespace OHOS