• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 <string>
18 #include <vector>
19 #include "parcel.h"
20 #include <memory>
21 #include "dialog_session_info.h"
22 #include "hilog_tag_wrapper.h"
23 
24 using namespace testing::ext;
25 
26 namespace OHOS {
27 namespace AAFwk {
28 class DialogAbilityInfoTest : public testing::Test {
29 public:
30     static void SetUpTestCase();
31     static void TearDownTestCase();
32     void SetUp();
33     void TearDown();
34 };
35 
SetUpTestCase()36 void DialogAbilityInfoTest::SetUpTestCase()
37 {}
38 
TearDownTestCase()39 void DialogAbilityInfoTest::TearDownTestCase()
40 {}
41 
SetUp()42 void DialogAbilityInfoTest::SetUp()
43 {}
44 
TearDown()45 void DialogAbilityInfoTest::TearDown()
46 {}
47 
48 /**
49  * @tc.name: GetURI_001
50  * @tc.desc: GetURI Test
51  * @tc.type: FUNC
52  */
53 HWTEST_F(DialogAbilityInfoTest, GetURI_001, TestSize.Level2)
54 {
55     TAG_LOGI(AAFwkTag::TEST, "GetURI_001 is start");
56     DialogAbilityInfo dialogAbilityInfo;
57     dialogAbilityInfo.bundleName = "com.example.app";
58     dialogAbilityInfo.moduleName = "main";
59     dialogAbilityInfo.abilityName = "home";
60     dialogAbilityInfo.bundleIconId = 1;
61     dialogAbilityInfo.bundleLabelId = 2;
62     dialogAbilityInfo.abilityIconId = 3;
63     dialogAbilityInfo.abilityLabelId = 4;
64     dialogAbilityInfo.visible = true;
65     dialogAbilityInfo.appIndex = 5;
66     dialogAbilityInfo.multiAppMode.multiAppModeType = AppExecFwk::MultiAppModeType::MULTI_INSTANCE;
67     dialogAbilityInfo.multiAppMode.maxCount = 10;
68 
69     std::string expectedURI = "com.example.app/main/home/1/2/3/4/1/5/1/10";
70     EXPECT_EQ(dialogAbilityInfo.GetURI(), expectedURI);
71 }
72 
73 /**
74  * @tc.name: GetURI_002
75  * @tc.desc: GetURI Test
76  * @tc.type: FUNC
77  */
78 HWTEST_F(DialogAbilityInfoTest, GetURI_002, TestSize.Level2)
79 {
80     TAG_LOGI(AAFwkTag::TEST, "GetURI_002 is start");
81     DialogAbilityInfo dialogAbilityInfo;
82     std::string expectedURI = "///0/0/0/0/1/0/0/0";
83     EXPECT_EQ(dialogAbilityInfo.GetURI(), expectedURI);
84 }
85 
86 /**
87  * @tc.name: ParseURI_002
88  * @tc.desc: ParseURI Test
89  * @tc.type: FUNC
90  */
91 HWTEST_F(DialogAbilityInfoTest, ParseURI_002, TestSize.Level2)
92 {
93     TAG_LOGI(AAFwkTag::TEST, "ParseURI_002 is start");
94     DialogAbilityInfo dialogAbilityInfo;
95     std::string uri = "bundleName/moduleName/abilityName/0/1/2/3/0/4/5/6/7";
96     EXPECT_FALSE(dialogAbilityInfo.ParseURI(uri));
97 }
98 
99 /**
100  * @tc.name: ParseURI_003
101  * @tc.desc: ParseURI Test
102  * @tc.type: FUNC
103  */
104 HWTEST_F(DialogAbilityInfoTest, ParseURI_003, TestSize.Level2)
105 {
106     TAG_LOGI(AAFwkTag::TEST, "ParseURI_003 is start");
107     DialogAbilityInfo dialogAbilityInfo;
108     std::string uri = dialogAbilityInfo.GetURI();
109     EXPECT_TRUE(dialogAbilityInfo.ParseURI(uri));
110 }
111 
112 /**
113  * @tc.name: Split_001
114  * @tc.desc: Split Test
115  * @tc.type: FUNC
116  */
117 HWTEST_F(DialogAbilityInfoTest, Split_001, TestSize.Level2)
118 {
119     TAG_LOGI(AAFwkTag::TEST, "Split_001 is start");
120     DialogAbilityInfo dialogAbilityInfo;
121     std::vector<std::string> vec;
122     dialogAbilityInfo.Split("", ",", vec);
123     EXPECT_EQ(vec.size(), 0);
124 }
125 
126 /**
127  * @tc.name: Split_002
128  * @tc.desc: Split Test
129  * @tc.type: FUNC
130  */
131 HWTEST_F(DialogAbilityInfoTest, Split_002, TestSize.Level2)
132 {
133     TAG_LOGI(AAFwkTag::TEST, "Split_002 is start");
134     DialogAbilityInfo dialogAbilityInfo;
135     std::vector<std::string> vec;
136     dialogAbilityInfo.Split("Hello", ",", vec);
137     EXPECT_EQ(vec.size(), 1);
138     EXPECT_EQ(vec[0], "Hello");
139 }
140 
141 /**
142  * @tc.name: Split_003
143  * @tc.desc: Split Test
144  * @tc.type: FUNC
145  */
146 HWTEST_F(DialogAbilityInfoTest, Split_003, TestSize.Level2)
147 {
148     TAG_LOGI(AAFwkTag::TEST, "Split_003 is start");
149     DialogAbilityInfo dialogAbilityInfo;
150     std::vector<std::string> vec;
151     dialogAbilityInfo.Split("Hello,World,Test", ",", vec);
152     EXPECT_EQ(vec.size(), 3);
153     EXPECT_EQ(vec[0], "Hello");
154     EXPECT_EQ(vec[1], "World");
155     EXPECT_EQ(vec[2], "Test");
156 }
157 
158 /**
159  * @tc.name: Split_004
160  * @tc.desc: Split Test
161  * @tc.type: FUNC
162  */
163 HWTEST_F(DialogAbilityInfoTest, Split_004, TestSize.Level2)
164 {
165     TAG_LOGI(AAFwkTag::TEST, "Split_004 is start");
166     DialogAbilityInfo dialogAbilityInfo;
167     std::vector<std::string> vec;
168     dialogAbilityInfo.Split("Hello,World,", ",", vec);
169     EXPECT_EQ(vec.size(), 2);
170     EXPECT_EQ(vec[0], "Hello");
171     EXPECT_EQ(vec[1], "World");
172 }
173 
174 /**
175  * @tc.name: ReadFromParcel_001
176  * @tc.desc: ReadFromParcel Test
177  * @tc.type: FUNC
178  */
179 HWTEST_F(DialogAbilityInfoTest, ReadFromParcel_001, TestSize.Level2)
180 {
181     TAG_LOGI(AAFwkTag::TEST, "ReadFromParcel_001 is start");
182     DialogSessionInfo dialogSessionInfo;
183     Parcel parcel;
184     std::string invalidUri = "invalidUri";
185     parcel.WriteString16(Str8ToStr16(invalidUri));
186     EXPECT_FALSE(dialogSessionInfo.ReadFromParcel(parcel));
187     TAG_LOGI(AAFwkTag::TEST, "ReadFromParcel_001 is end");
188 }
189 
190 /**
191  * @tc.name: ReadFromParcel_002
192  * @tc.desc: ReadFromParcel Test
193  * @tc.type: FUNC
194  */
195 HWTEST_F(DialogAbilityInfoTest, ReadFromParcel_002, TestSize.Level2)
196 {
197     TAG_LOGI(AAFwkTag::TEST, "ReadFromParcel_002 is start");
198     DialogSessionInfo dialogSessionInfo;
199     Parcel parcel;
200     DialogAbilityInfo dialogAbilityInfo;
201     std::string validUri = dialogAbilityInfo.GetURI();
202     parcel.WriteString16(Str8ToStr16(validUri));
203     EXPECT_FALSE(dialogSessionInfo.ReadFromParcel(parcel));
204     TAG_LOGI(AAFwkTag::TEST, "ReadFromParcel_002 is end");
205 }
206 
207 /**
208  * @tc.name: ReadFromParcel_003
209  * @tc.desc: ReadFromParcel Test
210  * @tc.type: FUNC
211  */
212 HWTEST_F(DialogAbilityInfoTest, ReadFromParcel_003, TestSize.Level2)
213 {
214     TAG_LOGI(AAFwkTag::TEST, "ReadFromParcel_003 is start");
215     DialogSessionInfo dialogSessionInfo;
216     Parcel parcel;
217     DialogAbilityInfo dialogAbilityInfo;
218     std::string validUri = dialogAbilityInfo.GetURI();
219     parcel.WriteString16(Str8ToStr16(validUri));
220     int32_t validSize = 1;
221     parcel.WriteInt32(validSize);
222     EXPECT_FALSE(dialogSessionInfo.ReadFromParcel(parcel));
223     TAG_LOGI(AAFwkTag::TEST, "ReadFromParcel_003 is end");
224 }
225 
226 /**
227  * @tc.name: ReadFromParcel_004
228  * @tc.desc: ReadFromParcel Test
229  * @tc.type: FUNC
230  */
231 HWTEST_F(DialogAbilityInfoTest, ReadFromParcel_004, TestSize.Level2)
232 {
233     TAG_LOGI(AAFwkTag::TEST, "ReadFromParcel_004 is start");
234     DialogSessionInfo dialogSessionInfo;
235     Parcel parcel;
236     DialogAbilityInfo dialogAbilityInfo;
237     std::string validUri = dialogAbilityInfo.GetURI();
238     parcel.WriteString16(Str8ToStr16(validUri));
239     int32_t validSize = 1;
240     parcel.WriteInt32(validSize);
241     dialogSessionInfo.targetAbilityInfos.emplace_back(dialogAbilityInfo);
242     std::string invalidUri = "invalidUri";
243     parcel.WriteString16(Str8ToStr16(invalidUri));
244     EXPECT_FALSE(dialogSessionInfo.ReadFromParcel(parcel));
245     TAG_LOGI(AAFwkTag::TEST, "ReadFromParcel_004 is end");
246 }
247 
248 /**
249  * @tc.name: ReadFromParcel_005
250  * @tc.desc: ReadFromParcel Test
251  * @tc.type: FUNC
252  */
253 HWTEST_F(DialogAbilityInfoTest, ReadFromParcel_005, TestSize.Level2)
254 {
255     TAG_LOGI(AAFwkTag::TEST, "ReadFromParcel_005 is start");
256     DialogSessionInfo dialogSessionInfo;
257     Parcel parcel;
258     DialogAbilityInfo dialogAbilityInfo;
259     std::string validUri = dialogAbilityInfo.GetURI();
260     parcel.WriteString16(Str8ToStr16(validUri));
261     int32_t validSize = 1;
262     parcel.WriteInt32(validSize);
263     dialogSessionInfo.targetAbilityInfos.emplace_back(dialogAbilityInfo);
264     std::string invalidUri = dialogAbilityInfo.GetURI();
265     parcel.WriteString16(Str8ToStr16(invalidUri));
266     EXPECT_FALSE(dialogSessionInfo.ReadFromParcel(parcel));
267     TAG_LOGI(AAFwkTag::TEST, "ReadFromParcel_005 is end");
268 }
269 
270 /**
271  * @tc.name: ReadFromParcel_006
272  * @tc.desc: ReadFromParcel Test
273  * @tc.type: FUNC
274  */
275 HWTEST_F(DialogAbilityInfoTest, ReadFromParcel_006, TestSize.Level2)
276 {
277     TAG_LOGI(AAFwkTag::TEST, "ReadFromParcel_006 is start");
278     DialogSessionInfo dialogSessionInfo;
279     Parcel parcel;
280     DialogAbilityInfo dialogAbilityInfo;
281     std::string validUri = dialogAbilityInfo.GetURI();
282     parcel.WriteString16(Str8ToStr16(validUri));
283     int32_t validSize = 1;
284     parcel.WriteInt32(validSize);
285     dialogSessionInfo.targetAbilityInfos.emplace_back(dialogAbilityInfo);
286     std::string invalidUri = dialogAbilityInfo.GetURI();
287     parcel.WriteString16(Str8ToStr16(invalidUri));
288     AAFwk::WantParams params;
289     Parcelable *parcelable = &params;
290     parcel.WriteParcelable(parcelable);
291     EXPECT_TRUE(dialogSessionInfo.ReadFromParcel(parcel));
292     TAG_LOGI(AAFwkTag::TEST, "ReadFromParcel_006 is end");
293 }
294 
295 /**
296  * @tc.name: Marshalling_002
297  * @tc.desc: Marshalling Test
298  * @tc.type: FUNC
299  */
300 HWTEST_F(DialogAbilityInfoTest, Marshalling_002, TestSize.Level2)
301 {
302     TAG_LOGI(AAFwkTag::TEST, "Marshalling_002 is start");
303     Parcel parcel;
304     DialogSessionInfo dialogSessionInfo;
305     dialogSessionInfo.targetAbilityInfos.clear();
306     EXPECT_TRUE(dialogSessionInfo.Marshalling(parcel));
307 }
308 
309 /**
310  * @tc.name: Unmarshalling_001
311  * @tc.desc: Unmarshalling Test
312  * @tc.type: FUNC
313  */
314 HWTEST_F(DialogAbilityInfoTest, Unmarshalling_001, TestSize.Level2)
315 {
316     TAG_LOGI(AAFwkTag::TEST, "Unmarshalling_001 is start");
317     Parcel parcel;
318     DialogSessionInfo dialogSessionInfo;
319     DialogSessionInfo *info = DialogSessionInfo::Unmarshalling(parcel);
320     EXPECT_EQ(info, nullptr);
321 }
322 
323 /**
324  * @tc.name: Unmarshalling_002
325  * @tc.desc: Unmarshalling Test
326  * @tc.type: FUNC
327  */
328 HWTEST_F(DialogAbilityInfoTest, Unmarshalling_002, TestSize.Level2)
329 {
330     TAG_LOGI(AAFwkTag::TEST, "Unmarshalling_002 is start");
331     Parcel parcel;
332     DialogAbilityInfo dialogAbilityInfo;
333     DialogSessionInfo dialogSessionInfo;
334     std::string validUri = dialogAbilityInfo.GetURI();
335     parcel.WriteString16(Str8ToStr16(validUri));
336     int32_t validSize = 1;
337     parcel.WriteInt32(validSize);
338     dialogSessionInfo.targetAbilityInfos.emplace_back(dialogAbilityInfo);
339     std::string invalidUri = dialogAbilityInfo.GetURI();
340     parcel.WriteString16(Str8ToStr16(invalidUri));
341     AAFwk::WantParams params;
342     Parcelable *parcelable = &params;
343     parcel.WriteParcelable(parcelable);
344     DialogSessionInfo *info = DialogSessionInfo::Unmarshalling(parcel);
345     EXPECT_NE(info, nullptr);
346     delete info;
347 }
348 } // AAFwk
349 } // OHOS