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