• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2025 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 <chrono>
18 #include <thread>
19 
20 #include "accesstoken_kit.h"
21 #include "avmeta_data.h"
22 #include "avplayback_state.h"
23 #include "avsession_errors.h"
24 #include "avsession_item.h"
25 #include "avsession_log.h"
26 #include "avsession_service.h"
27 #include "migrate_avsession_constant.h"
28 #include "migrate_avsession_manager.h"
29 #include "nativetoken_kit.h"
30 #include "token_setproc.h"
31 #include "system_ability_definition.h"
32 
33 using namespace testing::ext;
34 using namespace OHOS::AVSession;
35 
36 static std::shared_ptr<AVSessionService> g_AVSessionService {nullptr};
37 static std::shared_ptr<MigrateAVSessionProxy> g_MigrateAVSessionProxy {nullptr};
38 
39 class MigrateAVSessionManagerTest : public testing::Test {
40 public:
41     static void SetUpTestCase();
42     static void TearDownTestCase();
43     void SetUp();
44     void TearDown();
45 };
46 
SetUpTestCase()47 void MigrateAVSessionManagerTest::SetUpTestCase()
48 {
49     SLOGI("MigrateAVSessionManagerTest SetUpTestCase");
50     g_AVSessionService =  std::make_shared<AVSessionService>(OHOS::AVSESSION_SERVICE_ID);
51     g_MigrateAVSessionProxy = std::make_shared<MigrateAVSessionProxy>(g_AVSessionService.get());
52 }
53 
TearDownTestCase()54 void MigrateAVSessionManagerTest::TearDownTestCase()
55 {
56     SLOGI("MigrateAVSessionManagerTest TearDownTestCase");
57 }
58 
SetUp()59 void MigrateAVSessionManagerTest::SetUp()
60 {
61     SLOGI("MigrateAVSessionManagerTest SetUp");
62 }
63 
TearDown()64 void MigrateAVSessionManagerTest::TearDown()
65 {
66     SLOGI("MigrateAVSessionManagerTest TearDown");
67 }
68 
69 /**
70 * @tc.name: CreateRemoteSessionProxy001
71 * @tc.desc: fail to create
72 * @tc.type: FUNC
73 * @tc.require:
74 */
75 static HWTEST_F(MigrateAVSessionManagerTest, CreateRemoteSessionProxy001, TestSize.Level1)
76 {
77     MigrateAVSessionManager::GetInstance().refs_.store(0);
78     std::shared_ptr<MigrateAVSessionProxy> proxy {nullptr};
79     std::string networkId = "";
80     std::string scene = "";
81     MigrateAVSessionManager::GetInstance().CreateRemoteSessionProxy(networkId, scene, proxy);
82     EXPECT_EQ(MigrateAVSessionManager::GetInstance().refs_.load(memory_order_relaxed), 0);
83 }
84 
85 /**
86 * @tc.name: CreateRemoteSessionProxy002
87 * @tc.desc: fail to create
88 * @tc.type: FUNC
89 * @tc.require:
90 */
91 static HWTEST_F(MigrateAVSessionManagerTest, CreateRemoteSessionProxy002, TestSize.Level1)
92 {
93     MigrateAVSessionManager::GetInstance().refs_.store(0);
94     std::string networkId = "";
95     std::string scene = "";
96     MigrateAVSessionManager::GetInstance().CreateRemoteSessionProxy(networkId, scene, g_MigrateAVSessionProxy);
97     EXPECT_EQ(MigrateAVSessionManager::GetInstance().refs_.load(memory_order_relaxed), 0);
98 }
99 
100 /**
101 * @tc.name: CreateRemoteSessionProxy003
102 * @tc.desc: fail to create
103 * @tc.type: FUNC
104 * @tc.require:
105 */
106 static HWTEST_F(MigrateAVSessionManagerTest, CreateRemoteSessionProxy003, TestSize.Level1)
107 {
108     MigrateAVSessionManager::GetInstance().refs_.store(0);
109     std::string networkId = std::string();
110     std::string scene;
111     MigrateAVSessionManager::GetInstance().CreateRemoteSessionProxy(networkId, scene, g_MigrateAVSessionProxy);
112     EXPECT_EQ(MigrateAVSessionManager::GetInstance().refs_.load(memory_order_relaxed), 0);
113 }
114 
115 /**
116 * @tc.name: CreateRemoteSessionProxy004
117 * @tc.desc: fail to create
118 * @tc.type: FUNC
119 * @tc.require:
120 */
121 static HWTEST_F(MigrateAVSessionManagerTest, CreateRemoteSessionProxy004, TestSize.Level1)
122 {
123     MigrateAVSessionManager::GetInstance().refs_.store(0);
124     std::string networkId = "test";
125     std::string scene = "test";
126     MigrateAVSessionManager::GetInstance().CreateRemoteSessionProxy(networkId, scene, g_MigrateAVSessionProxy);
127     EXPECT_EQ(MigrateAVSessionManager::GetInstance().refs_.load(memory_order_relaxed), 0);
128 }
129 
130 /**
131 * @tc.name: CreateRemoteSessionProxy005
132 * @tc.desc: fail to create
133 * @tc.type: FUNC
134 * @tc.require:
135 */
136 static HWTEST_F(MigrateAVSessionManagerTest, CreateRemoteSessionProxy005, TestSize.Level1)
137 {
138     MigrateAVSessionManager::GetInstance().refs_.store(0);
139     std::string networkId = "test";
140     std::string scene = "SuperLauncher-Dual";
141     MigrateAVSessionManager::GetInstance().CreateRemoteSessionProxy(networkId, scene, g_MigrateAVSessionProxy);
142     EXPECT_EQ(MigrateAVSessionManager::GetInstance().refs_.load(memory_order_relaxed), 1);
143 }
144 
145 /**
146 * @tc.name: CreateRemoteSessionProxy006
147 * @tc.desc: fail to create
148 * @tc.type: FUNC
149 * @tc.require:
150 */
151 static HWTEST_F(MigrateAVSessionManagerTest, CreateRemoteSessionProxy006, TestSize.Level1)
152 {
153     MigrateAVSessionManager::GetInstance().refs_.store(0);
154     std::string networkId = "test";
155     std::string scene = "MigrateWithNext";
156     MigrateAVSessionManager::GetInstance().proxyMap_.insert({scene, g_MigrateAVSessionProxy});
157     MigrateAVSessionManager::GetInstance().CreateRemoteSessionProxy(networkId, scene, g_MigrateAVSessionProxy);
158     EXPECT_EQ(MigrateAVSessionManager::GetInstance().refs_.load(memory_order_relaxed), 0);
159 }
160 
161 /**
162 * @tc.name: ReleaseRemoteSessionProxy001
163 * @tc.desc: fail to release
164 * @tc.type: FUNC
165 * @tc.require:
166 */
167 static HWTEST_F(MigrateAVSessionManagerTest, ReleaseRemoteSessionProxy001, TestSize.Level1)
168 {
169     MigrateAVSessionManager::GetInstance().refs_.store(0);
170     std::string networkId = "test";
171     std::string scene = "";
172     MigrateAVSessionManager::GetInstance().ReleaseRemoteSessionProxy(networkId, scene);
173     EXPECT_EQ(MigrateAVSessionManager::GetInstance().refs_.load(memory_order_relaxed), 0);
174 }
175 
176 /**
177 * @tc.name: ReleaseRemoteSessionProxy002
178 * @tc.desc: fail to release
179 * @tc.type: FUNC
180 * @tc.require:
181 */
182 static HWTEST_F(MigrateAVSessionManagerTest, ReleaseRemoteSessionProxy002, TestSize.Level1)
183 {
184     MigrateAVSessionManager::GetInstance().refs_.store(0);
185     std::string networkId = "test";
186     std::string scene = "";
187     MigrateAVSessionManager::GetInstance().ReleaseRemoteSessionProxy(networkId, scene);
188     EXPECT_EQ(MigrateAVSessionManager::GetInstance().refs_.load(memory_order_relaxed), 0);
189 }
190 
191 /**
192 * @tc.name: ReleaseRemoteSessionProxy003
193 * @tc.desc: fail to release
194 * @tc.type: FUNC
195 * @tc.require:
196 */
197 static HWTEST_F(MigrateAVSessionManagerTest, ReleaseRemoteSessionProxy003, TestSize.Level1)
198 {
199     MigrateAVSessionManager::GetInstance().refs_.store(0);
200     std::string networkId = "test";
201     std::string scene = "test";
202     MigrateAVSessionManager::GetInstance().ReleaseRemoteSessionProxy(networkId, scene);
203     EXPECT_EQ(MigrateAVSessionManager::GetInstance().refs_.load(memory_order_relaxed), 0);
204 }
205 
206 /**
207 * @tc.name: ReleaseRemoteSessionProxy004
208 * @tc.desc: fail to release
209 * @tc.type: FUNC
210 * @tc.require:
211 */
212 static HWTEST_F(MigrateAVSessionManagerTest, ReleaseRemoteSessionProxy004, TestSize.Level1)
213 {
214     MigrateAVSessionManager::GetInstance().refs_.store(0);
215     std::string networkId = "test";
216     std::string scene = "MigrateWithNext";
217     MigrateAVSessionManager::GetInstance().ReleaseRemoteSessionProxy(networkId, scene);
218     EXPECT_EQ(MigrateAVSessionManager::GetInstance().refs_.load(memory_order_relaxed), 0);
219 }
220 
221 /**
222 * @tc.name: ReleaseRemoteSessionProxy005
223 * @tc.desc: fail to release
224 * @tc.type: FUNC
225 * @tc.require:
226 */
227 static HWTEST_F(MigrateAVSessionManagerTest, ReleaseRemoteSessionProxy005, TestSize.Level1)
228 {
229     MigrateAVSessionManager::GetInstance().refs_.store(0);
230     std::string networkId = "test";
231     std::string scene = "SuperLauncher-Dual";
232     MigrateAVSessionManager::GetInstance().CreateRemoteSessionProxy(networkId, scene, g_MigrateAVSessionProxy);
233     EXPECT_EQ(MigrateAVSessionManager::GetInstance().refs_.load(memory_order_relaxed), 0);
234     MigrateAVSessionManager::GetInstance().ReleaseRemoteSessionProxy(networkId, scene);
235 }
236 
237 /**
238 * @tc.name: ReleaseRemoteSessionProxy006
239 * @tc.desc: fail to release
240 * @tc.type: FUNC
241 * @tc.require:
242 */
243 static HWTEST_F(MigrateAVSessionManagerTest, ReleaseRemoteSessionProxy006, TestSize.Level1)
244 {
245     MigrateAVSessionManager::GetInstance().refs_.store(0);
246     std::string networkId = "test";
247     std::string scene = "test";
248     MigrateAVSessionManager::GetInstance().ReleaseRemoteSessionProxy(networkId, scene);
249     EXPECT_EQ(MigrateAVSessionManager::GetInstance().refs_.load(memory_order_relaxed), 0);
250 }
251