• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2025 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 "audio.h"
19 #include "folder.h"
20 #include "image.h"
21 #include "pasteboard_client.h"
22 #include "pasteboard_hilog.h"
23 #include "video.h"
24 namespace OHOS::MiscServices {
25 using namespace testing::ext;
26 using namespace testing;
27 using namespace OHOS::Media;
28 class PasteboardUnifiedDataUriTest : public testing::Test {
29 public:
30     static void SetUpTestCase(void);
31     static void TearDownTestCase(void);
32     void SetUp();
33     void TearDown();
34     UDMF::UnifiedData InitFileData001();
35     UDMF::UnifiedData InitImageData001();
36     UDMF::UnifiedData InitVideoData001();
37     UDMF::UnifiedData InitAudioData001();
38     UDMF::UnifiedData InitFolderData001();
39     UDMF::UnifiedData InitFileData002();
40     UDMF::UnifiedData InitImageData002();
41     UDMF::UnifiedData InitVideoData002();
42     UDMF::UnifiedData InitAudioData002();
43     UDMF::UnifiedData InitFolderData002();
44     UDMF::UnifiedData InitFileData003();
45     UDMF::UnifiedData InitImageData003();
46     UDMF::UnifiedData InitVideoData003();
47     UDMF::UnifiedData InitAudioData003();
48     UDMF::UnifiedData InitFolderData003();
49 
50 protected:
51     Details details_;
52     std::string uri_;
53 };
54 
SetUpTestCase(void)55 void PasteboardUnifiedDataUriTest::SetUpTestCase(void) { }
56 
TearDownTestCase(void)57 void PasteboardUnifiedDataUriTest::TearDownTestCase(void) { }
58 
SetUp(void)59 void PasteboardUnifiedDataUriTest::SetUp(void) { }
60 
TearDown(void)61 void PasteboardUnifiedDataUriTest::TearDown(void) { }
62 
InitFileData001()63 UDMF::UnifiedData PasteboardUnifiedDataUriTest::InitFileData001()
64 {
65     UDMF::UnifiedData data;
66     auto typeStr = UDMF::UtdUtils::GetUtdIdFromUtdEnum(UDMF::FILE);
67     uri_ = "file://uri";
68     std::shared_ptr<UDMF::File> fileRecord = std::make_shared<UDMF::File>(uri_);
69     fileRecord->SetDetails(details_);
70     data.AddRecord(fileRecord);
71     return data;
72 }
73 
InitFileData002()74 UDMF::UnifiedData PasteboardUnifiedDataUriTest::InitFileData002()
75 {
76     UDMF::UnifiedData data;
77     auto typeStr = UDMF::UtdUtils::GetUtdIdFromUtdEnum(UDMF::FILE);
78     uri_ = "file:///uri";
79     std::shared_ptr<UDMF::File> fileRecord = std::make_shared<UDMF::File>(uri_);
80     fileRecord->SetDetails(details_);
81     data.AddRecord(fileRecord);
82     return data;
83 }
84 
InitFileData003()85 UDMF::UnifiedData PasteboardUnifiedDataUriTest::InitFileData003()
86 {
87     UDMF::UnifiedData data;
88     auto typeStr = UDMF::UtdUtils::GetUtdIdFromUtdEnum(UDMF::FILE);
89     uri_ = "file:////uri";
90     std::shared_ptr<UDMF::File> fileRecord = std::make_shared<UDMF::File>(uri_);
91     fileRecord->SetDetails(details_);
92     data.AddRecord(fileRecord);
93     return data;
94 }
95 
InitImageData001()96 UDMF::UnifiedData PasteboardUnifiedDataUriTest::InitImageData001()
97 {
98     UDMF::UnifiedData data;
99     auto typeStr = UDMF::UtdUtils::GetUtdIdFromUtdEnum(UDMF::IMAGE);
100     uri_ = "file://image";
101     std::shared_ptr<UDMF::Image> imageRecord = std::make_shared<UDMF::Image>(uri_);
102     imageRecord->SetDetails(details_);
103     data.AddRecord(imageRecord);
104     return data;
105 }
106 
InitImageData002()107 UDMF::UnifiedData PasteboardUnifiedDataUriTest::InitImageData002()
108 {
109     UDMF::UnifiedData data;
110     auto typeStr = UDMF::UtdUtils::GetUtdIdFromUtdEnum(UDMF::IMAGE);
111     uri_ = "file:///image";
112     std::shared_ptr<UDMF::Image> imageRecord = std::make_shared<UDMF::Image>(uri_);
113     imageRecord->SetDetails(details_);
114     data.AddRecord(imageRecord);
115     return data;
116 }
117 
InitImageData003()118 UDMF::UnifiedData PasteboardUnifiedDataUriTest::InitImageData003()
119 {
120     UDMF::UnifiedData data;
121     auto typeStr = UDMF::UtdUtils::GetUtdIdFromUtdEnum(UDMF::IMAGE);
122     uri_ = "file:////image";
123     std::shared_ptr<UDMF::Image> imageRecord = std::make_shared<UDMF::Image>(uri_);
124     imageRecord->SetDetails(details_);
125     data.AddRecord(imageRecord);
126     return data;
127 }
128 
InitVideoData001()129 UDMF::UnifiedData PasteboardUnifiedDataUriTest::InitVideoData001()
130 {
131     UDMF::UnifiedData data;
132     auto typeStr = UDMF::UtdUtils::GetUtdIdFromUtdEnum(UDMF::VIDEO);
133     uri_ = "file://Video";
134     std::shared_ptr<UDMF::Video> videoRecord = std::make_shared<UDMF::Video>(uri_);
135     videoRecord->SetDetails(details_);
136     data.AddRecord(videoRecord);
137 
138     return data;
139 }
140 
InitVideoData002()141 UDMF::UnifiedData PasteboardUnifiedDataUriTest::InitVideoData002()
142 {
143     UDMF::UnifiedData data;
144     auto typeStr = UDMF::UtdUtils::GetUtdIdFromUtdEnum(UDMF::VIDEO);
145     uri_ = "file:///Video";
146     std::shared_ptr<UDMF::Video> videoRecord = std::make_shared<UDMF::Video>(uri_);
147     videoRecord->SetDetails(details_);
148     data.AddRecord(videoRecord);
149 
150     return data;
151 }
152 
InitVideoData003()153 UDMF::UnifiedData PasteboardUnifiedDataUriTest::InitVideoData003()
154 {
155     UDMF::UnifiedData data;
156     auto typeStr = UDMF::UtdUtils::GetUtdIdFromUtdEnum(UDMF::VIDEO);
157     uri_ = "file:////Video";
158     std::shared_ptr<UDMF::Video> videoRecord = std::make_shared<UDMF::Video>(uri_);
159     videoRecord->SetDetails(details_);
160     data.AddRecord(videoRecord);
161 
162     return data;
163 }
164 
InitAudioData001()165 UDMF::UnifiedData PasteboardUnifiedDataUriTest::InitAudioData001()
166 {
167     UDMF::UnifiedData data;
168     auto typeStr = UDMF::UtdUtils::GetUtdIdFromUtdEnum(UDMF::AUDIO);
169     uri_ = "file://Audio";
170     std::shared_ptr<UDMF::Audio> audioRecord = std::make_shared<UDMF::Audio>(uri_);
171     audioRecord->SetDetails(details_);
172     data.AddRecord(audioRecord);
173     return data;
174 }
175 
InitAudioData002()176 UDMF::UnifiedData PasteboardUnifiedDataUriTest::InitAudioData002()
177 {
178     UDMF::UnifiedData data;
179     auto typeStr = UDMF::UtdUtils::GetUtdIdFromUtdEnum(UDMF::AUDIO);
180     uri_ = "file:///Audio";
181     std::shared_ptr<UDMF::Audio> audioRecord = std::make_shared<UDMF::Audio>(uri_);
182     audioRecord->SetDetails(details_);
183     data.AddRecord(audioRecord);
184     return data;
185 }
186 
InitAudioData003()187 UDMF::UnifiedData PasteboardUnifiedDataUriTest::InitAudioData003()
188 {
189     UDMF::UnifiedData data;
190     auto typeStr = UDMF::UtdUtils::GetUtdIdFromUtdEnum(UDMF::AUDIO);
191     uri_ = "file:////Audio";
192     std::shared_ptr<UDMF::Audio> audioRecord = std::make_shared<UDMF::Audio>(uri_);
193     audioRecord->SetDetails(details_);
194     data.AddRecord(audioRecord);
195     return data;
196 }
197 
InitFolderData001()198 UDMF::UnifiedData PasteboardUnifiedDataUriTest::InitFolderData001()
199 {
200     UDMF::UnifiedData data;
201     auto typeStr = UDMF::UtdUtils::GetUtdIdFromUtdEnum(UDMF::FOLDER);
202     uri_ = "file://Folder";
203     std::shared_ptr<UDMF::Folder> folderRecord = std::make_shared<UDMF::Folder>(uri_);
204     folderRecord->SetDetails(details_);
205     data.AddRecord(folderRecord);
206     return data;
207 }
208 
InitFolderData002()209 UDMF::UnifiedData PasteboardUnifiedDataUriTest::InitFolderData002()
210 {
211     UDMF::UnifiedData data;
212     auto typeStr = UDMF::UtdUtils::GetUtdIdFromUtdEnum(UDMF::FOLDER);
213     uri_ = "file:///Folder";
214     std::shared_ptr<UDMF::Folder> folderRecord = std::make_shared<UDMF::Folder>(uri_);
215     folderRecord->SetDetails(details_);
216     data.AddRecord(folderRecord);
217     return data;
218 }
219 
InitFolderData003()220 UDMF::UnifiedData PasteboardUnifiedDataUriTest::InitFolderData003()
221 {
222     UDMF::UnifiedData data;
223     auto typeStr = UDMF::UtdUtils::GetUtdIdFromUtdEnum(UDMF::FOLDER);
224     uri_ = "file:////Folder";
225     std::shared_ptr<UDMF::Folder> folderRecord = std::make_shared<UDMF::Folder>(uri_);
226     folderRecord->SetDetails(details_);
227     data.AddRecord(folderRecord);
228     return data;
229 }
230 
231 /**
232  * @tc.name: SetFile001
233  * @tc.desc: Get the source of the data.
234  * @tc.type: FUNC
235  * @tc.require:
236  * @tc.author:
237  */
238 HWTEST_F(PasteboardUnifiedDataUriTest, SetFile001, TestSize.Level0)
239 {
240     PASTEBOARD_HILOGI(PASTEBOARD_MODULE_SERVICE, "PasteboardUnifiedDataUriTest SetFile001 start");
241     auto data = InitFileData001();
242     PasteboardClient::GetInstance()->SetUnifiedData(data);
243 
244     UDMF::UnifiedData newData;
245     PasteboardClient::GetInstance()->GetUnifiedData(newData);
246     ASSERT_EQ(1, newData.GetRecords().size());
247     auto newRecord = newData.GetRecordAt(0);
248     auto newType = newRecord->GetType();
249     ASSERT_EQ(newType, UDMF::FILE);
250     auto newFileRecord = static_cast<UDMF::File *>(newRecord.get());
251     auto newDetails = newFileRecord->GetDetails();
252     ASSERT_EQ(newDetails, details_);
253     auto uri2 = newFileRecord->GetUri();
254     ASSERT_EQ(uri2, uri_);
255 
256     PasteData pasteData;
257     PasteboardClient::GetInstance()->GetPasteData(pasteData);
258     ASSERT_EQ(1, pasteData.GetRecordCount());
259     auto record = pasteData.GetRecordAt(0);
260     auto type = record->GetMimeType();
261     ASSERT_EQ(type, MIMETYPE_TEXT_URI);
262     auto udType = record->GetUDType();
263     ASSERT_EQ(udType, UDMF::UDType::FILE);
264     auto uri1 = record->GetUri()->ToString();
265     ASSERT_EQ(uri1, uri_);
266     auto details1 = record->GetDetails();
267     ASSERT_EQ(*details1, details_);
268     PASTEBOARD_HILOGI(PASTEBOARD_MODULE_SERVICE, "PasteboardUnifiedDataUriTest SetFile001 end");
269 }
270 
271 /**
272  * @tc.name: SetFile002
273  * @tc.desc: Get the source of the data.
274  * @tc.type: FUNC
275  * @tc.require:
276  * @tc.author:
277  */
278 HWTEST_F(PasteboardUnifiedDataUriTest, SetFile002, TestSize.Level0)
279 {
280     PASTEBOARD_HILOGI(PASTEBOARD_MODULE_SERVICE, "PasteboardUnifiedDataUriTest SetFile002 start");
281     auto data = InitFileData002();
282     PasteboardClient::GetInstance()->SetUnifiedData(data);
283 
284     UDMF::UnifiedData newData;
285     PasteboardClient::GetInstance()->GetUnifiedData(newData);
286     ASSERT_EQ(1, newData.GetRecords().size());
287     auto newRecord = newData.GetRecordAt(0);
288     auto newType = newRecord->GetType();
289     ASSERT_EQ(newType, UDMF::FILE);
290     auto newFileRecord = static_cast<UDMF::File *>(newRecord.get());
291     auto newDetails = newFileRecord->GetDetails();
292     ASSERT_EQ(newDetails, details_);
293     auto uri2 = newFileRecord->GetUri();
294     ASSERT_EQ(uri2, uri_);
295 
296     PasteData pasteData;
297     PasteboardClient::GetInstance()->GetPasteData(pasteData);
298     ASSERT_EQ(1, pasteData.GetRecordCount());
299     auto record = pasteData.GetRecordAt(0);
300     auto type = record->GetMimeType();
301     ASSERT_EQ(type, MIMETYPE_TEXT_URI);
302     auto udType = record->GetUDType();
303     ASSERT_EQ(udType, UDMF::UDType::FILE);
304     auto uri1 = record->GetUri()->ToString();
305     ASSERT_EQ(uri1, uri_);
306     auto details1 = record->GetDetails();
307     ASSERT_EQ(*details1, details_);
308     PASTEBOARD_HILOGI(PASTEBOARD_MODULE_SERVICE, "PasteboardUnifiedDataUriTest SetFile002 end");
309 }
310 
311 /**
312  * @tc.name: SetFile003
313  * @tc.desc: Get the source of the data.
314  * @tc.type: FUNC
315  * @tc.require:
316  * @tc.author:
317  */
318 HWTEST_F(PasteboardUnifiedDataUriTest, SetFile003, TestSize.Level0)
319 {
320     PASTEBOARD_HILOGI(PASTEBOARD_MODULE_SERVICE, "PasteboardUnifiedDataUriTest SetFile003 start");
321     auto data = InitFileData003();
322     PasteboardClient::GetInstance()->SetUnifiedData(data);
323 
324     UDMF::UnifiedData newData;
325     PasteboardClient::GetInstance()->GetUnifiedData(newData);
326     ASSERT_EQ(1, newData.GetRecords().size());
327     auto newRecord = newData.GetRecordAt(0);
328     auto newType = newRecord->GetType();
329     ASSERT_EQ(newType, UDMF::FILE);
330     auto newFileRecord = static_cast<UDMF::File *>(newRecord.get());
331     auto newDetails = newFileRecord->GetDetails();
332     ASSERT_EQ(newDetails, details_);
333     auto uri2 = newFileRecord->GetUri();
334     ASSERT_EQ(uri2, uri_);
335 
336     PasteData pasteData;
337     PasteboardClient::GetInstance()->GetPasteData(pasteData);
338     ASSERT_EQ(1, pasteData.GetRecordCount());
339     auto record = pasteData.GetRecordAt(0);
340     auto type = record->GetMimeType();
341     ASSERT_EQ(type, MIMETYPE_TEXT_URI);
342     auto udType = record->GetUDType();
343     ASSERT_EQ(udType, UDMF::UDType::FILE);
344     auto uri1 = record->GetUri()->ToString();
345     ASSERT_EQ(uri1, uri_);
346     auto details1 = record->GetDetails();
347     ASSERT_EQ(*details1, details_);
348     PASTEBOARD_HILOGI(PASTEBOARD_MODULE_SERVICE, "PasteboardUnifiedDataUriTest SetFile003 end");
349 }
350 
351 /**
352  * @tc.name: SetImage001
353  * @tc.desc: Get the source of the data.
354  * @tc.type: FUNC
355  * @tc.require:
356  * @tc.author:
357  */
358 HWTEST_F(PasteboardUnifiedDataUriTest, SetImage001, TestSize.Level0)
359 {
360     PASTEBOARD_HILOGI(PASTEBOARD_MODULE_SERVICE, "PasteboardUnifiedDataUriTest SetImage001 start");
361     auto data = InitImageData001();
362     PasteboardClient::GetInstance()->SetUnifiedData(data);
363     UDMF::UnifiedData newData;
364     PasteboardClient::GetInstance()->GetUnifiedData(newData);
365     ASSERT_EQ(1, newData.GetRecords().size());
366     auto newRecord = newData.GetRecordAt(0);
367     auto newType = newRecord->GetType();
368     ASSERT_EQ(newType, UDMF::IMAGE);
369     auto newImageRecord = static_cast<UDMF::Image *>(newRecord.get());
370     auto newDetails = newImageRecord->GetDetails();
371     ASSERT_EQ(newDetails, details_);
372     auto uri2 = newImageRecord->GetUri();
373     ASSERT_EQ(uri2, uri_);
374 
375     PasteData pasteData;
376     PasteboardClient::GetInstance()->GetPasteData(pasteData);
377     ASSERT_EQ(1, pasteData.GetRecordCount());
378     auto record = pasteData.GetRecordAt(0);
379     auto type = record->GetMimeType();
380     ASSERT_EQ(type, MIMETYPE_TEXT_URI);
381     auto udType = record->GetUDType();
382     ASSERT_EQ(udType, UDMF::UDType::IMAGE);
383     auto uri1 = record->GetUri()->ToString();
384     ASSERT_EQ(uri1, uri_);
385     auto details1 = record->GetDetails();
386     ASSERT_EQ(*details1, details_);
387     PASTEBOARD_HILOGI(PASTEBOARD_MODULE_SERVICE, "PasteboardUnifiedDataUriTest SetImage001 end");
388 }
389 
390 /**
391  * @tc.name: SetImage002
392  * @tc.desc: Get the source of the data.
393  * @tc.type: FUNC
394  * @tc.require:
395  * @tc.author:
396  */
397 HWTEST_F(PasteboardUnifiedDataUriTest, SetImage002, TestSize.Level0)
398 {
399     PASTEBOARD_HILOGI(PASTEBOARD_MODULE_SERVICE, "PasteboardUnifiedDataUriTest SetImage002 start");
400     auto data = InitImageData002();
401     PasteboardClient::GetInstance()->SetUnifiedData(data);
402     UDMF::UnifiedData newData;
403     PasteboardClient::GetInstance()->GetUnifiedData(newData);
404     ASSERT_EQ(1, newData.GetRecords().size());
405     auto newRecord = newData.GetRecordAt(0);
406     auto newType = newRecord->GetType();
407     ASSERT_EQ(newType, UDMF::IMAGE);
408     auto newImageRecord = static_cast<UDMF::Image *>(newRecord.get());
409     auto newDetails = newImageRecord->GetDetails();
410     ASSERT_EQ(newDetails, details_);
411     auto uri2 = newImageRecord->GetUri();
412     ASSERT_EQ(uri2, uri_);
413 
414     PasteData pasteData;
415     PasteboardClient::GetInstance()->GetPasteData(pasteData);
416     ASSERT_EQ(1, pasteData.GetRecordCount());
417     auto record = pasteData.GetRecordAt(0);
418     auto type = record->GetMimeType();
419     ASSERT_EQ(type, MIMETYPE_TEXT_URI);
420     auto udType = record->GetUDType();
421     ASSERT_EQ(udType, UDMF::UDType::IMAGE);
422     auto uri1 = record->GetUri()->ToString();
423     ASSERT_EQ(uri1, uri_);
424     auto details1 = record->GetDetails();
425     ASSERT_EQ(*details1, details_);
426     PASTEBOARD_HILOGI(PASTEBOARD_MODULE_SERVICE, "PasteboardUnifiedDataUriTest SetImage002 end");
427 }
428 
429 /**
430  * @tc.name: SetImage003
431  * @tc.desc: Get the source of the data.
432  * @tc.type: FUNC
433  * @tc.require:
434  * @tc.author:
435  */
436 HWTEST_F(PasteboardUnifiedDataUriTest, SetImage003, TestSize.Level0)
437 {
438     PASTEBOARD_HILOGI(PASTEBOARD_MODULE_SERVICE, "PasteboardUnifiedDataUriTest SetImage003 start");
439     auto data = InitImageData003();
440     PasteboardClient::GetInstance()->SetUnifiedData(data);
441     UDMF::UnifiedData newData;
442     PasteboardClient::GetInstance()->GetUnifiedData(newData);
443     ASSERT_EQ(1, newData.GetRecords().size());
444     auto newRecord = newData.GetRecordAt(0);
445     auto newType = newRecord->GetType();
446     ASSERT_EQ(newType, UDMF::IMAGE);
447     auto newImageRecord = static_cast<UDMF::Image *>(newRecord.get());
448     auto newDetails = newImageRecord->GetDetails();
449     ASSERT_EQ(newDetails, details_);
450     auto uri2 = newImageRecord->GetUri();
451     ASSERT_EQ(uri2, uri_);
452 
453     PasteData pasteData;
454     PasteboardClient::GetInstance()->GetPasteData(pasteData);
455     ASSERT_EQ(1, pasteData.GetRecordCount());
456     auto record = pasteData.GetRecordAt(0);
457     auto type = record->GetMimeType();
458     ASSERT_EQ(type, MIMETYPE_TEXT_URI);
459     auto udType = record->GetUDType();
460     ASSERT_EQ(udType, UDMF::UDType::IMAGE);
461     auto uri1 = record->GetUri()->ToString();
462     ASSERT_EQ(uri1, uri_);
463     auto details1 = record->GetDetails();
464     ASSERT_EQ(*details1, details_);
465     PASTEBOARD_HILOGI(PASTEBOARD_MODULE_SERVICE, "PasteboardUnifiedDataUriTest SetImage003 end");
466 }
467 
468 /**
469  * @tc.name: SetAudio001
470  * @tc.desc: Get the source of the data.
471  * @tc.type: FUNC
472  * @tc.require:
473  * @tc.author:
474  */
475 HWTEST_F(PasteboardUnifiedDataUriTest, SetAudio001, TestSize.Level0)
476 {
477     PASTEBOARD_HILOGI(PASTEBOARD_MODULE_SERVICE, "PasteboardUnifiedDataUriTest SetAudio001 start");
478     auto data = InitAudioData001();
479     PasteboardClient::GetInstance()->SetUnifiedData(data);
480     UDMF::UnifiedData newData;
481     PasteboardClient::GetInstance()->GetUnifiedData(newData);
482     ASSERT_EQ(1, newData.GetRecords().size());
483     auto newRecord = newData.GetRecordAt(0);
484     auto newType = newRecord->GetType();
485     ASSERT_EQ(newType, UDMF::AUDIO);
486     auto newAudioRecord = static_cast<UDMF::Audio *>(newRecord.get());
487     auto newDetails = newAudioRecord->GetDetails();
488     ASSERT_EQ(newDetails, details_);
489     auto uri2 = newAudioRecord->GetUri();
490     ASSERT_EQ(uri2, uri_);
491 
492     PasteData pasteData;
493     PasteboardClient::GetInstance()->GetPasteData(pasteData);
494     ASSERT_EQ(1, pasteData.GetRecordCount());
495     auto record = pasteData.GetRecordAt(0);
496     auto type = record->GetMimeType();
497     ASSERT_EQ(type, MIMETYPE_TEXT_URI);
498     auto udType = record->GetUDType();
499     ASSERT_EQ(udType, UDMF::UDType::AUDIO);
500     auto uri1 = record->GetUri()->ToString();
501     ASSERT_EQ(uri1, uri_);
502     auto details1 = record->GetDetails();
503     ASSERT_EQ(*details1, details_);
504     PASTEBOARD_HILOGI(PASTEBOARD_MODULE_SERVICE, "PasteboardUnifiedDataUriTest SetAudio001 end");
505 }
506 
507 /**
508  * @tc.name: SetAudio002
509  * @tc.desc: Get the source of the data.
510  * @tc.type: FUNC
511  * @tc.require:
512  * @tc.author:
513  */
514 HWTEST_F(PasteboardUnifiedDataUriTest, SetAudio002, TestSize.Level0)
515 {
516     PASTEBOARD_HILOGI(PASTEBOARD_MODULE_SERVICE, "PasteboardUnifiedDataUriTest SetAudio002 start");
517     auto data = InitAudioData002();
518     PasteboardClient::GetInstance()->SetUnifiedData(data);
519     UDMF::UnifiedData newData;
520     PasteboardClient::GetInstance()->GetUnifiedData(newData);
521     ASSERT_EQ(1, newData.GetRecords().size());
522     auto newRecord = newData.GetRecordAt(0);
523     auto newType = newRecord->GetType();
524     ASSERT_EQ(newType, UDMF::AUDIO);
525     auto newAudioRecord = static_cast<UDMF::Audio *>(newRecord.get());
526     auto newDetails = newAudioRecord->GetDetails();
527     ASSERT_EQ(newDetails, details_);
528     auto uri2 = newAudioRecord->GetUri();
529     ASSERT_EQ(uri2, uri_);
530 
531     PasteData pasteData;
532     PasteboardClient::GetInstance()->GetPasteData(pasteData);
533     ASSERT_EQ(1, pasteData.GetRecordCount());
534     auto record = pasteData.GetRecordAt(0);
535     auto type = record->GetMimeType();
536     ASSERT_EQ(type, MIMETYPE_TEXT_URI);
537     auto udType = record->GetUDType();
538     ASSERT_EQ(udType, UDMF::UDType::AUDIO);
539     auto uri1 = record->GetUri()->ToString();
540     ASSERT_EQ(uri1, uri_);
541     auto details1 = record->GetDetails();
542     ASSERT_EQ(*details1, details_);
543     PASTEBOARD_HILOGI(PASTEBOARD_MODULE_SERVICE, "PasteboardUnifiedDataUriTest SetAudio002 end");
544 }
545 
546 /**
547  * @tc.name: SetAudio003
548  * @tc.desc: Get the source of the data.
549  * @tc.type: FUNC
550  * @tc.require:
551  * @tc.author:
552  */
553 HWTEST_F(PasteboardUnifiedDataUriTest, SetAudio003, TestSize.Level0)
554 {
555     PASTEBOARD_HILOGI(PASTEBOARD_MODULE_SERVICE, "PasteboardUnifiedDataUriTest SetAudio003 start");
556     auto data = InitAudioData003();
557     PasteboardClient::GetInstance()->SetUnifiedData(data);
558     UDMF::UnifiedData newData;
559     PasteboardClient::GetInstance()->GetUnifiedData(newData);
560     ASSERT_EQ(1, newData.GetRecords().size());
561     auto newRecord = newData.GetRecordAt(0);
562     auto newType = newRecord->GetType();
563     ASSERT_EQ(newType, UDMF::AUDIO);
564     auto newAudioRecord = static_cast<UDMF::Audio *>(newRecord.get());
565     auto newDetails = newAudioRecord->GetDetails();
566     ASSERT_EQ(newDetails, details_);
567     auto uri2 = newAudioRecord->GetUri();
568     ASSERT_EQ(uri2, uri_);
569 
570     PasteData pasteData;
571     PasteboardClient::GetInstance()->GetPasteData(pasteData);
572     ASSERT_EQ(1, pasteData.GetRecordCount());
573     auto record = pasteData.GetRecordAt(0);
574     auto type = record->GetMimeType();
575     ASSERT_EQ(type, MIMETYPE_TEXT_URI);
576     auto udType = record->GetUDType();
577     ASSERT_EQ(udType, UDMF::UDType::AUDIO);
578     auto uri1 = record->GetUri()->ToString();
579     ASSERT_EQ(uri1, uri_);
580     auto details1 = record->GetDetails();
581     ASSERT_EQ(*details1, details_);
582     PASTEBOARD_HILOGI(PASTEBOARD_MODULE_SERVICE, "PasteboardUnifiedDataUriTest SetAudio003 end");
583 }
584 
585 /**
586  * @tc.name: SetVideo001
587  * @tc.desc: Get the source of the data.
588  * @tc.type: FUNC
589  * @tc.require:
590  * @tc.author:
591  */
592 HWTEST_F(PasteboardUnifiedDataUriTest, SetVideo001, TestSize.Level0)
593 {
594     PASTEBOARD_HILOGI(PASTEBOARD_MODULE_SERVICE, "PasteboardUnifiedDataUriTest SetVideo001 start");
595     auto data = InitVideoData001();
596     PasteboardClient::GetInstance()->SetUnifiedData(data);
597     UDMF::UnifiedData newData;
598     PasteboardClient::GetInstance()->GetUnifiedData(newData);
599     ASSERT_EQ(1, newData.GetRecords().size());
600     auto newRecord = newData.GetRecordAt(0);
601     auto newType = newRecord->GetType();
602     ASSERT_EQ(newType, UDMF::VIDEO);
603     auto newVideoRecord = static_cast<UDMF::Video *>(newRecord.get());
604     auto newDetails = newVideoRecord->GetDetails();
605     ASSERT_EQ(newDetails, details_);
606     auto uri2 = newVideoRecord->GetUri();
607     ASSERT_EQ(uri2, uri_);
608 
609     PasteData pasteData;
610     PasteboardClient::GetInstance()->GetPasteData(pasteData);
611     ASSERT_EQ(1, pasteData.GetRecordCount());
612     auto record = pasteData.GetRecordAt(0);
613     auto type = record->GetMimeType();
614     ASSERT_EQ(type, MIMETYPE_TEXT_URI);
615     auto udType = record->GetUDType();
616     ASSERT_EQ(udType, UDMF::UDType::VIDEO);
617     auto uri1 = record->GetUri()->ToString();
618     ASSERT_EQ(uri1, uri_);
619     auto details1 = record->GetDetails();
620     ASSERT_EQ(*details1, details_);
621     PASTEBOARD_HILOGI(PASTEBOARD_MODULE_SERVICE, "PasteboardUnifiedDataUriTest SetVideo001 end");
622 }
623 
624 /**
625  * @tc.name: SetVideo002
626  * @tc.desc: Get the source of the data.
627  * @tc.type: FUNC
628  * @tc.require:
629  * @tc.author:
630  */
631 HWTEST_F(PasteboardUnifiedDataUriTest, SetVideo002, TestSize.Level0)
632 {
633     PASTEBOARD_HILOGI(PASTEBOARD_MODULE_SERVICE, "PasteboardUnifiedDataUriTest SetVideo002 start");
634     auto data = InitVideoData002();
635     PasteboardClient::GetInstance()->SetUnifiedData(data);
636     UDMF::UnifiedData newData;
637     PasteboardClient::GetInstance()->GetUnifiedData(newData);
638     ASSERT_EQ(1, newData.GetRecords().size());
639     auto newRecord = newData.GetRecordAt(0);
640     auto newType = newRecord->GetType();
641     ASSERT_EQ(newType, UDMF::VIDEO);
642     auto newVideoRecord = static_cast<UDMF::Video *>(newRecord.get());
643     auto newDetails = newVideoRecord->GetDetails();
644     ASSERT_EQ(newDetails, details_);
645     auto uri2 = newVideoRecord->GetUri();
646     ASSERT_EQ(uri2, uri_);
647 
648     PasteData pasteData;
649     PasteboardClient::GetInstance()->GetPasteData(pasteData);
650     ASSERT_EQ(1, pasteData.GetRecordCount());
651     auto record = pasteData.GetRecordAt(0);
652     auto type = record->GetMimeType();
653     ASSERT_EQ(type, MIMETYPE_TEXT_URI);
654     auto udType = record->GetUDType();
655     ASSERT_EQ(udType, UDMF::UDType::VIDEO);
656     auto uri1 = record->GetUri()->ToString();
657     ASSERT_EQ(uri1, uri_);
658     auto details1 = record->GetDetails();
659     ASSERT_EQ(*details1, details_);
660     PASTEBOARD_HILOGI(PASTEBOARD_MODULE_SERVICE, "PasteboardUnifiedDataUriTest SetVideo002 end");
661 }
662 
663 /**
664  * @tc.name: SetVideo003
665  * @tc.desc: Get the source of the data.
666  * @tc.type: FUNC
667  * @tc.require:
668  * @tc.author:
669  */
670 HWTEST_F(PasteboardUnifiedDataUriTest, SetVideo003, TestSize.Level0)
671 {
672     PASTEBOARD_HILOGI(PASTEBOARD_MODULE_SERVICE, "PasteboardUnifiedDataUriTest SetVideo003 start");
673     auto data = InitVideoData003();
674     PasteboardClient::GetInstance()->SetUnifiedData(data);
675     UDMF::UnifiedData newData;
676     PasteboardClient::GetInstance()->GetUnifiedData(newData);
677     ASSERT_EQ(1, newData.GetRecords().size());
678     auto newRecord = newData.GetRecordAt(0);
679     auto newType = newRecord->GetType();
680     ASSERT_EQ(newType, UDMF::VIDEO);
681     auto newVideoRecord = static_cast<UDMF::Video *>(newRecord.get());
682     auto newDetails = newVideoRecord->GetDetails();
683     ASSERT_EQ(newDetails, details_);
684     auto uri2 = newVideoRecord->GetUri();
685     ASSERT_EQ(uri2, uri_);
686 
687     PasteData pasteData;
688     PasteboardClient::GetInstance()->GetPasteData(pasteData);
689     ASSERT_EQ(1, pasteData.GetRecordCount());
690     auto record = pasteData.GetRecordAt(0);
691     auto type = record->GetMimeType();
692     ASSERT_EQ(type, MIMETYPE_TEXT_URI);
693     auto udType = record->GetUDType();
694     ASSERT_EQ(udType, UDMF::UDType::VIDEO);
695     auto uri1 = record->GetUri()->ToString();
696     ASSERT_EQ(uri1, uri_);
697     auto details1 = record->GetDetails();
698     ASSERT_EQ(*details1, details_);
699     PASTEBOARD_HILOGI(PASTEBOARD_MODULE_SERVICE, "PasteboardUnifiedDataUriTest SetVideo003 end");
700 }
701 
702 /**
703  * @tc.name: SetFolder001
704  * @tc.desc: Get the source of the data.
705  * @tc.type: FUNC
706  * @tc.require:
707  * @tc.author:
708  */
709 HWTEST_F(PasteboardUnifiedDataUriTest, SetFolder001, TestSize.Level0)
710 {
711     PASTEBOARD_HILOGI(PASTEBOARD_MODULE_SERVICE, "PasteboardUnifiedDataUriTest SetFolder001 start");
712     auto data = InitFolderData001();
713     PasteboardClient::GetInstance()->SetUnifiedData(data);
714     UDMF::UnifiedData newData;
715     PasteboardClient::GetInstance()->GetUnifiedData(newData);
716     ASSERT_EQ(1, newData.GetRecords().size());
717     auto newRecord = newData.GetRecordAt(0);
718     auto newType = newRecord->GetType();
719     ASSERT_EQ(newType, UDMF::FOLDER);
720     auto newFolderRecord = static_cast<UDMF::Folder *>(newRecord.get());
721     auto newDetails = newFolderRecord->GetDetails();
722     ASSERT_EQ(newDetails, details_);
723     auto uri2 = newFolderRecord->GetUri();
724     ASSERT_EQ(uri2, uri_);
725 
726     PasteData pasteData;
727     PasteboardClient::GetInstance()->GetPasteData(pasteData);
728     ASSERT_EQ(1, pasteData.GetRecordCount());
729     auto record = pasteData.GetRecordAt(0);
730     auto type = record->GetMimeType();
731     ASSERT_EQ(type, MIMETYPE_TEXT_URI);
732     auto udType = record->GetUDType();
733     ASSERT_EQ(udType, UDMF::UDType::FOLDER);
734     auto uri1 = record->GetUri()->ToString();
735     ASSERT_EQ(uri1, uri_);
736     auto details1 = record->GetDetails();
737     ASSERT_EQ(*details1, details_);
738     PASTEBOARD_HILOGI(PASTEBOARD_MODULE_SERVICE, "PasteboardUnifiedDataUriTest SetFolder001 end");
739 }
740 
741 /**
742  * @tc.name: SetFolder002
743  * @tc.desc: Get the source of the data.
744  * @tc.type: FUNC
745  * @tc.require:
746  * @tc.author:
747  */
748 HWTEST_F(PasteboardUnifiedDataUriTest, SetFolder002, TestSize.Level0)
749 {
750     PASTEBOARD_HILOGI(PASTEBOARD_MODULE_SERVICE, "PasteboardUnifiedDataUriTest SetFolder002 start");
751     auto data = InitFolderData002();
752     PasteboardClient::GetInstance()->SetUnifiedData(data);
753     UDMF::UnifiedData newData;
754     PasteboardClient::GetInstance()->GetUnifiedData(newData);
755     ASSERT_EQ(1, newData.GetRecords().size());
756     auto newRecord = newData.GetRecordAt(0);
757     auto newType = newRecord->GetType();
758     ASSERT_EQ(newType, UDMF::FOLDER);
759     auto newFolderRecord = static_cast<UDMF::Folder *>(newRecord.get());
760     auto newDetails = newFolderRecord->GetDetails();
761     ASSERT_EQ(newDetails, details_);
762     auto uri2 = newFolderRecord->GetUri();
763     ASSERT_EQ(uri2, uri_);
764 
765     PasteData pasteData;
766     PasteboardClient::GetInstance()->GetPasteData(pasteData);
767     ASSERT_EQ(1, pasteData.GetRecordCount());
768     auto record = pasteData.GetRecordAt(0);
769     auto type = record->GetMimeType();
770     ASSERT_EQ(type, MIMETYPE_TEXT_URI);
771     auto udType = record->GetUDType();
772     ASSERT_EQ(udType, UDMF::UDType::FOLDER);
773     auto uri1 = record->GetUri()->ToString();
774     ASSERT_EQ(uri1, uri_);
775     auto details1 = record->GetDetails();
776     ASSERT_EQ(*details1, details_);
777     PASTEBOARD_HILOGI(PASTEBOARD_MODULE_SERVICE, "PasteboardUnifiedDataUriTest SetFolder002 end");
778 }
779 
780 /**
781  * @tc.name: SetFolder003
782  * @tc.desc: Get the source of the data.
783  * @tc.type: FUNC
784  * @tc.require:
785  * @tc.author:
786  */
787 HWTEST_F(PasteboardUnifiedDataUriTest, SetFolder003, TestSize.Level0)
788 {
789     PASTEBOARD_HILOGI(PASTEBOARD_MODULE_SERVICE, "PasteboardUnifiedDataUriTest SetFolder003 start");
790     auto data = InitFolderData003();
791     PasteboardClient::GetInstance()->SetUnifiedData(data);
792     UDMF::UnifiedData newData;
793     PasteboardClient::GetInstance()->GetUnifiedData(newData);
794     ASSERT_EQ(1, newData.GetRecords().size());
795     auto newRecord = newData.GetRecordAt(0);
796     auto newType = newRecord->GetType();
797     ASSERT_EQ(newType, UDMF::FOLDER);
798     auto newFolderRecord = static_cast<UDMF::Folder *>(newRecord.get());
799     auto newDetails = newFolderRecord->GetDetails();
800     ASSERT_EQ(newDetails, details_);
801     auto uri2 = newFolderRecord->GetUri();
802     ASSERT_EQ(uri2, uri_);
803 
804     PasteData pasteData;
805     PasteboardClient::GetInstance()->GetPasteData(pasteData);
806     ASSERT_EQ(1, pasteData.GetRecordCount());
807     auto record = pasteData.GetRecordAt(0);
808     auto type = record->GetMimeType();
809     ASSERT_EQ(type, MIMETYPE_TEXT_URI);
810     auto udType = record->GetUDType();
811     ASSERT_EQ(udType, UDMF::UDType::FOLDER);
812     auto uri1 = record->GetUri()->ToString();
813     ASSERT_EQ(uri1, uri_);
814     auto details1 = record->GetDetails();
815     ASSERT_EQ(*details1, details_);
816     PASTEBOARD_HILOGI(PASTEBOARD_MODULE_SERVICE, "PasteboardUnifiedDataUriTest SetFolder003 end");
817 }
818 
819 } // namespace OHOS::MiscServices