• 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 #define LOG_TAG "UtdClientTest"
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 #include "preset_type_descriptors.h"
28 #include "utd_graph.h"
29 
30 using namespace testing::ext;
31 using namespace OHOS::Security::AccessToken;
32 using namespace OHOS::UDMF;
33 using namespace OHOS;
34 
35 namespace OHOS::Test {
36 class UtdClientTest : public testing::Test {
37 public:
38     static void SetUpTestCase();
39     static void TearDownTestCase();
40     void SetUp() override;
41     void TearDown() override;
42 };
43 
SetUpTestCase()44 void UtdClientTest::SetUpTestCase()
45 {
46 }
47 
TearDownTestCase()48 void UtdClientTest::TearDownTestCase()
49 {
50 }
51 
SetUp()52 void UtdClientTest::SetUp()
53 {
54 }
55 
TearDown()56 void UtdClientTest::TearDown()
57 {
58 }
59 
60 /**
61 * @tc.name: GetTypeDescriptor001
62 * @tc.desc: Normal testcase of GetTypeDescriptor
63 * @tc.type: FUNC
64 */
65 HWTEST_F(UtdClientTest, GetTypeDescriptor001, TestSize.Level1)
66 {
67     LOG_INFO(UDMF_TEST, "GetTypeDescriptor001 begin.");
68 
69     std::shared_ptr<TypeDescriptor> descriptor;
70     std::string typeId = "com.amazon.azw3";
71     auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
72     EXPECT_EQ(status, E_OK);
73     EXPECT_EQ(descriptor->GetTypeId(), typeId);
74     EXPECT_EQ(*(descriptor->GetBelongingToTypes().begin()), "general.ebook");
75     EXPECT_EQ(descriptor->GetDescription(), "AZW3 ebook.");
76     EXPECT_EQ(descriptor->GetIconFile(), "");
77     EXPECT_EQ(*(descriptor->GetFilenameExtensions().begin()), ".azw3");
78     EXPECT_EQ(*(descriptor->GetMimeTypes().begin()), "application/vnd.amazon.mobi8-ebook");
79     LOG_INFO(UDMF_TEST, "GetTypeDescriptor001 end.");
80 }
81 
82 /**
83 * @tc.name: GetTypeDescriptor002
84 * @tc.desc: Negative test case, invalid typeId argument, returns nullptr
85 * @tc.type: FUNC
86 */
87 HWTEST_F(UtdClientTest, GetTypeDescriptor002, TestSize.Level1)
88 {
89     LOG_INFO(UDMF_TEST, "GetTypeDescriptor002 begin.");
90 
91     std::shared_ptr<TypeDescriptor> descriptor;
92     std::string typeId = "";
93     auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
94     EXPECT_EQ(status, E_OK);
95     EXPECT_EQ(descriptor, nullptr);
96     LOG_INFO(UDMF_TEST, "GetTypeDescriptor002 end.");
97 }
98 
99 /**
100 * @tc.name: GetTypeDescriptor003
101 * @tc.desc: Negative test case, invalid typeId argument, returns nullptr
102 * @tc.type: FUNC
103 */
104 HWTEST_F(UtdClientTest, GetTypeDescriptor003, TestSize.Level1)
105 {
106     LOG_INFO(UDMF_TEST, "GetTypeDescriptor003 begin.");
107 
108     std::shared_ptr<TypeDescriptor> descriptor;
109     std::string typeId = "12345";
110     auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
111     EXPECT_EQ(status, E_OK);
112     EXPECT_EQ(descriptor, nullptr);
113     LOG_INFO(UDMF_TEST, "GetTypeDescriptor003 end.");
114 }
115 
116 /**
117 * @tc.name: GetTypeDescriptor004
118 * @tc.desc: Normal testcase of GetTypeDescriptor
119 * @tc.type: FUNC
120 */
121 HWTEST_F(UtdClientTest, GetTypeDescriptor004, TestSize.Level1)
122 {
123     LOG_INFO(UDMF_TEST, "GetTypeDescriptor004 begin.");
124 
125     std::shared_ptr<TypeDescriptor> descriptor;
126     std::string typeId = "org.gnu.gnu-zip-archive";
127     auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
128     EXPECT_EQ(status, E_OK);
129     EXPECT_EQ(descriptor->GetTypeId(), typeId);
130     EXPECT_EQ(*(descriptor->GetBelongingToTypes().begin()), "general.archive");
131     EXPECT_EQ(descriptor->GetDescription(), "Gzip archive.");
132     EXPECT_EQ(descriptor->GetIconFile(), "sys.media.ohos_ic_normal_white_grid_compress");
133     LOG_INFO(UDMF_TEST, "GetTypeDescriptor004 end.");
134 }
135 
136 /**
137 * @tc.name: GetTypeDescriptor005
138 * @tc.desc: Negative test case, invalid typeId argument, returns nullptr
139 * @tc.type: FUNC
140 */
141 HWTEST_F(UtdClientTest, GetTypeDescriptor005, TestSize.Level1)
142 {
143     LOG_INFO(UDMF_TEST, "GetTypeDescriptor005 begin.");
144 
145     std::shared_ptr<TypeDescriptor> descriptor;
146     std::string typeId = "...";
147     auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
148     EXPECT_EQ(status, E_OK);
149     EXPECT_EQ(descriptor, nullptr);
150     LOG_INFO(UDMF_TEST, "GetTypeDescriptor005 end.");
151 }
152 
153 /**
154 * @tc.name: GetTypeDescriptor006
155 * @tc.desc: Normal testcase of GetTypeDescriptor
156 * @tc.type: FUNC
157 */
158 HWTEST_F(UtdClientTest, GetTypeDescriptor006, TestSize.Level1)
159 {
160     LOG_INFO(UDMF_TEST, "GetTypeDescriptor006 begin.");
161 
162     std::shared_ptr<TypeDescriptor> descriptor;
163     std::string typeId = "general.fax";
164     auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
165     EXPECT_EQ(status, E_OK);
166     EXPECT_EQ(descriptor->GetTypeId(), typeId);
167     EXPECT_EQ(*(descriptor->GetBelongingToTypes().begin()), "general.image");
168     EXPECT_EQ(descriptor->GetDescription(), "Base type for fax images.");
169     EXPECT_EQ(descriptor->GetIconFile(), "");
170     EXPECT_EQ(descriptor->GetFilenameExtensions().empty(), true);
171     EXPECT_EQ(descriptor->GetMimeTypes().empty(), true);
172     LOG_INFO(UDMF_TEST, "GetTypeDescriptor006 end.");
173 }
174 
175 /**
176 * @tc.name: GetUniformDataTypeByFilenameExtension001
177 * @tc.desc: Normal testcase of GetUniformDataTypeByFilenameExtension
178 * @tc.type: FUNC
179 */
180 HWTEST_F(UtdClientTest, GetUniformDataTypeByFilenameExtension001, TestSize.Level1)
181 {
182     LOG_INFO(UDMF_TEST, "GetUniformDataTypeByFilenameExtension001 begin.");
183     std::string filenameExtension = ".azw3";
184     std::string blongsToType = "general.ebook";
185     std::string currType;
186     auto status =
187         UtdClient::GetInstance().GetUniformDataTypeByFilenameExtension(filenameExtension, currType, blongsToType);
188     EXPECT_EQ(status, E_OK);
189     EXPECT_EQ(currType, "com.amazon.azw3");
190     LOG_INFO(UDMF_TEST, "GetUniformDataTypeByFilenameExtension001 end.");
191 }
192 
193 /**
194 * @tc.name: GetUniformDataTypeByFilenameExtension002
195 * @tc.desc: Normal testcase of GetUniformDataTypeByFilenameExtension
196 * @tc.type: FUNC
197 */
198 HWTEST_F(UtdClientTest, GetUniformDataTypeByFilenameExtension002, TestSize.Level1)
199 {
200     LOG_INFO(UDMF_TEST, "GetUniformDataTypeByFilenameExtension002 begin.");
201     std::string filenameExtension = ".png";
202     std::string blongsToType = "general.image";
203     std::string currType;
204     auto status =
205         UtdClient::GetInstance().GetUniformDataTypeByFilenameExtension(filenameExtension, currType, blongsToType);
206     EXPECT_EQ(status, E_OK);
207     EXPECT_EQ(currType, "general.png");
208     LOG_INFO(UDMF_TEST, "GetUniformDataTypeByFilenameExtension002 end.");
209 }
210 
211 /**
212 * @tc.name: GetUniformDataTypeByFilenameExtension003
213 * @tc.desc: Normal testcase of GetUniformDataTypeByFilenameExtension
214 * @tc.type: FUNC
215 */
216 HWTEST_F(UtdClientTest, GetUniformDataTypeByFilenameExtension003, TestSize.Level1)
217 {
218     LOG_INFO(UDMF_TEST, "GetUniformDataTypeByFilenameExtension003 begin.");
219     std::string filenameExtension = ".cpp";
220     std::string blongsToType = "general.source-code";
221     std::string currType;
222     auto status =
223         UtdClient::GetInstance().GetUniformDataTypeByFilenameExtension(filenameExtension, currType, blongsToType);
224     EXPECT_EQ(status, E_OK);
225     EXPECT_EQ(currType, "general.c-plus-plus-source");
226     LOG_INFO(UDMF_TEST, "GetUniformDataTypeByFilenameExtension003 end.");
227 }
228 
229 /**
230 * @tc.name: GetUniformDataTypeByFilenameExtension004
231 * @tc.desc: Abnormal testcase of GetUniformDataTypeByFilenameExtension,
232 * para empty string, return E_INVALID_PARAMETERS
233 * @tc.type: FUNC
234 */
235 HWTEST_F(UtdClientTest, GetUniformDataTypeByFilenameExtension004, TestSize.Level1)
236 {
237     LOG_INFO(UDMF_TEST, "GetUniformDataTypeByFilenameExtension004 begin.");
238     std::string filenameExtension = "";
239     std::string blongsToType = "general.plain-text";
240     std::string currType;
241     auto status =
242         UtdClient::GetInstance().GetUniformDataTypeByFilenameExtension(filenameExtension, currType, blongsToType);
243     EXPECT_EQ(status, E_INVALID_PARAMETERS);
244     LOG_INFO(UDMF_TEST, "GetUniformDataTypeByFilenameExtension004 end.");
245 }
246 
247 /**
248 * @tc.name: GetUniformDataTypeByFilenameExtension005
249 * @tc.desc: Abnormal testcase of GetUniformDataTypeByFilenameExtension, return invalid parameter
250 * @tc.type: FUNC
251 */
252 HWTEST_F(UtdClientTest, GetUniformDataTypeByFilenameExtension005, TestSize.Level1)
253 {
254     LOG_INFO(UDMF_TEST, "GetUniformDataTypeByFilenameExtension005 begin.");
255     std::string filenameExtension = ".test";
256     std::string blongsToType = "general.test";
257     std::string currType;
258     auto status =
259         UtdClient::GetInstance().GetUniformDataTypeByFilenameExtension(filenameExtension, currType, blongsToType);
260     EXPECT_EQ(status, E_INVALID_PARAMETERS);
261     LOG_INFO(UDMF_TEST, "GetUniformDataTypeByFilenameExtension005 end.");
262 }
263 
264 /**
265 * @tc.name: GetUniformDataTypeByFilenameExtension006
266 * @tc.desc: Normal testcase of GetUniformDataTypeByFilenameExtension
267 * @tc.type: FUNC
268 */
269 HWTEST_F(UtdClientTest, GetUniformDataTypeByFilenameExtension006, TestSize.Level1)
270 {
271     LOG_INFO(UDMF_TEST, "GetUniformDataTypeByFilenameExtension006 begin.");
272     std::string filenameExtension = ".mp3";
273     std::string blongsToType = "general.object";
274     std::string currType;
275     auto status =
276         UtdClient::GetInstance().GetUniformDataTypeByFilenameExtension(filenameExtension, currType, blongsToType);
277     EXPECT_EQ(status, E_OK);
278     EXPECT_EQ(currType, "general.mp3");
279     LOG_INFO(UDMF_TEST, "GetUniformDataTypeByFilenameExtension006 end.");
280 }
281 
282 /**
283 * @tc.name: GetUniformDataTypeByFilenameExtension007
284 * @tc.desc: Abnormal testcase of GetUniformDataTypeByFilenameExtension, return invalid parameter
285 * @tc.type: FUNC
286 */
287 HWTEST_F(UtdClientTest, GetUniformDataTypeByFilenameExtension007, TestSize.Level1)
288 {
289     LOG_INFO(UDMF_TEST, "GetUniformDataTypeByFilenameExtension007 begin.");
290     std::string filenameExtension = ".mp3";
291     std::string blongsToType = "test";
292     std::string currType;
293     auto status =
294         UtdClient::GetInstance().GetUniformDataTypeByFilenameExtension(filenameExtension, currType, blongsToType);
295     EXPECT_EQ(status, E_INVALID_PARAMETERS);
296     LOG_INFO(UDMF_TEST, "GetUniformDataTypeByFilenameExtension007 end.");
297 }
298 
299 
300 /**
301 * @tc.name: GetUniformDataTypeByFilenameExtension008
302 * @tc.desc: Abnormal testcase of GetUniformDataTypeByFilenameExtension, return flexible type.
303 * @tc.type: FUNC
304 */
305 HWTEST_F(UtdClientTest, GetUniformDataTypeByFilenameExtension008, TestSize.Level1)
306 {
307     LOG_INFO(UDMF_TEST, "GetUniformDataTypeByFilenameExtension008 begin.");
308     std::string filenameExtension = ".auto-image";
309     std::string blongsToType = "general.image";
310     std::string currType;
311     auto status =
312         UtdClient::GetInstance().GetUniformDataTypeByFilenameExtension(filenameExtension, currType, blongsToType);
313     EXPECT_EQ(status, E_OK);
314     std::shared_ptr<TypeDescriptor> descriptor;
315     status = UtdClient::GetInstance().GetTypeDescriptor(currType, descriptor);
316     EXPECT_EQ(status, E_OK);
317     EXPECT_EQ(descriptor->GetTypeId(), currType);
318     EXPECT_EQ(*(descriptor->GetBelongingToTypes().begin()), "general.image");
319     EXPECT_EQ(descriptor->GetDescription().empty(), true);
320     EXPECT_EQ(descriptor->GetIconFile().empty(), true);
321     EXPECT_EQ(*(descriptor->GetFilenameExtensions().begin()), ".auto-image");
322     EXPECT_EQ(descriptor->GetMimeTypes().empty(), true);
323     LOG_INFO(UDMF_TEST, "GetUniformDataTypeByFilenameExtension008 end.");
324 }
325 
326 /**
327 * @tc.name: GetUniformDataTypeByMIMEType001
328 * @tc.desc: Normal testcase of GetUniformDataTypeByMIMEType
329 * @tc.type: FUNC
330 */
331 HWTEST_F(UtdClientTest, GetUniformDataTypeByMIMEType001, TestSize.Level1)
332 {
333     LOG_INFO(UDMF_TEST, "GetUniformDataTypeByMIMEType001 begin.");
334     std::string mimeType = "application/x-mobi8-ebook";
335     std::string blongsToType = "general.ebook";
336     std::string currType;
337     auto status = UtdClient::GetInstance().GetUniformDataTypeByMIMEType(mimeType, currType, blongsToType);
338     EXPECT_EQ(status, E_OK);
339     EXPECT_EQ(currType, "com.amazon.azw3");
340     LOG_INFO(UDMF_TEST, "GetUniformDataTypeByMIMEType001 end.");
341 }
342 
343 /**
344 * @tc.name: GetUniformDataTypeByMIMEType002
345 * @tc.desc: Normal testcase of GetUniformDataTypeByMIMEType
346 * @tc.type: FUNC
347 */
348 HWTEST_F(UtdClientTest, GetUniformDataTypeByMIMEType002, TestSize.Level1)
349 {
350     LOG_INFO(UDMF_TEST, "GetUniformDataTypeByMIMEType002 begin.");
351     std::string mimeType = "application/vnd.ms-powerpoint";
352     std::string blongsToType = "general.composite-object";
353     std::string currType;
354     auto status = UtdClient::GetInstance().GetUniformDataTypeByMIMEType(mimeType, currType, blongsToType);
355     EXPECT_EQ(status, E_OK);
356     EXPECT_EQ(currType, "com.microsoft.powerpoint.ppt");
357     LOG_INFO(UDMF_TEST, "GetUniformDataTypeByMIMEType002 end.");
358 }
359 
360 /**
361 * @tc.name: GetUniformDataTypeByMIMEType003
362 * @tc.desc: Abnormal testcase of GetUniformDataTypeByMIMEType, return invalid parameter
363 * @tc.type: FUNC
364 */
365 HWTEST_F(UtdClientTest, GetUniformDataTypeByMIMEType003, TestSize.Level1)
366 {
367     LOG_INFO(UDMF_TEST, "GetUniformDataTypeByMIMEType003 begin.");
368     std::string mimeType = "test01";
369     std::string blongsToType = "";
370     std::string currType;
371     auto status = UtdClient::GetInstance().GetUniformDataTypeByMIMEType(mimeType, currType, blongsToType);
372     EXPECT_EQ(status, E_INVALID_PARAMETERS);
373     LOG_INFO(UDMF_TEST, "GetUniformDataTypeByMIMEType003 end.");
374 }
375 
376 /**
377 * @tc.name: GetUniformDataTypeByMIMEType004
378 * @tc.desc: BelongsTo is invalid, return invalid parameter
379 * @tc.type: FUNC
380 */
381 HWTEST_F(UtdClientTest, GetUniformDataTypeByMIMEType004, TestSize.Level1)
382 {
383     LOG_INFO(UDMF_TEST, "GetUniformDataTypeByMIMEType004 begin.");
384     std::string mimeType = "";
385     std::string blongsToType = "test02";
386     std::string currType;
387     auto status = UtdClient::GetInstance().GetUniformDataTypeByMIMEType(mimeType, currType, blongsToType);
388     EXPECT_EQ(status, E_INVALID_PARAMETERS);
389     LOG_INFO(UDMF_TEST, "GetUniformDataTypeByMIMEType004 end.");
390 }
391 
392 /**
393 * @tc.name: GetUniformDataTypeByMIMEType005
394 * @tc.desc: BelongsTo is invalid, return invalid parameter
395 * @tc.type: FUNC
396 */
397 HWTEST_F(UtdClientTest, GetUniformDataTypeByMIMEType005, TestSize.Level1)
398 {
399     LOG_INFO(UDMF_TEST, "GetUniformDataTypeByMIMEType005 begin.");
400     std::string mimeType = ".pm";
401     std::string blongsToType = "test03";
402     std::string currType;
403     auto status = UtdClient::GetInstance().GetUniformDataTypeByMIMEType(mimeType, currType, blongsToType);
404     EXPECT_EQ(status, E_INVALID_PARAMETERS);
405     LOG_INFO(UDMF_TEST, "GetUniformDataTypeByMIMEType005 end.");
406 }
407 
408 /**
409 * @tc.name: GetUniformDataTypeByMIMEType006
410 * @tc.desc: Abnormal testcase of GetUniformDataTypeByMIMEType,
411 * para empty string, return E_INVALID_PARAMETERS
412 * @tc.type: FUNC
413 */
414 HWTEST_F(UtdClientTest, GetUniformDataTypeByMIMEType006, TestSize.Level1)
415 {
416     LOG_INFO(UDMF_TEST, "GetUniformDataTypeByMIMEType006 begin.");
417     std::string mimeType = "";
418     std::string blongsToType = "general.entity";
419     std::string currType;
420     auto status = UtdClient::GetInstance().GetUniformDataTypeByMIMEType(mimeType, currType, blongsToType);
421     EXPECT_EQ(status, E_INVALID_PARAMETERS);
422     LOG_INFO(UDMF_TEST, "GetUniformDataTypeByMIMEType006 end.");
423 }
424 
425 /**
426 * @tc.name: GetUniformDataTypeByMIMEType007
427 * @tc.desc: Abnormal testcase of GetUniformDataTypeByMIMEType, return flexible type.
428 * @tc.type: FUNC
429 */
430 HWTEST_F(UtdClientTest, GetUniformDataTypeByMIMEType007, TestSize.Level1)
431 {
432     LOG_INFO(UDMF_TEST, "GetUniformDataTypeByMIMEType007 begin.");
433     std::string mimeType = "image/auto-image";
434     std::string blongsToType = "general.image";
435     std::string currType;
436     auto status = UtdClient::GetInstance().GetUniformDataTypeByMIMEType(mimeType, currType, blongsToType);
437     EXPECT_EQ(status, E_OK);
438     std::shared_ptr<TypeDescriptor> descriptor;
439     status = UtdClient::GetInstance().GetTypeDescriptor(currType, descriptor);
440     EXPECT_EQ(status, E_OK);
441     EXPECT_EQ(descriptor->GetTypeId(), currType);
442     EXPECT_EQ(*(descriptor->GetBelongingToTypes().begin()), "general.image");
443     EXPECT_EQ(descriptor->GetDescription().empty(), true);
444     EXPECT_EQ(descriptor->GetIconFile().empty(), true);
445     EXPECT_EQ(descriptor->GetFilenameExtensions().empty(), true);
446     EXPECT_EQ(*(descriptor->GetMimeTypes().begin()), "image/auto-image");
447     LOG_INFO(UDMF_TEST, "GetUniformDataTypeByMIMEType007 end.");
448 }
449 
450 /**
451 * @tc.name: BelongsTo001
452 * @tc.desc: Normal testcase of BelongsTo
453 * @tc.type: FUNC
454 */
455 HWTEST_F(UtdClientTest, BelongsTo001, TestSize.Level1)
456 {
457     LOG_INFO(UDMF_TEST, "BelongsTo001 begin.");
458     std::shared_ptr<TypeDescriptor> descriptor;
459     std::string typeId = "com.amazon.azw3";
460     auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
461     EXPECT_EQ(status, E_OK);
462     bool checkRet = false;
463     ASSERT_NE(descriptor, nullptr);
464     status = descriptor->BelongsTo("general.composite-object", checkRet);
465     EXPECT_EQ(status, E_OK);
466     EXPECT_EQ(checkRet, true);
467     LOG_INFO(UDMF_TEST, "BelongsTo001 end.");
468 }
469 
470 /**
471 * @tc.name: BelongsTo002
472 * @tc.desc: Normal testcase of BelongsTo
473 * @tc.type: FUNC
474 */
475 HWTEST_F(UtdClientTest, BelongsTo002, TestSize.Level1)
476 {
477     LOG_INFO(UDMF_TEST, "BelongsTo002 begin.");
478     std::shared_ptr<TypeDescriptor> descriptor;
479     std::string typeId = "com.amazon.azw3";
480     auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
481     EXPECT_EQ(status, E_OK);
482     bool checkRet = false;
483     ASSERT_NE(descriptor, nullptr);
484     status = descriptor->BelongsTo(typeId, checkRet);
485     EXPECT_EQ(status, E_OK);
486     EXPECT_EQ(checkRet, true);
487     LOG_INFO(UDMF_TEST, "BelongsTo002 end.");
488 }
489 
490 /**
491 * @tc.name: BelongsTo003
492 * @tc.desc: Normal testcase of BelongsTo
493 * @tc.type: FUNC
494 */
495 HWTEST_F(UtdClientTest, BelongsTo003, TestSize.Level1)
496 {
497     LOG_INFO(UDMF_TEST, "BelongsTo003 begin.");
498     std::shared_ptr<TypeDescriptor> descriptor;
499     std::string typeId = "general.tiff";
500     auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
501     EXPECT_EQ(status, E_OK);
502     bool checkRet = false;
503     ASSERT_NE(descriptor, nullptr);
504     status = descriptor->BelongsTo("general.media", checkRet);
505     EXPECT_EQ(status, E_OK);
506     EXPECT_EQ(checkRet, true);
507     LOG_INFO(UDMF_TEST, "BelongsTo003 end.");
508 }
509 
510 /**
511 * @tc.name: BelongsTo004
512 * @tc.desc: Normal testcase of BelongsTo
513 * @tc.type: FUNC
514 */
515 HWTEST_F(UtdClientTest, BelongsTo004, TestSize.Level1)
516 {
517     LOG_INFO(UDMF_TEST, "BelongsTo004 begin.");
518     std::shared_ptr<TypeDescriptor> descriptor;
519     std::string typeId = "general.tiff";
520     auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
521     EXPECT_EQ(status, E_OK);
522     bool checkRet = false;
523     ASSERT_NE(descriptor, nullptr);
524     status = descriptor->BelongsTo("general.object", checkRet);
525     EXPECT_EQ(status, E_OK);
526     EXPECT_EQ(checkRet, true);
527     LOG_INFO(UDMF_TEST, "BelongsTo004 end.");
528 }
529 
530 /**
531 * @tc.name: BelongsTo005
532 * @tc.desc: Abnormal testcase of BelongsTo
533 * @tc.type: FUNC
534 */
535 HWTEST_F(UtdClientTest, BelongsTo005, TestSize.Level1)
536 {
537     LOG_INFO(UDMF_TEST, "BelongsTo005 begin.");
538     std::shared_ptr<TypeDescriptor> descriptor;
539     std::string typeId = "general.c-header";
540     auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
541     EXPECT_EQ(status, E_OK);
542     bool checkRet = false;
543     ASSERT_NE(descriptor, nullptr);
544     status = descriptor->BelongsTo("general.script", checkRet);
545     EXPECT_EQ(status, E_OK);
546     EXPECT_EQ(checkRet, false);
547     LOG_INFO(UDMF_TEST, "BelongsTo005 end.");
548 }
549 
550 /**
551 * @tc.name: BelongsTo006
552 * @tc.desc: BelongsTo is invalid, return invalid parameter
553 * @tc.type: FUNC
554 */
555 HWTEST_F(UtdClientTest, BelongsTo006, TestSize.Level1)
556 {
557     LOG_INFO(UDMF_TEST, "BelongsTo006 begin.");
558     std::shared_ptr<TypeDescriptor> descriptor;
559     std::string typeId = "general.mpeg";
560     auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
561     EXPECT_EQ(status, E_OK);
562     bool checkRet = false;
563     ASSERT_NE(descriptor, nullptr);
564     status = descriptor->BelongsTo("test04", checkRet);
565     EXPECT_EQ(status, E_INVALID_PARAMETERS);
566     EXPECT_EQ(checkRet, false);
567     LOG_INFO(UDMF_TEST, "BelongsTo006 end.");
568 }
569 
570 /**
571 * @tc.name: IsLowerLevelType001
572 * @tc.desc: Normal testcase of IsLowerLevelType
573 * @tc.type: FUNC
574 */
575 HWTEST_F(UtdClientTest, IsLowerLevelType001, TestSize.Level1)
576 {
577     LOG_INFO(UDMF_TEST, "IsLowerLevelType001 begin.");
578     std::shared_ptr<TypeDescriptor> descriptor;
579     std::string typeId = "com.amazon.azw3";
580     auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
581     EXPECT_EQ(status, E_OK);
582     bool checkRet = false;
583     ASSERT_NE(descriptor, nullptr);
584     status = descriptor->IsLowerLevelType("general.composite-object", checkRet);
585     EXPECT_EQ(status, E_OK);
586     EXPECT_EQ(checkRet, true);
587     LOG_INFO(UDMF_TEST, "IsLowerLevelType001 end.");
588 }
589 
590 /**
591 * @tc.name: IsLowerLevelType002
592 * @tc.desc: TypeId is "', return invalid parameter
593 * @tc.type: FUNC
594 */
595 HWTEST_F(UtdClientTest, IsLowerLevelType002, TestSize.Level1)
596 {
597     LOG_INFO(UDMF_TEST, "IsLowerLevelType002 begin.");
598     std::shared_ptr<TypeDescriptor> descriptor;
599     std::string typeId = "general.object";
600     auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
601     EXPECT_EQ(status, E_OK);
602     bool checkRet = false;
603     ASSERT_NE(descriptor, nullptr);
604     status = descriptor->IsLowerLevelType("", checkRet);
605     EXPECT_EQ(status, Status::E_INVALID_PARAMETERS);
606     EXPECT_EQ(checkRet, false);
607     LOG_INFO(UDMF_TEST, "IsLowerLevelType002 end.");
608 }
609 
610 /**
611 * @tc.name: IsLowerLevelType003
612 * @tc.desc: Normal testcase of IsLowerLevelType
613 * @tc.type: FUNC
614 */
615 HWTEST_F(UtdClientTest, IsLowerLevelType003, TestSize.Level1)
616 {
617     LOG_INFO(UDMF_TEST, "IsLowerLevelType003 begin.");
618     std::shared_ptr<TypeDescriptor> descriptor;
619     std::string typeId = "com.microsoft.bmp";
620     auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
621     EXPECT_EQ(status, E_OK);
622     bool checkRet = false;
623     ASSERT_NE(descriptor, nullptr);
624     status = descriptor->IsLowerLevelType("general.object", checkRet);
625     EXPECT_EQ(status, E_OK);
626     EXPECT_EQ(checkRet, true);
627     LOG_INFO(UDMF_TEST, "IsLowerLevelType003 end.");
628 }
629 
630 /**
631 * @tc.name: IsLowerLevelType004
632 * @tc.desc: Abnormal testcase of IsLowerLevelType, the two values are equal
633 * @tc.type: FUNC
634 */
635 HWTEST_F(UtdClientTest, IsLowerLevelType004, TestSize.Level1)
636 {
637     LOG_INFO(UDMF_TEST, "IsLowerLevelType004 begin.");
638     std::shared_ptr<TypeDescriptor> descriptor;
639     std::string typeId = "com.amazon.azw3";
640     auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
641     EXPECT_EQ(status, E_OK);
642     bool checkRet = false;
643     ASSERT_NE(descriptor, nullptr);
644     status = descriptor->IsLowerLevelType("com.amazon.azw3", checkRet);
645     EXPECT_EQ(status, E_OK);
646     EXPECT_EQ(checkRet, false);
647     LOG_INFO(UDMF_TEST, "IsLowerLevelType004 end.");
648 }
649 
650 /**
651 * @tc.name: IsHigherLevelType001
652 * @tc.desc: Normal testcase of IsHigherLevelType
653 * @tc.type: FUNC
654 */
655 HWTEST_F(UtdClientTest, IsHigherLevelType001, TestSize.Level1)
656 {
657     LOG_INFO(UDMF_TEST, "IsHigherLevelType001 begin.");
658     std::shared_ptr<TypeDescriptor> descriptor;
659     std::string typeId = "general.composite-object";
660     auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
661     EXPECT_EQ(status, E_OK);
662     bool checkRet = false;
663     ASSERT_NE(descriptor, nullptr);
664     status = descriptor->IsHigherLevelType("com.amazon.azw3", checkRet);
665     EXPECT_EQ(status, E_OK);
666     EXPECT_EQ(checkRet, true);
667     LOG_INFO(UDMF_TEST, "IsHigherLevelType001 end.");
668 }
669 
670 /**
671 * @tc.name: IsHigherLevelType002
672 * @tc.desc: Abnormal testcase of IsHigherLevelType, the two values are equal
673 * @tc.type: FUNC
674 */
675 HWTEST_F(UtdClientTest, IsHigherLevelType002, TestSize.Level1)
676 {
677     LOG_INFO(UDMF_TEST, "IsHigherLevelType002 begin.");
678     std::shared_ptr<TypeDescriptor> descriptor;
679     std::string typeId = "com.amazon.azw3";
680     auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
681     EXPECT_EQ(status, E_OK);
682     bool checkRet = false;
683     ASSERT_NE(descriptor, nullptr);
684     status = descriptor->IsHigherLevelType("com.amazon.azw3", checkRet);
685     EXPECT_EQ(status, E_OK);
686     EXPECT_EQ(checkRet, false);
687     LOG_INFO(UDMF_TEST, "IsHigherLevelType002 end.");
688 }
689 
690 /**
691 * @tc.name: IsHigherLevelType003
692 * @tc.desc: Abnormal testcase of IsHigherLevelType
693 * @tc.type: FUNC
694 */
695 HWTEST_F(UtdClientTest, IsHigherLevelType003, TestSize.Level1)
696 {
697     LOG_INFO(UDMF_TEST, "IsHigherLevelType003 begin.");
698     std::shared_ptr<TypeDescriptor> descriptor;
699     std::string typeId = "general.image";
700     auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
701     EXPECT_EQ(status, E_OK);
702     bool checkRet = false;
703     ASSERT_NE(descriptor, nullptr);
704     status = descriptor->IsHigherLevelType("general.object", checkRet);
705     EXPECT_EQ(status, E_OK);
706     EXPECT_EQ(checkRet, false);
707     LOG_INFO(UDMF_TEST, "IsHigherLevelType003 end.");
708 }
709 
710 /**
711 * @tc.name: Equals001
712 * @tc.desc: Abnormal testcase of Equals, two values are different
713 * @tc.type: FUNC
714 */
715 HWTEST_F(UtdClientTest, Equals001, TestSize.Level1)
716 {
717     LOG_INFO(UDMF_TEST, "Equals001 begin.");
718     std::shared_ptr<TypeDescriptor> descriptor1;
719     std::string typeId1 =  "com.amazon.azw3";
720     auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId1, descriptor1);
721     EXPECT_EQ(status, E_OK);
722     std::string typeId2 = "general.composite-object";
723     std::shared_ptr<TypeDescriptor> descriptor2;
724     status = UtdClient::GetInstance().GetTypeDescriptor(typeId2, descriptor2);
725     EXPECT_EQ(status, E_OK);
726     bool ret = descriptor1->Equals(descriptor2);
727     EXPECT_EQ(ret, false);
728     LOG_INFO(UDMF_TEST, "Equals001 end.");
729 }
730 
731 /**
732 * @tc.name: Equals002
733 * @tc.desc: Normal testcase of Equals
734 * @tc.type: FUNC
735 */
736 HWTEST_F(UtdClientTest, Equals002, TestSize.Level1)
737 {
738     LOG_INFO(UDMF_TEST, "Equals002 begin.");
739     std::shared_ptr<TypeDescriptor> descriptor1;
740     std::string typeId1 =  "com.amazon.azw3";
741     auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId1, descriptor1);
742     EXPECT_EQ(status, E_OK);
743     std::string typeId2 =  "com.amazon.azw3";
744     std::shared_ptr<TypeDescriptor> descriptor2;
745     status = UtdClient::GetInstance().GetTypeDescriptor(typeId2, descriptor2);
746     EXPECT_EQ(status, E_OK);
747     bool ret = descriptor1->Equals(descriptor2);
748     EXPECT_EQ(ret, true);
749     LOG_INFO(UDMF_TEST, "Equals002 end.");
750 }
751 
752 /**
753 * @tc.name: TypeDescriptorGetAttr001
754 * @tc.desc: Normal testcase of TypeDescriptorGetAttr
755 * @tc.type: FUNC
756 */
757 HWTEST_F(UtdClientTest, TypeDescriptorGetAttr001, TestSize.Level1)
758 {
759     LOG_INFO(UDMF_TEST, "TypeDescriptorGetAttr001 begin.");
760     std::shared_ptr<TypeDescriptor> descriptor;
761     std::string typeId = "com.amazon.azw3";
762     auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
763     EXPECT_EQ(status, E_OK);
764     EXPECT_EQ(descriptor->GetTypeId(), typeId);
765     EXPECT_EQ(*(descriptor->GetBelongingToTypes().begin()), "general.ebook");
766     EXPECT_EQ(descriptor->GetDescription(), "AZW3 ebook.");
767     EXPECT_EQ(descriptor->GetIconFile(), "");
768     EXPECT_EQ(*(descriptor->GetFilenameExtensions().begin()), ".azw3");
769     EXPECT_EQ(*(descriptor->GetMimeTypes().begin()), "application/vnd.amazon.mobi8-ebook");
770 
771     LOG_INFO(UDMF_TEST, "TypeDescriptorGetAttr001 end.");
772 }
773 
774 /**
775 * @tc.name: TypeDescriptorGetAttr002
776 * @tc.desc: Normal testcase of TypeDescriptorGetAttr
777 * @tc.type: FUNC
778 */
779 HWTEST_F(UtdClientTest, TypeDescriptorGetAttr002, TestSize.Level1)
780 {
781     LOG_INFO(UDMF_TEST, "TypeDescriptorGetAttr002 begin.");
782     std::shared_ptr<TypeDescriptor> descriptor;
783     std::string typeId = "general.text";
784     auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
785     EXPECT_EQ(status, E_OK);
786     EXPECT_EQ(descriptor->GetTypeId(), typeId);
787     EXPECT_EQ(*(descriptor->GetBelongingToTypes().begin()), "general.object");
788     EXPECT_EQ(descriptor->GetDescription(), "Base type for all text.");
789     EXPECT_EQ(descriptor->GetIconFile(), "");
790     EXPECT_EQ(descriptor->GetFilenameExtensions().empty(), true);
791     EXPECT_EQ(*(descriptor->GetMimeTypes().begin()), "text/*");
792 
793     LOG_INFO(UDMF_TEST, "TypeDescriptorGetAttr002 end.");
794 }
795 
796 /**
797 * @tc.name: TypeDescriptorGetAttr003
798 * @tc.desc: Normal testcase of TypeDescriptorGetAttr
799 * @tc.type: FUNC
800 */
801 HWTEST_F(UtdClientTest, TypeDescriptorGetAttr003, TestSize.Level1)
802 {
803     LOG_INFO(UDMF_TEST, "TypeDescriptorGetAttr003 begin.");
804     std::shared_ptr<TypeDescriptor> descriptor;
805     std::string typeId = "general.image";
806     auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
807     EXPECT_EQ(status, E_OK);
808     EXPECT_EQ(descriptor->GetTypeId(), typeId);
809     EXPECT_EQ(*(descriptor->GetBelongingToTypes().begin()), "general.media");
810     EXPECT_EQ(descriptor->GetDescription(), "Base type for images.");
811     EXPECT_EQ(descriptor->GetIconFile(), "sys.media.ohos_ic_normal_white_grid_image");
812     EXPECT_EQ(descriptor->GetFilenameExtensions().empty(), true);
813     EXPECT_EQ(*(descriptor->GetMimeTypes().begin()), "image/*");
814 
815     LOG_INFO(UDMF_TEST, "TypeDescriptorGetAttr003 end.");
816 }
817 
818 /**
819 * @tc.name: TypeDescriptorGetAttr004
820 * @tc.desc: Normal testcase of TypeDescriptorGetAttr
821 * @tc.type: FUNC
822 */
823 HWTEST_F(UtdClientTest, TypeDescriptorGetAttr004, TestSize.Level1)
824 {
825     LOG_INFO(UDMF_TEST, "TypeDescriptorGetAttr004 begin.");
826     std::shared_ptr<TypeDescriptor> descriptor;
827     std::string typeId = "general.video";
828     auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
829     EXPECT_EQ(status, E_OK);
830     EXPECT_EQ(descriptor->GetTypeId(), typeId);
831     EXPECT_EQ(*(descriptor->GetBelongingToTypes().begin()), "general.media");
832     EXPECT_EQ(descriptor->GetDescription(), "Base type for video.");
833     EXPECT_EQ(descriptor->GetIconFile(), "sys.media.ohos_ic_normal_white_grid_video");
834     EXPECT_EQ(descriptor->GetFilenameExtensions().empty(), true);
835     EXPECT_EQ(*(descriptor->GetMimeTypes().begin()), "video/*");
836 
837     LOG_INFO(UDMF_TEST, "TypeDescriptorGetAttr004 end.");
838 }
839 
840 /**
841 * @tc.name: TypeDescriptorGetAttr005
842 * @tc.desc: Normal testcase of TypeDescriptorGetAttr
843 * @tc.type: FUNC
844 */
845 HWTEST_F(UtdClientTest, TypeDescriptorGetAttr005, TestSize.Level1)
846 {
847     LOG_INFO(UDMF_TEST, "TypeDescriptorGetAttr005 begin.");
848     std::shared_ptr<TypeDescriptor> descriptor;
849     std::string typeId = "general.audio";
850     auto status = UtdClient::GetInstance().GetTypeDescriptor(typeId, descriptor);
851     EXPECT_EQ(status, E_OK);
852     EXPECT_EQ(descriptor->GetTypeId(), typeId);
853     EXPECT_EQ(*(descriptor->GetBelongingToTypes().begin()), "general.media");
854     EXPECT_EQ(descriptor->GetDescription(), "Base type for audio.");
855     EXPECT_EQ(descriptor->GetIconFile(), "sys.media.ohos_ic_normal_white_grid_audio");
856     EXPECT_EQ(descriptor->GetFilenameExtensions().empty(), true);
857     EXPECT_EQ(*(descriptor->GetMimeTypes().begin()), "audio/*");
858 
859     LOG_INFO(UDMF_TEST, "TypeDescriptorGetAttr005 end.");
860 }
861 
862 /**
863 * @tc.name: FlexibleType001
864 * @tc.desc: Normal testcase of flexibleType, flexibleType cmp with preset UTD.
865 * @tc.type: FUNC
866 */
867 HWTEST_F(UtdClientTest, FlexibleType001, TestSize.Level1)
868 {
869     LOG_INFO(UDMF_TEST, "FlexibleType001 begin.");
870     std::string filenameExtension = ".mytext";
871     std::string blongsToType = "general.plain-text";
872     std::string flexTypeId;
873     auto status =
874         UtdClient::GetInstance().GetUniformDataTypeByFilenameExtension(filenameExtension, flexTypeId, blongsToType);
875     EXPECT_EQ(status, E_OK);
876     LOG_INFO(UDMF_TEST, "FlexibleType001, flexTypeId = %{public}s.", flexTypeId.c_str());
877     std::shared_ptr<TypeDescriptor> descriptor;
878     status = UtdClient::GetInstance().GetTypeDescriptor(flexTypeId, descriptor);
879     EXPECT_EQ(status, E_OK);
880     EXPECT_EQ(descriptor->GetTypeId(), flexTypeId);
881     EXPECT_EQ(*(descriptor->GetBelongingToTypes().begin()), "general.plain-text");
882     EXPECT_EQ(descriptor->GetDescription().empty(), true);
883     EXPECT_EQ(descriptor->GetIconFile().empty(), true);
884     EXPECT_EQ(descriptor->GetMimeTypes().empty(), true);
885     EXPECT_EQ(*(descriptor->GetFilenameExtensions().begin()), ".mytext");
886     bool checkRet = false;
887     ASSERT_NE(descriptor, nullptr);
888     status = descriptor->IsHigherLevelType("general.object", checkRet);    //  cmp with gengral type.
889     EXPECT_EQ(status, E_OK);
890     EXPECT_EQ(checkRet, false);
891     LOG_INFO(UDMF_TEST, "FlexibleType001 end.");
892 }
893 
894 /**
895 * @tc.name: FlexibleType002
896 * @tc.desc: Normal testcase of flexibleType, flexibleType cmp with preset UTD.
897 * @tc.type: FUNC
898 */
899 HWTEST_F(UtdClientTest, FlexibleType002, TestSize.Level1)
900 {
901     LOG_INFO(UDMF_TEST, "FlexibleType002 begin.");
902     std::string filenameExtension = ".mytext";
903     std::string blongsToType = "general.plain-text";
904     std::string flexTypeId1;
905     auto status =
906         UtdClient::GetInstance().GetUniformDataTypeByFilenameExtension(filenameExtension, flexTypeId1, blongsToType);
907     EXPECT_EQ(status, E_OK);
908     LOG_INFO(UDMF_TEST, "FlexibleType002, flexTypeId1 = %{public}s.", flexTypeId1.c_str());
909     std::shared_ptr<TypeDescriptor> descriptor1;
910     status = UtdClient::GetInstance().GetTypeDescriptor(flexTypeId1, descriptor1);
911     EXPECT_EQ(status, E_OK);
912 
913     std::string filenameExtension2 = ".myvideo";
914     std::string blongsToType2 = "general.video";
915     std::string flexTypeId2;
916     status =
917         UtdClient::GetInstance().GetUniformDataTypeByFilenameExtension(filenameExtension2, flexTypeId2, blongsToType2);
918     EXPECT_EQ(status, E_OK);
919     LOG_INFO(UDMF_TEST, "FlexibleType002, flexTypeId2 = %{public}s.", flexTypeId2.c_str());
920     std::shared_ptr<TypeDescriptor> descriptor2;
921     status = UtdClient::GetInstance().GetTypeDescriptor(flexTypeId2, descriptor2);
922     EXPECT_EQ(status, E_OK);
923     EXPECT_EQ(descriptor2->GetTypeId(), flexTypeId2);
924     EXPECT_EQ(*(descriptor2->GetBelongingToTypes().begin()), "general.video");
925     EXPECT_EQ(descriptor2->GetDescription().empty(), true);
926     EXPECT_EQ(descriptor2->GetIconFile().empty(), true);
927     EXPECT_EQ(descriptor2->GetMimeTypes().empty(), true);
928     EXPECT_EQ(*(descriptor2->GetFilenameExtensions().begin()), ".myvideo");
929     bool checkRet = false;
930     ASSERT_NE(descriptor2, nullptr);
931     status = descriptor2->IsHigherLevelType(flexTypeId2, checkRet);   //  cmp with flexbile type.
932     EXPECT_EQ(status, E_OK);
933     EXPECT_EQ(checkRet, false);
934     LOG_INFO(UDMF_TEST, "FlexibleType002 end.");
935 }
936 
937 /**
938 * @tc.name: FlexibleType001
939 * @tc.desc: Normal testcase of flexibleType, flexibleType cmp with preset UTD.
940 * @tc.type: FUNC
941 */
942 HWTEST_F(UtdClientTest, FlexibleType003, TestSize.Level1)
943 {
944     LOG_INFO(UDMF_TEST, "FlexibleType003 begin.");
945     std::string filenameExtension = ".mytext";
946     std::string blongsToType = "general.plain-text";
947     std::string flexTypeId;
948     auto status =
949         UtdClient::GetInstance().GetUniformDataTypeByFilenameExtension(filenameExtension, flexTypeId, blongsToType);
950     EXPECT_EQ(status, E_OK);
951     LOG_INFO(UDMF_TEST, "FlexibleType003, flexTypeId = %{public}s.", flexTypeId.c_str());
952     std::shared_ptr<TypeDescriptor> descriptor;
953     status = UtdClient::GetInstance().GetTypeDescriptor(flexTypeId, descriptor);
954     EXPECT_EQ(status, E_OK);
955     EXPECT_EQ(descriptor->GetTypeId(), flexTypeId);
956     EXPECT_EQ(*(descriptor->GetBelongingToTypes().begin()), "general.plain-text");
957     EXPECT_EQ(descriptor->GetDescription().empty(), true);
958     EXPECT_EQ(descriptor->GetIconFile().empty(), true);
959     EXPECT_EQ(descriptor->GetMimeTypes().empty(), true);
960     EXPECT_EQ(*(descriptor->GetFilenameExtensions().begin()), ".mytext");
961     bool checkRet = false;
962     ASSERT_NE(descriptor, nullptr);
963     status = descriptor->IsHigherLevelType("general.invildType", checkRet);    //  cmp with invildType type.
964     EXPECT_EQ(status, E_INVALID_PARAMETERS);
965     EXPECT_EQ(checkRet, false);
966     LOG_INFO(UDMF_TEST, "FlexibleType003 end.");
967 }
968 
969 
970 /**
971 * @tc.name: FlexibleType011
972 * @tc.desc: Normal testcase of flexibleType, flexibleType cmp with preset UTD.
973 * @tc.type: FUNC
974 */
975 HWTEST_F(UtdClientTest, FlexibleType011, TestSize.Level1)
976 {
977     LOG_INFO(UDMF_TEST, "FlexibleType011 begin.");
978     std::string filenameExtension = ".mytext";
979     std::string blongsToType = "general.plain-text";
980     std::string flexTypeId;
981     auto status =
982         UtdClient::GetInstance().GetUniformDataTypeByFilenameExtension(filenameExtension, flexTypeId, blongsToType);
983     EXPECT_EQ(status, E_OK);
984     LOG_INFO(UDMF_TEST, "FlexibleType011, flexTypeId = %{public}s.", flexTypeId.c_str());
985     std::shared_ptr<TypeDescriptor> descriptor;
986     status = UtdClient::GetInstance().GetTypeDescriptor(flexTypeId, descriptor);
987     EXPECT_EQ(status, E_OK);
988     EXPECT_EQ(descriptor->GetTypeId(), flexTypeId);
989     EXPECT_EQ(*(descriptor->GetBelongingToTypes().begin()), "general.plain-text");
990     EXPECT_EQ(descriptor->GetDescription().empty(), true);
991     EXPECT_EQ(descriptor->GetIconFile().empty(), true);
992     EXPECT_EQ(descriptor->GetMimeTypes().empty(), true);
993     EXPECT_EQ(*(descriptor->GetFilenameExtensions().begin()), ".mytext");
994     bool checkRet = false;
995     ASSERT_NE(descriptor, nullptr);
996     status = descriptor->IsLowerLevelType("general.object", checkRet);
997     EXPECT_EQ(status, E_OK);
998     EXPECT_EQ(checkRet, true);
999     LOG_INFO(UDMF_TEST, "FlexibleType011 end.");
1000 }
1001 
1002 /**
1003 * @tc.name: FlexibleType012
1004 * @tc.desc: Normal testcase of flexibleType, flexibleType cmp with preset UTD.
1005 * @tc.type: FUNC
1006 */
1007 HWTEST_F(UtdClientTest, FlexibleType012, TestSize.Level1)
1008 {
1009     LOG_INFO(UDMF_TEST, "FlexibleType012 begin.");
1010     std::string filenameExtension = ".mytext";
1011     std::string blongsToType = "general.plain-text";
1012     std::string flexTypeId;
1013     auto status =
1014         UtdClient::GetInstance().GetUniformDataTypeByFilenameExtension(filenameExtension, flexTypeId, blongsToType);
1015     EXPECT_EQ(status, E_OK);
1016     LOG_INFO(UDMF_TEST, "FlexibleType012, flexTypeId = %{public}s.", flexTypeId.c_str());
1017     std::shared_ptr<TypeDescriptor> descriptor;
1018     status = UtdClient::GetInstance().GetTypeDescriptor(flexTypeId, descriptor);
1019     EXPECT_EQ(status, E_OK);
1020     EXPECT_EQ(descriptor->GetTypeId(), flexTypeId);
1021     EXPECT_EQ(*(descriptor->GetBelongingToTypes().begin()), "general.plain-text");
1022     EXPECT_EQ(descriptor->GetDescription().empty(), true);
1023     EXPECT_EQ(descriptor->GetIconFile().empty(), true);
1024     EXPECT_EQ(descriptor->GetMimeTypes().empty(), true);
1025     EXPECT_EQ(*(descriptor->GetFilenameExtensions().begin()), ".mytext");
1026     bool checkRet = false;
1027     ASSERT_NE(descriptor, nullptr);
1028     status = descriptor->IsLowerLevelType("general.video", checkRet);
1029     EXPECT_EQ(status, E_OK);
1030     EXPECT_EQ(checkRet, false);
1031     LOG_INFO(UDMF_TEST, "FlexibleType012 end.");
1032 }
1033 
1034 /**
1035 * @tc.name: FlexibleType013
1036 * @tc.desc: Normal testcase of flexibleType, flexibleType cmp with preset UTD.
1037 * @tc.type: FUNC
1038 */
1039 HWTEST_F(UtdClientTest, FlexibleType013, TestSize.Level1)
1040 {
1041     LOG_INFO(UDMF_TEST, "FlexibleType013 begin.");
1042     std::string filenameExtension = ".mytext";
1043     std::string blongsToType = "general.plain-text";
1044     std::string flexTypeId1;
1045     auto status =
1046         UtdClient::GetInstance().GetUniformDataTypeByFilenameExtension(filenameExtension, flexTypeId1, blongsToType);
1047     EXPECT_EQ(status, E_OK);
1048     LOG_INFO(UDMF_TEST, "FlexibleType013, flexTypeId1 = %{public}s.", flexTypeId1.c_str());
1049     std::shared_ptr<TypeDescriptor> descriptor1;
1050     status = UtdClient::GetInstance().GetTypeDescriptor(flexTypeId1, descriptor1);
1051     EXPECT_EQ(status, E_OK);
1052 
1053     std::string filenameExtension2 = ".myvideo";
1054     std::string blongsToType2 = "general.video";
1055     std::string flexTypeId2;
1056     status =
1057         UtdClient::GetInstance().GetUniformDataTypeByFilenameExtension(filenameExtension2, flexTypeId2, blongsToType2);
1058     EXPECT_EQ(status, E_OK);
1059     LOG_INFO(UDMF_TEST, "FlexibleType013, flexTypeId2 = %{public}s.", flexTypeId2.c_str());
1060     bool checkRet = false;
1061     ASSERT_NE(descriptor1, nullptr);
1062     status = descriptor1->IsLowerLevelType(flexTypeId2, checkRet);   //  cmp with flexbile type.
1063     EXPECT_EQ(status, E_OK);
1064     EXPECT_EQ(checkRet, false);
1065     LOG_INFO(UDMF_TEST, "FlexibleType013 end.");
1066 }
1067 
1068 /**
1069 * @tc.name: FlexibleType014
1070 * @tc.desc: Normal testcase of flexibleType, flexibleType cmp with preset UTD.
1071 * @tc.type: FUNC
1072 */
1073 HWTEST_F(UtdClientTest, FlexibleType014, TestSize.Level1)
1074 {
1075     LOG_INFO(UDMF_TEST, "FlexibleType014 begin.");
1076     std::string filenameExtension = ".mytext";
1077     std::string blongsToType = "general.plain-text";
1078     std::string flexTypeId;
1079     auto status =
1080         UtdClient::GetInstance().GetUniformDataTypeByFilenameExtension(filenameExtension, flexTypeId, blongsToType);
1081     EXPECT_EQ(status, E_OK);
1082     LOG_INFO(UDMF_TEST, "FlexibleType014, flexTypeId = %{public}s.", flexTypeId.c_str());
1083     std::shared_ptr<TypeDescriptor> descriptor;
1084     status = UtdClient::GetInstance().GetTypeDescriptor(flexTypeId, descriptor);
1085     EXPECT_EQ(status, E_OK);
1086     EXPECT_EQ(descriptor->GetTypeId(), flexTypeId);
1087     EXPECT_EQ(*(descriptor->GetBelongingToTypes().begin()), "general.plain-text");
1088     EXPECT_EQ(descriptor->GetDescription().empty(), true);
1089     EXPECT_EQ(descriptor->GetIconFile().empty(), true);
1090     EXPECT_EQ(descriptor->GetMimeTypes().empty(), true);
1091     EXPECT_EQ(*(descriptor->GetFilenameExtensions().begin()), ".mytext");
1092     bool checkRet = false;
1093     ASSERT_NE(descriptor, nullptr);
1094     status = descriptor->IsLowerLevelType("general.invaildType", checkRet);   // cmp with invaild type.
1095     EXPECT_EQ(status, E_INVALID_PARAMETERS);
1096     EXPECT_EQ(checkRet, false);
1097     LOG_INFO(UDMF_TEST, "FlexibleType014 end.");
1098 }
1099 
1100 /**
1101 * @tc.name: FlexibleType021
1102 * @tc.desc: Normal testcase of flexibleType, flexibleType cmp with preset UTD.
1103 * @tc.type: FUNC
1104 */
1105 HWTEST_F(UtdClientTest, FlexibleType021, TestSize.Level1)
1106 {
1107     LOG_INFO(UDMF_TEST, "FlexibleType021 begin.");
1108     std::string filenameExtension = ".mytext";
1109     std::string blongsToType = "general.plain-text";
1110     std::string flexTypeId;
1111     auto status =
1112         UtdClient::GetInstance().GetUniformDataTypeByFilenameExtension(filenameExtension, flexTypeId, blongsToType);
1113     EXPECT_EQ(status, E_OK);
1114     LOG_INFO(UDMF_TEST, "FlexibleType021, flexTypeId = %{public}s.", flexTypeId.c_str());
1115     std::shared_ptr<TypeDescriptor> descriptor;
1116     status = UtdClient::GetInstance().GetTypeDescriptor(flexTypeId, descriptor);
1117     EXPECT_EQ(status, E_OK);
1118     EXPECT_EQ(descriptor->GetTypeId(), flexTypeId);
1119     EXPECT_EQ(*(descriptor->GetBelongingToTypes().begin()), "general.plain-text");
1120     EXPECT_EQ(descriptor->GetDescription().empty(), true);
1121     EXPECT_EQ(descriptor->GetIconFile().empty(), true);
1122     EXPECT_EQ(descriptor->GetMimeTypes().empty(), true);
1123     EXPECT_EQ(*(descriptor->GetFilenameExtensions().begin()), ".mytext");
1124     bool checkRet = false;
1125     ASSERT_NE(descriptor, nullptr);
1126     status = descriptor->BelongsTo("general.object", checkRet);
1127     EXPECT_EQ(status, E_OK);
1128     EXPECT_EQ(checkRet, true);
1129     LOG_INFO(UDMF_TEST, "FlexibleType021 end.");
1130 }
1131 
1132 /**
1133 * @tc.name: FlexibleType022
1134 * @tc.desc: Normal testcase of flexibleType, flexibleType cmp with preset UTD.
1135 * @tc.type: FUNC
1136 */
1137 HWTEST_F(UtdClientTest, FlexibleType022, TestSize.Level1)
1138 {
1139     LOG_INFO(UDMF_TEST, "FlexibleType022 begin.");
1140     std::string filenameExtension = ".mytext";
1141     std::string blongsToType = "general.plain-text";
1142     std::string flexTypeId;
1143     auto status =
1144         UtdClient::GetInstance().GetUniformDataTypeByFilenameExtension(filenameExtension, flexTypeId, blongsToType);
1145     EXPECT_EQ(status, E_OK);
1146     LOG_INFO(UDMF_TEST, "FlexibleType022, flexTypeId = %{public}s.", flexTypeId.c_str());
1147     std::shared_ptr<TypeDescriptor> descriptor;
1148     status = UtdClient::GetInstance().GetTypeDescriptor(flexTypeId, descriptor);
1149     EXPECT_EQ(status, E_OK);
1150     EXPECT_EQ(descriptor->GetTypeId(), flexTypeId);
1151     EXPECT_EQ(*(descriptor->GetBelongingToTypes().begin()), "general.plain-text");
1152     EXPECT_EQ(descriptor->GetDescription().empty(), true);
1153     EXPECT_EQ(descriptor->GetIconFile().empty(), true);
1154     EXPECT_EQ(descriptor->GetMimeTypes().empty(), true);
1155     EXPECT_EQ(*(descriptor->GetFilenameExtensions().begin()), ".mytext");
1156     bool checkRet = false;
1157     ASSERT_NE(descriptor, nullptr);
1158     status = descriptor->BelongsTo(flexTypeId, checkRet);   // cmp with self.
1159     EXPECT_EQ(status, E_OK);
1160     EXPECT_EQ(checkRet, true);
1161     LOG_INFO(UDMF_TEST, "FlexibleType022 end.");
1162 }
1163 
1164 /**
1165 * @tc.name: FlexibleType023
1166 * @tc.desc: Normal testcase of flexibleType, flexibleType cmp with preset UTD.
1167 * @tc.type: FUNC
1168 */
1169 HWTEST_F(UtdClientTest, FlexibleType023, TestSize.Level1)
1170 {
1171     LOG_INFO(UDMF_TEST, "FlexibleType023 begin.");
1172     std::string filenameExtension = ".mytext";
1173     std::string blongsToType = "general.plain-text";
1174     std::string flexTypeId1;
1175     auto status =
1176         UtdClient::GetInstance().GetUniformDataTypeByFilenameExtension(filenameExtension, flexTypeId1, blongsToType);
1177     EXPECT_EQ(status, E_OK);
1178     LOG_INFO(UDMF_TEST, "FlexibleType023, flexTypeId1 = %{public}s.", flexTypeId1.c_str());
1179     std::shared_ptr<TypeDescriptor> descriptor1;
1180     status = UtdClient::GetInstance().GetTypeDescriptor(flexTypeId1, descriptor1);
1181     EXPECT_EQ(status, E_OK);
1182 
1183     std::string filenameExtension2 = ".myvideo";
1184     std::string blongsToType2 = "general.video";
1185     std::string flexTypeId2;
1186     status =
1187         UtdClient::GetInstance().GetUniformDataTypeByFilenameExtension(filenameExtension2, flexTypeId2, blongsToType2);
1188     EXPECT_EQ(status, E_OK);
1189     LOG_INFO(UDMF_TEST, "FlexibleType023, flexTypeId2 = %{public}s.", flexTypeId2.c_str());
1190     bool checkRet = false;
1191     ASSERT_NE(descriptor1, nullptr);
1192     status = descriptor1->BelongsTo(flexTypeId2, checkRet);   //  cmp with flexbile type.
1193     EXPECT_EQ(status, E_OK);
1194     EXPECT_EQ(checkRet, false);
1195     LOG_INFO(UDMF_TEST, "FlexibleType023 end.");
1196 }
1197 
1198 
1199 /**
1200 * @tc.name: FlexibleType024
1201 * @tc.desc: Normal testcase of flexibleType, flexibleType cmp with preset UTD.
1202 * @tc.type: FUNC
1203 */
1204 HWTEST_F(UtdClientTest, FlexibleType024, TestSize.Level1)
1205 {
1206     LOG_INFO(UDMF_TEST, "FlexibleType024 begin.");
1207     std::string filenameExtension = ".mytext";
1208     std::string blongsToType = "general.plain-text";
1209     std::string flexTypeId;
1210     auto status =
1211         UtdClient::GetInstance().GetUniformDataTypeByFilenameExtension(filenameExtension, flexTypeId, blongsToType);
1212     EXPECT_EQ(status, E_OK);
1213     LOG_INFO(UDMF_TEST, "FlexibleType024, flexTypeId = %{public}s.", flexTypeId.c_str());
1214     std::shared_ptr<TypeDescriptor> descriptor;
1215     status = UtdClient::GetInstance().GetTypeDescriptor(flexTypeId, descriptor);
1216     EXPECT_EQ(status, E_OK);
1217     EXPECT_EQ(descriptor->GetTypeId(), flexTypeId);
1218     EXPECT_EQ(*(descriptor->GetBelongingToTypes().begin()), "general.plain-text");
1219     EXPECT_EQ(descriptor->GetDescription().empty(), true);
1220     EXPECT_EQ(descriptor->GetIconFile().empty(), true);
1221     EXPECT_EQ(descriptor->GetMimeTypes().empty(), true);
1222     EXPECT_EQ(*(descriptor->GetFilenameExtensions().begin()), ".mytext");
1223     bool checkRet = false;
1224     ASSERT_NE(descriptor, nullptr);
1225     status = descriptor->BelongsTo("general.invaildType", checkRet);   // cmp with invaild type.
1226     EXPECT_EQ(status, E_INVALID_PARAMETERS);
1227     LOG_INFO(UDMF_TEST, "FlexibleType024 end.");
1228 }
1229 
1230 /**
1231 * @tc.name: IsUtd001
1232 * @tc.desc: IsUtd
1233 * @tc.type: FUNC
1234 */
1235 HWTEST_F(UtdClientTest, IsUtd001, TestSize.Level1)
1236 {
1237     LOG_INFO(UDMF_TEST, "IsUtd001 begin.");
1238     bool result = false;
1239     auto status = UtdClient::GetInstance().IsUtd("general.mp3", result);
1240     EXPECT_EQ(status, E_OK);
1241     EXPECT_EQ(result, true);
1242     status = UtdClient::GetInstance().IsUtd("com.amazon.azw3", result);
1243     EXPECT_EQ(status, E_OK);
1244     EXPECT_EQ(result, true);
1245     status = UtdClient::GetInstance().IsUtd("general.cer-certificate", result);
1246     EXPECT_EQ(status, E_OK);
1247     EXPECT_EQ(result, true);
1248     status = UtdClient::GetInstance().IsUtd("general.system", result);
1249     EXPECT_EQ(status, E_OK);
1250     EXPECT_EQ(result, true);
1251     status = UtdClient::GetInstance().IsUtd("com.example.demo.mytype-azw3", result);
1252     EXPECT_EQ(status, E_OK);
1253     EXPECT_EQ(result, true);
1254     status = UtdClient::GetInstance().IsUtd("com.example.demo.mytype", result);
1255     EXPECT_EQ(status, E_OK);
1256     EXPECT_EQ(result, true);
1257     status = UtdClient::GetInstance().IsUtd("com.example.demo.mytype3", result);
1258     EXPECT_EQ(status, E_OK);
1259     EXPECT_EQ(result, true);
1260     status = UtdClient::GetInstance().IsUtd("com.example.demo2.mytype3", result);
1261     EXPECT_EQ(status, E_OK);
1262     EXPECT_EQ(result, true);
1263     status = UtdClient::GetInstance().IsUtd("system.haha", result);
1264     EXPECT_EQ(status, E_OK);
1265     EXPECT_EQ(result, false);
1266     status = UtdClient::GetInstance().IsUtd("hello.text", result);
1267     EXPECT_EQ(status, E_OK);
1268     EXPECT_EQ(result, false);
1269     std::vector<TypeDescriptorCfg> allUTD = PresetTypeDescriptors::GetInstance().GetPresetTypes();
1270     for (auto item : allUTD) {
1271         status = UtdClient::GetInstance().IsUtd(item.typeId, result);
1272         EXPECT_EQ(status, E_OK);
1273         if (!result) {
1274             LOG_ERROR(UDMF_TEST, "IsUtd001 item is %{public}s is check fail. ", item.typeId.c_str());
1275         }
1276         EXPECT_EQ(result, true);
1277     }
1278     LOG_INFO(UDMF_TEST, "IsUtd001 end.");
1279 }
1280 
1281 /**
1282 * @tc.name: IsUtd002
1283 * @tc.desc: IsUtd
1284 * @tc.type: FUNC
1285 */
1286 HWTEST_F(UtdClientTest, IsUtd002, TestSize.Level1)
1287 {
1288     LOG_INFO(UDMF_TEST, "IsUtd002 begin.");
1289     bool result = false;
1290     auto status = UtdClient::GetInstance().IsUtd("BROWSER", result);
1291     EXPECT_EQ(status, E_OK);
1292     EXPECT_EQ(result, false);
1293     status = UtdClient::GetInstance().IsUtd("IMAGE", result);
1294     EXPECT_EQ(status, E_OK);
1295     EXPECT_EQ(result, false);
1296     status = UtdClient::GetInstance().IsUtd("AUDIO", result);
1297     EXPECT_EQ(status, E_OK);
1298     EXPECT_EQ(result, false);
1299     status = UtdClient::GetInstance().IsUtd("VIDEO", result);
1300     EXPECT_EQ(status, E_OK);
1301     EXPECT_EQ(result, false);
1302     status = UtdClient::GetInstance().IsUtd("PDF", result);
1303     EXPECT_EQ(status, E_OK);
1304     EXPECT_EQ(result, false);
1305     status = UtdClient::GetInstance().IsUtd("WORD", result);
1306     EXPECT_EQ(status, E_OK);
1307     EXPECT_EQ(result, false);
1308     status = UtdClient::GetInstance().IsUtd("EXCEL", result);
1309     EXPECT_EQ(status, E_OK);
1310     EXPECT_EQ(result, false);
1311     status = UtdClient::GetInstance().IsUtd("PPT", result);
1312     EXPECT_EQ(status, E_OK);
1313     EXPECT_EQ(result, false);
1314     status = UtdClient::GetInstance().IsUtd("EMAIL", result);
1315     EXPECT_EQ(status, E_OK);
1316     EXPECT_EQ(result, false);
1317     status = UtdClient::GetInstance().IsUtd("txt", result);
1318     EXPECT_EQ(status, E_OK);
1319     EXPECT_EQ(result, false);
1320     status = UtdClient::GetInstance().IsUtd("abcdef", result);
1321     EXPECT_EQ(status, E_OK);
1322     EXPECT_EQ(result, false);
1323     LOG_INFO(UDMF_TEST, "IsUtd002 end.");
1324 }
1325 
1326 /**
1327 * @tc.name: IsUtd003
1328 * @tc.desc: IsUtd
1329 * @tc.type: FUNC
1330 */
1331 HWTEST_F(UtdClientTest, IsUtd003, TestSize.Level1)
1332 {
1333     LOG_INFO(UDMF_TEST, "IsUtd003 begin.");
1334     bool result = false;
1335     auto status = UtdClient::GetInstance().IsUtd("*/*", result);
1336     EXPECT_EQ(status, E_OK);
1337     EXPECT_EQ(result, false);
1338     status = UtdClient::GetInstance().IsUtd("text/*", result);
1339     EXPECT_EQ(status, E_OK);
1340     EXPECT_EQ(result, false);
1341     status = UtdClient::GetInstance().IsUtd("image/*", result);
1342     EXPECT_EQ(status, E_OK);
1343     EXPECT_EQ(result, false);
1344     status = UtdClient::GetInstance().IsUtd("video/*", result);
1345     EXPECT_EQ(status, E_OK);
1346     EXPECT_EQ(result, false);
1347     status = UtdClient::GetInstance().IsUtd("audio/*", result);
1348     EXPECT_EQ(status, E_OK);
1349     EXPECT_EQ(result, false);
1350     status = UtdClient::GetInstance().IsUtd("audio/aiff", result);
1351     EXPECT_EQ(status, E_OK);
1352     EXPECT_EQ(result, false);
1353     LOG_INFO(UDMF_TEST, "IsUtd001 end.");
1354 }
1355 
1356 /**
1357 * @tc.name: IsUtd004
1358 * @tc.desc: IsUtd
1359 * @tc.type: FUNC
1360 */
1361 HWTEST_F(UtdClientTest, IsUtd004, TestSize.Level1)
1362 {
1363     LOG_INFO(UDMF_TEST, "IsUtd004 begin.");
1364     bool result = false;
1365     auto status = UtdClient::GetInstance().IsUtd(".TXT", result);
1366     EXPECT_EQ(status, E_OK);
1367     EXPECT_EQ(result, false);
1368     status = UtdClient::GetInstance().IsUtd(".MP3", result);
1369     EXPECT_EQ(status, E_OK);
1370     EXPECT_EQ(result, false);
1371     status = UtdClient::GetInstance().IsUtd(".3gp", result);
1372     EXPECT_EQ(status, E_OK);
1373     EXPECT_EQ(result, false);
1374     status = UtdClient::GetInstance().IsUtd(".txt", result);
1375     EXPECT_EQ(status, E_OK);
1376     EXPECT_EQ(result, false);
1377     status = UtdClient::GetInstance().IsUtd(".TXT", result);
1378     EXPECT_EQ(status, E_OK);
1379     EXPECT_EQ(result, false);
1380     status = UtdClient::GetInstance().IsUtd(".MP3", result);
1381     EXPECT_EQ(status, E_OK);
1382     EXPECT_EQ(result, false);
1383     status = UtdClient::GetInstance().IsUtd(".3gp", result);
1384     EXPECT_EQ(status, E_OK);
1385     EXPECT_EQ(result, false);
1386     status = UtdClient::GetInstance().IsUtd("abcdef", result);
1387     EXPECT_EQ(status, E_OK);
1388     EXPECT_EQ(result, false);
1389     LOG_INFO(UDMF_TEST, "IsUtd004 end.");
1390 }
1391 
1392 /**
1393 * @tc.name: GetUniformDataTypeByMIMETypeByPrefix001
1394 * @tc.desc: normal testcase of GetUniformDataTypeByMIMEType by prefix.
1395 * @tc.type: FUNC
1396 */
1397 HWTEST_F(UtdClientTest, GetUniformDataTypeByMIMETypeByPrefix001, TestSize.Level1)
1398 {
1399     LOG_INFO(UDMF_TEST, "GetUniformDataTypeByMIMETypeByPrefix001 begin.");
1400     std::string mimeType = "application/vnd.openxmlformats-officedocument.*";
1401     std::string currType;
1402     auto status = UtdClient::GetInstance().GetUniformDataTypeByMIMEType(mimeType, currType);
1403     EXPECT_EQ(status, E_OK);
1404     std::shared_ptr<TypeDescriptor> descriptor;
1405     status = UtdClient::GetInstance().GetTypeDescriptor(currType, descriptor);
1406     EXPECT_EQ(status, E_OK);
1407     EXPECT_EQ(descriptor->GetTypeId(), "general.composite-object");
1408     EXPECT_EQ(descriptor->GetTypeId(), currType);
1409 
1410     std::string mimeType2 = "application/vnd.openxmlformats-officedocument.wordprocessingml.*";
1411     std::string currType2;
1412     status = UtdClient::GetInstance().GetUniformDataTypeByMIMEType(mimeType2, currType2);
1413     EXPECT_EQ(status, E_OK);
1414     status = UtdClient::GetInstance().GetTypeDescriptor(currType2, descriptor);
1415     EXPECT_EQ(status, E_OK);
1416     EXPECT_EQ(descriptor->GetTypeId(), "general.composite-object");
1417     EXPECT_EQ(descriptor->GetTypeId(), currType2);
1418     LOG_INFO(UDMF_TEST, "GetUniformDataTypeByMIMETypeByPrefix001 end.");
1419 }
1420 
1421 /**
1422 * @tc.name: GetUniformDataTypeByMIMETypeByPrefix002
1423 * @tc.desc: normal testcase of GetUniformDataTypeByMIMEType by prefix.
1424 * @tc.type: FUNC
1425 */
1426 HWTEST_F(UtdClientTest, GetUniformDataTypeByMIMETypeByPrefix002, TestSize.Level1)
1427 {
1428     LOG_INFO(UDMF_TEST, "GetUniformDataTypeByMIMETypeByPrefix002 begin.");
1429     std::string mimeType = "application/vnd.openxmlformats-OFFICEdocument.*";
1430     std::string currType;
1431     auto status = UtdClient::GetInstance().GetUniformDataTypeByMIMEType(mimeType, currType);
1432     EXPECT_EQ(status, E_OK);
1433     std::shared_ptr<TypeDescriptor> descriptor;
1434     status = UtdClient::GetInstance().GetTypeDescriptor(currType, descriptor);
1435     EXPECT_EQ(status, E_OK);
1436     EXPECT_EQ(descriptor->GetTypeId(), "general.composite-object");
1437     EXPECT_EQ(descriptor->GetTypeId(), currType);
1438 
1439     std::string mimeType2 = "application/vnd.openxmlformats-OFFICEdocument.wordprocessingml.*";
1440     std::string currType2;
1441     status = UtdClient::GetInstance().GetUniformDataTypeByMIMEType(mimeType2, currType2);
1442     EXPECT_EQ(status, E_OK);
1443     status = UtdClient::GetInstance().GetTypeDescriptor(currType2, descriptor);
1444     EXPECT_EQ(status, E_OK);
1445     EXPECT_EQ(descriptor->GetTypeId(), "general.composite-object");
1446     EXPECT_EQ(descriptor->GetTypeId(), currType2);
1447     LOG_INFO(UDMF_TEST, "GetUniformDataTypeByMIMETypeByPrefix002 end.");
1448 }
1449 
1450 /**
1451 * @tc.name: GetUniformDataTypesByFilenameExtension001
1452 * @tc.desc: Normal testcase of GetUniformDataTypesByFilenameExtension, if filtered by blongsToType
1453 * @tc.type: FUNC
1454 */
1455 HWTEST_F(UtdClientTest, GetUniformDataTypesByFilenameExtension001, TestSize.Level1)
1456 {
1457     LOG_INFO(UDMF_TEST, "GetUniformDataTypesByFilenameExtension001 begin.");
1458     std::string filenameExtension = ".azw3";
1459     std::string blongsToType = "general.ebook";
1460     std::vector<std::string> currTypes;
1461     auto status =
1462         UtdClient::GetInstance().GetUniformDataTypesByFilenameExtension(filenameExtension, currTypes);
1463     ASSERT_EQ(status, E_OK);
1464     ASSERT_EQ(currTypes.size(), 1);
1465     ASSERT_EQ(currTypes[0], "com.amazon.azw3");
1466 
1467     status =
1468         UtdClient::GetInstance().GetUniformDataTypesByFilenameExtension(filenameExtension, currTypes, blongsToType);
1469     ASSERT_EQ(status, E_OK);
1470     ASSERT_EQ(currTypes.size(), 1);
1471     ASSERT_EQ(currTypes[0], "com.amazon.azw3");
1472     LOG_INFO(UDMF_TEST, "GetUniformDataTypesByFilenameExtension001 end.");
1473 }
1474 
1475 /**
1476 * @tc.name: GetUniformDataTypesByFilenameExtension002
1477 * @tc.desc: Normal testcase of GetUniformDataTypesByFilenameExtension
1478 * @tc.type: FUNC
1479 */
1480 HWTEST_F(UtdClientTest, GetUniformDataTypesByFilenameExtension002, TestSize.Level1)
1481 {
1482     LOG_INFO(UDMF_TEST, "GetUniformDataTypesByFilenameExtension002 begin.");
1483     std::string filenameExtension = ".ts";
1484     std::vector<std::string> currTypes;
1485     auto status =
1486         UtdClient::GetInstance().GetUniformDataTypesByFilenameExtension(filenameExtension, currTypes);
1487     ASSERT_EQ(status, E_OK);
1488     ASSERT_EQ(currTypes.size(), 2);
1489     auto find1 = std::find(currTypes.begin(), currTypes.end(), "general.type-script") != currTypes.end();
1490     auto find2 = std::find(currTypes.begin(), currTypes.end(), "general.ts") != currTypes.end();
1491     ASSERT_EQ(find1, true);
1492     ASSERT_EQ(find2, true);
1493     LOG_INFO(UDMF_TEST, "GetUniformDataTypesByFilenameExtension002 end.");
1494 }
1495 
1496 /**
1497 * @tc.name: GetUniformDataTypesByFilenameExtension003
1498 * @tc.desc: Normal testcase of GetUniformDataTypesByFilenameExtension, if filtered by blongsToType
1499 * @tc.type: FUNC
1500 */
1501 HWTEST_F(UtdClientTest, GetUniformDataTypesByFilenameExtension003, TestSize.Level1)
1502 {
1503     LOG_INFO(UDMF_TEST, "GetUniformDataTypesByFilenameExtension003 begin.");
1504     std::string filenameExtension = ".ts";
1505     std::vector<std::string> currTypes;
1506     std::string blongsToType = "general.text";
1507     auto status =
1508         UtdClient::GetInstance().GetUniformDataTypesByFilenameExtension(filenameExtension, currTypes, blongsToType);
1509     ASSERT_EQ(status, E_OK);
1510     ASSERT_EQ(currTypes.size(), 1);
1511     ASSERT_EQ(currTypes[0], "general.type-script");
1512 
1513     blongsToType = "general.video";
1514     status =
1515         UtdClient::GetInstance().GetUniformDataTypesByFilenameExtension(filenameExtension, currTypes, blongsToType);
1516     ASSERT_EQ(status, E_OK);
1517     ASSERT_EQ(currTypes.size(), 1);
1518     ASSERT_EQ(currTypes[0], "general.ts");
1519 
1520     blongsToType = "general.shell-script";
1521     status =
1522         UtdClient::GetInstance().GetUniformDataTypesByFilenameExtension(filenameExtension, currTypes, blongsToType);
1523     ASSERT_EQ(status, E_OK);
1524     ASSERT_EQ(currTypes.size(), 1);
1525     ASSERT_EQ(currTypes[0].rfind("flex.z", 0), 0);
1526     LOG_INFO(UDMF_TEST, "GetUniformDataTypesByFilenameExtension003 end.");
1527 }
1528 
1529 /**
1530 * @tc.name: GetUniformDataTypesByFilenameExtension004
1531 * @tc.desc: Normal testcase of GetUniformDataTypesByFilenameExtension with flexibleType
1532 * @tc.type: FUNC
1533 */
1534 HWTEST_F(UtdClientTest, GetUniformDataTypesByFilenameExtension004, TestSize.Level1)
1535 {
1536     LOG_INFO(UDMF_TEST, "GetUniformDataTypesByFilenameExtension004 begin.");
1537     std::string filenameExtension = ".mytext";
1538     std::string blongsToType = "general.plain-text";
1539     std::vector<std::string> flexTypeIds;
1540     auto status =
1541         UtdClient::GetInstance().GetUniformDataTypesByFilenameExtension(filenameExtension, flexTypeIds, blongsToType);
1542     EXPECT_EQ(status, E_OK);
1543     ASSERT_EQ(flexTypeIds.size(), 1);
1544     std::string flexTypeId = flexTypeIds[0];
1545     LOG_INFO(UDMF_TEST, "GetUniformDataTypesByFilenameExtension004, flexTypeId = %{public}s.", flexTypeId.c_str());
1546     std::shared_ptr<TypeDescriptor> descriptor;
1547     status = UtdClient::GetInstance().GetTypeDescriptor(flexTypeId, descriptor);
1548     EXPECT_EQ(status, E_OK);
1549     EXPECT_EQ(descriptor->GetTypeId(), flexTypeId);
1550     EXPECT_EQ(*(descriptor->GetBelongingToTypes().begin()), "general.plain-text");
1551     EXPECT_EQ(descriptor->GetDescription().empty(), true);
1552     EXPECT_EQ(descriptor->GetIconFile().empty(), true);
1553     EXPECT_EQ(descriptor->GetMimeTypes().empty(), true);
1554     EXPECT_EQ(*(descriptor->GetFilenameExtensions().begin()), ".mytext");
1555     bool checkRet = false;
1556     ASSERT_NE(descriptor, nullptr);
1557     status = descriptor->IsHigherLevelType("general.object", checkRet);    //  cmp with gengral type.
1558     EXPECT_EQ(status, E_OK);
1559     EXPECT_EQ(checkRet, false);
1560     LOG_INFO(UDMF_TEST, "GetUniformDataTypesByFilenameExtension004 end.");
1561 }
1562 
1563 /**
1564 * @tc.name: GetUniformDataTypesByMIMEType001
1565 * @tc.desc: Normal testcase of GetUniformDataTypesByMIMEType, if filtered by blongsToType
1566 * @tc.type: FUNC
1567 */
1568 HWTEST_F(UtdClientTest, GetUniformDataTypesByMIMEType001, TestSize.Level1)
1569 {
1570     LOG_INFO(UDMF_TEST, "GetUniformDataTypesByMIMEType001 begin.");
1571     std::string mimeType = "application/x-mobi8-ebook";
1572     std::string blongsToType = "general.ebook";
1573     std::vector<std::string> currTypes;
1574     auto status = UtdClient::GetInstance().GetUniformDataTypesByMIMEType(mimeType, currTypes);
1575     ASSERT_EQ(status, E_OK);
1576     ASSERT_EQ(currTypes.size(), 1);
1577     ASSERT_EQ(currTypes[0], "com.amazon.azw3");
1578 
1579     status = UtdClient::GetInstance().GetUniformDataTypesByMIMEType(mimeType, currTypes, blongsToType);
1580     ASSERT_EQ(status, E_OK);
1581     ASSERT_EQ(currTypes.size(), 1);
1582     ASSERT_EQ(currTypes[0], "com.amazon.azw3");
1583     LOG_INFO(UDMF_TEST, "GetUniformDataTypesByMIMEType001 end.");
1584 }
1585 
1586 /**
1587 * @tc.name: GetUniformDataTypesByMIMEType002
1588 * @tc.desc: Normal testcase of GetUniformDataTypesByMIMEType, if filtered by blongsToType
1589 * @tc.type: FUNC
1590 */
1591 HWTEST_F(UtdClientTest, GetUniformDataTypesByMIMEType002, TestSize.Level1)
1592 {
1593     LOG_INFO(UDMF_TEST, "GetUniformDataTypesByMIMEType002 begin.");
1594     std::string mimeType = "application/msword";
1595     std::vector<std::string> currTypes;
1596     std::string blongsToType = "general.composite-object";
1597     auto status = UtdClient::GetInstance().GetUniformDataTypesByMIMEType(mimeType, currTypes);
1598     ASSERT_EQ(status, E_OK);
1599     ASSERT_EQ(currTypes.size(), 2);
1600     auto find1 = std::find(currTypes.begin(), currTypes.end(), "com.microsoft.word.doc") != currTypes.end();
1601     auto find2 = std::find(currTypes.begin(), currTypes.end(), "com.microsoft.word.dot") != currTypes.end();
1602     ASSERT_EQ(find1, true);
1603     ASSERT_EQ(find2, true);
1604 
1605     status = UtdClient::GetInstance().GetUniformDataTypesByMIMEType(mimeType, currTypes, blongsToType);
1606     ASSERT_EQ(status, E_OK);
1607     ASSERT_EQ(currTypes.size(), 2);
1608     find1 = std::find(currTypes.begin(), currTypes.end(), "com.microsoft.word.doc") != currTypes.end();
1609     find2 = std::find(currTypes.begin(), currTypes.end(), "com.microsoft.word.dot") != currTypes.end();
1610     ASSERT_EQ(find1, true);
1611     ASSERT_EQ(find2, true);
1612     LOG_INFO(UDMF_TEST, "GetUniformDataTypesByMIMEType002 end.");
1613 }
1614 
1615 /**
1616 * @tc.name: GetUniformDataTypesByMIMEType003
1617 * @tc.desc: Normal testcase of GetUniformDataTypesByMIMEType, if filtered by blongsToType
1618 * @tc.type: FUNC
1619 */
1620 HWTEST_F(UtdClientTest, GetUniformDataTypesByMIMEType003, TestSize.Level1)
1621 {
1622     LOG_INFO(UDMF_TEST, "GetUniformDataTypesByMIMEType003 begin.");
1623     std::string mimeType = "video/x-ms-asf";
1624     std::vector<std::string> currTypes;
1625     std::string blongsToType = "general.media";
1626     auto status = UtdClient::GetInstance().GetUniformDataTypesByMIMEType(mimeType, currTypes, blongsToType);
1627     ASSERT_EQ(status, E_OK);
1628     ASSERT_EQ(currTypes.size(), 2);
1629     auto find1 = std::find(currTypes.begin(), currTypes.end(),
1630                            "com.microsoft.advanced-systems-format") != currTypes.end();
1631     auto find2 = std::find(currTypes.begin(), currTypes.end(),
1632                            "com.microsoft.advanced-stream-redirector") != currTypes.end();
1633     ASSERT_EQ(find1, true);
1634     ASSERT_EQ(find2, true);
1635 
1636     blongsToType = "general.video";
1637     status = UtdClient::GetInstance().GetUniformDataTypesByMIMEType(mimeType, currTypes, blongsToType);
1638     ASSERT_EQ(status, E_OK);
1639     ASSERT_EQ(currTypes.size(), 1);
1640     ASSERT_EQ(currTypes[0], "com.microsoft.advanced-stream-redirector");
1641 
1642     blongsToType = "general.text";
1643     status = UtdClient::GetInstance().GetUniformDataTypesByMIMEType(mimeType, currTypes, blongsToType);
1644     ASSERT_EQ(status, E_OK);
1645     ASSERT_EQ(currTypes.size(), 1);
1646     ASSERT_EQ(currTypes[0].rfind("flex.z", 0), 0);
1647     LOG_INFO(UDMF_TEST, "GetUniformDataTypesByMIMEType003 end.");
1648 }
1649 
1650 /**
1651 * @tc.name: GetUniformDataTypesByMIMETypeByPrefix001
1652 * @tc.desc: normal testcase of GetUniformDatasTypeByMIMEType by prefix.
1653 * @tc.type: FUNC
1654 */
1655 HWTEST_F(UtdClientTest, GetUniformDataTypesByMIMETypeByPrefix001, TestSize.Level1)
1656 {
1657     LOG_INFO(UDMF_TEST, "GetUniformDataTypesByMIMETypeByPrefix001 begin.");
1658     std::string mimeType = "model/*";
1659     std::vector<std::string> currTypes;
1660     auto status = UtdClient::GetInstance().GetUniformDataTypesByMIMEType(mimeType, currTypes);
1661     ASSERT_EQ(status, E_OK);
1662     ASSERT_EQ(currTypes.size(), 3);
1663     auto find1 = std::find(currTypes.begin(), currTypes.end(), "general.iges") != currTypes.end();
1664     auto find2 = std::find(currTypes.begin(), currTypes.end(), "general.mesh-model") != currTypes.end();
1665     auto find3 = std::find(currTypes.begin(), currTypes.end(), "com.autodesk.dwf") != currTypes.end();
1666     ASSERT_EQ(find1, true);
1667     ASSERT_EQ(find2, true);
1668     ASSERT_EQ(find3, true);
1669     LOG_INFO(UDMF_TEST, "GetUniformDataTypesByMIMETypeByPrefix001 end.");
1670 }
1671 
1672 /**
1673 * @tc.name: IsValidMimeType001,
1674 * @tc.desc: Abnormal testcase of IsValidMimeType, mimeType contains "?"
1675 * @tc.type: FUNC
1676 */
1677 HWTEST_F(UtdClientTest, IsValidMimeType001, TestSize.Level1)
1678 {
1679     LOG_INFO(UDMF_TEST, "IsValidMimeType001 begin.");
1680     const std::string mimeType = "mimeType?";
1681     UtdClient utdClient;
1682     bool ret = utdClient.IsValidMimeType(mimeType);
1683     EXPECT_EQ(ret, false);
1684     LOG_INFO(UDMF_TEST, "IsValidMimeType001 end.");
1685 }
1686 
1687 /**
1688 * @tc.name: IsValidMimeType002
1689 * @tc.desc: Abnormal testcase of IsValidMimeType, mimeType contains ":"
1690 * @tc.type: FUNC
1691 */
1692 HWTEST_F(UtdClientTest, IsValidMimeType002, TestSize.Level1)
1693 {
1694     LOG_INFO(UDMF_TEST, "IsValidMimeType002 begin.");
1695     const std::string mimeType = "mimeType:";
1696     UtdClient utdClient;
1697     bool ret = utdClient.IsValidMimeType(mimeType);
1698     EXPECT_EQ(ret, false);
1699     LOG_INFO(UDMF_TEST, "IsValidMimeType002 end.");
1700 }
1701 
1702 /**
1703 * @tc.name: IsValidMimeType003
1704 * @tc.desc: Abnormal testcase of IsValidMimeType, mimeType contains "="
1705 * @tc.type: FUNC
1706 */
1707 HWTEST_F(UtdClientTest, IsValidMimeType003, TestSize.Level1)
1708 {
1709     LOG_INFO(UDMF_TEST, "IsValidMimeType003 begin.");
1710     const std::string mimeType = "mimeType=";
1711     UtdClient utdClient;
1712     bool ret = utdClient.IsValidMimeType(mimeType);
1713     EXPECT_EQ(ret, false);
1714     LOG_INFO(UDMF_TEST, "IsValidMimeType003 end.");
1715 }
1716 
1717 /**
1718 * @tc.name: IsValidMimeType004
1719 * @tc.desc: Abnormal testcase of IsValidMimeType, mimeType contains "\\"
1720 * @tc.type: FUNC
1721 */
1722 HWTEST_F(UtdClientTest, IsValidMimeType004, TestSize.Level1)
1723 {
1724     LOG_INFO(UDMF_TEST, "IsValidMimeType004 begin.");
1725     const std::string mimeType = "mimeType\\";
1726     UtdClient utdClient;
1727     bool ret = utdClient.IsValidMimeType(mimeType);
1728     EXPECT_EQ(ret, false);
1729     LOG_INFO(UDMF_TEST, "IsValidMimeType004 end.");
1730 }
1731 
1732 /**
1733 * @tc.name: GetFlexibleTypeDescriptor001
1734 * @tc.desc: Abnormal testcase of GetFlexibleTypeDescriptor, typeId is ""
1735 * @tc.type: FUNC
1736 */
1737 HWTEST_F(UtdClientTest, GetFlexibleTypeDescriptor001, TestSize.Level1)
1738 {
1739     LOG_INFO(UDMF_TEST, "GetFlexibleTypeDescriptor001 begin.");
1740     const std::string typeId = "";
1741     std::shared_ptr<TypeDescriptor> descriptor = nullptr;
1742     UtdClient utdClient;
1743     Status ret = utdClient.GetFlexibleTypeDescriptor(typeId, descriptor);
1744     EXPECT_EQ(ret, Status::E_ERROR);
1745     LOG_INFO(UDMF_TEST, "GetFlexibleTypeDescriptor001 end.");
1746 }
1747 
1748 /**
1749 * @tc.name: GetUniformDataTypesByFilenameExtension005
1750 * @tc.desc: Abnormal testcase of GetUniformDataTypeByFilenameExtension, typeId is not empty,
1751 * belongsTo is not DEFAULT_TYPE_ID and typeId, belongsTo is not a lower level type
1752 * @tc.type: FUNC
1753 */
1754 HWTEST_F(UtdClientTest, GetUniformDataTypesByFilenameExtension005, TestSize.Level1)
1755 {
1756     LOG_INFO(UDMF_TEST, "GetUniformDataTypesByFilenameExtension005 begin.");
1757     const std::string fileExtension = "fileExtension";
1758     std::vector<std::string> typeIds = std::vector<std::string>();
1759     const std::string belongsTo = "";
1760     UtdClient utdClient;
1761     Status ret = utdClient.GetUniformDataTypesByFilenameExtension(fileExtension, typeIds, belongsTo);
1762     EXPECT_EQ(ret, Status::E_INVALID_PARAMETERS);
1763     LOG_INFO(UDMF_TEST, "GetUniformDataTypesByFilenameExtension005 end.");
1764 }
1765 
1766 /**
1767 * @tc.name: GetUniformDataTypesByFilenameExtension006
1768 * @tc.desc: Normal testcase of GetUniformDataTypesByFilenameExtension, fileExtension is invaild
1769 * @tc.type: FUNC
1770 */
1771 HWTEST_F(UtdClientTest, GetUniformDataTypesByFilenameExtension006, TestSize.Level1)
1772 {
1773     LOG_INFO(UDMF_TEST, "GetUniformDataTypesByFilenameExtension006 begin.");
1774     std::string filenameExtension = "?application/x-mobi8-ebook";
1775     std::vector<std::string> currTypes;
1776     std::string blongsToType = "general.plain-text";
1777     Status status =
1778         UtdClient::GetInstance().GetUniformDataTypesByFilenameExtension(filenameExtension, currTypes, blongsToType);
1779     ASSERT_EQ(status, Status::E_INVALID_PARAMETERS);
1780     LOG_INFO(UDMF_TEST, "GetUniformDataTypesByFilenameExtension006 end.");
1781 }
1782 
1783 /**
1784 * @tc.name: GetTypeIdFromCfg001
1785 * @tc.desc: Abnormal testcase of GetTypeIdFromCfg, mimeType is not empty, mimeType.back() is not '*'
1786 * @tc.type: FUNC
1787 */
1788 HWTEST_F(UtdClientTest, GetTypeIdFromCfg001, TestSize.Level1)
1789 {
1790     LOG_INFO(UDMF_TEST, "GetTypeIdFromCfg001 begin.");
1791     const std::string mimeType = "mimeType";
1792     UtdClient utdClient;
1793     utdClient.descriptorCfgs_ = std::vector<TypeDescriptorCfg>();
1794     std::string ret = utdClient.GetTypeIdFromCfg(mimeType);
1795     EXPECT_EQ(ret, "");
1796     LOG_INFO(UDMF_TEST, "GetTypeIdFromCfg001 end.");
1797 }
1798 
1799 /**
1800 * @tc.name: GetUniformDataTypesByMIMEType004
1801 * @tc.desc: Abnormal testcase of GetUniformDataTypesByMIMEType, mimeType is not empty, mimeType.back() is not '*'
1802 * @tc.type: FUNC
1803 */
1804 HWTEST_F(UtdClientTest, GetUniformDataTypesByMIMEType004, TestSize.Level1)
1805 {
1806     LOG_INFO(UDMF_TEST, "GetUniformDataTypesByMIMEType004 begin.");
1807     const std::string mimeType = "mimeType";
1808     std::vector<std::string> typeIds = std::vector<std::string>();
1809     const std::string belongsTo = "";
1810     UtdClient utdClient;
1811     Status ret = utdClient.GetUniformDataTypesByMIMEType(mimeType, typeIds, belongsTo);
1812     EXPECT_EQ(ret, Status::E_INVALID_PARAMETERS);
1813     LOG_INFO(UDMF_TEST, "GetUniformDataTypesByMIMEType004 end.");
1814 }
1815 
1816 /**
1817 * @tc.name: IsUtd005
1818 * @tc.desc: Abnormal testcase of IsUtd, typeId is empty
1819 * @tc.type: FUNC
1820 */
1821 HWTEST_F(UtdClientTest, IsUtd005, TestSize.Level1)
1822 {
1823     LOG_INFO(UDMF_TEST, "IsUtd005 begin.");
1824     std::string typeId = "";
1825     bool result = true;
1826     UtdClient utdClient;
1827     Status ret = utdClient.IsUtd(typeId, result);
1828     EXPECT_EQ(result, false);
1829     EXPECT_EQ(ret, Status::E_INVALID_PARAMETERS);
1830     LOG_INFO(UDMF_TEST, "IsUtd005 end.");
1831 }
1832 
1833 /**
1834 * @tc.name: IsHapTokenType001
1835 * @tc.desc: Normal testcase of IsHapTokenType
1836 * @tc.type: FUNC
1837 */
1838 HWTEST_F(UtdClientTest, IsHapTokenType001, TestSize.Level1)
1839 {
1840     LOG_INFO(UDMF_TEST, "IsHapTokenType001 begin.");
1841     HapInfoParams info = {
1842         .userID = 100,
1843         .bundleName = "ohos.test.demo",
1844         .instIndex = 0,
1845         .appIDDesc = "ohos.test.demo"
1846     };
1847 
1848     HapPolicyParams policy = {
1849         .apl = APL_NORMAL,
1850         .domain = "test.domain",
1851         .permList = {
1852             {
1853                 .permissionName = "ohos.permission.test",
1854                 .bundleName = "ohos.test.demo",
1855                 .grantMode = 1,
1856                 .availableLevel = APL_NORMAL,
1857                 .label = "label",
1858                 .labelId = 1,
1859                 .description = "test",
1860                 .descriptionId = 1
1861             }
1862         },
1863         .permStateList = {
1864             {
1865                 .permissionName = "ohos.permission.test",
1866                 .isGeneral = true,
1867                 .resDeviceID = {"local"},
1868                 .grantStatus = {PermissionState::PERMISSION_GRANTED},
1869                 .grantFlags = {1}
1870             }
1871         }
1872     };
1873     auto tokenID = AccessTokenKit::AllocHapToken(info, policy);
1874     SetSelfTokenID(tokenID.tokenIDEx);
1875     UtdClient utdClient;
1876     bool ret = utdClient.IsHapTokenType();
1877     EXPECT_TRUE(ret);
1878     LOG_INFO(UDMF_TEST, "IsHapTokenType001 end.");
1879 }
1880 } // OHOS::Test