1 /*
2 * Copyright (c) 2024 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 "avsession_errors.h"
18 #include "avsession_log.h"
19 #include "av_session.h"
20 #include "avsession_item.h"
21 #include "avsession_service.h"
22 #include "avsession_info.h"
23 #include "avplayback_state.h"
24 #include "remote_session_source_impl.h"
25 #include "remote_session_source_proxy.h"
26
27 namespace OHOS::AVSession {
28
29 sptr <AVSessionService> g_AVSessionService = nullptr;
30 sptr <AVSessionItem> g_AVSessionItem = nullptr;
31 std::shared_ptr<RemoteSessionSource> g_RemoteSessionSource;
32
33 class RemoteSessionSourceTest : public testing::Test {
34 public:
35 static void SetUpTestCase(void);
36 static void TearDownTestCase(void);
37 void SetUp();
38 void TearDown();
39 };
40
SetUpTestCase()41 void RemoteSessionSourceTest::SetUpTestCase()
42 {
43 g_AVSessionService = new AVSessionService(OHOS::AVSESSION_SERVICE_ID);
44 OHOS::AppExecFwk::ElementName elementName;
45 elementName.SetBundleName("testRemoteSource.ohos.g_AVSessionItem");
46 elementName.SetAbilityName("testRemoteSource.ability");
47 g_AVSessionItem = g_AVSessionService->CreateSessionInner("testRemoteSource",
48 AVSession::SESSION_TYPE_VOICE_CALL, false, elementName);
49 std::string sourceDevice = "sourceDevice";
50 std::string sinkDevice = "sinkDevice";
51 std::string sinkCapability = "sinkCapability";
52 g_RemoteSessionSource = std::make_shared<RemoteSessionSourceProxy>();
53 ASSERT_NE(g_RemoteSessionSource, nullptr);
54 g_RemoteSessionSource->CastSessionToRemote(g_AVSessionItem, sourceDevice, sinkDevice, sinkCapability);
55 }
56
TearDownTestCase()57 void RemoteSessionSourceTest::TearDownTestCase()
58 {
59 g_AVSessionItem->Destroy();
60 g_AVSessionService->Close();
61 }
62
SetUp()63 void RemoteSessionSourceTest::SetUp()
64 {
65 }
66
TearDown()67 void RemoteSessionSourceTest::TearDown()
68 {
69 }
70
71 /**
72 * @tc.name: SetAVMetaData001
73 * @tc.desc: Test SetAVMetaData
74 * @tc.type: FUNC
75 */
HWTEST_F(RemoteSessionSourceTest, SetAVMetaData001, testing::ext::TestSize.Level1)76 static HWTEST_F(RemoteSessionSourceTest, SetAVMetaData001, testing::ext::TestSize.Level1)
77 {
78 SLOGI("SetAVMetaData001 begin!");
79 AVMetaData metaData;
80 int32_t ret = g_RemoteSessionSource->SetAVMetaData(metaData);
81 EXPECT_EQ(ret, AVSESSION_ERROR);
82 SLOGI("SetAVMetaData001 end!");
83 }
84
85 /**
86 * @tc.name: SetAVPlaybackState001
87 * @tc.desc: Test SetAVPlaybackState
88 * @tc.type: FUNC
89 */
HWTEST_F(RemoteSessionSourceTest, SetAVPlaybackState001, testing::ext::TestSize.Level1)90 static HWTEST_F(RemoteSessionSourceTest, SetAVPlaybackState001, testing::ext::TestSize.Level1)
91 {
92 SLOGI("SetAVPlaybackState001 begin!");
93 AVPlaybackState state;
94 int32_t ret = g_RemoteSessionSource->SetAVPlaybackState(state);
95 EXPECT_EQ(ret, AVSESSION_ERROR);
96 SLOGI("SetAVPlaybackState001 end!");
97 }
98
99 /**
100 * @tc.name: SetSessionEventRemote001
101 * @tc.desc: Test SetSessionEventRemote
102 * @tc.type: FUNC
103 */
HWTEST_F(RemoteSessionSourceTest, SetSessionEventRemote001, testing::ext::TestSize.Level1)104 static HWTEST_F(RemoteSessionSourceTest, SetSessionEventRemote001, testing::ext::TestSize.Level1)
105 {
106 SLOGI("SetSessionEventRemote001 begin!");
107 std::string event = "event";
108 AAFwk::WantParams args;
109 int32_t ret = g_RemoteSessionSource->SetSessionEventRemote(event, args);
110 EXPECT_EQ(ret, AVSESSION_ERROR);
111 SLOGI("SetSessionEventRemote001 end!");
112 }
113
114 /**
115 * @tc.name: SetAVQueueItems001
116 * @tc.desc: Test SetAVQueueItems
117 * @tc.type: FUNC
118 */
HWTEST_F(RemoteSessionSourceTest, SetAVQueueItems001, testing::ext::TestSize.Level1)119 static HWTEST_F(RemoteSessionSourceTest, SetAVQueueItems001, testing::ext::TestSize.Level1)
120 {
121 SLOGI("SetAVQueueItems001 begin!");
122 std::vector<AVQueueItem> items;
123 int32_t ret = g_RemoteSessionSource->SetAVQueueItems(items);
124 EXPECT_EQ(ret, AVSESSION_ERROR);
125 SLOGI("SetAVQueueItems001 end!");
126 }
127
128 /**
129 * @tc.name: SetAVQueueTitle001
130 * @tc.desc: Test SetAVQueueTitle
131 * @tc.type: FUNC
132 */
HWTEST_F(RemoteSessionSourceTest, SetAVQueueTitle001, testing::ext::TestSize.Level1)133 static HWTEST_F(RemoteSessionSourceTest, SetAVQueueTitle001, testing::ext::TestSize.Level1)
134 {
135 SLOGI("SetAVQueueTitle001 begin!");
136 std::string title = "title";
137 int32_t ret = g_RemoteSessionSource->SetAVQueueTitle(title);
138 EXPECT_EQ(ret, AVSESSION_ERROR);
139 SLOGI("SetAVQueueTitle001 end!");
140 }
141
142 /**
143 * @tc.name: GetSinkPlaybackStateMaskType001
144 * @tc.desc: Test GetSinkPlaybackStateMaskType
145 * @tc.type: FUNC
146 */
HWTEST_F(RemoteSessionSourceTest, GetSinkPlaybackStateMaskType001, testing::ext::TestSize.Level1)147 static HWTEST_F(RemoteSessionSourceTest, GetSinkPlaybackStateMaskType001, testing::ext::TestSize.Level1)
148 {
149 SLOGI("GetSinkPlaybackStateMaskType001 begin!");
150 AAFwk::WantParams extras;
151 int32_t ret = g_RemoteSessionSource->SetExtrasRemote(extras);
152 EXPECT_EQ(ret, AVSESSION_ERROR);
153 SLOGI("GetSinkPlaybackStateMaskType001 end!");
154 }
155
156 }