• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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