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
18 #include <unistd.h>
19
20 #include "token_setproc.h"
21 #include "accesstoken_kit.h"
22 #include "nativetoken_kit.h"
23
24 #include "logger.h"
25 #include "utd_client.h"
26 #include "type_descriptor.h"
27
28
29 using namespace testing::ext;
30 using namespace OHOS::Security::AccessToken;
31 using namespace OHOS::UDMF;
32 using namespace OHOS;
33 namespace OHOS::Test {
34 class UtdClientTest : public testing::Test {
35 public:
36 static void SetUpTestCase();
37 static void TearDownTestCase();
38 void SetUp() override;
39 void TearDown() override;
40 };
41
SetUpTestCase()42 void UtdClientTest::SetUpTestCase()
43 {
44 }
45
TearDownTestCase()46 void UtdClientTest::TearDownTestCase()
47 {
48 }
49
SetUp()50 void UtdClientTest::SetUp()
51 {
52 }
53
TearDown()54 void UtdClientTest::TearDown()
55 {
56 }
57
58 /**
59 * @tc.name: GetTypeDescriptor001
60 * @tc.desc: Normal testcase of GetTypeDescriptor
61 * @tc.type: FUNC
62 */
63 HWTEST_F(UtdClientTest, GetTypeDescriptor001, TestSize.Level1)
64 {
65 LOG_INFO(UDMF_TEST, "GetTypeDescriptor001 begin.");
66
67 std::shared_ptr<TypeDescriptor> descriptor;
68 std::string typeId = "com.amazon.azw3";
69 auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
70 EXPECT_EQ(status, E_OK);
71 EXPECT_EQ(descriptor->GetTypeId(), typeId);
72 EXPECT_EQ(*(descriptor->GetBelongingToTypes().begin()), "general.ebook");
73 EXPECT_EQ(descriptor->GetDescription(), "AZW3 ebook.");
74 EXPECT_EQ(descriptor->GetIconFile(), "");
75 LOG_INFO(UDMF_TEST, "GetTypeDescriptor001 end.");
76 }
77
78 /**
79 * @tc.name: GetTypeDescriptor002
80 * @tc.desc: Negative test case, invalid typeId argument, returns nullptr
81 * @tc.type: FUNC
82 */
83 HWTEST_F(UtdClientTest, GetTypeDescriptor002, TestSize.Level1)
84 {
85 LOG_INFO(UDMF_TEST, "GetTypeDescriptor002 begin.");
86
87 std::shared_ptr<TypeDescriptor> descriptor;
88 std::string typeId = "";
89 auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
90 EXPECT_EQ(status, E_OK);
91 EXPECT_EQ(descriptor, nullptr);
92 LOG_INFO(UDMF_TEST, "GetTypeDescriptor002 end.");
93 }
94
95 /**
96 * @tc.name: GetTypeDescriptor003
97 * @tc.desc: Negative test case, invalid typeId argument, returns nullptr
98 * @tc.type: FUNC
99 */
100 HWTEST_F(UtdClientTest, GetTypeDescriptor003, TestSize.Level1)
101 {
102 LOG_INFO(UDMF_TEST, "GetTypeDescriptor003 begin.");
103
104 std::shared_ptr<TypeDescriptor> descriptor;
105 std::string typeId = "12345";
106 auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
107 EXPECT_EQ(status, E_OK);
108 EXPECT_EQ(descriptor, nullptr);
109 LOG_INFO(UDMF_TEST, "GetTypeDescriptor003 end.");
110 }
111
112 /**
113 * @tc.name: GetTypeDescriptor004
114 * @tc.desc: Normal testcase of GetTypeDescriptor
115 * @tc.type: FUNC
116 */
117 HWTEST_F(UtdClientTest, GetTypeDescriptor004, TestSize.Level1)
118 {
119 LOG_INFO(UDMF_TEST, "GetTypeDescriptor004 begin.");
120
121 std::shared_ptr<TypeDescriptor> descriptor;
122 std::string typeId = "org.gnu.gnu-zip-archive";
123 auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
124 EXPECT_EQ(status, E_OK);
125 EXPECT_EQ(descriptor->GetTypeId(), typeId);
126 EXPECT_EQ(*(descriptor->GetBelongingToTypes().begin()), "general.archive");
127 EXPECT_EQ(descriptor->GetDescription(), "Gzip archive.");
128 EXPECT_EQ(descriptor->GetIconFile(), "sys.media.ohos_ic_normal_white_grid_compress");
129 LOG_INFO(UDMF_TEST, "GetTypeDescriptor004 end.");
130 }
131
132 /**
133 * @tc.name: GetTypeDescriptor005
134 * @tc.desc: Negative test case, invalid typeId argument, returns nullptr
135 * @tc.type: FUNC
136 */
137 HWTEST_F(UtdClientTest, GetTypeDescriptor005, TestSize.Level1)
138 {
139 LOG_INFO(UDMF_TEST, "GetTypeDescriptor005 begin.");
140
141 std::shared_ptr<TypeDescriptor> descriptor;
142 std::string typeId = "...";
143 auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
144 EXPECT_EQ(status, E_OK);
145 EXPECT_EQ(descriptor, nullptr);
146 LOG_INFO(UDMF_TEST, "GetTypeDescriptor005 end.");
147 }
148
149 /**
150 * @tc.name: GetUniformDataTypeByFilenameExtension001
151 * @tc.desc: Normal testcase of GetUniformDataTypeByFilenameExtension
152 * @tc.type: FUNC
153 */
154 HWTEST_F(UtdClientTest, GetUniformDataTypeByFilenameExtension001, TestSize.Level1)
155 {
156 LOG_INFO(UDMF_TEST, "GetUniformDataTypeByFilenameExtension001 begin.");
157 std::string filenameExtension = ".azw3";
158 std::string blongsToType = "general.ebook";
159 std::string currType;
160 auto status =
161 UtdClient::GetInstance().GetUniformDataTypeByFilenameExtension(filenameExtension, currType, blongsToType);
162 EXPECT_EQ(status, E_OK);
163 EXPECT_EQ(currType, "com.amazon.azw3");
164 LOG_INFO(UDMF_TEST, "GetUniformDataTypeByFilenameExtension001 end.");
165 }
166
167 /**
168 * @tc.name: GetUniformDataTypeByFilenameExtension002
169 * @tc.desc: Normal testcase of GetUniformDataTypeByFilenameExtension
170 * @tc.type: FUNC
171 */
172 HWTEST_F(UtdClientTest, GetUniformDataTypeByFilenameExtension002, TestSize.Level1)
173 {
174 LOG_INFO(UDMF_TEST, "GetUniformDataTypeByFilenameExtension002 begin.");
175 std::string filenameExtension = ".png";
176 std::string blongsToType = "general.image";
177 std::string currType;
178 auto status =
179 UtdClient::GetInstance().GetUniformDataTypeByFilenameExtension(filenameExtension, currType, blongsToType);
180 EXPECT_EQ(status, E_OK);
181 EXPECT_EQ(currType, "general.png");
182 LOG_INFO(UDMF_TEST, "GetUniformDataTypeByFilenameExtension002 end.");
183 }
184
185 /**
186 * @tc.name: GetUniformDataTypeByFilenameExtension003
187 * @tc.desc: Normal testcase of GetUniformDataTypeByFilenameExtension
188 * @tc.type: FUNC
189 */
190 HWTEST_F(UtdClientTest, GetUniformDataTypeByFilenameExtension003, TestSize.Level1)
191 {
192 LOG_INFO(UDMF_TEST, "GetUniformDataTypeByFilenameExtension003 begin.");
193 std::string filenameExtension = ".cpp";
194 std::string blongsToType = "general.source-code";
195 std::string currType;
196 auto status =
197 UtdClient::GetInstance().GetUniformDataTypeByFilenameExtension(filenameExtension, currType, blongsToType);
198 EXPECT_EQ(status, E_OK);
199 EXPECT_EQ(currType, "general.c-plus-plus-source");
200 LOG_INFO(UDMF_TEST, "GetUniformDataTypeByFilenameExtension003 end.");
201 }
202
203 /**
204 * @tc.name: GetUniformDataTypeByFilenameExtension004
205 * @tc.desc: Abnormal testcase of GetUniformDataTypeByFilenameExtension, return ""
206 * @tc.type: FUNC
207 */
208 HWTEST_F(UtdClientTest, GetUniformDataTypeByFilenameExtension004, TestSize.Level1)
209 {
210 LOG_INFO(UDMF_TEST, "GetUniformDataTypeByFilenameExtension004 begin.");
211 std::string filenameExtension = "";
212 std::string blongsToType = "general.plain-text";
213 std::string currType;
214 auto status =
215 UtdClient::GetInstance().GetUniformDataTypeByFilenameExtension(filenameExtension, currType, blongsToType);
216 EXPECT_EQ(status, E_OK);
217 EXPECT_EQ(currType, "");
218 LOG_INFO(UDMF_TEST, "GetUniformDataTypeByFilenameExtension004 end.");
219 }
220
221 /**
222 * @tc.name: GetUniformDataTypeByFilenameExtension005
223 * @tc.desc: Abnormal testcase of GetUniformDataTypeByFilenameExtension, return invalid parameter
224 * @tc.type: FUNC
225 */
226 HWTEST_F(UtdClientTest, GetUniformDataTypeByFilenameExtension005, TestSize.Level1)
227 {
228 LOG_INFO(UDMF_TEST, "GetUniformDataTypeByFilenameExtension005 begin.");
229 std::string filenameExtension = ".test";
230 std::string blongsToType = "general.test";
231 std::string currType;
232 auto status =
233 UtdClient::GetInstance().GetUniformDataTypeByFilenameExtension(filenameExtension, currType, blongsToType);
234 EXPECT_EQ(status, E_INVALID_PARAMETERS);
235 LOG_INFO(UDMF_TEST, "GetUniformDataTypeByFilenameExtension005 end.");
236 }
237
238 /**
239 * @tc.name: GetUniformDataTypeByFilenameExtension006
240 * @tc.desc: Normal testcase of GetUniformDataTypeByFilenameExtension
241 * @tc.type: FUNC
242 */
243 HWTEST_F(UtdClientTest, GetUniformDataTypeByFilenameExtension006, TestSize.Level1)
244 {
245 LOG_INFO(UDMF_TEST, "GetUniformDataTypeByFilenameExtension006 begin.");
246 std::string filenameExtension = ".mp3";
247 std::string blongsToType = "general.object";
248 std::string currType;
249 auto status =
250 UtdClient::GetInstance().GetUniformDataTypeByFilenameExtension(filenameExtension, currType, blongsToType);
251 EXPECT_EQ(status, E_OK);
252 EXPECT_EQ(currType, "general.mp3");
253 LOG_INFO(UDMF_TEST, "GetUniformDataTypeByFilenameExtension006 end.");
254 }
255
256 /**
257 * @tc.name: GetUniformDataTypeByFilenameExtension007
258 * @tc.desc: Abnormal testcase of GetUniformDataTypeByFilenameExtension, return invalid parameter
259 * @tc.type: FUNC
260 */
261 HWTEST_F(UtdClientTest, GetUniformDataTypeByFilenameExtension007, TestSize.Level1)
262 {
263 LOG_INFO(UDMF_TEST, "GetUniformDataTypeByFilenameExtension007 begin.");
264 std::string filenameExtension = ".mp3";
265 std::string blongsToType = "test";
266 std::string currType;
267 auto status =
268 UtdClient::GetInstance().GetUniformDataTypeByFilenameExtension(filenameExtension, currType, blongsToType);
269 EXPECT_EQ(status, E_INVALID_PARAMETERS);
270 LOG_INFO(UDMF_TEST, "GetUniformDataTypeByFilenameExtension007 end.");
271 }
272
273 /**
274 * @tc.name: GetUniformDataTypeByMIMEType001
275 * @tc.desc: Normal testcase of GetUniformDataTypeByMIMEType
276 * @tc.type: FUNC
277 */
278 HWTEST_F(UtdClientTest, GetUniformDataTypeByMIMEType001, TestSize.Level1)
279 {
280 LOG_INFO(UDMF_TEST, "GetUniformDataTypeByMIMEType001 begin.");
281 std::string mimeType = "application/x-mobi8-ebook";
282 std::string blongsToType = "general.ebook";
283 std::string currType;
284 auto status = UtdClient::GetInstance().GetUniformDataTypeByMIMEType(mimeType, currType, blongsToType);
285 EXPECT_EQ(status, E_OK);
286 EXPECT_EQ(currType, "com.amazon.azw3");
287 LOG_INFO(UDMF_TEST, "GetUniformDataTypeByMIMEType001 end.");
288 }
289
290 /**
291 * @tc.name: GetUniformDataTypeByMIMEType002
292 * @tc.desc: Normal testcase of GetUniformDataTypeByMIMEType
293 * @tc.type: FUNC
294 */
295 HWTEST_F(UtdClientTest, GetUniformDataTypeByMIMEType002, TestSize.Level1)
296 {
297 LOG_INFO(UDMF_TEST, "GetUniformDataTypeByMIMEType002 begin.");
298 std::string mimeType = "application/mspowerpoint";
299 std::string blongsToType = "general.composite-object";
300 std::string currType;
301 auto status = UtdClient::GetInstance().GetUniformDataTypeByMIMEType(mimeType, currType, blongsToType);
302 EXPECT_EQ(status, E_OK);
303 EXPECT_EQ(currType, "com.microsoft.powerpoint.ppt");
304 LOG_INFO(UDMF_TEST, "GetUniformDataTypeByMIMEType002 end.");
305 }
306
307 /**
308 * @tc.name: GetUniformDataTypeByMIMEType003
309 * @tc.desc: Abnormal testcase of GetUniformDataTypeByMIMEType, return invalid parameter
310 * @tc.type: FUNC
311 */
312 HWTEST_F(UtdClientTest, GetUniformDataTypeByMIMEType003, TestSize.Level1)
313 {
314 LOG_INFO(UDMF_TEST, "GetUniformDataTypeByMIMEType003 begin.");
315 std::string mimeType = "test01";
316 std::string blongsToType = "";
317 std::string currType;
318 auto status = UtdClient::GetInstance().GetUniformDataTypeByMIMEType(mimeType, currType, blongsToType);
319 EXPECT_EQ(status, E_INVALID_PARAMETERS);
320 LOG_INFO(UDMF_TEST, "GetUniformDataTypeByMIMEType003 end.");
321 }
322
323 /**
324 * @tc.name: GetUniformDataTypeByMIMEType004
325 * @tc.desc: BelongsTo is invalid, return invalid parameter
326 * @tc.type: FUNC
327 */
328 HWTEST_F(UtdClientTest, GetUniformDataTypeByMIMEType004, TestSize.Level1)
329 {
330 LOG_INFO(UDMF_TEST, "GetUniformDataTypeByMIMEType004 begin.");
331 std::string mimeType = "";
332 std::string blongsToType = "test02";
333 std::string currType;
334 auto status = UtdClient::GetInstance().GetUniformDataTypeByMIMEType(mimeType, currType, blongsToType);
335 EXPECT_EQ(status, E_INVALID_PARAMETERS);
336 LOG_INFO(UDMF_TEST, "GetUniformDataTypeByMIMEType004 end.");
337 }
338
339 /**
340 * @tc.name: GetUniformDataTypeByMIMEType005
341 * @tc.desc: BelongsTo is invalid, return invalid parameter
342 * @tc.type: FUNC
343 */
344 HWTEST_F(UtdClientTest, GetUniformDataTypeByMIMEType005, TestSize.Level1)
345 {
346 LOG_INFO(UDMF_TEST, "GetUniformDataTypeByMIMEType005 begin.");
347 std::string mimeType = ".pm";
348 std::string blongsToType = "test03";
349 std::string currType;
350 auto status = UtdClient::GetInstance().GetUniformDataTypeByMIMEType(mimeType, currType, blongsToType);
351 EXPECT_EQ(status, E_INVALID_PARAMETERS);
352 LOG_INFO(UDMF_TEST, "GetUniformDataTypeByMIMEType005 end.");
353 }
354
355 /**
356 * @tc.name: GetUniformDataTypeByMIMEType006
357 * @tc.desc: Abnormal testcase of GetUniformDataTypeByMIMEType, return ""
358 * @tc.type: FUNC
359 */
360 HWTEST_F(UtdClientTest, GetUniformDataTypeByMIMEType006, TestSize.Level1)
361 {
362 LOG_INFO(UDMF_TEST, "GetUniformDataTypeByMIMEType006 begin.");
363 std::string mimeType = "";
364 std::string blongsToType = "general.entity";
365 std::string currType;
366 auto status = UtdClient::GetInstance().GetUniformDataTypeByMIMEType(mimeType, currType, blongsToType);
367 EXPECT_EQ(status, E_OK);
368 EXPECT_EQ(currType, "");
369 LOG_INFO(UDMF_TEST, "GetUniformDataTypeByMIMEType006 end.");
370 }
371 /**
372 * @tc.name: BelongsTo001
373 * @tc.desc: Normal testcase of BelongsTo
374 * @tc.type: FUNC
375 */
376 HWTEST_F(UtdClientTest, BelongsTo001, TestSize.Level1)
377 {
378 LOG_INFO(UDMF_TEST, "BelongsTo001 begin.");
379 std::shared_ptr<TypeDescriptor> descriptor;
380 std::string typeId = "com.amazon.azw3";
381 auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
382 EXPECT_EQ(status, E_OK);
383 bool checkRet = false;
384 ASSERT_NE(descriptor, nullptr);
385 status = descriptor->BelongsTo("general.composite-object", checkRet);
386 EXPECT_EQ(status, E_OK);
387 EXPECT_EQ(checkRet, true);
388 LOG_INFO(UDMF_TEST, "BelongsTo001 end.");
389 }
390
391 /**
392 * @tc.name: BelongsTo002
393 * @tc.desc: Normal testcase of BelongsTo
394 * @tc.type: FUNC
395 */
396 HWTEST_F(UtdClientTest, BelongsTo002, TestSize.Level1)
397 {
398 LOG_INFO(UDMF_TEST, "BelongsTo002 begin.");
399 std::shared_ptr<TypeDescriptor> descriptor;
400 std::string typeId = "com.amazon.azw3";
401 auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
402 EXPECT_EQ(status, E_OK);
403 bool checkRet = false;
404 ASSERT_NE(descriptor, nullptr);
405 status = descriptor->BelongsTo(typeId, checkRet);
406 EXPECT_EQ(status, E_OK);
407 EXPECT_EQ(checkRet, true);
408 LOG_INFO(UDMF_TEST, "BelongsTo002 end.");
409 }
410
411 /**
412 * @tc.name: BelongsTo003
413 * @tc.desc: Normal testcase of BelongsTo
414 * @tc.type: FUNC
415 */
416 HWTEST_F(UtdClientTest, BelongsTo003, TestSize.Level1)
417 {
418 LOG_INFO(UDMF_TEST, "BelongsTo003 begin.");
419 std::shared_ptr<TypeDescriptor> descriptor;
420 std::string typeId = "general.tiff";
421 auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
422 EXPECT_EQ(status, E_OK);
423 bool checkRet = false;
424 ASSERT_NE(descriptor, nullptr);
425 status = descriptor->BelongsTo("general.media", checkRet);
426 EXPECT_EQ(status, E_OK);
427 EXPECT_EQ(checkRet, true);
428 LOG_INFO(UDMF_TEST, "BelongsTo003 end.");
429 }
430
431 /**
432 * @tc.name: BelongsTo004
433 * @tc.desc: Normal testcase of BelongsTo
434 * @tc.type: FUNC
435 */
436 HWTEST_F(UtdClientTest, BelongsTo004, TestSize.Level1)
437 {
438 LOG_INFO(UDMF_TEST, "BelongsTo004 begin.");
439 std::shared_ptr<TypeDescriptor> descriptor;
440 std::string typeId = "general.tiff";
441 auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
442 EXPECT_EQ(status, E_OK);
443 bool checkRet = false;
444 ASSERT_NE(descriptor, nullptr);
445 status = descriptor->BelongsTo("general.object", checkRet);
446 EXPECT_EQ(status, E_OK);
447 EXPECT_EQ(checkRet, true);
448 LOG_INFO(UDMF_TEST, "BelongsTo004 end.");
449 }
450
451 /**
452 * @tc.name: BelongsTo005
453 * @tc.desc: Abnormal testcase of BelongsTo
454 * @tc.type: FUNC
455 */
456 HWTEST_F(UtdClientTest, BelongsTo005, TestSize.Level1)
457 {
458 LOG_INFO(UDMF_TEST, "BelongsTo005 begin.");
459 std::shared_ptr<TypeDescriptor> descriptor;
460 std::string typeId = "general.c-header";
461 auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
462 EXPECT_EQ(status, E_OK);
463 bool checkRet = false;
464 ASSERT_NE(descriptor, nullptr);
465 status = descriptor->BelongsTo("general.script", checkRet);
466 EXPECT_EQ(status, E_OK);
467 EXPECT_EQ(checkRet, false);
468 LOG_INFO(UDMF_TEST, "BelongsTo005 end.");
469 }
470
471 /**
472 * @tc.name: BelongsTo006
473 * @tc.desc: BelongsTo is invalid, return invalid parameter
474 * @tc.type: FUNC
475 */
476 HWTEST_F(UtdClientTest, BelongsTo006, TestSize.Level1)
477 {
478 LOG_INFO(UDMF_TEST, "BelongsTo006 begin.");
479 std::shared_ptr<TypeDescriptor> descriptor;
480 std::string typeId = "general.mpeg";
481 auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
482 EXPECT_EQ(status, E_OK);
483 bool checkRet = false;
484 ASSERT_NE(descriptor, nullptr);
485 status = descriptor->BelongsTo("test04", checkRet);
486 EXPECT_EQ(status, E_INVALID_PARAMETERS);
487 EXPECT_EQ(checkRet, false);
488 LOG_INFO(UDMF_TEST, "BelongsTo006 end.");
489 }
490
491 /**
492 * @tc.name: IsLowerLevelType001
493 * @tc.desc: Normal testcase of IsLowerLevelType
494 * @tc.type: FUNC
495 */
496 HWTEST_F(UtdClientTest, IsLowerLevelType001, TestSize.Level1)
497 {
498 LOG_INFO(UDMF_TEST, "IsLowerLevelType001 begin.");
499 std::shared_ptr<TypeDescriptor> descriptor;
500 std::string typeId = "com.amazon.azw3";
501 auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
502 EXPECT_EQ(status, E_OK);
503 bool checkRet = false;
504 ASSERT_NE(descriptor, nullptr);
505 status = descriptor->IsLowerLevelType("general.composite-object", checkRet);
506 EXPECT_EQ(status, E_OK);
507 EXPECT_EQ(checkRet, true);
508 LOG_INFO(UDMF_TEST, "IsLowerLevelType001 end.");
509 }
510
511 /**
512 * @tc.name: IsLowerLevelType002
513 * @tc.desc: TypeId is "', return invalid parameter
514 * @tc.type: FUNC
515 */
516 HWTEST_F(UtdClientTest, IsLowerLevelType002, TestSize.Level1)
517 {
518 LOG_INFO(UDMF_TEST, "IsLowerLevelType002 begin.");
519 std::shared_ptr<TypeDescriptor> descriptor;
520 std::string typeId = "general.object";
521 auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
522 EXPECT_EQ(status, E_OK);
523 bool checkRet = false;
524 ASSERT_NE(descriptor, nullptr);
525 status = descriptor->IsLowerLevelType("", checkRet);
526 EXPECT_EQ(status, Status::E_INVALID_PARAMETERS);
527 EXPECT_EQ(checkRet, false);
528 LOG_INFO(UDMF_TEST, "IsLowerLevelType002 end.");
529 }
530
531 /**
532 * @tc.name: IsLowerLevelType003
533 * @tc.desc: Normal testcase of IsLowerLevelType
534 * @tc.type: FUNC
535 */
536 HWTEST_F(UtdClientTest, IsLowerLevelType003, TestSize.Level1)
537 {
538 LOG_INFO(UDMF_TEST, "IsLowerLevelType003 begin.");
539 std::shared_ptr<TypeDescriptor> descriptor;
540 std::string typeId = "com.microsoft.bmp";
541 auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
542 EXPECT_EQ(status, E_OK);
543 bool checkRet = false;
544 ASSERT_NE(descriptor, nullptr);
545 status = descriptor->IsLowerLevelType("general.object", checkRet);
546 EXPECT_EQ(status, E_OK);
547 EXPECT_EQ(checkRet, true);
548 LOG_INFO(UDMF_TEST, "IsLowerLevelType003 end.");
549 }
550
551 /**
552 * @tc.name: IsLowerLevelType004
553 * @tc.desc: Abnormal testcase of IsLowerLevelType, the two values are equal
554 * @tc.type: FUNC
555 */
556 HWTEST_F(UtdClientTest, IsLowerLevelType004, TestSize.Level1)
557 {
558 LOG_INFO(UDMF_TEST, "IsLowerLevelType004 begin.");
559 std::shared_ptr<TypeDescriptor> descriptor;
560 std::string typeId = "com.amazon.azw3";
561 auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
562 EXPECT_EQ(status, E_OK);
563 bool checkRet = false;
564 ASSERT_NE(descriptor, nullptr);
565 status = descriptor->IsLowerLevelType("com.amazon.azw3", checkRet);
566 EXPECT_EQ(status, E_OK);
567 EXPECT_EQ(checkRet, false);
568 LOG_INFO(UDMF_TEST, "IsLowerLevelType004 end.");
569 }
570
571 /**
572 * @tc.name: IsHigherLevelType001
573 * @tc.desc: Normal testcase of IsHigherLevelType
574 * @tc.type: FUNC
575 */
576 HWTEST_F(UtdClientTest, IsHigherLevelType001, TestSize.Level1)
577 {
578 LOG_INFO(UDMF_TEST, "IsHigherLevelType001 begin.");
579 std::shared_ptr<TypeDescriptor> descriptor;
580 std::string typeId = "general.composite-object";
581 auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
582 EXPECT_EQ(status, E_OK);
583 bool checkRet = false;
584 ASSERT_NE(descriptor, nullptr);
585 status = descriptor->IsHigherLevelType("com.amazon.azw3", checkRet);
586 EXPECT_EQ(status, E_OK);
587 EXPECT_EQ(checkRet, true);
588 LOG_INFO(UDMF_TEST, "IsHigherLevelType001 end.");
589 }
590
591 /**
592 * @tc.name: IsHigherLevelType002
593 * @tc.desc: Abnormal testcase of IsHigherLevelType, the two values are equal
594 * @tc.type: FUNC
595 */
596 HWTEST_F(UtdClientTest, IsHigherLevelType002, TestSize.Level1)
597 {
598 LOG_INFO(UDMF_TEST, "IsHigherLevelType002 begin.");
599 std::shared_ptr<TypeDescriptor> descriptor;
600 std::string typeId = "com.amazon.azw3";
601 auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
602 EXPECT_EQ(status, E_OK);
603 bool checkRet = false;
604 ASSERT_NE(descriptor, nullptr);
605 status = descriptor->IsHigherLevelType("com.amazon.azw3", checkRet);
606 EXPECT_EQ(status, E_OK);
607 EXPECT_EQ(checkRet, false);
608 LOG_INFO(UDMF_TEST, "IsHigherLevelType002 end.");
609 }
610
611 /**
612 * @tc.name: IsHigherLevelType003
613 * @tc.desc: Abnormal testcase of IsHigherLevelType
614 * @tc.type: FUNC
615 */
616 HWTEST_F(UtdClientTest, IsHigherLevelType003, TestSize.Level1)
617 {
618 LOG_INFO(UDMF_TEST, "IsHigherLevelType003 begin.");
619 std::shared_ptr<TypeDescriptor> descriptor;
620 std::string typeId = "general.image";
621 auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
622 EXPECT_EQ(status, E_OK);
623 bool checkRet = false;
624 ASSERT_NE(descriptor, nullptr);
625 status = descriptor->IsHigherLevelType("general.object", checkRet);
626 EXPECT_EQ(status, E_OK);
627 EXPECT_EQ(checkRet, false);
628 LOG_INFO(UDMF_TEST, "IsHigherLevelType003 end.");
629 }
630
631 /**
632 * @tc.name: Equals001
633 * @tc.desc: Abnormal testcase of Equals, two values are different
634 * @tc.type: FUNC
635 */
636 HWTEST_F(UtdClientTest, Equals001, TestSize.Level1)
637 {
638 LOG_INFO(UDMF_TEST, "Equals001 begin.");
639 std::shared_ptr<TypeDescriptor> descriptor1;
640 std::string typeId1 = "com.amazon.azw3";
641 auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId1, descriptor1);
642 EXPECT_EQ(status, E_OK);
643 std::string typeId2 = "general.composite-object";
644 std::shared_ptr<TypeDescriptor> descriptor2;
645 status = UtdClient::GetInstance().GetTypeDescriptor(typeId2, descriptor2);
646 EXPECT_EQ(status, E_OK);
647 bool ret = descriptor1->Equals(descriptor2);
648 EXPECT_EQ(ret, false);
649 LOG_INFO(UDMF_TEST, "Equals001 end.");
650 }
651
652 /**
653 * @tc.name: Equals002
654 * @tc.desc: Normal testcase of Equals
655 * @tc.type: FUNC
656 */
657 HWTEST_F(UtdClientTest, Equals002, TestSize.Level1)
658 {
659 LOG_INFO(UDMF_TEST, "Equals002 begin.");
660 std::shared_ptr<TypeDescriptor> descriptor1;
661 std::string typeId1 = "com.amazon.azw3";
662 auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId1, descriptor1);
663 EXPECT_EQ(status, E_OK);
664 std::string typeId2 = "com.amazon.azw3";
665 std::shared_ptr<TypeDescriptor> descriptor2;
666 status = UtdClient::GetInstance().GetTypeDescriptor(typeId2, descriptor2);
667 EXPECT_EQ(status, E_OK);
668 bool ret = descriptor1->Equals(descriptor2);
669 EXPECT_EQ(ret, true);
670 LOG_INFO(UDMF_TEST, "Equals002 end.");
671 }
672
673 /**
674 * @tc.name: TypeDescriptorGetAttr001
675 * @tc.desc: Normal testcase of TypeDescriptorGetAttr
676 * @tc.type: FUNC
677 */
678 HWTEST_F(UtdClientTest, TypeDescriptorGetAttr001, TestSize.Level1)
679 {
680 LOG_INFO(UDMF_TEST, "TypeDescriptorGetAttr001 begin.");
681 std::shared_ptr<TypeDescriptor> descriptor;
682 std::string typeId = "com.amazon.azw3";
683 auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
684 EXPECT_EQ(status, E_OK);
685 EXPECT_EQ(descriptor->GetTypeId(), typeId);
686 EXPECT_EQ(*(descriptor->GetBelongingToTypes().begin()), "general.ebook");
687 EXPECT_EQ(descriptor->GetDescription(), "AZW3 ebook.");
688 EXPECT_EQ(descriptor->GetIconFile(), "");
689 EXPECT_EQ(*(descriptor->GetFilenameExtensions().begin()), ".azw3");
690 EXPECT_EQ(*(descriptor->GetMimeTypes().begin()), "application/vnd.amazon.mobi8-ebook");
691
692 LOG_INFO(UDMF_TEST, "TypeDescriptorGetAttr001 end.");
693 }
694 } // OHOS::Test