1 /*
2 * Copyright (c) 2023-2023 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 <gtest/gtest.h>
17 #include "picture_in_picture_option.h"
18 #include "wm_common.h"
19 using namespace testing;
20 using namespace testing::ext;
21
22 namespace OHOS {
23 namespace Rosen {
24 class PictureInPictureOptionTest : public testing::Test {
25 public:
26 static void SetUpTestCase();
27
28 static void TearDownTestCase();
29
30 void SetUp() override;
31
32 void TearDown() override;
33 };
34
SetUpTestCase()35 void PictureInPictureOptionTest::SetUpTestCase() {
36 }
37
TearDownTestCase()38 void PictureInPictureOptionTest::TearDownTestCase() {
39 }
40
SetUp()41 void PictureInPictureOptionTest::SetUp() {
42 }
43
TearDown()44 void PictureInPictureOptionTest::TearDown() {
45 }
46
47 namespace {
48
49 /**
50 * @tc.name: Context
51 * @tc.desc: SetContext/GetContext
52 * @tc.type: FUNC
53 */
54 HWTEST_F(PictureInPictureOptionTest, Context, Function | SmallTest | Level2)
55 {
56 void* contextPtr = nullptr;
57 sptr<PipOption> option = new PipOption();
58 option->SetContext(contextPtr);
59 ASSERT_EQ(contextPtr, option->GetContext());
60 }
61
62 /**
63 * @tc.name: PipTemplate
64 * @tc.desc: SetPipTemplate/GetPipTemplate
65 * @tc.type: FUNC
66 */
67 HWTEST_F(PictureInPictureOptionTest, PipTemplate, Function | SmallTest | Level2)
68 {
69 sptr<PipOption> option = new PipOption();
70 option->SetPipTemplate(100);
71 ASSERT_EQ(100, option->GetPipTemplate());
72 }
73
74 /**
75 * @tc.name: PiPControlStatus
76 * @tc.desc: SetPiPControlStatus/GetControlStatus
77 * @tc.type: FUNC
78 */
79 HWTEST_F(PictureInPictureOptionTest, SetPiPControlStatus, Function | SmallTest | Level2)
80 {
81 auto option = sptr<PipOption>::MakeSptr();
82 ASSERT_NE(nullptr, option);
83 auto controlType = PiPControlType::VIDEO_PLAY_PAUSE;
84 auto status = PiPControlStatus::PLAY;
85 option->SetPiPControlStatus(controlType, status);
86 controlType = PiPControlType::END;
87 option->SetPiPControlStatus(controlType, status);
88 ASSERT_NE(0, option->GetControlStatus().size());
89 }
90
91 /**
92 * @tc.name: PiPControlEnable
93 * @tc.desc: SetPiPControlEnabled/GetControlEnable
94 * @tc.type: FUNC
95 */
96 HWTEST_F(PictureInPictureOptionTest, SetPiPControlEnabled, Function | SmallTest | Level2)
97 {
98 auto option = sptr<PipOption>::MakeSptr();
99 ASSERT_NE(nullptr, option);
100 auto controlType = PiPControlType::VIDEO_PLAY_PAUSE;
101 auto enabled = PiPControlStatus::ENABLED;
102 option->SetPiPControlEnabled(controlType, enabled);
103 controlType = PiPControlType::END;
104 option->SetPiPControlEnabled(controlType, enabled);
105 ASSERT_NE(0, option->GetControlEnable().size());
106 }
107
108 /**
109 * @tc.name: NavigationId
110 * @tc.desc: SetNavigationId/GetNavigationId
111 * @tc.type: FUNC
112 */
113 HWTEST_F(PictureInPictureOptionTest, NavigationId, Function | SmallTest | Level2)
114 {
115 sptr<PipOption> option = new PipOption();
116 std::string navigationId = "abc";
117 option->SetNavigationId(navigationId);
118 ASSERT_EQ(navigationId, option->GetNavigationId());
119 }
120
121 /**
122 * @tc.name: ControlGroup
123 * @tc.desc: SetControlGroup/GetControlGroup
124 * @tc.type: FUNC
125 */
126 HWTEST_F(PictureInPictureOptionTest, SetGetControlGroupTest, Function | SmallTest | Level2)
127 {
128 sptr<PipOption> option = new PipOption();
129 std::vector<std::uint32_t> controlGroup;
130 controlGroup.push_back(static_cast<uint32_t>(PiPControlGroup::VIDEO_CALL_MICROPHONE_SWITCH));
131 controlGroup.push_back(static_cast<uint32_t>(PiPControlGroup::VIDEO_CALL_HANG_UP_BUTTON));
132 controlGroup.push_back(static_cast<uint32_t>(PiPControlGroup::VIDEO_CALL_CAMERA_SWITCH));
133 option->SetControlGroup(controlGroup);
134 ASSERT_NE(option->GetControlGroup().size(), 0);
135 }
136
137 /**
138 * @tc.name: ContentSize
139 * @tc.desc: SetContentSize/GetContentSize
140 * @tc.type: FUNC
141 */
142 HWTEST_F(PictureInPictureOptionTest, ContentSize, Function | SmallTest | Level2)
143 {
144 sptr<PipOption> option = new PipOption();
145 uint32_t width = 800;
146 uint32_t height = 600;
147 option->SetContentSize(width, height);
148 uint32_t w = 0;
149 uint32_t h = 0;
150 option->GetContentSize(w, h);
151 ASSERT_EQ(width, w);
152 ASSERT_EQ(height, h);
153 }
154
155 /**
156 * @tc.name: NodeController
157 * @tc.desc: SetNodeControllerRef/GetNodeControllerRef
158 * @tc.type: FUNC
159 */
160 HWTEST_F(PictureInPictureOptionTest, NodeController, Function | SmallTest | Level2)
161 {
162 sptr<PipOption> option = sptr<PipOption>::MakeSptr();
163 option->SetNodeControllerRef(nullptr);
164 ASSERT_EQ(option->GetNodeControllerRef(), nullptr);
165 }
166
167 /**
168 * @tc.name: TypeNodeRef
169 * @tc.desc: SetTypeNodeRef/GetTypeNodeRef
170 * @tc.type: FUNC
171 */
172 HWTEST_F(PictureInPictureOptionTest, TypeNodeRef, Function | SmallTest | Level2)
173 {
174 sptr<PipOption> option = sptr<PipOption>::MakeSptr();
175 option->SetTypeNodeRef(nullptr);
176 ASSERT_EQ(option->GetTypeNodeRef(), nullptr);
177 }
178
179 /**
180 * @tc.name: TypeNodeEnabled
181 * @tc.desc: SetTypeNodeEnabled/IsTypeNodeEnabled
182 * @tc.type: FUNC
183 */
184 HWTEST_F(PictureInPictureOptionTest, TypeNodeEnabled, Function | SmallTest | Level2)
185 {
186 sptr<PipOption> option = sptr<PipOption>::MakeSptr();
187 option->SetTypeNodeEnabled(true);
188 ASSERT_TRUE(option->IsTypeNodeEnabled());
189 option->SetTypeNodeEnabled(false);
190 ASSERT_TRUE(!option->IsTypeNodeEnabled());
191 }
192 }
193 }
194 }