/* * Copyright (C) 2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import fs from '@ohos.file.fs'; import fileuri from '@ohos.file.fileuri'; import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'; const TAG = 'FsCopyTest'; describe("FsCopyTest", function () { let pathDir = '/data/storage/el2/base/haps/entry/files'; let srcDirPathLocal = pathDir + "/src"; let srcFilePathLocal = srcDirPathLocal + '/srcFile.txt'; let dstDirPathLocal = pathDir + "/dest"; let dstFilePathLocal = dstDirPathLocal + '/dstFile.txt'; let muiltDirLocal = srcDirPathLocal+"/test1"; let srcNoSuffixFileLocal = srcDirPathLocal + '/test'; let srcDirUriLocal = fileuri.getUriFromPath(srcDirPathLocal); let srcFileUriLocal = fileuri.getUriFromPath(srcFilePathLocal); let dstDirUriLocal = fileuri.getUriFromPath(dstDirPathLocal); let dstFileUriLocal = fileuri.getUriFromPath(dstFilePathLocal); let srcNoSuffixFileUriLocal = fileuri.getUriFromPath(srcNoSuffixFileLocal); beforeAll(function () { console.info(TAG, 'beforeAll called') }); afterAll(function () { console.info(TAG, 'afterAll called') }); beforeEach(function () { console.info(TAG, 'beforeEach called') }); afterEach(function () { console.info(TAG, 'afterEach called') }); function isDirectory(path){ try { console.info("Fs_Copy_Test020:path",path); let stat = fs.statSync(path); if (stat.isDirectory()) { return true; } return false; } catch (error) { console.error("Error:", error); return false; } } /* * @tc.name:Fs_Copy_Test001 * @tc.desc:test fs.copy with wrong params * @tc.type: FUNC * @tc.require: #I8UV2F */ it("Fs_Copy_Test001", 0, async function (done) { console.info(TAG, 'Fs_Copy_Test001 start.'); try { await fs.copy("aaa", "bbb", (err) => { if (err) { console.info(TAG, "Fs_Copy_Test001 failed, with error message: " + err.message + ", error code: " + err.code); } else { console.info(TAG, "Fs_Copy_Test001 success. "); } expect().assertFail(); done(); }) } catch (err) { console.error("Fs_Copy_Test001 failed with invalid param: " + err.message + ", error code: " + err.code); expect(true).assertTrue(); done(); } }); /* * @tc.name:Fs_Copy_Test002 * @tc.desc:test fs.copy with sandbox path * @tc.type: FUNC * @tc.require: #I8UV2F */ it("Fs_Copy_Test002", 0, async function (done) { console.info(TAG, 'Fs_Copy_Test002 start.'); try { await fs.copy(pathDir, "bbb", (err) => { if (err) { console.info(TAG, "Fs_Copy_Test002 failed, with error message: " + err.message + ", error code: " + err.code); } else { console.info(TAG, "Fs_Copy_Test002 success. "); } expect().assertFail(); done(); }) } catch (err) { console.error("Fs_Copy_Test002 failed with invalid param: " + err.message + ", error code: " + err.code); expect(true).assertTrue(); done(); } }); /* * @tc.name:Fs_Copy_Test003 * @tc.desc:test fs.copy with not exist dir * @tc.type: FUNC * @tc.require: #I8UV2F */ it("Fs_Copy_Test003", 0, async function (done) { console.info(TAG, 'Fs_Copy_Test003 start.'); try { await fs.copy(srcDirUriLocal, dstDirUriLocal, (err) => { if (err) { console.error(TAG, "Fs_Copy_Test003 failed: " + err.message + ", error code: " + err.code); expect(true).assertTrue(); } else { console.info(TAG, "Fs_Copy_Test003 success."); expect().assertFail(); } done(); }) } catch (err) { console.error("Fs_Copy_Test003 failed with invalid param: " + err.message + ", error code: " + err.code); expect(true).assertTrue(); done(); } }); /* * @tc.name:Fs_Copy_Test004 * @tc.desc:test fs.copy dir to itself * @tc.type: FUNC * @tc.require: #I8UV2F */ it("Fs_Copy_Test004", 0, async function (done) { console.info(TAG, 'Fs_Copy_Test004 start.'); try { fs.mkdirSync(srcDirPathLocal); fs.mkdirSync(dstDirPathLocal); await fs.copy(srcDirUriLocal, dstDirUriLocal, (err) => { if (err) { console.info(TAG, "Fs_Copy_Test004 failed, with error message: " + err.message + ", error code: " + err.code); expect().assertFail(); } else { console.info(TAG, "Fs_Copy_Test004 success. "); expect(true).assertTrue(); } done(); }) } catch (err) { console.error("Fs_Copy_Test004 failed with invalid param: " + err.message + ", error code: " + err.code); expect().assertFail(); done(); } }); /* * @tc.name:Fs_Copy_Test005 * @tc.desc:test fs.copy, copy file, src isn't exist * @tc.type: FUNC * @tc.require: #I8UV2F */ it("Fs_Copy_Test005", 0, async function (done) { console.info(TAG, 'Fs_Copy_Test005 start.'); try { fs.rmdirSync(srcDirPathLocal); await fs.copy(srcDirUriLocal, dstDirUriLocal, (err) => { if (err) { console.info(TAG, "Fs_Copy_Test005 failed, with error message: " + err.message + ", error code: " + err.code); expect(true).assertTrue(); } else { console.info(TAG, "Fs_Copy_Test005 success. "); expect(true).assertTrue(); } done(); }) } catch (err) { console.error("Fs_Copy_Test005 failed with invalid param: " + err.message + ", error code: " + err.code); expect().assertFail(); done(); } finally { fs.rmdirSync(dstDirPathLocal); } }); /* * @tc.name:Fs_Copy_Test006 * @tc.desc:test fs.copy, copy file to file * @tc.type: FUNC * @tc.require: #I8UV2F */ it("Fs_Copy_Test006", 0, async function (done) { console.info(TAG, 'Fs_Copy_Test006 start.'); try { fs.mkdirSync(srcDirPathLocal); fs.mkdirSync(dstDirPathLocal); let srcFile = fs.openSync(srcFilePathLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); fs.writeSync(srcFile.fd, 'ttttttttttttt'); fs.closeSync(srcFile); let dstFile = fs.openSync(dstFilePathLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); fs.closeSync(dstFile); await fs.copy(srcFileUriLocal, dstFileUriLocal, (err) => { if (err) { console.info(TAG, "Fs_Copy_Test006 failed, with error message: " + err.message + ", error code: " + err.code); expect().assertFail(); } else { console.info(TAG, "Fs_Copy_Test006 success. "); expect(true).assertTrue(); } done(); }) } catch (err) { console.error("Fs_Copy_Test006 failed with invalid param: " + err.message + ", error code: " + err.code); expect().assertFail(); done(); } }); /* * @tc.name:Fs_Copy_Test007 * @tc.desc:test fs.copy, copy file to dir * @tc.type: FUNC * @tc.require: #I8UV2F */ it("Fs_Copy_Test007", 0, async function (done) { console.info(TAG, 'Fs_Copy_Test007 start.'); try { let file = fs.openSync(srcFilePathLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); fs.writeSync(file.fd, 'ttttttttttttt'); fs.closeSync(file.fd); await fs.copy(srcFileUriLocal, dstDirUriLocal, (err) => { if (err) { console.info(TAG, "Fs_Copy_Test007 failed, with error message: " + err.message + ", error code: " + err.code); expect(true).assertTrue(); } else { console.info(TAG, "Fs_Copy_Test007 success. "); expect().assertFail(); } done(); }) } catch (err) { console.error("Fs_Copy_Test007 failed with invalid param: " + err.message + ", error code: " + err.code); expect().assertFail(); done(); } }); /* * @tc.name:Fs_Copy_Test008 * @tc.desc:test fs.copy, copy dir to dir * @tc.type: FUNC * @tc.require: #I8UV2F */ it("Fs_Copy_Test008", 0, async function (done) { console.info(TAG, 'Fs_Copy_Test008 start.'); try { await fs.copy(srcDirUriLocal, dstDirUriLocal, (err) => { if (err) { console.info(TAG, "Fs_Copy_Test008 failed, with error message: " + err.message + ", error code: " + err.code); expect().assertFail(); } else { console.info(TAG, "Fs_Copy_Test008 success. "); expect(true).assertTrue(); } done(); }) } catch (err) { console.error("Fs_Copy_Test008 failed with invalid param: " + err.message + ", error code: " + err.code); expect().assertFail(); done(); } finally { fs.rmdirSync(srcDirPathLocal); fs.rmdirSync(dstDirPathLocal); } }); /* * @tc.name:Fs_Copy_Test009 * @tc.desc:test fs.copy, copy file and write the contents but dest dir isn't exist * @tc.type: FUNC * @tc.require: #I8UV2F */ it("Fs_Copy_Test009", 0, async function (done) { console.info(TAG, 'Fs_Copy_Test009 start.'); try { fs.mkdirSync(srcDirPathLocal); let file = fs.openSync(srcFilePathLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); fs.writeSync(file.fd, 'ttttttttttttt'); fs.closeSync(file); await fs.copy(srcFileUriLocal, dstFileUriLocal, (err) => { if (err) { console.info(TAG, "Fs_Copy_Test009 failed, with error message: " + err.message + ", error code: " + err.code); expect(true).assertTrue(); } else { console.info(TAG, "Fs_Copy_Test009 success. "); expect().assertFail(); } done(); }) } catch (err) { console.error("Fs_Copy_Test009 failed with invalid param: " + err.message + ", error code: " + err.code); expect(true).assertTrue(); done(); } finally { fs.rmdirSync(srcDirPathLocal); } }); /* * @tc.name:Fs_Copy_Test010 * @tc.desc:test fs.copy, copy dir and file in the src path * @tc.type: FUNC * @tc.require: #I8UV2F */ it("Fs_Copy_Test010", 0, async function (done) { console.info(TAG, 'Fs_Copy_Test010 start.'); try { fs.mkdirSync(srcDirPathLocal); fs.mkdirSync(dstDirPathLocal); let file = fs.openSync(srcFilePathLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); fs.writeSync(file.fd, 'ttttttttttttt'); fs.closeSync(file); await fs.copy(srcDirUriLocal, dstDirUriLocal, (err) => { if (err) { console.info(TAG, "Fs_Copy_Test010 failed, with error message: " + err.message + ", error code: " + err.code); expect().assertFail(); } else { console.info(TAG, "Fs_Copy_Test010 success. "); expect(true).assertTrue(); } done(); }) } catch (err) { console.error("Fs_Copy_Test010 failed with invalid param: " + err.message + ", error code: " + err.code); expect().assertFail(); done(); } }); /* * @tc.name:Fs_Copy_Test011 * @tc.desc:test fs.copy, copy file to file with listener * @tc.type: FUNC * @tc.require: #I8UV2F */ it("Fs_Copy_Test011", 0, async function (done) { console.info(TAG, 'Fs_Copy_Test011 start.'); try { let flag = false; let progressListener = (progress) => { flag = true; console.info("Fs_Copy_Test011 progressListener in, progressSize: " + progress.processedSize + ", totalSize: " + progress.totalSize + " progress: " + (progress.processedSize / progress.totalSize * 100).toFixed(2) + "%"); }; let options = { "progressListener": progressListener } let file = fs.openSync(srcFilePathLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); fs.writeSync(file.fd, 'ttttttttttttt'); fs.closeSync(file); await fs.copy(srcFileUriLocal, dstFileUriLocal, options, (err) => { if (err) { console.info(TAG, "Fs_Copy_Test011 failed, with error message: " + err.message + ", error code: " + err.code); expect().assertFail(); } else { console.info(TAG, "Fs_Copy_Test011 success. "); expect(true).assertTrue(); } done(); }) setTimeout(function () { if (!flag) { console.info(TAG, "Fs_Copy_Test013 progressListener error. "); expect().assertFail(); done(); return; } expect(true).assertTrue(); done(); }, 100); } catch (err) { console.error("Fs_Copy_Test011 failed with invalid param: " + err.message + ", error code: " + err.code); expect().assertFail(); done(); } }); /* * @tc.name:Fs_Copy_Test012 * @tc.desc:test fs.copy, copy dir to dir with listener * @tc.type: FUNC * @tc.require: #I8UV2F */ it("Fs_Copy_Test012", 0, async function (done) { console.info(TAG, 'Fs_Copy_Test012 start.'); try { let flag = false; let progressListener = (progress) => { flag = true; console.info("Fs_Copy_Test012 progressListener in, progressSize: " + progress.processedSize + ", totalSize: " + progress.totalSize + " progress: " + (progress.processedSize / progress.totalSize * 100).toFixed(2) + "%"); }; let options = { "progressListener": progressListener } await fs.copy(srcDirUriLocal, dstDirUriLocal, options, (err) => { if (err) { console.info(TAG, "Fs_Copy_Test012 failed, with error message: " + err.message + ", error code: " + err.code); expect().assertFail(); } else { console.info(TAG, "Fs_Copy_Test012 success. "); } }) setTimeout(function () { if (!flag) { console.info(TAG, "Fs_Copy_Test013 progressListener error. "); expect().assertFail(); done(); return; } expect(true).assertTrue(); done(); }, 100); } catch (err) { console.error("Fs_Copy_Test012 failed with invalid param: " + err.message + ", error code: " + err.code); expect().assertFail(); done(); } }); /* * @tc.name:Fs_Copy_Test013 * @tc.desc:test fs.copy, copy file to file with listener promise * @tc.type: FUNC * @tc.require: #I8UV2F */ it("Fs_Copy_Test013", 0, async function (done) { console.info(TAG, 'Fs_Copy_Test013 start.'); try { let flag = false; let progressListener = (progress) => { flag = true; console.info("Fs_Copy_Test013 progressListener in, progressSize: " + progress.processedSize + ", totalSize: " + progress.totalSize + " progress: " + (progress.processedSize / progress.totalSize * 100).toFixed(2) + "%"); }; let options = { "progressListener": progressListener } let file = fs.openSync(srcFilePathLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); fs.writeSync(file.fd, 'ttttttttttttt'); fs.closeSync(file); await fs.copy(srcFileUriLocal, dstFileUriLocal, options).then((err) => { if (err) { console.info(TAG, "Fs_Copy_Test013 failed, with error message: " + err.message + ", error code: " + err.code); expect().assertFail(); } else { console.info(TAG, "Fs_Copy_Test013 success. "); } }) setTimeout(function () { if (!flag) { console.info(TAG, "Fs_Copy_Test013 progressListener error. "); expect().assertFail(); done(); return; } expect(true).assertTrue(); done(); }, 100); } catch (err) { console.error("Fs_Copy_Test013 failed with invalid param: " + err.message + ", error code: " + err.code); expect().assertFail(); done(); } }); /* * @tc.name:Fs_Copy_Test014 * @tc.desc:test fs.copy, copy dir to dir with listener promise * @tc.type: FUNC * @tc.require: #I8UV2F */ it("Fs_Copy_Test014", 0, async function (done) { console.info(TAG, 'Fs_Copy_Test014 start.'); try { let flag = false; let progressListener = (progress) => { flag = true; console.info("Fs_Copy_Test014 progressListener in, progressSize: " + progress.processedSize + ", totalSize: " + progress.totalSize + " progress: " + (progress.processedSize / progress.totalSize * 100).toFixed(2) + "%"); }; let options = { "progressListener": progressListener } await fs.copy(srcDirUriLocal, dstDirUriLocal, options).then((err) => { if (err) { console.info(TAG, "Fs_Copy_Test014 failed, with error message: " + err.message + ", error code: " + err.code); expect().assertFail(); done(); } else { console.info(TAG, "Fs_Copy_Test014 success. "); } setTimeout(function () { if (!flag) { console.info(TAG, "Fs_Copy_Test013 progressListener error. "); expect().assertFail(); done(); return; } expect(true).assertTrue(); done(); }, 100); }) } catch (err) { console.error("Fs_Copy_Test014 failed with invalid param: " + err.message + ", error code: " + err.code); expect().assertFail(); done(); } }); /* * @tc.name:Fs_Copy_Test015 * @tc.desc:test fs.copy, copy file 2 times * @tc.type: FUNC * @tc.require: #I8UV2F */ it("Fs_Copy_Test015", 0, async function (done) { console.info(TAG, 'Fs_Copy_Test015 start.'); try { let file = fs.openSync(srcFilePathLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); fs.writeSync(file.fd, 'ttttttttttttt'); fs.closeSync(file); await fs.copy(srcFileUriLocal, dstFileUriLocal, (err) => { if (err) { console.info(TAG, "Fs_Copy_Test015_first failed, with error message: " + err.message + ", error code: " + err.code); expect().assertFail(); done(); } else { console.info(TAG, "Fs_Copy_Test015_first success. "); } }) await fs.copy(srcDirUriLocal, dstDirUriLocal, (err) => { if (err) { console.info(TAG, "Fs_Copy_Test015_second failed, with error message: " + err.message + ", error code: " + err.code); expect().assertFail(); } else { console.info(TAG, "Fs_Copy_Test015_second success. "); expect(true).assertTrue(); fs.rmdirSync(srcDirPathLocal); fs.rmdirSync(dstDirPathLocal); } done(); }) } catch (err) { console.error("Fs_Copy_Test015 failed with invalid param: " + err.message + ", error code: " + err.code); expect().assertFail(); done(); } }); /* * @tc.name:Fs_Copy_Test016 * @tc.desc:test fs.copy, copy empty file * @tc.type: FUNC * @tc.require: #I8UV2F */ it("Fs_Copy_Test016", 0, async function (done) { console.info(TAG, 'Fs_Copy_Test016 start.'); try { if (fs.accessSync(srcFilePathLocal)) { fs.unlinkSync(srcFilePathLocal); } fs.mkdirSync(srcDirPathLocal); fs.mkdirSync(dstDirPathLocal); let file = fs.openSync(srcFilePathLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); fs.closeSync(file); await fs.copy(srcFileUriLocal, dstFileUriLocal, (err) => { if (err) { console.info(TAG, "Fs_Copy_Test016 failed, with error message: " + err.message + ", error code: " + err.code); expect().assertFail(); } else { console.info(TAG, "Fs_Copy_Test016 success. "); expect(true).assertTrue(); } done(); }) } catch (err) { console.error("Fs_Copy_Test016 failed with invalid param: " + err.message + ", error code: " + err.code); expect().assertFail(); done(); } }); /* * @tc.name:Fs_Copy_Test017 * @tc.desc:test fs.copy, copy empty dir * @tc.type: FUNC * @tc.require: #I8UV2F */ it("Fs_Copy_Test017", 0, async function (done) { console.info(TAG, 'Fs_Copy_Test017 start.'); try { if (fs.accessSync(srcFilePathLocal)) { fs.unlinkSync(srcFilePathLocal); } await fs.copy(srcDirUriLocal, dstDirUriLocal, (err) => { if (err) { console.info(TAG, "Fs_Copy_Test017 failed, with error message: " + err.message + ", error code: " + err.code); expect().assertFail(); } else { console.info(TAG, "Fs_Copy_Test017 success. "); expect(true).assertTrue(); } done(); }) } catch (err) { console.error("Fs_Copy_Test017 failed with invalid param: " + err.message + ", error code: " + err.code); expect().assertFail(); done(); } }); /* * @tc.name:Fs_Copy_Test018 * @tc.desc:test fs.copy, copy empty dir * @tc.type: FUNC * @tc.require: #I8UV2F */ it("Fs_Copy_Test018", 0, async function (done) { console.info(TAG, 'Fs_Copy_Test017 start.'); try { let flag = false; let progressListener = (progress) => { flag = true; console.info("Fs_Copy_Test018 progressListener in, progressSize: " + progress.processedSize + ", totalSize: " + progress.totalSize); }; let options = { "progressListener": progressListener } if (fs.accessSync(srcFilePathLocal)) { fs.unlinkSync(srcFilePathLocal); } await fs.copy(srcDirUriLocal, dstDirUriLocal, options, (err) => { if (err) { console.info(TAG, "Fs_Copy_Test018 failed, with error message: " + err.message + ", error code: " + err.code); expect().assertFail(); done(); } else { console.info(TAG, "Fs_Copy_Test018 success. "); } }) setTimeout(function () { if (!flag) { console.info(TAG, "Fs_Copy_Test013 progressListener error. "); expect().assertFail(); done(); return; } expect(true).assertTrue(); done(); }, 100); } catch (err) { console.error("Fs_Copy_Test018 failed with invalid param: " + err.message + ", error code: " + err.code); expect().assertFail(); done(); } }); /* * @tc.name:Fs_Copy_Test019 * @tc.desc:test fs.copy file to itself * @tc.type: FUNC * @tc.require: #I8UV2F */ it("Fs_Copy_Test019", 0, async function (done) { console.info(TAG, 'Fs_Copy_Test019 start.'); try { await fs.copy(srcFileUriLocal, srcFileUriLocal, (err) => { if (err) { console.info(TAG, "Fs_Copy_Test019 failed, with error message: " + err.message + ", error code: " + err.code); expect(true).assertTrue(); } else { console.info(TAG, "Fs_Copy_Test019 success. "); expect().assertFail(); } done(); }) } catch (err) { console.error("Fs_Copy_Test019 failed with invalid param: " + err.message + ", error code: " + err.code); expect(false).assertTrue(); done(); } }); /* * @tc.name:Fs_Copy_Test020 * @tc.desc:test fs.copy, copy muilt empty dir * @tc.type: FUNC * @tc.require: #I8UV2F */ it("Fs_Copy_Test020", 0, async function (done) { console.info(TAG, 'Fs_Copy_Test020 start.'); try { fs.mkdirSync(srcDirPathLocal+"/test1"); fs.mkdirSync(srcDirPathLocal+"/test2"); let progressListener = (progress) => { console.info("Fs_Copy_Test020 progressListener in, progressSize: " + progress.processedSize + ", totalSize: " + progress.totalSize); }; let options = { "progressListener": progressListener } await fs.copy(srcDirUriLocal, dstDirUriLocal, options, (err) => { if (err) { console.info(TAG, "Fs_Copy_Test020 failed, with error message: " + err.message + ", error code: " + err.code); expect().assertFail(); } else { if (isDirectory(dstDirPathLocal + "/src/test1") && isDirectory(dstDirPathLocal + "/src/test2")) { console.info(TAG, "Fs_Copy_Test020 success. "); expect(true).assertTrue(); done(); return; } expect().assertFail(); } done(); }) } catch (err) { console.error("Fs_Copy_Test020 failed with invalid param: " + err.message + ", error code: " + err.code); expect().assertFail(); done(); } }); /* * @tc.name:Fs_Copy_Test021 * @tc.desc:test fs.copy, copy muilt dir contain files * @tc.type: FUNC * @tc.require: #I8UV2F */ it("Fs_Copy_Test021", 0, async function (done) { console.info(TAG, 'Fs_Copy_Test021 start.'); try { let file1 = fs.openSync(muiltDirLocal + "/test1.txt", fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); fs.writeSync(file1.fd, "ttttttttttttt"); fs.closeSync(file1); let file2 = fs.openSync(muiltDirLocal + "/test2.txt", fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); fs.writeSync(file2.fd, "ttttttttttttt"); fs.closeSync(file2); let progressListener = (progress) => { console.info("Fs_Copy_Test021 progressListener in, progressSize: " + progress.processedSize + ", totalSize: " + progress.totalSize + " progress: " + (progress.processedSize / progress.totalSize * 100).toFixed(2) + "%"); }; let options = { "progressListener": progressListener } await fs.copy(srcDirUriLocal, dstDirUriLocal, options, (err) => { if (err) { console.info(TAG, "Fs_Copy_Test021 failed, with error message: " + err.message + ", error code: " + err.code); expect().assertFail(); } else { if (fs.accessSync(dstDirPathLocal +"/src/test1/test1.txt") && fs.accessSync(dstDirPathLocal + "/src/test1/test2.txt")) { console.info(TAG, "Fs_Copy_Test021 success. "); expect(true).assertTrue(); done(); return; } expect().assertFail(); } done(); }) } catch (err) { console.error("Fs_Copy_Test021 failed with invalid param: " + err.message + ", error code: " + err.code); expect().assertFail(); done(); } }); /* * @tc.name:Fs_Copy_Test022 * @tc.desc:test fs.copy, copy file 10 times * @tc.type: FUNC * @tc.require: #I8UV2F */ it("Fs_Copy_Test022", 0, async function (done) { console.info(TAG, 'Fs_Copy_Test022 start.'); try { let file = fs.openSync(srcFilePathLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); fs.writeSync(file.fd, 'ttttttttttttt'); fs.closeSync(file); // execute the copy operation 10 times for (let i = 0; i < 10; i++) { const dstStitchFilePath = `${dstDirUriLocal}/file_${i}.txt`; await fs.copy(srcFileUriLocal, dstStitchFilePath, (err) => { if (err) { console.info(TAG, "Fs_Copy_Test022 failed, with error message: " + err.message + ", error code: " + err.code); expect().assertFail(); done(); } else { console.info(TAG, "Fs_Copy_Test022 success. "); } }) } expect(true).assertTrue(); done(); } catch (err) { console.error("Fs_Copy_Test022 failed with invalid param: " + err.message + ", error code: " + err.code); expect().assertFail(); done(); } }); /* * @tc.name:Fs_Copy_Test023 * @tc.desc:test fs.copy, copy 1KB file * @tc.type: FUNC * @tc.require: #I8UV2F */ it("Fs_Copy_Test023", 0, async function (done) { console.info(TAG, 'Fs_Copy_Test023 start.'); try { let file = fs.openSync(srcFilePathLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); let content = 't'.repeat(1024); fs.writeSync(file.fd, content); fs.closeSync(file); let progressListener = (progress) => { console.info("Fs_Copy_Test023 progressListener in, progressSize: " + progress.processedSize + ", totalSize: " + progress.totalSize + " progress: " + (progress.processedSize / progress.totalSize * 100).toFixed(2) + "%"); }; let options = { "progressListener": progressListener } await fs.copy(srcFileUriLocal, dstFileUriLocal, options, (err) => { if (err) { console.info(TAG, "Fs_Copy_Test023 failed, with error message: " + err.message + ", error code: " + err.code); expect().assertFail(); } else { console.info(TAG, "Fs_Copy_Test023 success. "); expect(true).assertTrue(); } done(); }) } catch (err) { console.error("Fs_Copy_Test023 failed with invalid param: " + err.message + ", error code: " + err.code); expect().assertFail(); done(); } }); /* * @tc.name:Fs_Copy_Test024 * @tc.desc:test fs.copy, copy 100MB file * @tc.type: FUNC * @tc.require: #I8UV2F */ it("Fs_Copy_Test024", 0, async function (done) { console.info(TAG, 'Fs_Copy_Test024 start.'); try { let file = fs.openSync(srcFilePathLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); let content = 't'.repeat(1024 * 1024 * 100); fs.writeSync(file.fd, content); fs.closeSync(file); let progressListener = (progress) => { console.info("Fs_Copy_Test024 progressListener in, progressSize: " + progress.processedSize + ", totalSize: " + progress.totalSize + " progress: " + (progress.processedSize / progress.totalSize * 100).toFixed(2) + "%"); }; let options = { "progressListener": progressListener } await fs.copy(srcFileUriLocal, dstFileUriLocal, options, (err) => { if (err) { console.info(TAG, "Fs_Copy_Test024 failed, with error message: " + err.message + ", error code: " + err.code); expect().assertFail(); } else { console.info(TAG, "Fs_Copy_Test024 success. "); expect(true).assertTrue(); } done(); }) } catch (err) { console.error("Fs_Copy_Test024 failed with invalid param: " + err.message + ", error code: " + err.code); expect().assertFail(); done(); } }); /* * @tc.name:Fs_Copy_Test025 * @tc.desc:test fs.copy dir to own directory1 * @tc.type: FUNC * @tc.require: #I8UV2F */ it("Fs_Copy_Test025", 0, async function (done) { console.info(TAG, 'Fs_Copy_Test025 start.'); try { await fs.copy(srcDirUriLocal, srcDirUriLocal+"/", (err) => { if (err) { console.info(TAG, "Fs_Copy_Test025 failed, with error message: " + err.message + ", error code: " + err.code); expect(true).assertTrue(); } else { console.info(TAG, "Fs_Copy_Test025 success. "); expect().assertFail(); } done(); }) } catch (err) { console.error("Fs_Copy_Test025 failed with invalid param: " + err.message + ", error code: " + err.code); expect().assertFail(); done(); } }); /* * @tc.name:Fs_Copy_Test026 * @tc.desc:test fs.copy dir to own directory2 * @tc.type: FUNC * @tc.require: #I8UV2F */ it("Fs_Copy_Test026", 0, async function (done) { console.info(TAG, 'Fs_Copy_Test026 start.'); try { await fs.copy(srcDirUriLocal+"/", srcDirUriLocal, (err) => { if (err) { console.info(TAG, "Fs_Copy_Test026 failed, with error message: " + err.message + ", error code: " + err.code); expect(true).assertTrue(); } else { console.info(TAG, "Fs_Copy_Test026 success. "); expect().assertFail(); } done(); }) } catch (err) { console.error("Fs_Copy_Test026 failed with invalid param: " + err.message + ", error code: " + err.code); expect().assertFail(); done(); } }); /* * @tc.name:Fs_Copy_Test027 * @tc.desc:test fs.copy file wiht no suffix * @tc.type: FUNC * @tc.require: #I8UV2F */ it("Fs_Copy_Test027", 0, async function (done) { console.info(TAG, 'Fs_Copy_Test027 start.'); try { let file = fs.openSync(srcNoSuffixFileLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); fs.writeSync(file.fd, "ttttttttttttt"); fs.closeSync(file); await fs.copy(srcNoSuffixFileUriLocal, dstDirUriLocal, (err) => { if (err) { console.info(TAG, "Fs_Copy_Test027 failed, with error message: " + err.message + ", error code: " + err.code); expect(true).assertTrue(); } else { console.info(TAG, "Fs_Copy_Test027 success. "); expect().assertFail(); } done(); }) } catch (err) { console.error("Fs_Copy_Test027 failed with invalid param: " + err.message + ", error code: " + err.code); expect().assertFail(); done(); } }); /* * @tc.name:Fs_Copy_Test028 * @tc.desc:test fs.copy file with indiscriminate parameter * @tc.type: FUNC * @tc.require: #I8UV2F */ it("Fs_Copy_Test028", 0, async function (done) { console.info(TAG, 'Fs_Copy_Test028 start.'); try { let srcPath = pathDir+"/./pppppp"; let destPath =pathDir+ "/ttt/pppppp"; let srcUriPath = fileuri.getUriFromPath(srcPath); let destUriPath = fileuri.getUriFromPath(destPath); fs.mkdirSync(srcPath); await fs.copy(srcUriPath, destUriPath, (err) => { if (err) { console.info(TAG, "Fs_Copy_Test028 failed, with error message: " + err.message + ", error code: " + err.code); expect(true).assertTrue(); } else { console.info(TAG, "Fs_Copy_Test028 success. "); expect().assertFail(); } done(); }) } catch (err) { console.error("Fs_Copy_Test028 failed with invalid param: " + err.message + ", error code: " + err.code); expect().assertFail(); done(); } }); /* * @tc.name:Fs_Copy_Test029 * @tc.desc:test fs.copy file with indiscriminate parameter2 * @tc.type: FUNC * @tc.require: #I8UV2F */ it("Fs_Copy_Test029", 0, async function (done) { console.info(TAG, 'Fs_Copy_Test029 start.'); try { let srcPath = pathDir+"/.////ssssss///"; let destPath =pathDir+ "/ttt/ssssss//////"; let srcUriPath = fileuri.getUriFromPath(srcPath); let destUriPath = fileuri.getUriFromPath(destPath); fs.mkdirSync(srcPath); await fs.copy(srcUriPath, destUriPath, (err) => { if (err) { console.info(TAG, "Fs_Copy_Test029 failed, with error message: " + err.message + ", error code: " + err.code); expect(true).assertTrue(); } else { console.info(TAG, "Fs_Copy_Test029 success. "); expect().assertFail(); } done(); }) } catch (err) { console.error("Fs_Copy_Test029 failed with invalid param: " + err.message + ", error code: " + err.code); expect().assertFail(); done(); } }); /* * @tc.name:Fs_Copy_Test030 * @tc.desc:test fs.copy dir to subdir * @tc.type: FUNC * @tc.require: #I8UV2F */ it("Fs_Copy_Test030", 0, async function (done) { console.info(TAG, 'Fs_Copy_Test030 start.'); try { let srcPath = pathDir+"/test1/"; let destPath =pathDir+ "/test1/testttt2"; let srcUriPath = fileuri.getUriFromPath(srcPath); let destUriPath = fileuri.getUriFromPath(destPath); fs.mkdirSync(srcPath); await fs.copy(srcUriPath, destUriPath, (err) => { if (err) { console.info(TAG, "Fs_Copy_Test030 failed, with error message: " + err.message + ", error code: " + err.code); expect(true).assertTrue(); } else { console.info(TAG, "Fs_Copy_Test030 success. "); expect().assertFail(); } done(); }) } catch (err) { console.error("Fs_Copy_Test030 failed with invalid param: " + err.message + ", error code: " + err.code); expect().assertFail(); done(); } }); /* * @tc.name:Fs_Copy_Test031 * @tc.desc:test fs.copy, same task * @tc.type: FUNC * @tc.require: #I8UV2F */ it("Fs_Copy_Test031", 0, async function (done) { console.info(TAG, 'Fs_Copy_Test031 start.'); try { let flag1 = false; let flag2 = false; let progressListener = (progress) => { console.info("Fs_Copy_Test031 progressListener in, progressSize: " + progress.processedSize + ", totalSize: " + progress.totalSize + " progress: " + (progress.processedSize / progress.totalSize * 100).toFixed(2) + "%"); }; let options = { "progressListener": progressListener } if (fs.accessSync(srcFilePathLocal)) { fs.unlinkSync(srcFilePathLocal); } let file = fs.openSync(srcFilePathLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); fs.writeSync(file.fd, 'ttttttttttttt'); fs.closeSync(file); const task1 = new Promise(resolve => { setTimeout(() => { fs.copy(srcFileUriLocal, dstFileUriLocal, options, (err) => { if (err) { console.info(TAG, "Fs_Copy_Test031_first failed, with error message: " + err.message + ", error code: " + err.code); expect().assertFail(); } else { flag1 = true; console.info(TAG, "Fs_Copy_Test031_first success. "); } }) resolve(); }, 10); }); const task2 = new Promise(resolve => { setTimeout(() => { try { fs.copy(srcFileUriLocal, dstFileUriLocal, options, (err) => { flag2 = true; if (err) { console.info(TAG, "Fs_Copy_Test031_second failed, with error message: " + err.message + ", error code: " + err.code); } else { console.info(TAG, "Fs_Copy_Test031_second success. ");; } expect().assertFail(); }) resolve(); } catch (err) { console.error("Fs_Copy_Test031_second failed with invalid param: " + err.message + ", error code: " + err.code); } }, 20); }); //the same task isn't execute Promise.all([task1, task2]).then(() => { if (flag1 && !flag2) { expect(true).assertTrue(); done(); } }); done(); } catch (err) { console.error("Fs_Copy_Test031 failed with invalid param: " + err.message + ", error code: " + err.code); expect().assertFail(); done(); } finally { const timerId = setTimeout(() => { fs.rmdirSync(srcDirPathLocal); fs.rmdirSync(dstDirPathLocal); clearTimeout(timerId); }, 1000); } }); });