1/* 2 * Copyright (C) 2024 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 16import fs from '@ohos.file.fs'; 17import fileuri from '@ohos.file.fileuri'; 18 19import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'; 20 21const TAG = 'FsCopyTest'; 22describe("FsCopyTest", function () { 23 let pathDir = '/data/storage/el2/base/haps/entry/files'; 24 let srcDirPathLocal = pathDir + "/src"; 25 let srcFilePathLocal = srcDirPathLocal + '/srcFile.txt'; 26 let dstDirPathLocal = pathDir + "/dest"; 27 let dstFilePathLocal = dstDirPathLocal + '/dstFile.txt'; 28 let muiltDirLocal = srcDirPathLocal+"/test1"; 29 let srcNoSuffixFileLocal = srcDirPathLocal + '/test'; 30 31 let srcDirUriLocal = fileuri.getUriFromPath(srcDirPathLocal); 32 let srcFileUriLocal = fileuri.getUriFromPath(srcFilePathLocal); 33 let dstDirUriLocal = fileuri.getUriFromPath(dstDirPathLocal); 34 let dstFileUriLocal = fileuri.getUriFromPath(dstFilePathLocal); 35 let srcNoSuffixFileUriLocal = fileuri.getUriFromPath(srcNoSuffixFileLocal); 36 37 beforeAll(function () { 38 console.info(TAG, 'beforeAll called') 39 }); 40 41 afterAll(function () { 42 console.info(TAG, 'afterAll called') 43 }); 44 45 beforeEach(function () { 46 console.info(TAG, 'beforeEach called') 47 }); 48 49 afterEach(function () { 50 console.info(TAG, 'afterEach called') 51 }); 52 53 function isDirectory(path){ 54 try { 55 console.info("Fs_Copy_Test020:path",path); 56 let stat = fs.statSync(path); 57 if (stat.isDirectory()) { 58 return true; 59 } 60 return false; 61 } catch (error) { 62 console.error("Error:", error); 63 return false; 64 } 65 } 66 67 /* 68 * @tc.name:Fs_Copy_Test001 69 * @tc.desc:test fs.copy with wrong params 70 * @tc.type: FUNC 71 * @tc.require: #I8UV2F 72 */ 73 it("Fs_Copy_Test001", 0, async function (done) { 74 console.info(TAG, 'Fs_Copy_Test001 start.'); 75 try { 76 await fs.copy("aaa", "bbb", (err) => { 77 if (err) { 78 console.info(TAG, "Fs_Copy_Test001 failed, with error message: " + err.message + ", error code: " + err.code); 79 } else { 80 console.info(TAG, "Fs_Copy_Test001 success. "); 81 } 82 expect().assertFail(); 83 done(); 84 }) 85 } catch (err) { 86 console.error("Fs_Copy_Test001 failed with invalid param: " + err.message + ", error code: " + err.code); 87 expect(true).assertTrue(); 88 done(); 89 } 90 }); 91 92 /* 93 * @tc.name:Fs_Copy_Test002 94 * @tc.desc:test fs.copy with sandbox path 95 * @tc.type: FUNC 96 * @tc.require: #I8UV2F 97 */ 98 it("Fs_Copy_Test002", 0, async function (done) { 99 console.info(TAG, 'Fs_Copy_Test002 start.'); 100 try { 101 await fs.copy(pathDir, "bbb", (err) => { 102 if (err) { 103 console.info(TAG, "Fs_Copy_Test002 failed, with error message: " + err.message + ", error code: " + err.code); 104 } else { 105 console.info(TAG, "Fs_Copy_Test002 success. "); 106 } 107 expect().assertFail(); 108 done(); 109 }) 110 } catch (err) { 111 console.error("Fs_Copy_Test002 failed with invalid param: " + err.message + ", error code: " + err.code); 112 expect(true).assertTrue(); 113 done(); 114 } 115 }); 116 117 /* 118 * @tc.name:Fs_Copy_Test003 119 * @tc.desc:test fs.copy with not exist dir 120 * @tc.type: FUNC 121 * @tc.require: #I8UV2F 122 */ 123 it("Fs_Copy_Test003", 0, async function (done) { 124 console.info(TAG, 'Fs_Copy_Test003 start.'); 125 try { 126 await fs.copy(srcDirUriLocal, dstDirUriLocal, (err) => { 127 if (err) { 128 console.error(TAG, "Fs_Copy_Test003 failed: " + err.message + ", error code: " + err.code); 129 expect(true).assertTrue(); 130 } else { 131 console.info(TAG, "Fs_Copy_Test003 success."); 132 expect().assertFail(); 133 } 134 done(); 135 }) 136 } catch (err) { 137 console.error("Fs_Copy_Test003 failed with invalid param: " + err.message + ", error code: " + err.code); 138 expect(true).assertTrue(); 139 done(); 140 } 141 }); 142 143 /* 144 * @tc.name:Fs_Copy_Test004 145 * @tc.desc:test fs.copy dir to itself 146 * @tc.type: FUNC 147 * @tc.require: #I8UV2F 148 */ 149 it("Fs_Copy_Test004", 0, async function (done) { 150 console.info(TAG, 'Fs_Copy_Test004 start.'); 151 try { 152 fs.mkdirSync(srcDirPathLocal); 153 fs.mkdirSync(dstDirPathLocal); 154 await fs.copy(srcDirUriLocal, dstDirUriLocal, (err) => { 155 if (err) { 156 console.info(TAG, "Fs_Copy_Test004 failed, with error message: " + err.message + ", error code: " + err.code); 157 expect().assertFail(); 158 } else { 159 console.info(TAG, "Fs_Copy_Test004 success. "); 160 expect(true).assertTrue(); 161 } 162 done(); 163 }) 164 } catch (err) { 165 console.error("Fs_Copy_Test004 failed with invalid param: " + err.message + ", error code: " + err.code); 166 expect().assertFail(); 167 done(); 168 } 169 }); 170 171 /* 172 * @tc.name:Fs_Copy_Test005 173 * @tc.desc:test fs.copy, copy file, src isn't exist 174 * @tc.type: FUNC 175 * @tc.require: #I8UV2F 176 */ 177 it("Fs_Copy_Test005", 0, async function (done) { 178 console.info(TAG, 'Fs_Copy_Test005 start.'); 179 try { 180 fs.rmdirSync(srcDirPathLocal); 181 await fs.copy(srcDirUriLocal, dstDirUriLocal, (err) => { 182 if (err) { 183 console.info(TAG, "Fs_Copy_Test005 failed, with error message: " + err.message + ", error code: " + err.code); 184 expect(true).assertTrue(); 185 } else { 186 console.info(TAG, "Fs_Copy_Test005 success. "); 187 expect(true).assertTrue(); 188 } 189 done(); 190 }) 191 } catch (err) { 192 console.error("Fs_Copy_Test005 failed with invalid param: " + err.message + ", error code: " + err.code); 193 expect().assertFail(); 194 done(); 195 } finally { 196 fs.rmdirSync(dstDirPathLocal); 197 } 198 }); 199 200 /* 201 * @tc.name:Fs_Copy_Test006 202 * @tc.desc:test fs.copy, copy file to file 203 * @tc.type: FUNC 204 * @tc.require: #I8UV2F 205 */ 206 it("Fs_Copy_Test006", 0, async function (done) { 207 console.info(TAG, 'Fs_Copy_Test006 start.'); 208 try { 209 fs.mkdirSync(srcDirPathLocal); 210 fs.mkdirSync(dstDirPathLocal); 211 let srcFile = fs.openSync(srcFilePathLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); 212 fs.writeSync(srcFile.fd, 'ttttttttttttt'); 213 fs.closeSync(srcFile); 214 let dstFile = fs.openSync(dstFilePathLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); 215 fs.closeSync(dstFile); 216 await fs.copy(srcFileUriLocal, dstFileUriLocal, (err) => { 217 if (err) { 218 console.info(TAG, "Fs_Copy_Test006 failed, with error message: " + err.message + ", error code: " + err.code); 219 expect().assertFail(); 220 } else { 221 console.info(TAG, "Fs_Copy_Test006 success. "); 222 expect(true).assertTrue(); 223 } 224 done(); 225 }) 226 } catch (err) { 227 console.error("Fs_Copy_Test006 failed with invalid param: " + err.message + ", error code: " + err.code); 228 expect().assertFail(); 229 done(); 230 } 231 }); 232 233 /* 234 * @tc.name:Fs_Copy_Test007 235 * @tc.desc:test fs.copy, copy file to dir 236 * @tc.type: FUNC 237 * @tc.require: #I8UV2F 238 */ 239 it("Fs_Copy_Test007", 0, async function (done) { 240 console.info(TAG, 'Fs_Copy_Test007 start.'); 241 try { 242 let file = fs.openSync(srcFilePathLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); 243 fs.writeSync(file.fd, 'ttttttttttttt'); 244 fs.closeSync(file.fd); 245 await fs.copy(srcFileUriLocal, dstDirUriLocal, (err) => { 246 if (err) { 247 console.info(TAG, "Fs_Copy_Test007 failed, with error message: " + err.message + ", error code: " + err.code); 248 expect(true).assertTrue(); 249 } else { 250 console.info(TAG, "Fs_Copy_Test007 success. "); 251 expect().assertFail(); 252 } 253 done(); 254 }) 255 } catch (err) { 256 console.error("Fs_Copy_Test007 failed with invalid param: " + err.message + ", error code: " + err.code); 257 expect().assertFail(); 258 done(); 259 } 260 }); 261 262 /* 263 * @tc.name:Fs_Copy_Test008 264 * @tc.desc:test fs.copy, copy dir to dir 265 * @tc.type: FUNC 266 * @tc.require: #I8UV2F 267 */ 268 it("Fs_Copy_Test008", 0, async function (done) { 269 console.info(TAG, 'Fs_Copy_Test008 start.'); 270 try { 271 await fs.copy(srcDirUriLocal, dstDirUriLocal, (err) => { 272 if (err) { 273 console.info(TAG, "Fs_Copy_Test008 failed, with error message: " + err.message + ", error code: " + err.code); 274 expect().assertFail(); 275 } else { 276 console.info(TAG, "Fs_Copy_Test008 success. "); 277 expect(true).assertTrue(); 278 } 279 done(); 280 }) 281 } catch (err) { 282 console.error("Fs_Copy_Test008 failed with invalid param: " + err.message + ", error code: " + err.code); 283 expect().assertFail(); 284 done(); 285 } finally { 286 fs.rmdirSync(srcDirPathLocal); 287 fs.rmdirSync(dstDirPathLocal); 288 } 289 }); 290 291 /* 292 * @tc.name:Fs_Copy_Test009 293 * @tc.desc:test fs.copy, copy file and write the contents but dest dir isn't exist 294 * @tc.type: FUNC 295 * @tc.require: #I8UV2F 296 */ 297 it("Fs_Copy_Test009", 0, async function (done) { 298 console.info(TAG, 'Fs_Copy_Test009 start.'); 299 try { 300 fs.mkdirSync(srcDirPathLocal); 301 let file = fs.openSync(srcFilePathLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); 302 fs.writeSync(file.fd, 'ttttttttttttt'); 303 fs.closeSync(file); 304 await fs.copy(srcFileUriLocal, dstFileUriLocal, (err) => { 305 if (err) { 306 console.info(TAG, "Fs_Copy_Test009 failed, with error message: " + err.message + ", error code: " + err.code); 307 expect(true).assertTrue(); 308 } else { 309 console.info(TAG, "Fs_Copy_Test009 success. "); 310 expect().assertFail(); 311 } 312 done(); 313 }) 314 } catch (err) { 315 console.error("Fs_Copy_Test009 failed with invalid param: " + err.message + ", error code: " + err.code); 316 expect(true).assertTrue(); 317 done(); 318 } finally { 319 fs.rmdirSync(srcDirPathLocal); 320 } 321 }); 322 323 /* 324 * @tc.name:Fs_Copy_Test010 325 * @tc.desc:test fs.copy, copy dir and file in the src path 326 * @tc.type: FUNC 327 * @tc.require: #I8UV2F 328 */ 329 it("Fs_Copy_Test010", 0, async function (done) { 330 console.info(TAG, 'Fs_Copy_Test010 start.'); 331 try { 332 fs.mkdirSync(srcDirPathLocal); 333 fs.mkdirSync(dstDirPathLocal); 334 let file = fs.openSync(srcFilePathLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); 335 fs.writeSync(file.fd, 'ttttttttttttt'); 336 fs.closeSync(file); 337 await fs.copy(srcDirUriLocal, dstDirUriLocal, (err) => { 338 if (err) { 339 console.info(TAG, "Fs_Copy_Test010 failed, with error message: " + err.message + ", error code: " + err.code); 340 expect().assertFail(); 341 } else { 342 console.info(TAG, "Fs_Copy_Test010 success. "); 343 expect(true).assertTrue(); 344 } 345 done(); 346 }) 347 } catch (err) { 348 console.error("Fs_Copy_Test010 failed with invalid param: " + err.message + ", error code: " + err.code); 349 expect().assertFail(); 350 done(); 351 } 352 }); 353 354 /* 355 * @tc.name:Fs_Copy_Test011 356 * @tc.desc:test fs.copy, copy file to file with listener 357 * @tc.type: FUNC 358 * @tc.require: #I8UV2F 359 */ 360 it("Fs_Copy_Test011", 0, async function (done) { 361 console.info(TAG, 'Fs_Copy_Test011 start.'); 362 try { 363 let flag = false; 364 let progressListener = (progress) => { 365 flag = true; 366 console.info("Fs_Copy_Test011 progressListener in, progressSize: " + progress.processedSize + ", totalSize: " + progress.totalSize + 367 " progress: " + (progress.processedSize / progress.totalSize * 100).toFixed(2) + "%"); 368 }; 369 let options = { 370 "progressListener": progressListener 371 } 372 let file = fs.openSync(srcFilePathLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); 373 fs.writeSync(file.fd, 'ttttttttttttt'); 374 fs.closeSync(file); 375 await fs.copy(srcFileUriLocal, dstFileUriLocal, options, (err) => { 376 if (err) { 377 console.info(TAG, "Fs_Copy_Test011 failed, with error message: " + err.message + ", error code: " + err.code); 378 expect().assertFail(); 379 } else { 380 console.info(TAG, "Fs_Copy_Test011 success. "); 381 expect(true).assertTrue(); 382 } 383 done(); 384 }) 385 setTimeout(function () { 386 if (!flag) { 387 console.info(TAG, "Fs_Copy_Test013 progressListener error. "); 388 expect().assertFail(); 389 done(); 390 return; 391 } 392 expect(true).assertTrue(); 393 done(); 394 }, 100); 395 } catch (err) { 396 console.error("Fs_Copy_Test011 failed with invalid param: " + err.message + ", error code: " + err.code); 397 expect().assertFail(); 398 done(); 399 } 400 }); 401 402 /* 403 * @tc.name:Fs_Copy_Test012 404 * @tc.desc:test fs.copy, copy dir to dir with listener 405 * @tc.type: FUNC 406 * @tc.require: #I8UV2F 407 */ 408 it("Fs_Copy_Test012", 0, async function (done) { 409 console.info(TAG, 'Fs_Copy_Test012 start.'); 410 try { 411 let flag = false; 412 let progressListener = (progress) => { 413 flag = true; 414 console.info("Fs_Copy_Test012 progressListener in, progressSize: " + progress.processedSize + ", totalSize: " + progress.totalSize + 415 " progress: " + (progress.processedSize / progress.totalSize * 100).toFixed(2) + "%"); 416 }; 417 let options = { 418 "progressListener": progressListener 419 } 420 await fs.copy(srcDirUriLocal, dstDirUriLocal, options, (err) => { 421 if (err) { 422 console.info(TAG, "Fs_Copy_Test012 failed, with error message: " + err.message + ", error code: " + err.code); 423 expect().assertFail(); 424 } else { 425 console.info(TAG, "Fs_Copy_Test012 success. "); 426 } 427 }) 428 setTimeout(function () { 429 if (!flag) { 430 console.info(TAG, "Fs_Copy_Test013 progressListener error. "); 431 expect().assertFail(); 432 done(); 433 return; 434 } 435 expect(true).assertTrue(); 436 done(); 437 }, 100); 438 } catch (err) { 439 console.error("Fs_Copy_Test012 failed with invalid param: " + err.message + ", error code: " + err.code); 440 expect().assertFail(); 441 done(); 442 } 443 }); 444 445 /* 446 * @tc.name:Fs_Copy_Test013 447 * @tc.desc:test fs.copy, copy file to file with listener promise 448 * @tc.type: FUNC 449 * @tc.require: #I8UV2F 450 */ 451 it("Fs_Copy_Test013", 0, async function (done) { 452 console.info(TAG, 'Fs_Copy_Test013 start.'); 453 try { 454 let flag = false; 455 let progressListener = (progress) => { 456 flag = true; 457 console.info("Fs_Copy_Test013 progressListener in, progressSize: " + progress.processedSize + ", totalSize: " + progress.totalSize + 458 " progress: " + (progress.processedSize / progress.totalSize * 100).toFixed(2) + "%"); 459 }; 460 let options = { 461 "progressListener": progressListener 462 } 463 let file = fs.openSync(srcFilePathLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); 464 fs.writeSync(file.fd, 'ttttttttttttt'); 465 fs.closeSync(file); 466 await fs.copy(srcFileUriLocal, dstFileUriLocal, options).then((err) => { 467 if (err) { 468 console.info(TAG, "Fs_Copy_Test013 failed, with error message: " + err.message + ", error code: " + err.code); 469 expect().assertFail(); 470 } else { 471 console.info(TAG, "Fs_Copy_Test013 success. "); 472 } 473 }) 474 setTimeout(function () { 475 if (!flag) { 476 console.info(TAG, "Fs_Copy_Test013 progressListener error. "); 477 expect().assertFail(); 478 done(); 479 return; 480 } 481 expect(true).assertTrue(); 482 done(); 483 }, 100); 484 } catch (err) { 485 console.error("Fs_Copy_Test013 failed with invalid param: " + err.message + ", error code: " + err.code); 486 expect().assertFail(); 487 done(); 488 } 489 }); 490 491 /* 492 * @tc.name:Fs_Copy_Test014 493 * @tc.desc:test fs.copy, copy dir to dir with listener promise 494 * @tc.type: FUNC 495 * @tc.require: #I8UV2F 496 */ 497 it("Fs_Copy_Test014", 0, async function (done) { 498 console.info(TAG, 'Fs_Copy_Test014 start.'); 499 try { 500 let flag = false; 501 let progressListener = (progress) => { 502 flag = true; 503 console.info("Fs_Copy_Test014 progressListener in, progressSize: " + progress.processedSize + ", totalSize: " + progress.totalSize + 504 " progress: " + (progress.processedSize / progress.totalSize * 100).toFixed(2) + "%"); 505 }; 506 let options = { 507 "progressListener": progressListener 508 } 509 await fs.copy(srcDirUriLocal, dstDirUriLocal, options).then((err) => { 510 if (err) { 511 console.info(TAG, "Fs_Copy_Test014 failed, with error message: " + err.message + ", error code: " + err.code); 512 expect().assertFail(); 513 done(); 514 } else { 515 console.info(TAG, "Fs_Copy_Test014 success. "); 516 } 517 setTimeout(function () { 518 if (!flag) { 519 console.info(TAG, "Fs_Copy_Test013 progressListener error. "); 520 expect().assertFail(); 521 done(); 522 return; 523 } 524 expect(true).assertTrue(); 525 done(); 526 }, 100); 527 }) 528 } catch (err) { 529 console.error("Fs_Copy_Test014 failed with invalid param: " + err.message + ", error code: " + err.code); 530 expect().assertFail(); 531 done(); 532 } 533 }); 534 535 /* 536 * @tc.name:Fs_Copy_Test015 537 * @tc.desc:test fs.copy, copy file 2 times 538 * @tc.type: FUNC 539 * @tc.require: #I8UV2F 540 */ 541 it("Fs_Copy_Test015", 0, async function (done) { 542 console.info(TAG, 'Fs_Copy_Test015 start.'); 543 try { 544 let file = fs.openSync(srcFilePathLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); 545 fs.writeSync(file.fd, 'ttttttttttttt'); 546 fs.closeSync(file); 547 await fs.copy(srcFileUriLocal, dstFileUriLocal, (err) => { 548 if (err) { 549 console.info(TAG, "Fs_Copy_Test015_first failed, with error message: " + err.message + ", error code: " + err.code); 550 expect().assertFail(); 551 done(); 552 } else { 553 console.info(TAG, "Fs_Copy_Test015_first success. "); 554 } 555 }) 556 557 await fs.copy(srcDirUriLocal, dstDirUriLocal, (err) => { 558 if (err) { 559 console.info(TAG, "Fs_Copy_Test015_second failed, with error message: " + err.message + ", error code: " + err.code); 560 expect().assertFail(); 561 } else { 562 console.info(TAG, "Fs_Copy_Test015_second success. "); 563 expect(true).assertTrue(); 564 fs.rmdirSync(srcDirPathLocal); 565 fs.rmdirSync(dstDirPathLocal); 566 } 567 done(); 568 }) 569 } catch (err) { 570 console.error("Fs_Copy_Test015 failed with invalid param: " + err.message + ", error code: " + err.code); 571 expect().assertFail(); 572 done(); 573 } 574 }); 575 576 /* 577 * @tc.name:Fs_Copy_Test016 578 * @tc.desc:test fs.copy, copy empty file 579 * @tc.type: FUNC 580 * @tc.require: #I8UV2F 581 */ 582 it("Fs_Copy_Test016", 0, async function (done) { 583 console.info(TAG, 'Fs_Copy_Test016 start.'); 584 try { 585 if (fs.accessSync(srcFilePathLocal)) { 586 fs.unlinkSync(srcFilePathLocal); 587 } 588 fs.mkdirSync(srcDirPathLocal); 589 fs.mkdirSync(dstDirPathLocal); 590 let file = fs.openSync(srcFilePathLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); 591 fs.closeSync(file); 592 await fs.copy(srcFileUriLocal, dstFileUriLocal, (err) => { 593 if (err) { 594 console.info(TAG, "Fs_Copy_Test016 failed, with error message: " + err.message + ", error code: " + err.code); 595 expect().assertFail(); 596 } else { 597 console.info(TAG, "Fs_Copy_Test016 success. "); 598 expect(true).assertTrue(); 599 } 600 done(); 601 }) 602 } catch (err) { 603 console.error("Fs_Copy_Test016 failed with invalid param: " + err.message + ", error code: " + err.code); 604 expect().assertFail(); 605 done(); 606 } 607 }); 608 609 /* 610 * @tc.name:Fs_Copy_Test017 611 * @tc.desc:test fs.copy, copy empty dir 612 * @tc.type: FUNC 613 * @tc.require: #I8UV2F 614 */ 615 it("Fs_Copy_Test017", 0, async function (done) { 616 console.info(TAG, 'Fs_Copy_Test017 start.'); 617 try { 618 if (fs.accessSync(srcFilePathLocal)) { 619 fs.unlinkSync(srcFilePathLocal); 620 } 621 await fs.copy(srcDirUriLocal, dstDirUriLocal, (err) => { 622 if (err) { 623 console.info(TAG, "Fs_Copy_Test017 failed, with error message: " + err.message + ", error code: " + err.code); 624 expect().assertFail(); 625 } else { 626 console.info(TAG, "Fs_Copy_Test017 success. "); 627 expect(true).assertTrue(); 628 } 629 done(); 630 }) 631 } catch (err) { 632 console.error("Fs_Copy_Test017 failed with invalid param: " + err.message + ", error code: " + err.code); 633 expect().assertFail(); 634 done(); 635 } 636 }); 637 638 /* 639 * @tc.name:Fs_Copy_Test018 640 * @tc.desc:test fs.copy, copy empty dir 641 * @tc.type: FUNC 642 * @tc.require: #I8UV2F 643 */ 644 it("Fs_Copy_Test018", 0, async function (done) { 645 console.info(TAG, 'Fs_Copy_Test017 start.'); 646 try { 647 let flag = false; 648 let progressListener = (progress) => { 649 flag = true; 650 console.info("Fs_Copy_Test018 progressListener in, progressSize: " + progress.processedSize + ", totalSize: " + progress.totalSize); 651 }; 652 let options = { 653 "progressListener": progressListener 654 } 655 if (fs.accessSync(srcFilePathLocal)) { 656 fs.unlinkSync(srcFilePathLocal); 657 } 658 await fs.copy(srcDirUriLocal, dstDirUriLocal, options, (err) => { 659 if (err) { 660 console.info(TAG, "Fs_Copy_Test018 failed, with error message: " + err.message + ", error code: " + err.code); 661 expect().assertFail(); 662 done(); 663 } else { 664 console.info(TAG, "Fs_Copy_Test018 success. "); 665 } 666 }) 667 setTimeout(function () { 668 if (!flag) { 669 console.info(TAG, "Fs_Copy_Test013 progressListener error. "); 670 expect().assertFail(); 671 done(); 672 return; 673 } 674 expect(true).assertTrue(); 675 done(); 676 }, 100); 677 } catch (err) { 678 console.error("Fs_Copy_Test018 failed with invalid param: " + err.message + ", error code: " + err.code); 679 expect().assertFail(); 680 done(); 681 } 682 }); 683 684 /* 685 * @tc.name:Fs_Copy_Test019 686 * @tc.desc:test fs.copy file to itself 687 * @tc.type: FUNC 688 * @tc.require: #I8UV2F 689 */ 690 it("Fs_Copy_Test019", 0, async function (done) { 691 console.info(TAG, 'Fs_Copy_Test019 start.'); 692 try { 693 await fs.copy(srcFileUriLocal, srcFileUriLocal, (err) => { 694 if (err) { 695 console.info(TAG, "Fs_Copy_Test019 failed, with error message: " + err.message + ", error code: " + err.code); 696 expect(true).assertTrue(); 697 } else { 698 console.info(TAG, "Fs_Copy_Test019 success. "); 699 expect().assertFail(); 700 } 701 done(); 702 }) 703 } catch (err) { 704 console.error("Fs_Copy_Test019 failed with invalid param: " + err.message + ", error code: " + err.code); 705 expect(false).assertTrue(); 706 done(); 707 } 708 }); 709 710 /* 711 * @tc.name:Fs_Copy_Test020 712 * @tc.desc:test fs.copy, copy muilt empty dir 713 * @tc.type: FUNC 714 * @tc.require: #I8UV2F 715 */ 716 it("Fs_Copy_Test020", 0, async function (done) { 717 console.info(TAG, 'Fs_Copy_Test020 start.'); 718 try { 719 fs.mkdirSync(srcDirPathLocal+"/test1"); 720 fs.mkdirSync(srcDirPathLocal+"/test2"); 721 let progressListener = (progress) => { 722 console.info("Fs_Copy_Test020 progressListener in, progressSize: " + progress.processedSize + ", totalSize: " + progress.totalSize); 723 }; 724 let options = { 725 "progressListener": progressListener 726 } 727 await fs.copy(srcDirUriLocal, dstDirUriLocal, options, (err) => { 728 if (err) { 729 console.info(TAG, "Fs_Copy_Test020 failed, with error message: " + err.message + ", error code: " + err.code); 730 expect().assertFail(); 731 } else { 732 if (isDirectory(dstDirPathLocal + "/src/test1") && isDirectory(dstDirPathLocal + "/src/test2")) { 733 console.info(TAG, "Fs_Copy_Test020 success. "); 734 expect(true).assertTrue(); 735 done(); 736 return; 737 } 738 expect().assertFail(); 739 } 740 done(); 741 }) 742 } catch (err) { 743 console.error("Fs_Copy_Test020 failed with invalid param: " + err.message + ", error code: " + err.code); 744 expect().assertFail(); 745 done(); 746 } 747 }); 748 749 /* 750 * @tc.name:Fs_Copy_Test021 751 * @tc.desc:test fs.copy, copy muilt dir contain files 752 * @tc.type: FUNC 753 * @tc.require: #I8UV2F 754 */ 755 it("Fs_Copy_Test021", 0, async function (done) { 756 console.info(TAG, 'Fs_Copy_Test021 start.'); 757 try { 758 let file1 = fs.openSync(muiltDirLocal + "/test1.txt", fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); 759 fs.writeSync(file1.fd, "ttttttttttttt"); 760 fs.closeSync(file1); 761 let file2 = fs.openSync(muiltDirLocal + "/test2.txt", fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); 762 fs.writeSync(file2.fd, "ttttttttttttt"); 763 fs.closeSync(file2); 764 let progressListener = (progress) => { 765 console.info("Fs_Copy_Test021 progressListener in, progressSize: " + progress.processedSize + ", totalSize: " + progress.totalSize + 766 " progress: " + (progress.processedSize / progress.totalSize * 100).toFixed(2) + "%"); 767 }; 768 let options = { 769 "progressListener": progressListener 770 } 771 await fs.copy(srcDirUriLocal, dstDirUriLocal, options, (err) => { 772 if (err) { 773 console.info(TAG, "Fs_Copy_Test021 failed, with error message: " + err.message + ", error code: " + err.code); 774 expect().assertFail(); 775 } else { 776 if (fs.accessSync(dstDirPathLocal +"/src/test1/test1.txt") && fs.accessSync(dstDirPathLocal + "/src/test1/test2.txt")) { 777 console.info(TAG, "Fs_Copy_Test021 success. "); 778 expect(true).assertTrue(); 779 done(); 780 return; 781 } 782 expect().assertFail(); 783 } 784 done(); 785 }) 786 } catch (err) { 787 console.error("Fs_Copy_Test021 failed with invalid param: " + err.message + ", error code: " + err.code); 788 expect().assertFail(); 789 done(); 790 } 791 }); 792 793 /* 794 * @tc.name:Fs_Copy_Test022 795 * @tc.desc:test fs.copy, copy file 10 times 796 * @tc.type: FUNC 797 * @tc.require: #I8UV2F 798 */ 799 it("Fs_Copy_Test022", 0, async function (done) { 800 console.info(TAG, 'Fs_Copy_Test022 start.'); 801 try { 802 let file = fs.openSync(srcFilePathLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); 803 fs.writeSync(file.fd, 'ttttttttttttt'); 804 fs.closeSync(file); 805 // execute the copy operation 10 times 806 for (let i = 0; i < 10; i++) { 807 const dstStitchFilePath = `${dstDirUriLocal}/file_${i}.txt`; 808 await fs.copy(srcFileUriLocal, dstStitchFilePath, (err) => { 809 if (err) { 810 console.info(TAG, "Fs_Copy_Test022 failed, with error message: " + err.message + ", error code: " + err.code); 811 expect().assertFail(); 812 done(); 813 } else { 814 console.info(TAG, "Fs_Copy_Test022 success. "); 815 } 816 }) 817 } 818 expect(true).assertTrue(); 819 done(); 820 } catch (err) { 821 console.error("Fs_Copy_Test022 failed with invalid param: " + err.message + ", error code: " + err.code); 822 expect().assertFail(); 823 done(); 824 } 825 }); 826 827 /* 828 * @tc.name:Fs_Copy_Test023 829 * @tc.desc:test fs.copy, copy 1KB file 830 * @tc.type: FUNC 831 * @tc.require: #I8UV2F 832 */ 833 it("Fs_Copy_Test023", 0, async function (done) { 834 console.info(TAG, 'Fs_Copy_Test023 start.'); 835 try { 836 let file = fs.openSync(srcFilePathLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); 837 let content = 't'.repeat(1024); 838 fs.writeSync(file.fd, content); 839 fs.closeSync(file); 840 let progressListener = (progress) => { 841 console.info("Fs_Copy_Test023 progressListener in, progressSize: " + progress.processedSize + ", totalSize: " + progress.totalSize + 842 " progress: " + (progress.processedSize / progress.totalSize * 100).toFixed(2) + "%"); 843 }; 844 let options = { 845 "progressListener": progressListener 846 } 847 await fs.copy(srcFileUriLocal, dstFileUriLocal, options, (err) => { 848 if (err) { 849 console.info(TAG, "Fs_Copy_Test023 failed, with error message: " + err.message + ", error code: " + err.code); 850 expect().assertFail(); 851 } else { 852 console.info(TAG, "Fs_Copy_Test023 success. "); 853 expect(true).assertTrue(); 854 } 855 done(); 856 }) 857 } catch (err) { 858 console.error("Fs_Copy_Test023 failed with invalid param: " + err.message + ", error code: " + err.code); 859 expect().assertFail(); 860 done(); 861 } 862 }); 863 864 /* 865 * @tc.name:Fs_Copy_Test024 866 * @tc.desc:test fs.copy, copy 100MB file 867 * @tc.type: FUNC 868 * @tc.require: #I8UV2F 869 */ 870 it("Fs_Copy_Test024", 0, async function (done) { 871 console.info(TAG, 'Fs_Copy_Test024 start.'); 872 try { 873 let file = fs.openSync(srcFilePathLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); 874 let content = 't'.repeat(1024 * 1024 * 100); 875 fs.writeSync(file.fd, content); 876 fs.closeSync(file); 877 let progressListener = (progress) => { 878 console.info("Fs_Copy_Test024 progressListener in, progressSize: " + progress.processedSize + ", totalSize: " + progress.totalSize + 879 " progress: " + (progress.processedSize / progress.totalSize * 100).toFixed(2) + "%"); 880 }; 881 let options = { 882 "progressListener": progressListener 883 } 884 await fs.copy(srcFileUriLocal, dstFileUriLocal, options, (err) => { 885 if (err) { 886 console.info(TAG, "Fs_Copy_Test024 failed, with error message: " + err.message + ", error code: " + err.code); 887 expect().assertFail(); 888 } else { 889 console.info(TAG, "Fs_Copy_Test024 success. "); 890 expect(true).assertTrue(); 891 } 892 done(); 893 }) 894 } catch (err) { 895 console.error("Fs_Copy_Test024 failed with invalid param: " + err.message + ", error code: " + err.code); 896 expect().assertFail(); 897 done(); 898 } 899 }); 900 901 /* 902 * @tc.name:Fs_Copy_Test025 903 * @tc.desc:test fs.copy dir to own directory1 904 * @tc.type: FUNC 905 * @tc.require: #I8UV2F 906 */ 907 it("Fs_Copy_Test025", 0, async function (done) { 908 console.info(TAG, 'Fs_Copy_Test025 start.'); 909 try { 910 await fs.copy(srcDirUriLocal, srcDirUriLocal+"/", (err) => { 911 if (err) { 912 console.info(TAG, "Fs_Copy_Test025 failed, with error message: " + err.message + ", error code: " + err.code); 913 expect(true).assertTrue(); 914 } else { 915 console.info(TAG, "Fs_Copy_Test025 success. "); 916 expect().assertFail(); 917 } 918 done(); 919 }) 920 } catch (err) { 921 console.error("Fs_Copy_Test025 failed with invalid param: " + err.message + ", error code: " + err.code); 922 expect().assertFail(); 923 done(); 924 } 925 }); 926 927 /* 928 * @tc.name:Fs_Copy_Test026 929 * @tc.desc:test fs.copy dir to own directory2 930 * @tc.type: FUNC 931 * @tc.require: #I8UV2F 932 */ 933 it("Fs_Copy_Test026", 0, async function (done) { 934 console.info(TAG, 'Fs_Copy_Test026 start.'); 935 try { 936 await fs.copy(srcDirUriLocal+"/", srcDirUriLocal, (err) => { 937 if (err) { 938 console.info(TAG, "Fs_Copy_Test026 failed, with error message: " + err.message + ", error code: " + err.code); 939 expect(true).assertTrue(); 940 } else { 941 console.info(TAG, "Fs_Copy_Test026 success. "); 942 expect().assertFail(); 943 } 944 done(); 945 }) 946 } catch (err) { 947 console.error("Fs_Copy_Test026 failed with invalid param: " + err.message + ", error code: " + err.code); 948 expect().assertFail(); 949 done(); 950 } 951 }); 952 953 /* 954 * @tc.name:Fs_Copy_Test027 955 * @tc.desc:test fs.copy file wiht no suffix 956 * @tc.type: FUNC 957 * @tc.require: #I8UV2F 958 */ 959 it("Fs_Copy_Test027", 0, async function (done) { 960 console.info(TAG, 'Fs_Copy_Test027 start.'); 961 try { 962 let file = fs.openSync(srcNoSuffixFileLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); 963 fs.writeSync(file.fd, "ttttttttttttt"); 964 fs.closeSync(file); 965 await fs.copy(srcNoSuffixFileUriLocal, dstDirUriLocal, (err) => { 966 if (err) { 967 console.info(TAG, "Fs_Copy_Test027 failed, with error message: " + err.message + ", error code: " + err.code); 968 expect(true).assertTrue(); 969 } else { 970 console.info(TAG, "Fs_Copy_Test027 success. "); 971 expect().assertFail(); 972 } 973 done(); 974 }) 975 } catch (err) { 976 console.error("Fs_Copy_Test027 failed with invalid param: " + err.message + ", error code: " + err.code); 977 expect().assertFail(); 978 done(); 979 } 980 }); 981 /* 982 * @tc.name:Fs_Copy_Test028 983 * @tc.desc:test fs.copy file with indiscriminate parameter 984 * @tc.type: FUNC 985 * @tc.require: #I8UV2F 986 */ 987 it("Fs_Copy_Test028", 0, async function (done) { 988 console.info(TAG, 'Fs_Copy_Test028 start.'); 989 try { 990 let srcPath = pathDir+"/./pppppp"; 991 let destPath =pathDir+ "/ttt/pppppp"; 992 let srcUriPath = fileuri.getUriFromPath(srcPath); 993 let destUriPath = fileuri.getUriFromPath(destPath); 994 fs.mkdirSync(srcPath); 995 await fs.copy(srcUriPath, destUriPath, (err) => { 996 if (err) { 997 console.info(TAG, "Fs_Copy_Test028 failed, with error message: " + err.message + ", error code: " + err.code); 998 expect(true).assertTrue(); 999 } else { 1000 console.info(TAG, "Fs_Copy_Test028 success. "); 1001 expect().assertFail(); 1002 } 1003 done(); 1004 }) 1005 } catch (err) { 1006 console.error("Fs_Copy_Test028 failed with invalid param: " + err.message + ", error code: " + err.code); 1007 expect().assertFail(); 1008 done(); 1009 } 1010 }); 1011 1012 /* 1013 * @tc.name:Fs_Copy_Test029 1014 * @tc.desc:test fs.copy file with indiscriminate parameter2 1015 * @tc.type: FUNC 1016 * @tc.require: #I8UV2F 1017 */ 1018 it("Fs_Copy_Test029", 0, async function (done) { 1019 console.info(TAG, 'Fs_Copy_Test029 start.'); 1020 try { 1021 let srcPath = pathDir+"/.////ssssss///"; 1022 let destPath =pathDir+ "/ttt/ssssss//////"; 1023 let srcUriPath = fileuri.getUriFromPath(srcPath); 1024 let destUriPath = fileuri.getUriFromPath(destPath); 1025 fs.mkdirSync(srcPath); 1026 await fs.copy(srcUriPath, destUriPath, (err) => { 1027 if (err) { 1028 console.info(TAG, "Fs_Copy_Test029 failed, with error message: " + err.message + ", error code: " + err.code); 1029 expect(true).assertTrue(); 1030 } else { 1031 console.info(TAG, "Fs_Copy_Test029 success. "); 1032 expect().assertFail(); 1033 } 1034 done(); 1035 }) 1036 } catch (err) { 1037 console.error("Fs_Copy_Test029 failed with invalid param: " + err.message + ", error code: " + err.code); 1038 expect().assertFail(); 1039 done(); 1040 } 1041 }); 1042 1043 /* 1044 * @tc.name:Fs_Copy_Test030 1045 * @tc.desc:test fs.copy dir to subdir 1046 * @tc.type: FUNC 1047 * @tc.require: #I8UV2F 1048 */ 1049 it("Fs_Copy_Test030", 0, async function (done) { 1050 console.info(TAG, 'Fs_Copy_Test030 start.'); 1051 try { 1052 let srcPath = pathDir+"/test1/"; 1053 let destPath =pathDir+ "/test1/testttt2"; 1054 let srcUriPath = fileuri.getUriFromPath(srcPath); 1055 let destUriPath = fileuri.getUriFromPath(destPath); 1056 fs.mkdirSync(srcPath); 1057 await fs.copy(srcUriPath, destUriPath, (err) => { 1058 if (err) { 1059 console.info(TAG, "Fs_Copy_Test030 failed, with error message: " + err.message + ", error code: " + err.code); 1060 expect(true).assertTrue(); 1061 } else { 1062 console.info(TAG, "Fs_Copy_Test030 success. "); 1063 expect().assertFail(); 1064 } 1065 done(); 1066 }) 1067 } catch (err) { 1068 console.error("Fs_Copy_Test030 failed with invalid param: " + err.message + ", error code: " + err.code); 1069 expect().assertFail(); 1070 done(); 1071 } 1072 }); 1073 1074 /* 1075 * @tc.name:Fs_Copy_Test031 1076 * @tc.desc:test fs.copy, same task 1077 * @tc.type: FUNC 1078 * @tc.require: #I8UV2F 1079 */ 1080 it("Fs_Copy_Test031", 0, async function (done) { 1081 console.info(TAG, 'Fs_Copy_Test031 start.'); 1082 try { 1083 let flag1 = false; 1084 let flag2 = false; 1085 let progressListener = (progress) => { 1086 console.info("Fs_Copy_Test031 progressListener in, progressSize: " + progress.processedSize + ", totalSize: " + progress.totalSize + 1087 " progress: " + (progress.processedSize / progress.totalSize * 100).toFixed(2) + "%"); 1088 }; 1089 let options = { 1090 "progressListener": progressListener 1091 } 1092 if (fs.accessSync(srcFilePathLocal)) { 1093 fs.unlinkSync(srcFilePathLocal); 1094 } 1095 let file = fs.openSync(srcFilePathLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); 1096 fs.writeSync(file.fd, 'ttttttttttttt'); 1097 fs.closeSync(file); 1098 const task1 = new Promise(resolve => { 1099 setTimeout(() => { 1100 fs.copy(srcFileUriLocal, dstFileUriLocal, options, (err) => { 1101 if (err) { 1102 console.info(TAG, "Fs_Copy_Test031_first failed, with error message: " + err.message + ", error code: " + err.code); 1103 expect().assertFail(); 1104 } else { 1105 flag1 = true; 1106 console.info(TAG, "Fs_Copy_Test031_first success. "); 1107 } 1108 }) 1109 resolve(); 1110 }, 10); 1111 }); 1112 1113 const task2 = new Promise(resolve => { 1114 setTimeout(() => { 1115 try { 1116 fs.copy(srcFileUriLocal, dstFileUriLocal, options, (err) => { 1117 flag2 = true; 1118 if (err) { 1119 console.info(TAG, "Fs_Copy_Test031_second failed, with error message: " + err.message + ", error code: " + err.code); 1120 } else { 1121 console.info(TAG, "Fs_Copy_Test031_second success. ");; 1122 } 1123 expect().assertFail(); 1124 }) 1125 resolve(); 1126 } catch (err) { 1127 console.error("Fs_Copy_Test031_second failed with invalid param: " + err.message + ", error code: " + err.code); 1128 } 1129 }, 20); 1130 }); 1131 //the same task isn't execute 1132 Promise.all([task1, task2]).then(() => { 1133 if (flag1 && !flag2) { 1134 expect(true).assertTrue(); 1135 done(); 1136 } 1137 }); 1138 done(); 1139 } catch (err) { 1140 console.error("Fs_Copy_Test031 failed with invalid param: " + err.message + ", error code: " + err.code); 1141 expect().assertFail(); 1142 done(); 1143 } finally { 1144 const timerId = setTimeout(() => { 1145 fs.rmdirSync(srcDirPathLocal); 1146 fs.rmdirSync(dstDirPathLocal); 1147 clearTimeout(timerId); 1148 }, 1000); 1149 } 1150 }); 1151});