1 /*
2 * Copyright (c) 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 "display_mock_object_test.h"
17 #include "display_log.h"
18 #include "display_power_mgr_client.h"
19 #include "display_power_mgr_proxy.h"
20 #include "mock_display_remote_object.h"
21 #include "power_state_machine_info.h"
22
23 using namespace testing::ext;
24 using namespace OHOS::PowerMgr;
25 using namespace OHOS::DisplayPowerMgr;
26 using namespace OHOS;
27 using namespace std;
28
29 namespace {
30 static constexpr uint32_t BRIGHTNESS_SETTING_VALUE = 50;
31 static constexpr uint32_t BRIGHTNESS_OVERRIDE_VALUE = 100;
32 static constexpr uint32_t BRIGHTNESS_DURATION = 0;
33 static constexpr uint32_t BRIGHTNESS_DEFAULT_VALUE = 102;
34 static constexpr uint32_t BRIGHTNESS_MIN_VALUE = 5;
35 static constexpr uint32_t BRIGHTNESS_MAX_VALUE = 255;
36 static constexpr uint32_t BRIGHTNESS_NONE_VALUE = 0;
37 static constexpr uint32_t DISPLAY_ID = 0;
38 static constexpr uint32_t MAIN_ID_PROXY = 0;
39 static constexpr uint32_t REASON = 0;
40 static constexpr int32_t BRIGHTNESS_ADJUST_VALUE = 150;
41 static constexpr int32_t MAIN_ID_CLIENT = 0;
42 static constexpr int32_t TIMEOUT_MS = 500;
43 static constexpr double DISCOUNT_VALUE = 0.30;
44 } // namespace
45
OnDisplayStateChanged(uint32_t displayId,DisplayPowerMgr::DisplayState state)46 void DisplayMockObjectTest::DisplayPowerMgrTestCallback::OnDisplayStateChanged(
47 uint32_t displayId, DisplayPowerMgr::DisplayState state)
48 {
49 DISPLAY_HILOGI(LABEL_TEST, "DisplayPowerMgrTestCallback::OnDisplayStateChangedStub");
50 }
51
52 namespace {
53 /**
54 * @tc.name: DisplayMockObjectTest_001
55 * @tc.desc: test DisplayPowerMgrProxy function(IRemoteObject is mock, "SendRequest" function return false)
56 * @tc.type: FUNC
57 * @tc.require: issueI5YZQR
58 */
59 HWTEST_F(DisplayMockObjectTest, DisplayMockObjectTest_001, TestSize.Level0)
60 {
61 sptr<MockDisplayRemoteObject> sptrRemoteObj = new MockDisplayRemoteObject();
62 auto sptrDisplayProxy = std::make_shared<DisplayPowerMgr::DisplayPowerMgrProxy>(sptrRemoteObj);
63 EXPECT_FALSE(sptrDisplayProxy->SetDisplayState(DISPLAY_ID, DisplayPowerMgr::DisplayState::DISPLAY_ON, REASON));
64 EXPECT_NE(DisplayPowerMgr::DisplayState::DISPLAY_ON, sptrDisplayProxy->GetDisplayState(DISPLAY_ID));
65 std::vector<uint32_t> result;
66 result.push_back(DISPLAY_ID);
67 EXPECT_NE(result, sptrDisplayProxy->GetDisplayIds());
68 EXPECT_EQ(MAIN_ID_PROXY, sptrDisplayProxy->GetMainDisplayId());
69 EXPECT_FALSE(sptrDisplayProxy->SetBrightness(BRIGHTNESS_SETTING_VALUE, DISPLAY_ID));
70 EXPECT_FALSE(sptrDisplayProxy->DiscountBrightness(DISCOUNT_VALUE, DISPLAY_ID));
71 EXPECT_FALSE(sptrDisplayProxy->OverrideBrightness(BRIGHTNESS_OVERRIDE_VALUE, DISPLAY_ID));
72 EXPECT_FALSE(sptrDisplayProxy->RestoreBrightness(DISPLAY_ID));
73 EXPECT_EQ(BRIGHTNESS_NONE_VALUE, sptrDisplayProxy->GetBrightness(DISPLAY_ID));
74 EXPECT_EQ(BRIGHTNESS_NONE_VALUE, sptrDisplayProxy->GetDeviceBrightness(DISPLAY_ID));
75 EXPECT_EQ(BRIGHTNESS_NONE_VALUE, sptrDisplayProxy->GetDefaultBrightness());
76 EXPECT_EQ(BRIGHTNESS_NONE_VALUE, sptrDisplayProxy->GetMaxBrightness());
77 EXPECT_EQ(BRIGHTNESS_NONE_VALUE, sptrDisplayProxy->GetMinBrightness());
78 EXPECT_FALSE(sptrDisplayProxy->AutoAdjustBrightness(true));
79 EXPECT_FALSE(sptrDisplayProxy->AdjustBrightness(DISPLAY_ID, BRIGHTNESS_ADJUST_VALUE, BRIGHTNESS_DURATION));
80 EXPECT_FALSE(sptrDisplayProxy->AutoAdjustBrightness(false));
81 EXPECT_FALSE(sptrDisplayProxy->IsAutoAdjustBrightness());
82 EXPECT_FALSE(sptrDisplayProxy->BoostBrightness(TIMEOUT_MS, DISPLAY_ID));
83 EXPECT_FALSE(sptrDisplayProxy->CancelBoostBrightness(DISPLAY_ID));
84 }
85
86 /**
87 * @tc.name: DisplayMockObjectTest_001
88 * @tc.desc: test DisplayPowerMgrClient
89 * @tc.type: FUNC
90 * @tc.require: issueI5YZQR
91 */
92 HWTEST_F(DisplayMockObjectTest, DisplayMockObjectTest_002, TestSize.Level0)
93 {
94 auto& client = DisplayPowerMgrClient::GetInstance();
95 std::vector<uint32_t> result;
96 result.push_back(DISPLAY_ID);
97 EXPECT_TRUE(client.SetDisplayState(DisplayPowerMgr::DisplayState::DISPLAY_ON));
98 EXPECT_EQ(DisplayPowerMgr::DisplayState::DISPLAY_ON, client.GetDisplayState(DISPLAY_ID));
99 EXPECT_EQ(result, client.GetDisplayIds());
100 EXPECT_EQ(MAIN_ID_CLIENT, client.GetMainDisplayId());
101 EXPECT_TRUE(client.SetBrightness(BRIGHTNESS_SETTING_VALUE, DISPLAY_ID));
102 EXPECT_TRUE(client.DiscountBrightness(DISCOUNT_VALUE, DISPLAY_ID));
103 EXPECT_TRUE(client.OverrideBrightness(BRIGHTNESS_OVERRIDE_VALUE, DISPLAY_ID));
104 EXPECT_TRUE(client.RestoreBrightness(DISPLAY_ID));
105 EXPECT_EQ(BRIGHTNESS_SETTING_VALUE, client.GetBrightness(DISPLAY_ID));
106 EXPECT_EQ(BRIGHTNESS_SETTING_VALUE * DISCOUNT_VALUE, client.GetDeviceBrightness(DISPLAY_ID));
107 EXPECT_EQ(BRIGHTNESS_DEFAULT_VALUE, client.GetDefaultBrightness());
108 EXPECT_EQ(BRIGHTNESS_MAX_VALUE, client.GetMaxBrightness());
109 EXPECT_EQ(BRIGHTNESS_MIN_VALUE, client.GetMinBrightness());
110 EXPECT_TRUE(client.AdjustBrightness(BRIGHTNESS_ADJUST_VALUE, BRIGHTNESS_DURATION, DISPLAY_ID));
111 EXPECT_FALSE(client.IsAutoAdjustBrightness());
112 EXPECT_TRUE(client.BoostBrightness(TIMEOUT_MS, DISPLAY_ID));
113 EXPECT_TRUE(client.CancelBoostBrightness(DISPLAY_ID));
114 }
115 } // namespace
116