1 /*
2 * Copyright (c) 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 <ipc_types.h>
18 #include <pointer_event.h>
19 #include "iremote_object_mocker.h"
20 #include "mock/mock_session_stub.h"
21 #include "session/host/include/zidl/session_stub.h"
22 #include "ability_start_setting.h"
23 #include "session/host/include/zidl/session_ipc_interface_code.h"
24 #include "want.h"
25 #include "ws_common.h"
26
27 using namespace testing;
28 using namespace testing::ext;
29
30 namespace OHOS {
31 namespace Rosen {
32
33 class SessionStubLifecycleTest : public testing::Test {
34 public:
35 static void SetUpTestCase();
36 static void TearDownTestCase();
37 void SetUp() override;
38 void TearDown() override;
39
40 private:
41 sptr<SessionStub> session_ = nullptr;
42 };
43
SetUpTestCase()44 void SessionStubLifecycleTest::SetUpTestCase() {}
45
TearDownTestCase()46 void SessionStubLifecycleTest::TearDownTestCase() {}
47
SetUp()48 void SessionStubLifecycleTest::SetUp()
49 {
50 session_ = sptr<SessionStubMocker>::MakeSptr();
51 EXPECT_NE(nullptr, session_);
52 }
53
TearDown()54 void SessionStubLifecycleTest::TearDown()
55 {
56 session_ = nullptr;
57 }
58
59 namespace {
60
61 /**
62 * @tc.name: HandleShow009
63 * @tc.desc: sessionStub SessionStubLifecycleTest
64 * @tc.type: FUNC
65 * @tc.require: #I6JLSI
66 */
67 HWTEST_F(SessionStubLifecycleTest, HandleShow009, TestSize.Level1)
68 {
69 MessageParcel data;
70 MessageParcel reply;
71 data.WriteBool(false);
72 auto res = session_->HandleShow(data, reply);
73 ASSERT_EQ(0, res);
74 }
75
76 /**
77 * @tc.name: HandleHide010
78 * @tc.desc: sessionStub SessionStubLifecycleTest
79 * @tc.type: FUNC
80 * @tc.require: #I6JLSI
81 */
82 HWTEST_F(SessionStubLifecycleTest, HandleHide010, TestSize.Level1)
83 {
84 MessageParcel data;
85 MessageParcel reply;
86 data.WriteBool(true);
87 auto res = session_->HandleHide(data, reply);
88 ASSERT_EQ(0, res);
89 }
90
91 /**
92 * @tc.name: HandleDrawingCompleted
93 * @tc.desc: sessionStub SessionStubLifecycleTest
94 * @tc.type: FUNC
95 */
96 HWTEST_F(SessionStubLifecycleTest, HandleDrawingCompleted, TestSize.Level1)
97 {
98 MessageParcel data;
99 MessageParcel reply;
100 ASSERT_NE(session_, nullptr);
101 auto res = session_->HandleDrawingCompleted(data, reply);
102 ASSERT_EQ(0, res);
103 }
104
105 /**
106 * @tc.name: HandlePendingSessionActivation011
107 * @tc.desc: sessionStub SessionStubLifecycleTest
108 * @tc.type: FUNC
109 * @tc.require: #I6JLSI
110 */
111 HWTEST_F(SessionStubLifecycleTest, HandlePendingSessionActivation011, TestSize.Level1)
112 {
113 MessageParcel data;
114 MessageParcel reply;
115 data.WriteBool(true);
116 AAFwk::Want options;
117 EXPECT_NE(data.WriteString("HandlePendingSessionActivation"), false);
118 EXPECT_NE(data.WriteParcelable(&options), false);
119 ASSERT_EQ(data.WriteUint32(1), true);
120 ASSERT_EQ(data.WriteUint64(2), true);
121 auto res = session_->HandlePendingSessionActivation(data, reply);
122 ASSERT_EQ(5, res);
123 }
124
125 /**
126 * @tc.name: HandlePendingSessionActivation011
127 * @tc.desc: sessionStub SessionStubLifecycleTest
128 * @tc.type: FUNC
129 * @tc.require: #I6JLSI
130 */
131 HWTEST_F(SessionStubLifecycleTest, HandlePendingSessionActivation02, TestSize.Level1)
132 {
133 MessageParcel data;
134 MessageParcel reply;
135 AAFwk::Want want;
136 EXPECT_EQ(data.WriteParcelable(&want), true);
137 EXPECT_EQ(data.WriteInt32(1), true);
138 EXPECT_EQ(data.WriteInt32(2), true);
139 EXPECT_EQ(data.WriteInt32(3), true);
140 EXPECT_EQ(data.WriteInt64(10), true);
141 EXPECT_EQ(data.WriteUint32(9), true);
142 EXPECT_EQ(data.WriteInt32(4), true);
143 EXPECT_EQ(data.WriteBool(false), true);
144 EXPECT_EQ(data.WriteParcelable(nullptr), true);
145
146 EXPECT_EQ(data.WriteBool(true), true);
147 EXPECT_EQ(data.WriteBool(true), true);
148 EXPECT_EQ(data.WriteBool(true), true);
149 EXPECT_EQ(data.WriteBool(true), true);
150 EXPECT_EQ(data.WriteBool(false), true);
151 EXPECT_EQ(data.WriteBool(false), true);
152 EXPECT_EQ(data.WriteBool(false), true);
153 EXPECT_EQ(data.WriteString("instanceKey"), true);
154 EXPECT_EQ(data.WriteBool(false), true);
155 EXPECT_EQ(data.WriteUint32(0), true);
156 EXPECT_EQ(data.WriteString("specifiedFlag"), true);
157 EXPECT_EQ(data.WriteBool(false), true);
158 auto res = session_->HandlePendingSessionActivation(data, reply);
159 EXPECT_EQ(5, res);
160 }
161
162 /**
163 * @tc.name: HandlePendingSessionActivation03
164 * @tc.desc: sessionStub SessionStubLifecycleTest
165 * @tc.type: FUNC
166 * @tc.require: #I6JLSI
167 */
168 HWTEST_F(SessionStubLifecycleTest, HandlePendingSessionActivation03, TestSize.Level1)
169 {
170 MessageParcel data;
171 MessageParcel reply;
172 AAFwk::Want want;
173 EXPECT_EQ(data.WriteParcelable(&want), true);
174 EXPECT_EQ(data.WriteInt32(1), true);
175 EXPECT_EQ(data.WriteInt32(2), true);
176 EXPECT_EQ(data.WriteInt32(3), true);
177 EXPECT_EQ(data.WriteInt64(10), true);
178 EXPECT_EQ(data.WriteUint32(9), true);
179 EXPECT_EQ(data.WriteInt32(4), true);
180 EXPECT_EQ(data.WriteBool(false), true);
181 EXPECT_EQ(data.WriteParcelable(nullptr), true);
182
183 EXPECT_EQ(data.WriteBool(true), true);
184 EXPECT_EQ(data.WriteBool(true), true);
185 EXPECT_EQ(data.WriteBool(true), true);
186 EXPECT_EQ(data.WriteBool(true), true);
187 EXPECT_EQ(data.WriteBool(false), true);
188 EXPECT_EQ(data.WriteBool(false), true);
189 EXPECT_EQ(data.WriteBool(false), true);
190 EXPECT_EQ(data.WriteString("instanceKey"), true);
191 EXPECT_EQ(data.WriteBool(false), true);
192 EXPECT_EQ(data.WriteUint32(0), true);
193 EXPECT_EQ(data.WriteString("specifiedFlag"), true);
194 EXPECT_EQ(data.WriteBool(false), true);
195 EXPECT_EQ(data.WriteInt32(9), true);
196 EXPECT_EQ(data.WriteBool(false), true);
197 auto res = session_->HandlePendingSessionActivation(data, reply);
198 EXPECT_EQ(0, res);
199 }
200 } // namespace
201 } // namespace Rosen
202 } // namespace OHOS