• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (C) 2021 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 fileio from '@ohos.fileio';
17import file from '@system.file';
18import document from '@ohos.document';
19import {
20  describe,
21  it,
22  expect
23}
24from '@ohos/hypium'
25import {
26  FILE_CONTENT,
27  prepareFile,
28  fileName,
29  randomString,
30  cacheFileName,
31  prepareEmptyFile,
32  nextFileName,
33  sleep
34}
35from './Common'
36
37export default function fileTest() {
38describe('fileTest', function () {
39
40  /**
41   * @tc.number SUB_STORAGE_File_Delete_0100
42   * @tc.name File_Delete_001
43   * @tc.desc Function of API, delete file.The test file is exist.
44   */
45  it('File_Delete_001', 0, async function (done) {
46    let fpath = await fileName('File_Delete_001');
47    expect(prepareFile(fpath, 'hello')).assertTrue();
48    file.delete({
49      uri: 'internal://cache/../files/File_Delete_001',
50      success: function () {
51        console.info('File_Delete_001 call delete success');
52        done();
53      },
54      fail: function (data, code) {
55        console.info('File_Delete_001 call delete fail, code: ' + code + ', data: ' + data);
56        expect(null).assertFail();
57        done();
58      },
59    });
60  });
61
62  /**
63   * @tc.number SUB_STORAGE_File_Delete_0200
64   * @tc.name File_Delete_002
65   * @tc.desc Function of API, delete dir.The dir is empty.
66   */
67  it('File_Delete_002', 0, async function (done) {
68    file.mkdir({
69      uri: 'internal://cache/File_Delete_002',
70      success: function () {
71        console.info('File_Delete_002 call mkdir success.');
72        file.delete({
73          uri: 'internal://cache/File_Delete_002',
74          success: function () {
75            console.info('File_Delete_002 call delete success.');
76            done();
77          },
78          fail: function (data, code) {
79            console.info('File_Delete_002 call delete fail, code: ' + code + ', data: ' + data);
80            expect(null).assertFail();
81          },
82        });
83      },
84      fail: function (data, code) {
85        console.info('File_Delete_002 call mkdir fail, code: ' + code + ', data: ' + data);
86        expect(null).assertFail();
87      },
88    });
89  });
90
91  /**
92   * @tc.number SUB_STORAGE_File_Delete_0300
93   * @tc.name File_Delete_003
94   * @tc.desc Function of API, error code: 202 The test file or dir are exist.
95   */
96  it('File_Delete_003', 0, async function (done) {
97    file.delete({
98      uri: 'internal://ohos/workspace/text.txt',
99      success: function () {
100        console.info('File_Delete_003 call delete success.');
101        expect(null).assertFail();
102      },
103      fail: function (data, code) {
104        console.info('File_Delete_003 call delete fail, code: ' + code + ', data: ' + data);
105        expect(code == 202).assertTrue();
106        done();
107      },
108    });
109
110  });
111
112  /**
113   * @tc.number SUB_STORAGE_File_Delete_0400
114   * @tc.name File_Delete_004
115   * @tc.desc Function of API, error code: 300 The dir is exist with files.
116   */
117  it('File_Delete_004', 0, async function (done) {
118    let dpath = await fileName('File_Delete_004');
119    let fpath = dpath + '/File_Delete_004';
120    fileio.mkdirSync(dpath);
121    expect(prepareFile(fpath, FILE_CONTENT)).assertTrue();
122    file.delete({
123      uri: 'internal://app/File_Delete_004',
124      success: function () {
125        console.info('File_Delete_004 call delete success.');
126        expect(null).assertFail();
127      },
128      fail: function (data, code) {
129        console.info('File_Delete_004 call delete fail, code: ' + code + ', data: ' + data);
130        expect(code == 300).assertTrue();
131        done();
132      },
133    });
134  });
135
136  /**
137   * @tc.number SUB_STORAGE_File_Delete_0500
138   * @tc.name File_Delete_005
139   * @tc.desc Function of API, error code: 301 The file and dir are not exist.
140   */
141  it('File_Delete_005', 0, async function (done) {
142    file.delete({
143      uri: 'internal://app/File_Delete_005',
144      success: function () {
145        console.info('File_Delete_005 call delete success.');
146        expect(null).assertFail();
147      },
148      fail: function (data, code) {
149        console.info('File_Delete_005 call delete fail, code: ' + code + ', data: ' + data);
150        expect(code == 301).assertTrue();
151        done();
152      },
153    });
154  });
155
156  /**
157   * @tc.number SUB_STORAGE_File_Delete_0600
158   * @tc.name File_Delete_006
159   * @tc.desc uri address length more than 4096 The test file is exist.
160   */
161  it('File_Delete_006', 0, async function (done) {
162    let firstPath = randomString(32);
163    let dpath = await fileName(firstPath);
164    let uri = 'internal://cache/' + firstPath;
165    fileio.mkdirSync(dpath);
166    for (let i = 0; i < 16; i++) {
167      console.info('frequency' + i);
168      let sonPath = randomString(251);
169      uri = uri + '/f' + sonPath;
170    }
171    file.delete({
172      uri: uri,
173      success: function () {
174        console.info('File_Delete_006 call delete success');
175        expect(null).assertFail();
176      },
177      fail: function (data, code) {
178        console.info('File_Delete_006 call delete fail, code: ' + code + ', data: ' + data);
179        expect(code == 300).assertTrue();
180        done();
181      },
182    });
183  });
184
185  /**
186   * @tc.number SUB_STORAGE_File_Delete_0700
187   * @tc.name File_Delete_007
188   * @tc.desc Function of API, delete file from cache.The test file on cache.
189   */
190  it('File_Delete_007', 0, async function (done) {
191    file.writeText({
192      uri: 'internal://cache/File_Delete_007',
193      text: 'test',
194      success: function () {
195        console.info('File_Delete_007 call writeText success');
196        file.delete({
197          uri: 'internal://cache/File_Delete_007',
198          success: function () {
199            console.info('File_Delete_007 call delete success');
200            done();
201          },
202          fail: function (data, code) {
203            console.info('File_Delete_007 call delete fail, code: ' + code + ', data: ' + data);
204            expect(null).assertFail();
205          },
206        });
207      },
208      fail: function (data, code) {
209        console.info('File_Delete_007 call writeText fail, code: ' + code + ', data: ' + data);
210        expect(null).assertFail();
211      },
212    });
213  });
214
215  /**
216   * @tc.number SUB_STORAGE_File_Delete_0800
217   * @tc.name File_Delete_008.
218   * @tc.desc Function of API, delete file from Virtual path.The test file is exist.
219   */
220  it('File_Delete_008', 0, async function (done) {
221    file.writeText({
222      uri: 'internal://cache/../cache/File_Delete_008',
223      text: 'Text that just for test.',
224      success: function () {
225        console.info('File_Delete_008 call writeText success');
226        file.delete({
227          uri: 'internal://cache/../cache/File_Delete_008',
228          success: function () {
229            console.info('File_Delete_008 call delete success');
230            done();
231          },
232          fail: function (data, code) {
233            console.info('File_Delete_008 call delete fail, code: ' + code + ', data: ' + data);
234            expect(null).assertFail();
235          },
236          complete: function () {
237            console.info('delete completed');
238          }
239        });
240      },
241      fail: function (data, code) {
242        console.info('File_Delete_008 call writeText fail, code: ' + code + ', data: ' + data);
243        expect(null).assertFail();
244      },
245    });
246  });
247
248  /**
249   * @tc.number SUB_STORAGE_File_writeText_0100
250   * @tc.name File_writeText_001
251   * @tc.desc Function of API, write to file(app path).The test file is not exist.
252   */
253  it('File_writeText_001', 0, async function (done) {
254    file.writeText({
255      uri: 'internal://cache/File_writeText_001',
256      text: 'sawyerwang.',
257      success: function () {
258        console.info('File_writeText_001 call writeText success');
259        file.readText({
260          uri: 'internal://cache/File_writeText_001',
261          success: function (data) {
262            console.info('File_writeText_001 call read success. Content: ' );
263            file.delete({
264              uri: 'internal://cache/File_writeText_001',
265              success: function () {
266                console.info('File_writeText_001 call delete success');
267                done();
268              },
269              fail: function (data, code) {
270                console.info('File_writeText_001 call delete fail, code: ' + code + ', data: ' + data);
271                expect(null).assertFail();
272              },
273            });
274          },
275          fail: function (data, code) {
276            console.info('File_writeText_001 call read fail , code: ' + code + ', data: ' + data);
277            expect(null).assertFail();
278          },
279        });
280      },
281      fail: function (data, code) {
282        console.info('File_writeText_001 call writeText fail , code: ' + code + ', data: ' + data);
283        expect(null).assertFail();
284      },
285    });
286  });
287
288  /**
289   * @tc.number SUB_STORAGE_File_writeText_0200
290   * @tc.name File_writeText_002
291   * @tc.desc Function of API, write to file.The test file is exist, it can be edited.
292   */
293  it('File_writeText_002', 0, async function (done) {
294    file.writeText({
295      uri: 'internal://cache/File_writeText_002',
296      text: 'Text1.',
297      success: function () {
298        console.info('File_writeText_002 call writeText success.');
299        file.writeText({
300            uri: 'internal://cache/File_writeText_002',
301            text: 'Text2.',
302            append: true,
303            success: function () {
304              console.info('File_writeText_002 call writeText success.');
305              file.readText({
306                uri: 'internal://cache/File_writeText_002',
307                success: function (data) {
308                  console.info('File_writeText_002 call read success. Content: ' );
309                  file.delete({
310                    uri: 'internal://cache/File_writeText_002',
311                    success: function () {
312                      console.info('File_writeText_002 call delete success');
313                      done();
314                    },
315                    fail: function (data, code) {
316                      console.info('File_writeText_002 call delete fail, code: ' + code + ', data: ' + data);
317                      expect(null).assertFail();
318                    },
319                  });
320                },
321                fail: function (data, code) {
322                  console.info('File_writeText_002 call read fail, code: ' + code + ', data: ' + data);
323                  expect(null).assertFail();
324                },
325              });
326            },
327            fail: function (data, code) {
328              console.info('File_writeText_002 call writeText fail, code: ' + code + ', data: ' + data);
329              expect(null).assertFail();
330            },
331          });
332      },
333      fail: function (data, code) {
334        console.info('File_writeText_002 call writeText fail, code: ' + code + ', data: ' + data);
335        expect(null).assertFail();
336      },
337    });
338  });
339
340  /**
341   * @tc.number SUB_STORAGE_File_writeText_0300
342   * @tc.name File_writeText_003
343   * @tc.desc Different types of strings for text.
344   */
345  it('File_writeText_003', 0, async function (done) {
346    let txt = 'hello 你好 ????? こんにちは ?????.'
347    file.writeText({
348      uri: 'internal://cache/File_writeText_003',
349      text: txt,
350      success: function () {
351        console.info('File_writeText_003 call writeText success.');
352        file.readText({
353          uri: 'internal://cache/File_writeText_003',
354          success: function (data) {
355            console.info('File_writeText_003 call read success. Content: ' );
356            file.delete({
357              uri: 'internal://cache/File_writeText_003',
358              success: function () {
359                console.info('File_writeText_003 call delete success');
360                done();
361              },
362              fail: function (data, code) {
363                console.info('File_writeText_003 call delete fail, code: ' + code + ', data: ' + data);
364                expect(null).assertFail();
365              },
366            });
367          },
368          fail: function (data, code) {
369            console.info('File_writeText_003 call read fail, code: ' + code + ', data: ' + data);
370            expect(null).assertFail();
371          },
372        });
373      },
374      fail: function (data, code) {
375        console.info('File_writeText_003 call writeText fail, code: ' + code + ', data: ' + data);
376        expect(null).assertFail();
377      },
378    });
379  });
380
381  /**
382   * @tc.number SUB_STORAGE_File_writeText_0400
383   * @tc.name File_writeText_004
384   * @tc.desc Defferent encoding(UTF-8).
385   */
386  it('File_writeText_004', 0, async function (done) {
387    file.writeText({
388      uri: 'internal://cache/File_writeText_004',
389      text: 'hello',
390      encoding: 'UTF-8',
391      success: function () {
392        console.info('File_writeText_004 call writeText success.');
393        file.readText({
394          uri: 'internal://cache/File_writeText_004',
395          encoding: 'UTF-8',
396          success: function (data) {
397            console.info('File_writeText_004 call readText success. Content: ' );
398            file.delete({
399              uri: 'internal://cache/File_writeText_004',
400              success: function () {
401                console.info('File_writeText_004 delete success');
402                done();
403              },
404              fail: function (data, code) {
405                console.info('File_writeText_004 delete fail, code: ' + code + ', data: ' + data);
406                expect(null).assertFail();
407              },
408            });
409          },
410          fail: function (data, code) {
411            console.info('File_writeText_004 call readText fail, code: ' + code + ', data: ' + data);
412            expect(null).assertFail();
413          },
414        });
415      },
416      fail: function (data, code) {
417        console.info('File_writeText_004 call writeText fail, code: ' + code + ', data: ' + data);
418        expect(null).assertFail();
419      },
420    });
421  });
422
423  /**
424   * @tc.number SUB_STORAGE_File_writeText_0500
425   * @tc.name File_writeText_005
426   * @tc.desc Function of API, append mode.The test file is exist and it can be edited.
427   */
428  it('File_writeText_005', 0, async function (done) {
429    file.writeText({
430      uri: 'internal://cache/File_writeText_005',
431      text: 'hello,world',
432      success: function () {
433        console.info('File_writeText_005 call writeText success.');
434        file.writeText({
435            uri: 'internal://cache/File_writeText_005',
436            text: 'hello',
437            append: true,
438            success: function () {
439              console.info('File_writeText_005 call writeText success.');
440              file.readText({
441                uri: 'internal://cache/File_writeText_005',
442                success: function (data) {
443                  console.info('File_writeText_005 call read success ' );
444                  file.delete({
445                    uri: 'internal://cache/File_writeText_005',
446                    success: function () {
447                      console.info('File_writeText_005 call delete success');
448                      done();
449                    },
450                    fail: function (data, code) {
451                      console.info('File_writeText_005 call delete fail, code: ' + code + ', data: ' + data);
452                      expect(null).assertFail();
453                    },
454                  });
455                },
456                fail: function (data, code) {
457                  console.info('File_writeText_005 call readText fail , code: ' + code + ', data: ' + data);
458                  expect(null).assertFail();
459                },
460              });
461            },
462            fail: function (data, code) {
463              console.info('File_writeText_005 call writeText fail, code: ' + code + ', data: ' + data);
464              expect(null).assertFail();
465            },
466          });
467      },
468      fail: function (data, code) {
469        console.info('File_writeText_005 call writeText fail, code: ' + code + ', data: ' + data);
470        expect(null).assertFail();
471      },
472    });
473  });
474
475  /**
476   * @tc.number SUB_STORAGE_File_writeText_0600
477   * @tc.name File_writeText_006
478   * @tc.desc Function of API, non-append mode.The test file is exist and it can be edited.
479   */
480  it('File_writeText_006', 0, async function (done) {
481    file.writeText({
482      uri: 'internal://cache/File_writeText_006',
483      text: 'hello',
484      success: function () {
485        console.info('File_writeText_006 call writeText success.');
486        file.readText({
487          uri: 'internal://cache/File_writeText_006',
488          success: function (data) {
489            console.info('File_writeText_006 call read success ' );
490            file.delete({
491              uri: 'internal://cache/File_writeText_006',
492              success: function () {
493                console.info('File_writeText_006 delete success');
494                done();
495              },
496              fail: function (data, code) {
497                console.info('File_writeText_006 delete fail, code: ' + code + ', data: ' + data);
498                expect(null).assertFail();
499              },
500            });
501          },
502          fail: function (data, code) {
503            console.info('File_writeText_006 call readText fail, code: ' + code + ', data: ' + data);
504            expect(null).assertFail();
505          },
506        });
507      },
508      fail: function (data, code) {
509        console.info('File_writeText_006 call writeText fail, code: ' + code + ', data: ' + data);
510        expect(null).assertFail();
511      },
512    });
513  });
514
515  /**
516   * @tc.number SUB_STORAGE_File_writeText_0700
517   * @tc.name File_writeText_007
518   * @tc.desc Function of API, error code: 202 The test file and dir are exist.
519   */
520  it('File_writeText_007', 0, async function (done) {
521    file.writeText({
522      uri: '/data/accounts/account_0/appdata',
523      text: 'hello',
524      success: function () {
525        console.info('File_writeText_007 call writeText success.');
526        expect(null).assertFail();
527      },
528      fail: function (data, code) {
529        console.info('File_writeText_007, code: ' + code + ', data: ' + data);
530        expect(code == 202).assertTrue();
531        done();
532      },
533    });
534  });
535
536  /**
537   * @tc.number SUB_STORAGE_File_writeText_0800
538   * @tc.name File_writeText_008
539   * @tc.desc Function of API, error code: 300 The uri path is dir path.
540   */
541  it('File_writeText_008', 0, async function (done) {
542    let dpath = await nextFileName('File_writeText_008d');
543    fileio.mkdirSync(dpath);
544    file.writeText({
545      uri: 'internal://cache/File_writeText_008d/',
546      text: 'hello',
547      success: function () {
548        console.info('File_writeText_008 call writeText success.');
549        expect(null).assertFail();
550      },
551      fail: function (data, code) {
552        console.info('File_writeText_008 , code: ' + code + ', data: ' + data);
553        expect(code == 300).assertTrue();
554        done();
555      },
556    });
557  });
558
559  /**
560   * @tc.number SUB_STORAGE_File_writeText_0900
561   * @tc.name File_writeText_009
562   * @tc.desc Function of API, error code: 300.The file path is not exist.
563   */
564  it('File_writeText_009', 0, async function (done) {
565    file.writeText({
566      uri: 'internal://app/File_writeText_009d/File_writeText_009',
567      text: 'test',
568      success: function () {
569        console.info('File_writeText_009 call writeText success.');
570        expect(null).assertFail();
571      },
572      fail: function (data, code) {
573        console.info('File_writeText_009 , code: ' + code + ', data: ' + data);
574        expect(code == 300).assertTrue();
575        done();
576      },
577    });
578  });
579
580  /**
581   * @tc.number SUB_STORAGE_File_writeText_1000
582   * @tc.name File_writeText_010
583   * @tc.desc Function of API, write to file(cache path).The test file is not exist.
584   */
585  it('File_writeText_010', 0, async function (done) {
586    file.writeText({
587      uri: 'internal://cache/File_writeText_010',
588      text: 'test',
589      success: function () {
590        console.info('File_writeText_010 mkdir success');
591        file.delete({
592          uri: 'internal://cache/File_writeText_010',
593          success: function () {
594            console.info('File_writeText_010 delete success');
595            done();
596          },
597          fail: function (data, code) {
598            console.info('File_writeText_010 delete fail, code: ' + code + ', data: ' + data);
599            expect(null).assertFail();
600          },
601        });
602      },
603      fail: function (data, code) {
604        console.info('File_writeText_010 writeText fail, code: ' + code + ', data: ' + data);
605        expect(null).assertFail();
606      },
607    });
608  });
609
610  /**
611   * @tc.number SUB_STORAGE_File_writeText_1100
612   * @tc.name File_writeText_011
613   * @tc.desc Function of API, Virtual path.The test file is exist.
614   */
615  it('File_writeText_011', 0, async function (done) {
616    file.writeText({
617      uri: 'internal://cache/../cache/File_writeText_011',
618      text: 'sawyerwang',
619      success: function () {
620        console.info('File_writeText_011 writeText success ');
621        file.readText({
622          uri: 'internal://cache/../cache/File_writeText_011',
623          success: function (data) {
624            console.info('File_writeText_011 readText success ' );
625            file.delete({
626              uri: 'internal://cache/../cache/File_writeText_011',
627              success: function () {
628                console.info('File_writeText_011 delete success');
629                done();
630              },
631              fail: function (data, code) {
632                console.info('File_writeText_011 delete fail, code: ' + code + ', data: ' + data);
633                expect(null).assertFail();
634              },
635            });
636          },
637          fail: function (data, code) {
638            console.info('File_writeText_011 readText fail, code: ' + code + ', data: ' + data);
639            expect(null).assertFail();
640          },
641        });
642      },
643      fail: function (data, code) {
644        console.info('File_writeText_011 writeText fail, code: ' + code + ', data: ' + data);
645        expect(null).assertFail();
646      },
647    });
648  });
649
650  /**
651   * @tc.number SUB_STORAGE_File_writeText_1300
652   * @tc.name File_writeText_013
653   * @tc.desc Function of API, write file out of package, Virtual path, save the dir authority.The test file is exist.
654   */
655  it('File_writeText_013', 0, async function (done) {
656    file.writeText({
657      uri: 'internal://app/notdir/File_writeText_013',
658      text: 'sawyerwang',
659      success: function () {
660        console.info('File_writeText_013 mkdir success');
661        expect(null).assertFail();
662      },
663      fail: function (data, code) {
664        expect(code == 300).assertTrue();
665        console.info('File_writeText_013 , code: ' + code + ', data: ' + data);
666        done();
667      },
668      complete: function () {
669        console.info('writeText completed');
670      }
671    });
672  });
673
674  /**
675   * @tc.number SUB_STORAGE_File_writeArrayBuffer_0100
676   * @tc.name File_writeArrayBuffer_001
677   * @tc.desc Write the buffer content to file.(cache path, append mode) The file path is not exist.
678   */
679  it('File_writeArrayBuffer_001', 0, async function (done) {
680    let buf = new Uint8Array([48, 49, 50, 51, 65, 66, 67, 68, 32, 33]);
681    file.writeArrayBuffer({
682      uri: 'internal://cache/File_writeArrayBuffer_001',
683      buffer: buf,
684      append: true,
685      success: function () {
686        console.info('File_writeArrayBuffer_001 call writeArrayBuffer success.');
687        file.readArrayBuffer({
688          uri: 'internal://cache/File_writeArrayBuffer_001',
689          success: function (data) {
690            console.info('File_writeArrayBuffer_001 call readArrayBuffer success.' );
691            file.delete({
692              uri: 'internal://cache/File_writeArrayBuffer_001',
693              success: function () {
694                console.info('File_writeArrayBuffer_001 delete success');
695                done();
696              },
697              fail: function (data, code) {
698                console.info('File_writeArrayBuffer_001 delete fail, code: ' + code + ', data: ' + data);
699                expect(null).assertFail();
700              },
701            });
702          },
703          fail: function (data, code) {
704            console.info('File_writeArrayBuffer_001 readArrayBuffer fail, code: ' + code + ', data: ' + data);
705            expect(null).assertFail();
706          },
707        });
708      },
709      fail: function (data, code) {
710        console.info('File_writeArrayBuffer_001 writeArrayBuffer fail, code: ' + code + ', data: ' + data);
711        expect(null).assertFail();
712      },
713    });
714  });
715
716  /**
717   * @tc.number SUB_STORAGE_File_writeArrayBuffer_0200
718   * @tc.name File_writeArrayBuffer_002
719   * @tc.desc Write the buffer content to file.(cache path, non-append mode) The file path is not exist.
720   */
721  it('File_writeArrayBuffer_002', 0, async function (done) {
722    let buf = new Uint8Array([48, 49, 50, 51, 65, 66, 67, 68, 32, 33]);
723    file.writeArrayBuffer({
724      uri: 'internal://cache/File_writeArrayBuffer_002',
725      buffer: buf,
726      success: function () {
727        console.info('File_writeArrayBuffer_002 call writeArrayBuffer success.');
728        file.readArrayBuffer({
729          uri: 'internal://cache/File_writeArrayBuffer_002',
730          success: function (data) {
731            console.info('File_writeArrayBuffer_002 call readArrayBuffer success.' );
732            file.delete({
733              uri: 'internal://cache/File_writeArrayBuffer_002',
734              success: function () {
735                console.info('File_writeArrayBuffer_002 delete success');
736                done();
737              },
738              fail: function (data, code) {
739                console.info('File_writeArrayBuffer_002 delete fail, code: ' + code + ', data: ' + data);
740                expect(null).assertFail();
741              },
742            });
743          },
744          fail: function (data, code) {
745            console.info('File_writeArrayBuffer_002 readArrayBuffer fail, code: ' + code + ', data: ' + data);
746            expect(null).assertFail();
747          },
748        });
749      },
750      fail: function (data, code) {
751        console.info('File_writeArrayBuffer_002 writeArrayBuffer fail, code: ' + code + ', data: ' + data);
752        expect(null).assertFail();
753      },
754    });
755  });
756
757  /**
758   * @tc.number SUB_STORAGE_File_writeArrayBuffer_0300
759   * @tc.name File_writeArrayBuffer_003
760   * @tc.desc Write the buffer content to file.(cache path, append mode) The file path is not exist.
761   */
762  it('File_writeArrayBuffer_003', 0, async function (done) {
763    let buf = new Uint8Array([48, 49, 50, 51, 65, 66, 67, 68, 32, 33, 48, 49, 50, 51, 65, 66, 67, 68, 32, 33]);
764    file.writeArrayBuffer({
765      uri: 'internal://cache/File_writeArrayBuffer_003',
766      buffer: buf,
767      success: function () {
768        console.info('File_writeArrayBuffer_003 call writeText success.');
769        file.writeArrayBuffer({
770          uri: 'internal://cache/File_writeArrayBuffer_003',
771          buffer: buf,
772          append: true,
773          success: function () {
774            console.info('File_writeArrayBuffer_003 call writeArrayBuffer success.');
775            file.readArrayBuffer({
776              uri: 'internal://cache/File_writeArrayBuffer_003',
777              success: function (data) {
778                console.info('File_writeArrayBuffer_003 readArrayBuffer success:' );
779                done();
780              },
781              fail: function (data, code) {
782                console.info('File_writeArrayBuffer_003 readArrayBuffer fail, code: ' + code + ', data: ' + data);
783                expect(null).assertFail();
784              },
785            });
786          },
787          fail: function (data, code) {
788            console.info('File_writeArrayBuffer_003 writeArrayBuffer append fail, code: ' + code + ', data: ' + data);
789            expect(null).assertFail();
790          },
791        });
792      },
793      fail: function (data, code) {
794        console.info('File_writeArrayBuffer_003 writeArrayBuffer fail, code: ' + code + ', data: ' + data);
795        expect(null).assertFail();
796      },
797    });
798  });
799
800  /**
801   * @tc.number SUB_STORAGE_File_writeArrayBuffer_0400
802   * @tc.name File_writeArrayBuffer_004
803   * @tc.desc Write the buffer content to file.(cache path, non-append mode) The file path is exist.
804   */
805  it('File_writeArrayBuffer_004', 0, async function (done) {
806    let buf = new Uint8Array([48, 49, 50, 51, 65, 66, 67, 68, 32, 33]);
807    file.writeArrayBuffer({
808      uri: 'internal://cache/File_writeArrayBuffer_004',
809      buffer: buf,
810      append: false,
811      success: function () {
812        console.info('File_writeArrayBuffer_004 success call writeText success.');
813        file.writeArrayBuffer({
814          uri: 'internal://cache/File_writeArrayBuffer_004',
815          buffer: buf,
816          append: false,
817          success: function () {
818            console.info('File_writeArrayBuffer_004 call writeArrayBuffer success.');
819            file.readArrayBuffer({
820              uri: 'internal://cache/File_writeArrayBuffer_004',
821              success: function (data) {
822                console.info('File_writeArrayBuffer_004: readArrayBuffer success ' );
823                file.delete({
824                  uri: 'internal://cache/File_writeArrayBuffer_004',
825                  success: function () {
826                    console.info('File_writeArrayBuffer_004 call delete success');
827                    done();
828                  },
829                  fail: function (data, code) {
830                    console.info('File_writeArrayBuffer_004 delete fail, code: ' + code + ', data: ' + data);
831                    expect(null).assertFail();
832                  },
833                });
834              },
835              fail: function (data, code) {
836                console.info('File_writeArrayBuffer_004 readArrayBuffer fail, code: ' + code + ', data: ' + data);
837                expect(null).assertFail();
838              },
839            });
840          },
841          fail: function (data, code) {
842            console.info('File_writeArrayBuffer_004 writeArrayBuffer fail, code: ' + code + ', data: ' + data);
843            expect(null).assertFail();
844          },
845        });
846      },
847      fail: function (data, code) {
848        console.info('File_writeArrayBuffer_004 writeText fail, code: ' + code + ', data: ' + data);
849        expect(null).assertFail();
850      },
851    });
852  });
853
854  /**
855   * @tc.number SUB_STORAGE_File_writeArrayBuffer_0500
856   * @tc.name File_writeArrayBuffer_005
857   * @tc.desc Function of API, set value for position.The file path is exist.
858   */
859  it('File_writeArrayBuffer_005', 0, async function (done) {
860    let buf = new Uint8Array([48, 49, 50, 51, 65, 66, 67, 68, 32, 33, 44, 55, 66, 77]);
861    file.writeArrayBuffer({
862      uri: 'internal://cache/File_writeArrayBuffer_005',
863      buffer: buf,
864      success: function () {
865        console.info('File_writeArrayBuffer_005 call writeText success.');
866        file.writeArrayBuffer({
867            uri: 'internal://cache/File_writeArrayBuffer_005',
868            buffer: buf,
869            position: 10,
870            success: function () {
871              console.info('File_writeArrayBuffer_005 call writeArrayBuffer success.');
872              file.readArrayBuffer({
873                uri: 'internal://cache/File_writeArrayBuffer_005',
874                success: function (data) {
875                  console.info('File_writeArrayBuffer_005 read success:' );
876                  file.delete({
877                    uri: 'internal://cache/File_writeArrayBuffer_005',
878                    success: function () {
879                      console.info('File_writeArrayBuffer_005 call delete success');
880                      done();
881                    },
882                    fail: function (data, code) {
883                      console.info('File_writeArrayBuffer_005 delete fail, code: ' + code + ', data: ' + data);
884                      expect(null).assertFail();
885                    },
886                  });
887                },
888                fail: function (data, code) {
889                  console.info('File_writeArrayBuffer_005 read fail, code: ' + code + ', data: ' + data);
890                  expect(null).assertFail();
891                },
892              });
893            },
894            fail: function (data, code) {
895              console.info('File_writeArrayBuffer_005 writeArrayBuffer fail, code: ' + code + ', data: ' + data);
896              expect(null).assertFail();
897            },
898          });
899      },
900      fail: function (data, code) {
901        console.info('File_writeArrayBuffer_005 writeText fail, code: ' + code + ', data: ' + data);
902        expect(null).assertFail();
903      },
904    });
905  });
906
907  /**
908   * @tc.number SUB_STORAGE_File_writeArrayBuffer_0600
909   * @tc.name File_writeArrayBuffer_006
910   * @tc.desc Function of API, not set value for position & append.The file path is exist.
911   */
912  it('File_writeArrayBuffer_006', 0, async function (done) {
913    let buf = new Uint8Array([48, 49, 50, 51, 65, 66, 67, 68, 32, 33]);
914    file.writeArrayBuffer({
915      uri: 'internal://cache/File_writeArrayBuffer_006',
916      buffer: buf,
917      success: function () {
918        console.info('File_writeArrayBuffer_006 call writeText success.');
919        file.writeArrayBuffer({
920            uri: 'internal://cache/File_writeArrayBuffer_006',
921            buffer: buf,
922            success: function () {
923              console.info('File_writeArrayBuffer_006 call writeArrayBuffer success.');
924              file.readArrayBuffer({
925                uri: 'internal://cache/File_writeArrayBuffer_006',
926                success: function () {
927                  console.info('File_writeArrayBuffer_006 call readArrayBuffer pass');
928                  done();
929                },
930                fail: function (data, code) {
931                  console.info('File_writeArrayBuffer_006 readArrayBuffer fail, code: ' + code + ', data: ' + data);
932                  expect(null).assertFail();
933                },
934              });
935            },
936            fail: function (data, code) {
937              console.info('File_writeArrayBuffer_006 writeArrayBuffer fail, code: ' + code + ', data: ' + data);
938              expect(null).assertFail();
939            },
940        });
941      },
942      fail: function (data, code) {
943        console.info('File_writeArrayBuffer_006 writeText fail, code: ' + code + ', data: ' + data);
944        expect(null).assertFail();
945      },
946    });
947  });
948
949  /**
950   * @tc.number SUB_STORAGE_File_writeArrayBuffer_0700
951   * @tc.name File_writeArrayBuffer_007
952   * @tc.desc Function of API, error code: 202
953   */
954  it('File_writeArrayBuffer_007', 0, async function (done) {
955    let buf = new Uint8Array([48, 49, 50, 51, 65, 66, 67, 68, 32, 33]);
956    file.writeArrayBuffer({
957      uri: '',
958      buffer: buf,
959      success: function () {
960        console.info('File_writeArrayBuffer_007 call writeArrayBuffer success.');
961        expect(null).assertFail();
962      },
963      fail: function (data, code) {
964        console.info('File_writeArrayBuffer_007 , code: ' + code + ', data: ' + data);
965        expect(code == 202).assertTrue();
966        done();
967      },
968    });
969  });
970
971  /**
972   * @tc.number SUB_STORAGE_File_writeArrayBuffer_0800
973   * @tc.name File_writeArrayBuffer_008
974   * @tc.desc Function of API, error code: 300
975   */
976  it('File_writeArrayBuffer_008', 0, async function (done) {
977    let buf = new Uint8Array([48, 49, 50, 51, 65, 66, 67, 68, 32, 33]);
978    file.mkdir({
979      uri: 'internal://app/File_writeArrayBuffer_008',
980      success: function () {
981        console.info('call mkdir success.');
982        done();
983      },
984      fail: function (data, code) {
985        console.error('call fail callback fail, code: ' + code + ', data: ' + data);
986      },
987    });
988    file.writeArrayBuffer({
989      uri: 'internal://app/notdir/File_writeArrayBuffer_008',
990      buffer: buf,
991      success: function () {
992        console.info('File_writeArrayBuffer_008 call writeArrayBuffer success.');
993        expect(null).assertFail();
994      },
995      fail: function (data, code) {
996        console.info('File_writeArrayBuffer_008 , code: ' + code + ', data: ' + data);
997        expect(code == 300).assertTrue();
998        done();
999      },
1000    });
1001  });
1002
1003  /**
1004   * @tc.number SUB_STORAGE_File_writeArrayBuffer_0900
1005   * @tc.name File_writeArrayBuffer_009
1006   * @tc.desc Function of API, error code: 300
1007   */
1008  it('File_writeArrayBuffer_009', 0, async function (done) {
1009    let buf = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]);
1010    file.writeArrayBuffer({
1011      uri: 'internal://cache/File_writeArrayBuffer_009',
1012      buffer: buf,
1013      success: function () {
1014        console.info('File_writeArrayBuffer_009 call writeArrayBuffer success');
1015        file.readArrayBuffer({
1016          uri: 'internal://cache/File_writeArrayBuffer_009',
1017          success: function (data) {
1018            console.info('File_writeArrayBuffer_009 call readArrayBuffer pass');
1019            file.delete({
1020              uri: 'internal://cache/File_writeArrayBuffer_009',
1021              success: function () {
1022                console.info('File_writeArrayBuffer_009 call delete success');
1023                done();
1024              },
1025              fail: function (data, code) {
1026                console.info('File_writeArrayBuffer_009 delete fail, code: ' + code + ', data: ' + data);
1027                expect(null).assertFail();
1028              },
1029            });
1030          },
1031          fail: function (data, code) {
1032            console.info('File_writeArrayBuffer_009 readArrayBuffer fail, code: ' + code + ', data: ' + data);
1033            expect(null).assertFail();
1034          },
1035        });
1036      },
1037      fail: function (data, code) {
1038        console.info('File_writeArrayBuffer_009 writeArrayBuffer fail, code: ' + code + ', data: ' + data);
1039        expect(null).assertFail();
1040      },
1041    });
1042  });
1043
1044  /**
1045   * @tc.number SUB_STORAGE_File_writeArrayBuffer_1000
1046   * @tc.name File_writeArrayBuffer_010
1047   * @tc.desc Function of API, path = cache, virtual path The test file is exist.
1048   */
1049  it('File_writeArrayBuffer_010', 0, async function (done) {
1050    let buf = new Uint8Array([48, 49, 50, 51, 65, 66, 67, 68, 32, 33]);
1051    file.writeArrayBuffer({
1052      uri: 'internal://cache/../cache/File_writeArrayBuffer_010',
1053      buffer: buf,
1054      append: true,
1055      success: function () {
1056        console.info('File_writeArrayBuffer_010 call writeArrayBuffer success.');
1057        file.readArrayBuffer({
1058          uri: 'internal://cache/../cache/File_writeArrayBuffer_010',
1059          success: function (data) {
1060            console.info('File_writeArrayBuffer_010 call readArrayBuffer pass');
1061            done();
1062          },
1063          fail: function (data, code) {
1064            console.info('File_writeArrayBuffer_010 readArrayBuffer fail, code: ' + code + ', data: ' + data);
1065            expect(null).assertFail();
1066          },
1067        });
1068      },
1069      fail: function (data, code) {
1070        console.info('File_writeArrayBuffer_010 writeArrayBuffer fail, code: ' + code + ', data: ' + data);
1071        expect(null).assertFail();
1072      },
1073    });
1074  });
1075
1076  /**
1077   * @tc.number SUB_STORAGE_File_writeArrayBuffer_1200
1078   * @tc.name File_writeArrayBuffer_012
1079   * @tc.desc Function of API, out of package, Virtual path, save the dir authority.The test file is exist.
1080   */
1081  it('File_writeArrayBuffer_012', 0, async function (done) {
1082    let buf = new Uint8Array([48, 49, 50, 51, 65, 66, 67, 68, 32, 33]);
1083    file.writeArrayBuffer({
1084      uri: 'internal://app/notdir/File_writeArrayBuffer_012',
1085      buffer: buf,
1086      append: true,
1087      success: function () {
1088        console.info('File_writeArrayBuffer_012  => pass');
1089        expect(null).assertFail();
1090      },
1091      fail: function (data, code) {
1092        console.info('File_writeArrayBuffer_012 , code: ' + code + ', data: ' + data);
1093        expect(code == 300).assertTrue();
1094        done();
1095      },
1096      complete: function () {
1097        console.info('writeArrayBuffer completed');
1098      }
1099    });
1100  });
1101
1102  /**
1103   * @tc.number SUB_STORAGE_File_readText_0100
1104   * @tc.name File_readText_001
1105   * @tc.desc Function of API, readText, app path.
1106   */
1107  it('File_readText_001', 0, async function (done) {
1108    file.writeText({
1109      uri: 'internal://cache/File_readText_001',
1110      text: 'Text that just for test.',
1111      success: function () {
1112        console.info('File_readText_001 call writeText success.');
1113        file.readText({
1114          uri: 'internal://cache/File_readText_001',
1115          success: function (data) {
1116            console.info('File_readText_001 call readText success.');
1117            done();
1118          },
1119          fail: function (data, code) {
1120            console.info('File_readText_001 readText fail, code: ' + code + ', data: ' + data);
1121            expect(null).assertFail();
1122          },
1123        });
1124      },
1125      fail: function (data, code) {
1126        console.info('File_readText_001 writeText fail, code: ' + code + ', data: ' + data);
1127        expect(null).assertFail();
1128      },
1129    });
1130  });
1131
1132  /**
1133   * @tc.number SUB_STORAGE_File_readText_0200
1134   * @tc.name File_readText_002
1135   * @tc.desc Function of API, encoding = UTF-8.The test file is exist.
1136   */
1137  it('File_readText_002', 0, async function (done) {
1138    file.writeText({
1139      uri: 'internal://cache/File_readText_002',
1140      text: 'Text that just for test.',
1141      encoding: 'utf-8',
1142      success: function () {
1143        console.info('File_readText_002 call writeText success.');
1144        file.readText({
1145          uri: 'internal://cache/File_readText_002',
1146          encoding: 'utf-8',
1147          success: function (data) {
1148            console.info('File_readText_002 call readText success.');
1149            done();
1150          },
1151          fail: function (data, code) {
1152            console.info('File_readText_002 readText fail, code: ' + code + ', data: ' + data);
1153            expect(null).assertFail();
1154          },
1155        });
1156      },
1157      fail: function (data, code) {
1158        console.info('File_readText_002 writeText fail, code: ' + code + ', data: ' + data);
1159        expect(null).assertFail();
1160      },
1161    });
1162  });
1163
1164  /**
1165   * @tc.number SUB_STORAGE_File_readText_0300
1166   * @tc.name File_readText_003
1167   * @tc.desc Function of API, error code: 202.The test file and dir is exist.
1168   */
1169  it('File_readText_003', 0, async function (done) {
1170    file.readText({
1171      uri: '',
1172      success: function (data) {
1173        console.info(data.text);
1174        expect(null).assertFail();
1175      },
1176      fail: function (data, code) {
1177        console.info('File_readText_003 , code: ' + code + ', data: ' + data);
1178        expect(code == 202).assertTrue();
1179        done();
1180      },
1181    });
1182  });
1183
1184  /**
1185   * @tc.number SUB_STORAGE_File_readText_0400
1186   * @tc.name File_readText_004
1187   * @tc.desc Function of API, error code: 300.The test dir is exist.
1188   */
1189  it('File_readText_004', 0, async function (done) {
1190    file.readText({
1191      uri: 'internal://cache/',
1192      success: function (data) {
1193        console.info(data.text);
1194        expect(null).assertFail();
1195      },
1196      fail: function (data, code) {
1197        console.info('File_readText_004 , code: ' + code + ', data: ' + data);
1198        expect(code == 300).assertTrue();
1199        done();
1200      },
1201    });
1202  });
1203
1204  /**
1205   * @tc.number SUB_STORAGE_File_readText_0500
1206   * @tc.name File_readText_005
1207   * @tc.desc Function of API, error code: 301.The test file and dir is exist.
1208   */
1209  it('File_readText_005', 0, async function (done) {
1210    file.readText({
1211      uri: 'internal://cache/workspace/text.txt',
1212      success: function (data) {
1213        console.info(data.text);
1214        expect(null).assertFail();
1215      },
1216      fail: function (data, code) {
1217        console.info('File_readText_005 , code: ' + code + ', data: ' + data);
1218        expect(code == 301).assertTrue();
1219        done();
1220      },
1221    });
1222  });
1223
1224  /**
1225   * @tc.number SUB_STORAGE_File_readText_0600
1226   * @tc.name File_readText_006
1227   * @tc.desc Function of API, readText, cache path.
1228   */
1229  it('File_readText_006', 0, async function (done) {
1230    file.writeText({
1231      uri: 'internal://cache/File_readText_006',
1232      text: 'test',
1233      success: function () {
1234        console.info('File_readText_006 call success');
1235        file.readText({
1236          uri: 'internal://cache/File_readText_006',
1237          success: function (data) {
1238            console.info('File_readText_006 call success' );
1239            file.delete({
1240              uri: 'internal://cache/File_readText_006',
1241              success: function () {
1242                console.info('File_readText_006 call success');
1243                done();
1244              },
1245              fail: function (data, code) {
1246                console.info('File_readText_006 delete fail, code: ' + code + ', data: ' + data);
1247                expect(null).assertFail();
1248              },
1249            });
1250          },
1251          fail: function (data, code) {
1252            console.info('File_readText_006 readText fail, code: ' + code + ', data: ' + data);
1253            expect(null).assertFail();
1254          },
1255        });
1256      },
1257      fail: function (data, code) {
1258        console.info('File_readText_006 writeText fail, code: ' + code + ', data: ' + data);
1259        expect(null).assertFail();
1260      },
1261    });
1262  });
1263
1264  /**
1265   * @tc.number SUB_STORAGE_File_readText_0700
1266   * @tc.name File_readText_007
1267   * @tc.desc Function of API, virtual path.The test file is exist.
1268   */
1269  it('File_readText_007', 0, async function (done) {
1270    file.writeText({
1271      uri: 'internal://cache/../files/../files/File_readText_007',
1272      text: 'Text that just for test.',
1273      success: function () {
1274        console.info('File_readText_007 call writeText success.');
1275        file.readText({
1276          uri: 'internal://cache/../files/../files/File_readText_007',
1277          success: function (data) {
1278            console.info('File_readText_007 call readText success. data.text:' );
1279            file.delete({
1280              uri: 'internal://cache/../files/../files/File_readText_007',
1281              success: function () {
1282                console.info('File_readText_007 call delete success');
1283                done();
1284              },
1285              fail: function (data, code) {
1286                console.info('File_readText_007 delete fail, code: ' + code + ', data: ' + data);
1287                expect(null).assertFail();
1288              },
1289            });
1290          },
1291          fail: function (data, code) {
1292            console.info('File_readText_007 readText fail, code: ' + code + ', data: ' + data);
1293            expect(null).assertFail();
1294          },
1295        });
1296      },
1297      fail: function (data, code) {
1298        console.info('File_readText_007 writeText fail, code: ' + code + ', data: ' + data);
1299        expect(null).assertFail();
1300      },
1301    });
1302  });
1303
1304  /**
1305   * @tc.number SUB_STORAGE_File_readText_0800
1306   * @tc.name File_readText_008
1307   * @tc.desc Function of API, virtual path.Test whether the files returned are equal.
1308   */
1309  it("File_readText_008", 0, async function (done) {
1310    let fpath = await nextFileName("File_readText_008");
1311    let text = "0123456789abcdefg";
1312    expect(prepareFile(fpath, text)).assertTrue();
1313    sleep(10);
1314    try {
1315      file.readText({
1316        uri: "internal://cache/File_readText_008",
1317        success: function (data) {
1318          console.info("call readText success: " + data.text);
1319          expect(text == data.text).assertTrue();
1320          fileio.unlinkSync(fpath);
1321          done();
1322        },
1323        fail: function (data, code) {
1324          console.error("call fail callback fail, code: " + code + ", data: " + data);
1325          expect(null).assertFail();
1326        },
1327        complete: function () {
1328          console.info('readText completed');
1329        }
1330      });
1331    } catch (e) {
1332      console.info("File_readText_008 has failed for " + e);
1333      expect(null).assertFail();
1334    }
1335  });
1336
1337  /**
1338   * @tc.number SUB_STORAGE_File_read_array_buffer_0100
1339   * @tc.name File_read_array_buffer_001
1340   * @tc.desc Function of API, readArrayBuffer, cache path.position = 0, length = 10.
1341   */
1342  it('File_read_array_buffer_001', 0, async function (done) {
1343    var buffer = new Uint8Array([48, 49, 50, 51, 65, 66, 67, 68, 32, 33]);
1344    file.writeArrayBuffer({
1345      uri: 'internal://cache/File_read_array_buffer_001',
1346      buffer: buffer,
1347      success: function () {
1348        console.info('File_read_array_buffer_001 call writeArrayBuffer success.');
1349        file.readArrayBuffer({
1350          uri: 'internal://cache/File_read_array_buffer_001',
1351          position: 0,
1352          length: 10,
1353          success: function (data) {
1354            console.info('File_read_array_buffer_001 call readArrayBuffer pass');
1355            file.delete({
1356              uri: 'internal://cache/File_read_array_buffer_001',
1357              success: function () {
1358                console.info('File_read_array_buffer_001 call delete success');
1359                done();
1360              },
1361              fail: function (data, code) {
1362                console.info('File_read_array_buffer_001 delete fail, code: ' + code + ', data: ' + data);
1363                expect(null).assertFail();
1364              },
1365            });
1366          },
1367          fail: function (data, code) {
1368            console.info('File_read_array_buffer_001 readArrayBuffer fail, code: ' + code + ', data: ' + data);
1369            expect(null).assertFail();
1370          },
1371        });
1372      },
1373      fail: function (data, code) {
1374        console.info('File_read_array_buffer_001 writeArrayBuffer fail, code: ' + code + ', data: ' + data);
1375        expect(null).assertFail();
1376      },
1377    });
1378  });
1379
1380  /**
1381   * @tc.number SUB_STORAGE_File_read_array_buffer_0200
1382   * @tc.name File_read_array_buffer_002
1383   * @tc.desc Function of API, readArrayBuffer,
1384   */
1385  it('File_read_array_buffer_002', 0, async function (done) {
1386    var buffer = new Uint8Array([48, 49, 50, 51, 65, 66, 67, 68, 32, 33]);
1387    file.writeArrayBuffer({
1388      uri: 'internal://cache/File_read_array_buffer_002',
1389      buffer: buffer,
1390      success: function () {
1391        console.info('File_read_array_buffer_002 call writeArrayBuffer success.');
1392        file.readArrayBuffer({
1393          uri: 'internal://cache/File_read_array_buffer_002',
1394          success: function (data) {
1395            console.info('File_read_array_buffer_002 call readArrayBuffer pass');
1396            done();
1397          },
1398          fail: function (data, code) {
1399            console.info('File_read_array_buffer_002 readArrayBuffer fail, code: ' + code + ', data: ' + data);
1400            expect(null).assertFail();
1401          },
1402        });
1403      },
1404      fail: function (data, code) {
1405        console.info('File_read_array_buffer_002 writeArrayBuffer fail, code: ' + code + ', data: ' + data);
1406        expect(null).assertFail();
1407      },
1408    });
1409  });
1410
1411  /**
1412   * @tc.number SUB_STORAGE_File_read_array_buffer_0300
1413   * @tc.name File_read_array_buffer_003
1414   * @tc.desc Function of API, readArrayBuffer, wrong uri.
1415   */
1416  it('File_read_array_buffer_003', 0, async function (done) {
1417    file.readArrayBuffer({
1418      uri: '',
1419      success: function (data) {
1420        console.info('File_read_array_buffer_003 call readArrayBuffer success: ' );
1421        expect(null).assertFail();
1422      },
1423      fail: function (data, code) {
1424        console.info('File_read_array_buffer_003 , code: ' + code + ', data: ' + data);
1425        expect(code == 202).assertTrue();
1426        done();
1427      },
1428    });
1429  });
1430
1431  /**
1432   * @tc.number SUB_STORAGE_File_read_array_buffer_0400
1433   * @tc.name File_read_array_buffer_004
1434   * @tc.desc Function of API, readArrayBuffer, wrong position.
1435   */
1436  it('File_read_array_buffer_004', 0, async function (done) {
1437    let fpath = await fileName('File_read_array_buffer_004');
1438    expect(prepareFile(fpath, FILE_CONTENT)).assertTrue();
1439    file.readArrayBuffer({
1440      uri: fpath,
1441      position: 100,
1442      success: function (data) {
1443        console.info('File_read_array_buffer_004 call readArrayBuffer success: ' );
1444        expect(null).assertFail();
1445      },
1446      fail: function (data, code) {
1447        console.info('File_read_array_buffer_004 , code: ' + code + ', data: ' + data);
1448        expect(code == 202).assertTrue();
1449        done();
1450      },
1451    });
1452  });
1453
1454  /**
1455   * @tc.number SUB_STORAGE_File_read_array_buffer_0500
1456   * @tc.name File_read_array_buffer_005
1457   * @tc.desc Function of API, readArrayBuffer, wrong length.
1458   */
1459  it('File_read_array_buffer_005', 0, async function (done) {
1460    let fpath = await fileName('File_read_array_buffer_005');
1461    expect(prepareFile(fpath, FILE_CONTENT)).assertTrue();
1462    file.readArrayBuffer({
1463      uri: fpath,
1464      length: -1,
1465      success: function (data) {
1466        console.info('File_read_array_buffer_005 call readArrayBuffer success: ' );
1467        expect(null).assertFail();
1468      },
1469      fail: function (data, code) {
1470        console.info('File_read_array_buffer_005 , code: ' + code + ', data: ' + data);
1471        expect(code == 202).assertTrue();
1472        done();
1473      },
1474    });
1475  });
1476
1477  /**
1478   * @tc.number SUB_STORAGE_File_read_array_buffer_0600
1479   * @tc.name File_read_array_buffer_006
1480   * @tc.desc Function of API, error code: 202 Set uri is dir path.
1481   */
1482  it('File_read_array_buffer_006', 0, async function (done) {
1483    file.readArrayBuffer({
1484      uri: 'internal://app',
1485      success: function (data) {
1486        console.info('File_read_array_buffer_006 call readArrayBuffer success: ' );
1487        expect(null).assertFail();
1488      },
1489      fail: function (data, code) {
1490        console.info('File_read_array_buffer_006 , code: ' + code + ', data: ' + data);
1491        expect(code == 202).assertTrue();
1492        done();
1493      },
1494    });
1495  });
1496
1497  /**
1498   * @tc.number SUB_STORAGE_File_read_array_buffer_0700
1499   * @tc.name File_read_array_buffer_007
1500   * @tc.desc Function of API, error code: 301
1501   */
1502  it('File_read_array_buffer_007', 0, async function (done) {
1503    file.readArrayBuffer({
1504      uri: 'internal://cache/File_read_array_buffer_007',
1505      success: function (data) {
1506        console.info('File_read_array_buffer_007 call readArrayBuffer success: ' );
1507        expect(null).assertFail();
1508      },
1509      fail: function (data, code) {
1510        console.info('File_read_array_buffer_007 , code: ' + code + ', data: ' + data);
1511        expect(code == 301).assertTrue();
1512        done();
1513      },
1514    });
1515  });
1516
1517  /**
1518   * @tc.number SUB_STORAGE_File_read_array_buffer_0800
1519   * @tc.name File_read_array_buffer_008
1520   * @tc.desc Function of API, cache path.The test file is exist.
1521   */
1522  it('File_read_array_buffer_008', 0, async function (done) {
1523    let buf = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]);
1524    file.writeArrayBuffer({
1525      uri: 'internal://cache/File_read_array_buffer_008',
1526      buffer: buf,
1527      success: function () {
1528        console.info('File_read_array_buffer_008 call writeArrayBuffer success');
1529        file.readArrayBuffer({
1530          uri: 'internal://cache/File_read_array_buffer_008',
1531          success: function (data) {
1532            console.info('File_read_array_buffer_008 call readArrayBuffer success ' );
1533            file.delete({
1534              uri: 'internal://cache/File_read_array_buffer_008',
1535              success: function () {
1536                console.info('File_read_array_buffer_008 call delete success');
1537                done();
1538              },
1539              fail: function (data, code) {
1540                console.info('File_read_array_buffer_008 delete fail, code: ' + code + ', data: ' + data);
1541                expect(null).assertFail();
1542              },
1543            });
1544          },
1545          fail: function (data, code) {
1546            console.info('File_read_array_buffer_008 readArrayBuffer fail, code: ' + code + ', data: ' + data);
1547            expect(null).assertFail();
1548          },
1549        });
1550      },
1551      fail: function (data, code) {
1552        console.info('File_read_array_buffer_008 writeArrayBuffer fail, code: ' + code + ', data: ' + data);
1553        expect(null).assertFail();
1554      },
1555    });
1556  });
1557
1558  /**
1559   * @tc.number SUB_STORAGE_File_read_array_buffer_0900
1560   * @tc.name File_read_array_buffer_009
1561   * @tc.desc Function of API, virtual path.The test file is exist.
1562   */
1563  it('File_read_array_buffer_009', 0, async function (done) {
1564    var buffer = new Uint8Array([48, 49, 50, 51, 65, 66, 67, 68, 32, 33]);
1565    file.writeArrayBuffer({
1566      uri: 'internal://cache/../cache/File_read_array_buffer_009',
1567      buffer: buffer,
1568      success: function () {
1569        console.info('File_read_array_buffer_009 call writeArrayBuffer success.');
1570        file.readArrayBuffer({
1571          uri: 'internal://cache/../cache/File_read_array_buffer_009',
1572          position: 0,
1573          length: 10,
1574          success: function (data) {
1575            console.info('File_read_array_buffer_009 call readArrayBuffer success. data.buffer:' );
1576            file.delete({
1577              uri: 'internal://cache/../cache/File_read_array_buffer_009',
1578              success: function () {
1579                console.info('File_read_array_buffer_009 call delete success');
1580                done();
1581              },
1582              fail: function (data, code) {
1583                console.info('File_read_array_buffer_009 delete fail, code: ' + code + ', data: ' + data);
1584                expect(null).assertFail();
1585              },
1586            });
1587          },
1588          fail: function (data, code) {
1589            console.info('File_read_array_buffer_009 readArrayBuffer fail, code: ' + code + ', data: ' + data);
1590            expect(null).assertFail();
1591          },
1592          complete: function () {
1593            console.info('readArrayBuffer completed');
1594          }
1595        });
1596      },
1597      fail: function (data, code) {
1598        console.info('File_read_array_buffer_009 writeArrayBuffer fail, code: ' + code + ', data: ' + data);
1599        expect(null).assertFail();
1600      },
1601    });
1602  });
1603
1604  /**
1605   * @tc.number SUB_STORAGE_File_access_0100
1606   * @tc.name File_access_001
1607   * @tc.desc Function of API, access, cache path.The test file is exist.
1608   */
1609  it('File_access_001', 0, async function (done) {
1610    file.writeText({
1611      uri: 'internal://cache/File_access_001',
1612      text: 'Text that just for test.',
1613      success: function () {
1614        console.info('File_access_001 call writeText success.');
1615        file.access({
1616          uri: 'internal://cache/File_access_001',
1617          success: function () {
1618            console.info('File_access_001 call access success.');
1619            file.delete({
1620              uri: 'internal://cache/File_access_001',
1621              success: function () {
1622                console.info('File_access_001 call delete success.');
1623                done();
1624              },
1625              fail: function (data, code) {
1626                console.info('File_access_001 delete fail, code: ' + code + ', data: ' + data);
1627                expect(null).assertFail();
1628              },
1629            });
1630          },
1631          fail: function (data, code) {
1632            console.info('File_access_001 access fail, code: ' + code + ', data: ' + data);
1633            expect(null).assertFail();
1634          },
1635        });
1636      },
1637      fail: function (data, code) {
1638        console.info('File_access_001 writeText fail, code: ' + code + ', data: ' + data);
1639        expect(null).assertFail();
1640      },
1641    });
1642  });
1643
1644  /**
1645   * @tc.number SUB_STORAGE_File_access_0200
1646   * @tc.name File_access_002
1647   * @tc.desc Function of API, access, app path.The test file is exist.
1648   */
1649  it('File_access_002', 0, async function (done) {
1650    file.mkdir({
1651      uri: 'internal://cache/File_access_002',
1652      success: function () {
1653        console.info('File_access_002 call mkdir success.');
1654        file.access({
1655          uri: 'internal://cache/File_access_002',
1656          success: function () {
1657            console.info('File_access_002 call access success.');
1658            file.rmdir({
1659              uri: 'internal://cache/File_access_002',
1660              success: function () {
1661                console.info('File_access_002 call rmdir success.');
1662                done();
1663              },
1664              fail: function (data, code) {
1665                console.info('File_access_002 rmdir fail, code: ' + code + ', data: ' + data);
1666                expect(null).assertFail();
1667              },
1668            });
1669          },
1670          fail: function (data, code) {
1671            console.info('File_access_002 access fail, code: ' + code + ', data: ' + data);
1672            expect(null).assertFail();
1673          },
1674        });
1675      },
1676      fail: function (data, code) {
1677        console.info('File_access_002 mkdir fail, code: ' + code + ', data: ' + data);
1678        expect(null).assertFail();
1679      },
1680    });
1681  });
1682
1683  /**
1684   * @tc.number SUB_STORAGE_File_access_0300
1685   * @tc.name File_access_003
1686   * @tc.desc Function of API, error code: 202 The test file and dir are exist.
1687   */
1688  it('File_access_003', 0, async function (done) {
1689    let fpath = await fileName('File_access_003');
1690    file.access({
1691      uri: fpath,
1692      success: function () {
1693        console.info('File_access_003 call access success.');
1694        expect(null).assertFail();
1695      },
1696      fail: function (data, code) {
1697        console.info('File_access_003 , code: ' + code + ', data: ' + data);
1698        expect(code == 202).assertTrue();
1699        done();
1700      },
1701    });
1702  });
1703
1704  /**
1705   * @tc.number SUB_STORAGE_File_access_0400
1706   * @tc.name File_access_004
1707   * @tc.desc Function of API, error code: 301
1708   */
1709  it('File_access_004', 0, async function (done) {
1710    file.access({
1711      uri: 'internal://app/File_access_004.txt',
1712      success: function () {
1713        console.info('File_access_004 call access success.');
1714        expect(null).assertFail();
1715      },
1716      fail: function (data, code) {
1717        console.info('File_access_004 , code: ' + code + ', data: ' + data);
1718        expect(code == 301).assertTrue();
1719        done();
1720      },
1721    });
1722  });
1723
1724  /**
1725   * @tc.number SUB_STORAGE_File_access_0500
1726   * @tc.name File_access_005
1727   * @tc.desc Function of API, error code: 301
1728   */
1729  it('File_access_005', 0, async function (done) {
1730    file.access({
1731      uri: 'internal://app/File_access_005',
1732      success: function () {
1733        console.info('File_access_005 call access success.');
1734        expect(null).assertFail();
1735      },
1736      fail: function (data, code) {
1737        console.info('File_access_005 , code: ' + code + ', data: ' + data);
1738        expect(code == 301).assertTrue();
1739        done();
1740      },
1741    });
1742  });
1743
1744  /**
1745   * @tc.number SUB_STORAGE_File_access_0600
1746   * @tc.name File_access_006
1747   * @tc.desc Function of API, parameter more than 4096.The test file and dir are exist.
1748   */
1749  it('File_access_006', 0, async function (done) {
1750    let firstPath = randomString(32);
1751    let dpath = await fileName(firstPath);
1752    let uri = 'internal://cache/' + firstPath;
1753    fileio.mkdirSync(dpath);
1754    for (let i = 0; i < 16; i++) {
1755      console.info('time' + i);
1756      let sonPath = randomString(251);
1757      uri = uri + '/f' + sonPath;
1758    }
1759    file.access({
1760      uri: uri,
1761      success: function () {
1762        console.info('File_access_006 => pass');
1763        expect(null).assertFail();
1764      },
1765      fail: function (data, code) {
1766        console.info('File_access_006 , code: ' + code + ', data: ' + data);
1767        expect(code == 300).assertTrue();
1768        fileio.rmdirSync(dpath);
1769        done();
1770      },
1771    });
1772
1773  });
1774
1775  /**
1776   * @tc.number SUB_STORAGE_File_access_0700
1777   * @tc.name File_access_007
1778   * @tc.desc Function of API, app path.The test file is exist.
1779   */
1780  it('File_access_007', 0, async function (done) {
1781    file.writeText({
1782      uri: 'internal://cache/File_access_007',
1783      text: 'hello',
1784      success: function () {
1785        console.info('File_access_007 writeText success ');
1786        file.access({
1787          uri: 'internal://cache/File_access_007',
1788          success: function () {
1789            console.info('File_access_007 access success');
1790            file.delete({
1791              uri: 'internal://cache/File_access_007',
1792              success: function () {
1793                console.info('File_access_007 delete success');
1794                done();
1795              },
1796              fail: function (data, code) {
1797                console.info('File_access_007 delete fail, code: ' + code + ', data: ' + data);
1798                expect(null).assertFail();
1799              },
1800            });
1801          },
1802          fail: function (data, code) {
1803            console.info('File_access_007 access fail, code: ' + code + ', data: ' + data);
1804            expect(null).assertFail();
1805          },
1806        });
1807      },
1808      fail: function (data, code) {
1809        console.info('File_access_007 writeText fail, code: ' + code + ', data: ' + data);
1810        expect(null).assertFail();
1811      },
1812    });
1813  });
1814
1815  /**
1816   * @tc.number SUB_STORAGE_File_access_0800
1817   * @tc.name File_access_008
1818   * @tc.desc Function of API, virtual path.The test file is exist.
1819   */
1820  it('File_access_008', 0, async function (done) {
1821    file.writeText({
1822      uri: 'internal://cache/../cache/File_access_008',
1823      text: 'Text that just for test.',
1824      success: function () {
1825        console.info('File_access_008 writeText success.');
1826        file.access({
1827          uri: 'internal://cache/../cache/File_access_008',
1828          success: function () {
1829            console.info('File_access_008 call access success.');
1830            file.delete({
1831              uri: 'internal://cache/../cache/File_access_008',
1832              success: function () {
1833                console.info('File_access_008 call delete success.');
1834                done();
1835              },
1836              fail: function (data, code) {
1837                console.info('File_access_008 delete fail, code: ' + code + ', data: ' + data);
1838                expect(null).assertFail();
1839              }
1840            });
1841          },
1842          fail: function (data, code) {
1843            console.info('File_access_008 access fail, code: ' + code + ', data: ' + data);
1844            expect(null).assertFail();
1845          },
1846          complete: function () {
1847            console.info('access completed');
1848          }
1849        });
1850      },
1851      fail: function (data, code) {
1852        console.info('File_access_008 writeText fail, code: ' + code + ', data: ' + data);
1853        expect(null).assertFail();
1854      },
1855    });
1856  });
1857
1858  /**
1859   * @tc.number SUB_STORAGE_File_mkdir_0100
1860   * @tc.name File_mkdir_001
1861   * @tc.desc Function of API, mkdir, app path.
1862   */
1863  it('File_mkdir_001', 0, async function (done) {
1864    file.mkdir({
1865      uri: 'internal://cache/File_mkdir_001',
1866      success: function () {
1867        console.info('File_mkdir_001 call mkdir success.');
1868        file.rmdir({
1869          uri: 'internal://cache/File_mkdir_001',
1870          success: function () {
1871            console.info('File_mkdir_001 call rmdir success.');
1872            done();
1873          },
1874          fail: function (data, code) {
1875            console.info('File_mkdir_001 rmdir fail, code: ' + code + ', data: ' + data);
1876            expect(null).assertFail();
1877          },
1878        });
1879      },
1880      fail: function (data, code) {
1881        console.info('File_mkdir_001 mkdir fail, code: ' + code + ', data: ' + data);
1882        expect(null).assertFail();
1883      },
1884    });
1885  });
1886
1887  /**
1888   * @tc.number SUB_STORAGE_File_mkdir_0200
1889   * @tc.name File_mkdir_002
1890   * @tc.desc Function of API, mkdir, recursive not set value.
1891   */
1892  it('File_mkdir_002', 0, async function (done) {
1893    file.mkdir({
1894      uri: 'internal://app/test/File_mkdir_002',
1895      success: function () {
1896        console.info('File_mkdir_002 call mkdir success.');
1897        expect(null).assertFail();
1898      },
1899      fail: function (data, code) {
1900        console.info('File_mkdir_002 , code: ' + code + ', data: ' + data);
1901        expect(code == 300).assertTrue();
1902        done();
1903      },
1904    });
1905  });
1906
1907  /**
1908   * @tc.number SUB_STORAGE_File_mkdir_0300
1909   * @tc.name File_mkdir_003
1910   * @tc.desc Function of API, mkdir, recursive.
1911   */
1912  it('File_mkdir_003', 0, async function (done) {
1913    file.mkdir({
1914      uri: 'internal://cache/test/File_mkdir_003d',
1915      recursive: true,
1916      success: function () {
1917        console.info('File_mkdir_003 call mkdir success.');
1918        done();
1919      },
1920      fail: function (data, code) {
1921        console.info('File_mkdir_003 , code: ' + code + ', data: ' + data);
1922        expect(null).assertFail();
1923      },
1924    });
1925  });
1926
1927  /**
1928   * @tc.number SUB_STORAGE_File_mkdir_0400
1929   * @tc.name File_mkdir_004
1930   * @tc.desc Function of API, error code: 202
1931   */
1932  it('File_mkdir_004', 0, async function (done) {
1933    file.mkdir({
1934      uri: 'internal://files/test/File_mkdir_002d',
1935      success: function () {
1936        console.info('File_mkdir_004 call mkdir success.');
1937        expect(null).assertFail();
1938      },
1939      fail: function (data, code) {
1940        console.info('File_mkdir_004, code: ' + code + ', data: ' + data);
1941        expect(code == 202).assertTrue();
1942        done();
1943      },
1944    });
1945  });
1946
1947  /**
1948   * @tc.number SUB_STORAGE_File_mkdir_0500
1949   * @tc.name File_mkdir_005
1950   * @tc.desc Function of API, special characters.
1951   */
1952  it('File_mkdir_005', 0, async function (done) {
1953    file.mkdir({
1954      uri: 'internal://cache/!@/<>',
1955      success: function () {
1956        console.info('File_mkdir_005 mkdir success');
1957        expect(null).assertFail();
1958      },
1959      fail: function (data, code) {
1960        console.info('File_mkdir_005 fail, code: ' + code + ', data: ' + data);
1961        expect(code == 300).assertTrue();
1962        done();
1963      },
1964    });
1965  });
1966
1967  /**
1968   * @tc.number SUB_STORAGE_File_mkdir_0600
1969   * @tc.name File_mkdir_006
1970   * @tc.desc Function of API, parameter too long.
1971   */
1972  it('File_mkdir_006', 0, async function (done) {
1973    let fileName = randomString(257);
1974    file.mkdir({
1975      uri: 'internal://cache/' + fileName,
1976      success: function () {
1977        console.info('File_mkdir_006 mkdir success');
1978        expect(null).assertFail();
1979      },
1980      fail: function (data, code) {
1981        console.info('File_mkdir_006 =>fail ,code:' + code + ',data: ' + data);
1982        expect(code == 300).assertTrue();
1983        done();
1984      },
1985    });
1986  });
1987
1988  /**
1989   * @tc.number SUB_STORAGE_File_mkdir_0700
1990   * @tc.name File_mkdir_007
1991   * @tc.desc Function of API, cache path.
1992   */
1993  it('File_mkdir_007', 0, async function (done) {
1994    file.mkdir({
1995      uri: 'internal://cache/File_mkdir_007d',
1996      success: function () {
1997        console.info('File_mkdir_007 mkdir success');
1998        file.rmdir({
1999          uri: 'internal://cache/File_mkdir_007d',
2000          success: function () {
2001            console.info('File_mkdir_007 delete success');
2002            done();
2003          },
2004          fail: function (data, code) {
2005            console.info('File_mkdir_007 delete fail, code: ' + code + ', data: ' + data);
2006            expect(null).assertFail();
2007          },
2008        });
2009      },
2010      fail: function (data, code) {
2011        console.info('File_mkdir_007 mkdir fail, code: ' + code + ', data: ' + data);
2012        expect(null).assertFail();
2013      },
2014    });
2015  });
2016
2017  /**
2018   * @tc.number SUB_STORAGE_File_mkdir_0800
2019   * @tc.name File_mkdir_008
2020   * @tc.desc Function of API, virtual path.
2021   */
2022  it('File_mkdir_008', 0, async function (done) {
2023    file.mkdir({
2024      uri: 'internal://cache/../files/File_mkdir_008',
2025      success: function () {
2026        console.info('File_mkdir_008 call mkdir success.');
2027        file.rmdir({
2028          uri: 'internal://cache/../files/File_mkdir_008',
2029          success: function () {
2030            console.info('File_mkdir_008 call rmdir success.');
2031            done();
2032          },
2033          fail: function (data, code) {
2034            console.info('File_mkdir_008 rmdir fail, code: ' + code + ', data: ' + data);
2035            expect(null).assertFail();
2036          },
2037        });
2038      },
2039      fail: function (data, code) {
2040        console.info('File_mkdir_008 mkdir fail, code: ' + code + ', data: ' + data);
2041        expect(null).assertFail();
2042      },
2043    });
2044  });
2045
2046  /**
2047   * @tc.number SUB_STORAGE_File_mkdir_1000
2048   * @tc.name File_mkdir_010
2049   * @tc.desc Function of API, out of package, out of package, Virtual path, save the dir authority.
2050   */
2051  it('File_mkdir_010', 0, async function (done) {
2052    file.mkdir({
2053      uri: 'internal://app/notdir/File_mkdir_010',
2054      success: function () {
2055        console.info('File_mkdir_010 call mkdir success.');
2056        expect(null).assertFail();
2057      },
2058      fail: function (data, code) {
2059        console.info('File_mkdir_010 call mkdir callback fail, code: ' + code + ', data: ' + data);
2060        expect(code == 300).assertTrue();
2061        done();
2062      },
2063      complete: function () {
2064        console.info('mkdir completed');
2065      }
2066    });
2067  });
2068
2069  /**
2070   * @tc.number SUB_STORAGE_File_rmdir_0100
2071   * @tc.name File_rmdir_001
2072   * @tc.desc Function of API, rmdir, app path.The test dir is exist, and it can be delete, the dir is empty.
2073   */
2074  it('File_rmdir_001', 0, async function (done) {
2075    file.mkdir({
2076      uri: 'internal://cache/File_rmdir_001',
2077      success: function () {
2078        console.info('File_rmdir_001 call mkdir success.');
2079        file.rmdir({
2080          uri: 'internal://cache/File_rmdir_001',
2081          success: function () {
2082            console.info('File_rmdir_001 call rmdir success.');
2083            done();
2084          },
2085          fail: function (data, code) {
2086            console.info('File_rmdir_001 rmdir fail, code: ' + code + ', data: ' + data);
2087            expect(null).assertFail();
2088          },
2089        });
2090      },
2091      fail: function (data, code) {
2092        console.info('File_rmdir_001 mkdir fail, code: ' + code + ', data: ' + data);
2093        expect(null).assertFail();
2094      },
2095    });
2096  });
2097
2098  /**
2099   * @tc.number SUB_STORAGE_File_rmdir_0200
2100   * @tc.name File_rmdir_002
2101   * @tc.desc Function of API, recursive not set value.The test dir is exist, and it not empty.
2102   */
2103  it('File_rmdir_002', 0, async function (done) {
2104    file.mkdir({
2105      uri: 'internal://app/test/File_rmdir_002',
2106      recursive: true,
2107      success: function () {
2108        console.info('File_rmdir_002 mkdir success.');
2109        file.rmdir({
2110            uri: 'internal://app/test',
2111            recursive: false,
2112            success: function () {
2113              console.info('File_rmdir_002 call rmdir success.');
2114              expect(null).assertFail();
2115            },
2116            fail: function (data, code) {
2117              console.info('File_rmdir_002 fail, code: ' + code + ', data: ' + data);
2118              expect(code == 301 || code == 300).assertTrue();
2119              done();
2120            },
2121          });
2122      },
2123      fail: function (data, code) {
2124        console.info('File_rmdir_002 fail, code: ' + code + ', data: ' + data);
2125        expect(null).assertFail();
2126      },
2127    });
2128  });
2129
2130  /**
2131   * @tc.number SUB_STORAGE_File_rmdir_0300
2132   * @tc.name File_rmdir_003
2133   * @tc.desc Function of API, recursive = ture.The test dir is exist, and it not empty.
2134   */
2135  it('File_rmdir_003', 0, async function (done) {
2136    file.mkdir({
2137      uri: 'internal://cache/test/File_rmdir_003/File_rmdir_003_1/File_rmdir_003_2',
2138      recursive: true,
2139      success: function () {
2140        console.info('File_rmdir_003 mkdir success.');
2141        file.mkdir({
2142            uri: 'internal://cache/test/File_rmdir_003_1/File_rmdir_003_1/File_rmdir_003_2',
2143            recursive: true,
2144            success: function () {
2145              console.info('File_rmdir_003 mkdir success.');
2146              file.mkdir({
2147                uri: 'internal://cache/test/File_rmdir_003_2/File_rmdir_003_1/File_rmdir_003_2',
2148                recursive: true,
2149                success: function () {
2150                  console.info('File_rmdir_003 mkdir success.');
2151                  file.rmdir({
2152                    uri: 'internal://cache/test',
2153                    recursive: true,
2154                    success: function () {
2155                      console.info('File_rmdir_003 call rmdir success.');
2156                      done();
2157                    },
2158                    fail: function (data, code) {
2159                      console.info('File_rmdir_003 , code: ' + code + ', data: ' + data);
2160                      expect(null).assertFail();
2161                    },
2162                  });
2163                },
2164                fail: function (data, code) {
2165                  console.info('File_rmdir_003 fail, code: ' + code + ', data: ' + data);
2166                  expect(null).assertFail();
2167                },
2168              });
2169            },
2170            fail: function (data, code) {
2171              console.info('File_rmdir_003 fail, code: ' + code + ', data: ' + data);
2172              expect(null).assertFail();
2173            },
2174          });
2175      },
2176      fail: function (data, code) {
2177        console.info('File_rmdir_003 fail, code: ' + code + ', data: ' + data);
2178        expect(null).assertFail();
2179      },
2180    });
2181  });
2182
2183  /**
2184   * @tc.number SUB_STORAGE_File_rmdir_0400
2185   * @tc.name File_rmdir_004
2186   * @tc.desc Function of API, error code: 202
2187   */
2188  it('File_rmdir_004', 0, async function (done) {
2189    file.rmdir({
2190      uri: '/data/accounts/account_0/appdata/ohos.acts.distributeddatamgr.distributedfile/cache/',
2191      success: function () {
2192        console.info('File_rmdir_004 call rmdir success.');
2193        expect(null).assertFail();
2194      },
2195      fail: function (data, code) {
2196        console.info('File_rmdir_004 , code: ' + code + ', data: ' + data);
2197        expect(code == 202).assertTrue();
2198        done();
2199      },
2200    });
2201  });
2202
2203  /**
2204   * @tc.number SUB_STORAGE_File_rmdir_0500
2205   * @tc.name File_rmdir_005
2206   * @tc.desc Function of API, error code: 301
2207   */
2208  it('File_rmdir_005', 0, async function (done) {
2209    file.rmdir({
2210      uri: 'internal://app/123',
2211      success: function () {
2212        console.info('File_rmdir_005 call rmdir success.');
2213        expect(null).assertFail();
2214      },
2215      fail: function (data, code) {
2216        console.info('File_rmdir_005 rmdir fail, code: ' + code + ', data: ' + data);
2217        expect(code == 301).assertTrue();
2218        done();
2219      },
2220    });
2221  });
2222
2223  /**
2224   * @tc.number SUB_STORAGE_File_rmdir_0600
2225   * @tc.name File_rmdir_006
2226   * @tc.desc Function of API, too long path.
2227   */
2228  it('File_rmdir_006', 0, async function (done) {
2229    let firstPath = randomString(255);
2230    let uri = 'internal://cache/' + firstPath;
2231    file.mkdir({
2232      uri: uri,
2233      success: function () {
2234        console.info('File_rmdir_006 mkdir success');
2235        file.rmdir({
2236          uri: uri,
2237          success: function () {
2238            console.info('File_rmdir_006 rmdir success');
2239            done();
2240          },
2241          fail: function (data, code) {
2242            console.info('File_rmdir_006 rmdir fail, code: ' + code + ', data: ' + data);
2243            expect(null).assertFail();
2244          },
2245        });
2246      },
2247      fail: function (data, code) {
2248        console.info('File_rmdir_006 mkdir fail, code: ' + code + ', data: ' + data);
2249        expect(null).assertFail();
2250      },
2251    });
2252  });
2253
2254  /**
2255   * @tc.number SUB_STORAGE_File_rmdir_0700
2256   * @tc.name File_rmdir_007
2257   * @tc.desc Function of API, cache path.The test dir is exist, and it can be delete, it is empty.
2258   */
2259  it('File_rmdir_007', 0, async function (done) {
2260    file.mkdir({
2261      uri: 'internal://cache/File_rmdir_007d',
2262      success: function () {
2263        console.info('File_rmdir_007 mkdir success');
2264        file.rmdir({
2265          uri: 'internal://cache/File_rmdir_007d',
2266          success: function () {
2267            console.info('File_rmdir_007 rmdir success');
2268            done();
2269          },
2270          fail: function (data, code) {
2271            console.info('File_rmdir_007 rmdir fail, code: ' + code + ', data: ' + data);
2272            expect(null).assertFail();
2273          },
2274        });
2275      },
2276      fail: function (data, code) {
2277        console.info('File_rmdir_007 mkdir fail, code: ' + code + ', data: ' + data);
2278        expect(null).assertFail();
2279      },
2280    });
2281  });
2282
2283  /**
2284   * @tc.number SUB_STORAGE_File_rmdir_0800
2285   * @tc.name File_rmdir_008
2286   * @tc.desc Function of API, virtual path.The test dir is exist.
2287   */
2288  it('File_rmdir_008', 0, async function (done) {
2289    file.mkdir({
2290      uri: 'internal://cache/../files/File_rmdir_008',
2291      success: function () {
2292        console.info('File_rmdir_008 call mkdir success.');
2293        file.rmdir({
2294          uri: 'internal://cache/../files/File_rmdir_008',
2295          success: function () {
2296            console.info('File_rmdir_008 call rmdir success.');
2297            done();
2298          },
2299          fail: function (data, code) {
2300            console.info('File_rmdir_008 rmdir fail, code: ' + code + ', data: ' + data);
2301            expect(null).assertFail();
2302          },
2303        });
2304      },
2305      fail: function (data, code) {
2306        console.info('File_rmdir_008 mkdir fail, code: ' + code + ', data: ' + data);
2307        expect(null).assertFail();
2308      },
2309    });
2310  });
2311
2312  /**
2313   * @tc.number SUB_STORAGE_File_rmdir_1000
2314   * @tc.name File_rmdir_010
2315   * @tc.desc Function of API, out of package, Virtual path, save the dir authority.The test dir is exist.
2316   */
2317  it('File_rmdir_010', 0, async function (done) {
2318    file.rmdir({
2319      uri: 'internal://app/../../com.ohos.systemui',
2320      success: function () {
2321        console.info('File_rmdir_010 call rmdir success.');
2322        expect(null).assertFail();
2323      },
2324      fail: function (data, code) {
2325        console.info('File_rmdir_010 call rmdir callback fail, code: ' + code + ', data: ' + data);
2326        expect(code == 301).assertTrue();
2327        done();
2328      },
2329      complete: function () {
2330        console.info('rmdir completed');
2331      }
2332    });
2333  });
2334
2335  /**
2336   * @tc.number SUB_STORAGE_File_Move_0100
2337   * @tc.name File_Move_001
2338   * @tc.desc Function of API, move.The test file is exist.
2339   */
2340  it('File_Move_001', 0, async function (done) {
2341    file.writeText({
2342      uri: 'internal://cache/File_Move_001',
2343      text: 'Text that just for test.',
2344      success: function () {
2345        console.info('File_Move_001 call writeText success.');
2346        file.move({
2347          srcUri: 'internal://cache/File_Move_001',
2348          dstUri: 'internal://cache/File_Move_001_1',
2349          success: function (data) {
2350            console.info('File_Move_001 call writeText success. data:' + data);
2351            done();
2352          },
2353          fail: function (data, code) {
2354            console.info('File_Move_001 move fail, code: ' + code + ', data: ' + data);
2355            expect(null).assertFail();
2356          },
2357        });
2358      },
2359      fail: function (data, code) {
2360        console.error('File_Move_001 call writeText fail, code: ' + code + ', data: ' + data);
2361        expect(null).assertFail();
2362      },
2363    });
2364  });
2365
2366  /**
2367   * @tc.number SUB_STORAGE_File_Move_0200
2368   * @tc.name File_Move_002
2369   * @tc.desc Function of API, document integrity.The test file is exist.
2370   */
2371  it('File_Move_002', 0, async function (done) {
2372    let typeArray = new Array('.txt', '.ppt', '.flac', '.mp4', '.so', '.zip');
2373    let dpath = await fileName('cache');
2374    fileio.mkdirSync(dpath);
2375    for (let i = 0; i < typeArray.length; i++) {
2376      let srcFpath = await fileName('File_Move_002') + typeArray[i];
2377      let dstFpath = await cacheFileName('File_Move_002') + typeArray[i];
2378      expect(prepareEmptyFile(srcFpath)).assertTrue();
2379      file.move({
2380        srcUri: 'internal://cache/../files/File_Move_002' + typeArray[i],
2381        dstUri: 'internal://cache/../files/cache/File_Move_002' + typeArray[i],
2382        success: function (uri) {
2383          console.info('File_Move_002 call move success. uri: ' + uri);
2384          done();
2385        },
2386        fail: function (data, code) {
2387          console.info('File_Move_002 , code: ' + code + ', data: ' + data);
2388          expect(null).assertFail();
2389        },
2390      });
2391    }
2392  });
2393
2394  /**
2395   * @tc.number SUB_STORAGE_File_Move_0300
2396   * @tc.name File_Move_003
2397   * @tc.desc Function of API, different size file.The test file is exist.
2398   */
2399  it('File_Move_003', 0, async function (done) {
2400    let srcFpath = await fileName('File_Move_003');
2401    expect(prepareFile(srcFpath, FILE_CONTENT)).assertTrue();
2402    let dstFpath = await cacheFileName('File_Move_003');
2403    let srcUri = 'internal://cache/../files/File_Move_003';
2404    let dstUri = 'internal://app/cache/File_Move_003';
2405    file.move({
2406      srcUri: srcUri,
2407      dstUri: dstUri,
2408      success: function () {
2409        console.info('File_Move_003 call move success.');
2410        done();
2411      },
2412      fail: function (data, code) {
2413        console.info('File_Move_003 , code: ' + code + ', data: ' + data);
2414        expect(null).assertFail();
2415      },
2416    });
2417  });
2418
2419  /**
2420   * @tc.number SUB_STORAGE_File_Move_0400
2421   * @tc.name File_Move_004
2422   * @tc.desc Function of API, error code: 202.The test file is exist.
2423   */
2424  it('File_Move_004', 0, async function (done) {
2425    let srcFpath = await fileName('File_Move_004');
2426    expect(prepareFile(srcFpath, FILE_CONTENT)).assertTrue();
2427    file.move({
2428      srcUri: 'internal://app/File_Move_004',
2429      dstUri: null,
2430      success: function () {
2431        console.info('File_Move_004 call move success.');
2432        expect(null).assertFail();
2433      },
2434      fail: function (data, code) {
2435        console.info('File_Move_004 , code: ' + code + ', data: ' + data);
2436        expect(code == 202).assertTrue();
2437        done();
2438      },
2439    });
2440  });
2441
2442  /**
2443   * @tc.number SUB_STORAGE_File_Move_0500
2444   * @tc.name File_Move_005
2445   * @tc.desc Function of API, error code: 300.The test file is exist.
2446   */
2447  it('File_Move_005', 0, async function (done) {
2448    let srcDpath = await fileName('File_Move_005d');
2449    fileio.mkdirSync(srcDpath);
2450    file.move({
2451      srcUri: 'internal://cache/../files/File_Move_005d',
2452      dstUri: 'internal://app/cache/File_Move_005d',
2453      success: function () {
2454        console.info('File_Move_005 call move success.');
2455        done();
2456      },
2457      fail: function (data, code) {
2458        console.info('File_Move_005 , code: ' + code + ', data: ' + data);
2459        expect(null).assertFail();
2460      },
2461    });
2462  });
2463
2464  /**
2465   * @tc.number SUB_STORAGE_File_Move_0600
2466   * @tc.name File_Move_006
2467   * @tc.desc Function of API, error code: 301.The test file is not exist.
2468   */
2469  it('File_Move_006', 0, async function (done) {
2470    let dstUri = await fileName('File_Move_006');
2471    expect(prepareFile(dstUri, FILE_CONTENT)).assertTrue();
2472    file.move({
2473      srcUri: 'internal://app/File_Move',
2474      dstUri: 'internal://app/File_Move_006',
2475      success: function () {
2476        console.info('File_Move_006 call move success.');
2477        expect(null).assertFail();
2478      },
2479      fail: function (data, code) {
2480        console.info('File_Move_006 , code: ' + code + ', data: ' + data);
2481        expect(code == 301).assertTrue();
2482        done();
2483      },
2484    });
2485  });
2486
2487  /**
2488   * @tc.number SUB_STORAGE_File_Move_0700
2489   * @tc.name File_Move_007
2490   * @tc.desc Function of API, uri more too long.
2491   */
2492  it('File_Move_007', 0, async function (done) {
2493    let firstPath = randomString(32);
2494    let dpath = await fileName(firstPath);
2495    let uri = 'internal://app/' + firstPath;
2496    fileio.mkdirSync(dpath);
2497    for (let i = 0; i < 16; i++) {
2498      console.info('time' + i);
2499      let sonPath = randomString(251);
2500      uri = uri + '/f' + sonPath;
2501    }
2502    file.move({
2503      srcUri: uri,
2504      dstUri: 'internal://cache/File_Move_007',
2505      success: function () {
2506        console.info('File_Move_007 => move success');
2507        expect(null).assertFail();
2508      },
2509      fail: function (data, code) {
2510        console.info('File_Move_007 => move fail');
2511        expect(code == 300).assertTrue();
2512        done();
2513      },
2514    });
2515    fileio.rmdirSync(dpath);
2516  });
2517
2518  /**
2519   * @tc.number SUB_STORAGE_File_Move_0800
2520   * @tc.name File_Move_008
2521   * @tc.desc Function of API, cache path.The test file is exist.
2522   */
2523  it('File_Move_008', 0, async function (done) {
2524    file.writeText({
2525      uri: 'internal://cache/File_Move_008',
2526      text: 'sss',
2527      success: function () {
2528        console.info('File_Move_008 writeText success ');
2529        file.move({
2530          srcUri: 'internal://cache/File_Move_008',
2531          dstUri: 'internal://app/File_Move_008',
2532          success: function (uri) {
2533            console.info('File_Move_008 move pass, uri:' + uri);
2534            file.delete({
2535              uri: 'internal://app/File_Move_008',
2536              success: function () {
2537                console.info('File_Move_008 delete success');
2538                done();
2539              },
2540              fail: function (data, code) {
2541                console.info('File_Move_008 delete fail, code: ' + code + ', data: ' + data);
2542                expect(null).assertFail();
2543              },
2544            });
2545          },
2546          fail: function (data, code) {
2547            console.info('File_Move_008 move fail, code: ' + code + ', data: ' + data);
2548            expect(null).assertFail();
2549          },
2550        });
2551      },
2552      fail: function (data, code) {
2553        console.info('File_Move_008 writeText fail, code: ' + code + ', data: ' + data);
2554        expect(null).assertFail();
2555      },
2556    });
2557  });
2558
2559  /**
2560   * @tc.number SUB_STORAGE_File_Move_0900
2561   * @tc.name File_Move_009
2562   * @tc.desc Function of API, same path.
2563   */
2564  it('File_Move_009', 0, async function (done) {
2565    let srcFpath = await fileName('File_Move_009');
2566    expect(prepareFile(srcFpath, FILE_CONTENT)).assertTrue();
2567    file.move({
2568      srcUri: 'internal://app/File_Move_009',
2569      dstUri: 'internal://app/File_Move_009',
2570      success: function (data) {
2571        console.info('File_Move_009 => pass');
2572        done();
2573      },
2574      fail: function (data, code) {
2575        console.info('File_Move_009 call move fail, code: ' + code + ', data: ' + data);
2576        expect(null).assertFail();
2577      },
2578    });
2579  });
2580
2581  /**
2582   * @tc.number SUB_STORAGE_File_Move_1000
2583   * @tc.name File_Move_010
2584   * @tc.desc Function of API, dstFpath has same file.
2585   */
2586  it('File_Move_010', 0, async function (done) {
2587    let srcFpath = await fileName('File_Move_010');
2588    let dstFpath = await cacheFileName('File_Move_010');
2589    expect(prepareFile(srcFpath, 'aaa')).assertTrue();
2590    expect(prepareFile(dstFpath, 'bbb')).assertTrue();
2591    file.move({
2592      srcUri: 'internal://app/File_Move_010',
2593      dstUri: 'internal://app/cache/File_Move_010',
2594      success: function (data) {
2595        console.info('File_Move_010 => pass');
2596        expect(null).assertFail();
2597      },
2598      fail: function (data, code) {
2599        console.info('File_Move_010 , code: ' + code + ', data: ' + data);
2600        expect(code == 300).assertTrue();
2601        done();
2602      },
2603    });
2604  });
2605
2606  /**
2607   * @tc.number SUB_STORAGE_File_Move_1100
2608   * @tc.name File_Move_011
2609   * @tc.desc Function of API, move app path file to cache path.
2610   */
2611  it('File_Move_011', 0, async function (done) {
2612    let srcFpath = await fileName('File_Move_011');
2613    expect(prepareFile(srcFpath, FILE_CONTENT)).assertTrue();
2614    file.move({
2615      srcUri: 'internal://cache/../files/File_Move_011',
2616      dstUri: 'internal://cache/File_Move_011',
2617      success: function (uri) {
2618        console.info('File_Move_011 => pass, uri' + uri);
2619        done();
2620      },
2621      fail: function (data, code) {
2622        console.info('File_Move_011 , code: ' + code + ', data: ' + data);
2623        expect(null).assertFail();
2624      },
2625    });
2626  });
2627
2628  /**
2629   * @tc.number SUB_STORAGE_File_Move_1200
2630   * @tc.name File_Move_012
2631   * @tc.desc Function of API, out of package, Virtual path(create and give 777 authority).
2632   */
2633  it('File_Move_012', 0, async function (done) {
2634    let srcFpath = await fileName('File_Move_012');
2635    expect(prepareFile(srcFpath, FILE_CONTENT)).assertTrue();
2636    file.move({
2637      srcUri: 'internal://app/../files/File_Move_012',
2638      dstUri: 'internal://app/notdir/File_Move_012',
2639      success: function (uri) {
2640        console.info('File_Move_012 => pass, uri' + uri);
2641        expect(null).assertFail();
2642      },
2643      fail: function (data, code) {
2644        console.info('File_Move_012 , code: ' + code + ', data: ' + data);
2645        expect(code == 300).assertTrue();
2646        done();
2647      },
2648    });
2649  });
2650
2651  /**
2652   * @tc.number SUB_STORAGE_File_Move_1400
2653   * @tc.name File_Move_014
2654   * @tc.desc Function of API, check back value.
2655   */
2656  it('File_Move_014', 0, async function (done) {
2657    let srcFpath = await fileName('File_Move_014');
2658    let dstFpath = await cacheFileName('File_Move_014');
2659    expect(prepareFile(srcFpath, 'test')).assertTrue();
2660    let dstUri = 'internal://cache/File_Move_014';
2661    file.move({
2662      srcUri: 'internal://cache/../files/File_Move_014',
2663      dstUri: dstUri,
2664      success: function (uri) {
2665        console.info('File_Move_014 move pass');
2666        done();
2667      },
2668      fail: function (data, code) {
2669        console.info('File_Move_014 => fail , code: ' + code + ', data: ' + data);
2670        expect(null).assertFail();
2671      },
2672      complete: function () {
2673        console.info('move completed');
2674      }
2675    });
2676  });
2677
2678  /**
2679   * @tc.number SUB_STORAGE_File_Copy_0100
2680   * @tc.name File_Copy_001
2681   * @tc.desc Function of API, copy, app path.The test file is exist.
2682   */
2683  it('File_Copy_001', 0, async function (done) {
2684    let srcFpath = await fileName('File_Copy_001');
2685    let dstFpath = await cacheFileName('File_Copy_001');
2686    expect(prepareFile(srcFpath, 'test.')).assertTrue();
2687    file.copy({
2688      srcUri: 'internal://cache/../files/File_Copy_001',
2689      dstUri: 'internal://cache/../files/cache/File_Copy_001',
2690      success: function () {
2691        console.info('File_Copy_001 call copy success.');
2692        file.readText({
2693          uri: 'internal://cache/../files/cache/File_Copy_001',
2694          success: function (data) {
2695            console.info('File_Copy_001 read success:' );
2696            fileio.unlinkSync(srcFpath);
2697            fileio.unlinkSync(dstFpath);
2698            done();
2699          },
2700          fail: function (data, code) {
2701            console.info('File_Copy_001 readText fail, code: ' + code + ', data: ' + data);
2702            expect(null).assertFail();
2703          },
2704        });
2705      },
2706      fail: function (data, code) {
2707        console.info('File_Copy_001 copy fail, code: ' + code + ', data: ' + data);
2708        expect(null).assertFail();
2709      },
2710    });
2711  });
2712
2713  /**
2714   * @tc.number SUB_STORAGE_File_Copy_0200
2715   * @tc.name File_Copy_002
2716   * @tc.desc Function of API, document integrity.The test file is exist.
2717   */
2718  it('File_Copy_002', 0, async function (done) {
2719    let typeArray = new Array('.txt', '.ppt', '.flac', '.mp4', '.so', '.zip');
2720    for (let i = 0; i < typeArray.length; i++) {
2721      let srcFpath = await fileName('File_Copy_002') + typeArray[i];
2722      let dstFpath = await cacheFileName('File_Copy_002') + typeArray[i];
2723      expect(prepareEmptyFile(srcFpath)).assertTrue();
2724      file.copy({
2725        srcUri: 'internal://cache/../files/File_Copy_002' + typeArray[i],
2726        dstUri: 'internal://cache/../files/cache/File_Copy_002' + typeArray[i],
2727        success: function () {
2728          console.info('File_Copy_002 call copy success.');
2729          file.delete('internal://cache/../files/File_Copy_002' + typeArray[i]);
2730          file.delete('internal://cache/../files/cache/File_Copy_002' + typeArray[i]);
2731          done();
2732        },
2733        fail: function (data, code) {
2734          console.info('File_Copy_002 , code: ' + code + ', data: ' + data);
2735          expect(null).assertFail();
2736        },
2737      });
2738    }
2739  });
2740
2741  /**
2742   * @tc.number SUB_STORAGE_File_Copy_0300
2743   * @tc.name File_Copy_003
2744   * @tc.desc Function of API, different size of files. The test file is exist.
2745   */
2746  it('File_Copy_003', 0, async function (done) {
2747    let srcFpath = await fileName('File_Copy_003');
2748    expect(prepareFile(srcFpath, FILE_CONTENT)).assertTrue();
2749    let dstFpath = await cacheFileName('File_Copy_003');
2750    file.copy({
2751      srcUri: 'internal://cache/../files/File_Copy_003',
2752      dstUri: 'internal://cache/../files/cache/File_Copy_003',
2753      success: function () {
2754        console.info('File_Copy_003 call copy success.');
2755        file.readText({
2756          uri: 'internal://cache/../files/cache/File_Copy_003',
2757          success: function (data) {
2758            console.info('File_Copy_003 readText success, data.text:');
2759            fileio.unlinkSync(srcFpath);
2760            fileio.unlinkSync(dstFpath);
2761            done();
2762          },
2763          fail: function (data, code) {
2764            console.info('File_Copy_003 readText fail, code: ' + code + ', data: ' + data);
2765            expect(null).assertFail();
2766          },
2767        });
2768      },
2769      fail: function (data, code) {
2770        console.info('File_Copy_003 copy fail, code: ' + code + ', data: ' + data);
2771        expect(null).assertFail();
2772      },
2773    });
2774  });
2775
2776  /**
2777   * @tc.number SUB_STORAGE_File_Copy_0400
2778   * @tc.name File_Copy_004
2779   * @tc.desc Function of API, error code: 202 The test file is exist.
2780   */
2781  it('File_Copy_004', 0, async function (done) {
2782    let srcFpath = await fileName('File_Copy_004');
2783    expect(prepareFile(srcFpath, FILE_CONTENT)).assertTrue();
2784    file.copy({
2785      srcUri: 'internal://app/File_Copy_004',
2786      dstUri: null,
2787      success: function () {
2788        console.info('File_Copy_004 call copy success.');
2789        expect(null).assertFail();
2790      },
2791      fail: function (data, code) {
2792        console.info('File_Copy_004 , code: ' + code + ', data: ' + data);
2793        expect(code == 202).assertTrue();
2794        fileio.unlinkSync(srcFpath);
2795        done();
2796      },
2797    });
2798  });
2799
2800  /**
2801   * @tc.number SUB_STORAGE_File_Copy_0500
2802   * @tc.name File_Copy_005
2803   * @tc.desc Function of API, error code: 300
2804   */
2805
2806  it('File_Copy_005', 0, async function (done) {
2807    file.mkdir({
2808      uri: 'internal://cache/File_Copy_005d',
2809      success: function () {
2810        console.info('File_Copy_005 call mkdir success.');
2811        file.copy({
2812          srcUri: 'internal://cache/File_Copy_005d',
2813          dstUri: 'internal://cache/File_Copy_005d_1',
2814          success: function () {
2815            console.info('File_Copy_005 call copy success.');
2816            done();
2817          },
2818          fail: function (data, code) {
2819            console.info('File_Copy_005 , code: ' + code + ', data: ' + data);
2820            expect(null).assertFail();
2821          },
2822        });
2823      },
2824      fail: function (data, code) {
2825        console.error('File_Copy_005 call mkdir fail, code: ' + code + ', data: ' + data);
2826        expect(null).assertFail();
2827      },
2828    });
2829  });
2830
2831  /**
2832   * @tc.number SUB_STORAGE_File_Copy_0600
2833   * @tc.name File_Copy_006
2834   * @tc.desc Function of API, error code: 301
2835   */
2836  it('File_Copy_006', 0, async function (done) {
2837    file.copy({
2838      srcUri: 'internal://app/fakepath',
2839      dstUri: 'internal://app/fakepath1',
2840      success: function () {
2841        console.info('File_Copy_006 call copy success.');
2842        expect(null).assertFail();
2843      },
2844      fail: function (data, code) {
2845        console.info('File_Copy_006 , code: ' + code + ', data: ' + data);
2846        expect(code == 301).assertTrue();
2847        done();
2848      },
2849    });
2850  });
2851
2852  /**
2853   * @tc.number SUB_STORAGE_File_Copy_0700
2854   * @tc.name File_Copy_007
2855   * @tc.desc Function of API, uri too long.
2856   */
2857  it('File_Copy_007', 0, async function (done) {
2858    let firstPath = randomString(32);
2859    let dpath = await fileName(firstPath);
2860    let uri = 'internal://cache/' + firstPath;
2861    fileio.mkdirSync(dpath);
2862    for (let i = 0; i < 16; i++) {
2863      console.info('time' + i);
2864      let sonPath = randomString(251);
2865      uri = uri + '/f' + sonPath;
2866    }
2867    file.copy({
2868      srcUri: uri,
2869      dstUri: uri,
2870      success: function () {
2871        console.info('File_Copy_007 => copy success');
2872        expect(null).assertFail();
2873      },
2874      fail: function (data, code) {
2875        console.info('File_Copy_007 => fail, code: ' + code + ', data: ' + data);
2876        fileio.rmdirSync(dpath);
2877        expect(code == 300).assertTrue();
2878        done();
2879      },
2880    });
2881  });
2882
2883  /**
2884   * @tc.number SUB_STORAGE_File_Copy_0800
2885   * @tc.name File_Copy_008
2886   * @tc.desc Function of API, cache path.
2887   */
2888  it('File_Copy_008', 0, async function (done) {
2889    file.writeText({
2890      uri: 'internal://cache/File_Copy_008',
2891      text: 'test',
2892      success: function () {
2893        console.info('File_Copy_008 mkdir success');
2894        file.copy({
2895          srcUri: 'internal://cache/File_Copy_008',
2896          dstUri: 'internal://cache/../files/File_Copy_008',
2897          success: function () {
2898            console.info('File_Copy_008 copy success');
2899            file.delete({
2900              uri: 'internal://cache/../files/File_Copy_008',
2901              success: function () {
2902                console.info('File_Copy_008 delete success ');
2903                file.delete({
2904                  uri: 'internal://cache/File_Copy_008',
2905                  success: function () {
2906                    console.info('File_Copy_008 delete success');
2907                    done();
2908                  },
2909                  fail: function (data, code) {
2910                    console.info('File_Copy_008 cache delete fail, code: ' + code + ', data: ' + data);
2911                    expect(null).assertFail();
2912                  },
2913                });
2914              },
2915              fail: function (data, code) {
2916                console.info('File_Copy_008 files delete fail, code: ' + code + ', data: ' + data);
2917                expect(null).assertFail();
2918              },
2919            });
2920          },
2921          fail: function (data, code) {
2922            console.info('File_Copy_008 copy fail, code: ' + code + ', data: ' + data);
2923            expect(null).assertFail();
2924          },
2925        });
2926      },
2927      fail: function (data, code) {
2928        console.info('File_Copy_008 writeText fail, code: ' + code + ', data: ' + data);
2929        expect(null).assertFail();
2930      },
2931    });
2932  });
2933
2934  /**
2935   * @tc.number SUB_STORAGE_File_Copy_0900
2936   * @tc.name File_Copy_009
2937   * @tc.desc Function of API, same path.
2938   */
2939  it('File_Copy_009', 0, async function (done) {
2940    let srcFpath = await fileName('File_Copy_009');
2941    expect(prepareFile(srcFpath, FILE_CONTENT)).assertTrue();
2942    file.copy({
2943      srcUri: 'internal://app/File_Copy_009',
2944      dstUri: 'internal://app/File_Copy_009',
2945      success: function (data) {
2946        console.info('File_Copy_009 => pass');
2947        fileio.unlinkSync(srcFpath);
2948        done();
2949      },
2950      fail: function (data, code) {
2951        console.info('File_Copy_009 , code: ' + code + ', data: ' + data);
2952        expect(null).assertFail();
2953      },
2954    });
2955  });
2956
2957  /**
2958   * @tc.number SUB_STORAGE_File_Copy_1000
2959   * @tc.name File_Copy_010
2960   * @tc.desc Function of API, dstFpath path has same file.
2961   */
2962  it('File_Copy_010', 0, async function (done) {
2963    let srcFpath = await fileName('File_Copy_010');
2964    let dstFpath = await cacheFileName('File_Copy_010');
2965    expect(prepareFile(srcFpath, 'aaa')).assertTrue();
2966    expect(prepareFile(dstFpath, 'bbb')).assertTrue();
2967    file.copy({
2968      srcUri: 'internal://app/File_Copy_010',
2969      dstUri: 'internal://app/cache/File_Copy_010',
2970      success: function (data) {
2971        console.info('File_Copy_010 => pass');
2972        expect(null).assertFail();
2973      },
2974      fail: function (data, code) {
2975        console.info('File_Copy_010 , code: ' + code + ', data: ' + data);
2976        console.info("code::" + code);
2977        expect(code == 300).assertTrue();
2978        fileio.unlinkSync(srcFpath);
2979        fileio.unlinkSync(dstFpath);
2980        done();
2981      },
2982    });
2983  });
2984
2985  /**
2986   * @tc.number SUB_STORAGE_File_Copy_1100
2987   * @tc.name File_Copy_011
2988   * @tc.desc Function of API, copy file to cache path.The test file is exist.
2989   */
2990  it('File_Copy_011', 0, async function (done) {
2991    let srcFpath = await fileName('File_Copy_011');
2992    expect(prepareFile(srcFpath, 'test.')).assertTrue();
2993    file.copy({
2994      srcUri: 'internal://cache/../files/File_Copy_011',
2995      dstUri: 'internal://cache/File_Copy_011',
2996      success: function () {
2997        console.info('File_Copy_011 copy pass');
2998        file.readText({
2999          uri: 'internal://cache/File_Copy_011',
3000          success: function (data) {
3001            console.info('File_Copy_011 read success:' );
3002            done();
3003          },
3004          fail: function (data, code) {
3005            console.info('File_Copy_011 readText fail, code: ' + code + ', data: ' + data);
3006            expect(null).assertFail();
3007          },
3008        });
3009      },
3010      fail: function (data, code) {
3011        console.info('File_Copy_011 copy fail, code: ' + code + ', data: ' + data);
3012        expect(null).assertFail();
3013      },
3014    });
3015  });
3016
3017  /**
3018   * @tc.number SUB_STORAGE_File_Copy_1200
3019   * @tc.name File_Copy_012
3020   * @tc.desc Function of API, out of package, Virtual path(create and give 777 authority).The test file is exist.
3021   */
3022  it('File_Copy_012', 0, async function (done) {
3023    let srcFpath = await fileName('File_Copy_012');
3024    expect(prepareFile(srcFpath, 'test')).assertTrue();
3025    file.copy({
3026      srcUri: 'internal://app/../files/File_Copy_012',
3027      dstUri: 'internal://app/notdir/File_Move_012',
3028      success: function () {
3029        console.info('File_Copy_012 copy pass');
3030        expect(null).assertFail();
3031      },
3032      fail: function (data, code) {
3033        console.info('File_Copy_012 , code: ' + code + ', data: ' + data);
3034        expect(code == 300).assertTrue();
3035        fileio.unlinkSync(srcFpath);
3036        done();
3037      },
3038    });
3039  });
3040
3041  /**
3042   * @tc.number SUB_STORAGE_File_Copy_1400
3043   * @tc.name File_Copy_014
3044   * @tc.desc Function of API, check back value.The test file is exist.
3045   */
3046
3047  it('File_Copy_014', 0, async function (done) {
3048    let srcFpath = await fileName('File_Copy_014');
3049    let dstFpath = await cacheFileName('File_Copy_014');
3050    expect(prepareFile(srcFpath, 'test')).assertTrue();
3051    let dstUri = 'internal://cache/File_Copy_014';
3052    file.copy({
3053      srcUri: 'internal://cache/../files/File_Copy_014',
3054      dstUri: dstUri,
3055      success: function (uri) {
3056        console.info('File_Copy_014 copy pass');
3057        done();
3058      },
3059      fail: function (data, code) {
3060        console.info('File_Copy_014 => fail , code: ' + code + ', data: ' + data);
3061        expect(null).assertFail();
3062      },
3063      complete: function () {
3064        console.info('copy completed');
3065      }
3066    });
3067  });
3068
3069  /**
3070   * @tc.number SUB_STORAGE_File_List_0100
3071   * @tc.name File_List_001
3072   * @tc.desc Function of API, list.The test file and dir are exist.
3073   */
3074  it('File_List_001', 0, async function (done) {
3075    let dpath = await fileName('File_List_001') + 'd';
3076    let fpath = dpath + '/File_List_001';
3077    let ddpath = dpath + '/File_List_001_1d';
3078    fileio.mkdirSync(dpath);
3079    fileio.mkdirSync(ddpath);
3080    expect(prepareFile(fpath, FILE_CONTENT)).assertTrue();
3081    file.list({
3082      uri: 'internal://cache/../files/File_List_001d',
3083      success: function (data) {
3084        console.info('File_List_001 call list success.' + JSON.stringify(data.fileList));
3085        fileio.unlinkSync(fpath);
3086        fileio.rmdirSync(ddpath);
3087        fileio.rmdirSync(dpath);
3088        done();
3089      },
3090      fail: function (data, code) {
3091        console.info('File_List_001 , code: ' + code + ', data: ' + data);
3092        expect(null).assertFail();
3093      },
3094    });
3095  });
3096
3097  /**
3098   * @tc.number SUB_STORAGE_File_List_0200
3099   * @tc.name File_List_002
3100   * @tc.desc Function of API, set value of uri.The test file and dir are exist.
3101   */
3102  it('File_List_002', 0, async function (done) {
3103    let dpath = await fileName('File_List_002') + 'd';
3104    let fpath = dpath + '/File_List_002';
3105    let ddpath = dpath + '/File_List_002_1d';
3106    fileio.mkdirSync(dpath);
3107    fileio.mkdirSync(ddpath);
3108    expect(prepareFile(fpath, FILE_CONTENT)).assertTrue();
3109    file.list({
3110      uri: 'internal://cache/../files/File_List_002d',
3111      success: function (data) {
3112        console.info('File_List_002 call list success.' + JSON.stringify(data.fileList));
3113        fileio.unlinkSync(fpath);
3114        fileio.rmdirSync(ddpath);
3115        fileio.rmdirSync(dpath);
3116        done();
3117      },
3118      fail: function (data, code) {
3119        console.info('File_List_002 , code: ' + code + ', data: ' + data);
3120        expect(null).assertFail();
3121      },
3122    });
3123  });
3124
3125  /**
3126   * @tc.number SUB_STORAGE_File_List_0300
3127   * @tc.name File_List_003
3128   * @tc.desc Function of API, check lastModifiedTime.The test file and dir are exist.
3129   */
3130  it('File_List_003', 0, async function (done) {
3131    let dpath = await fileName('File_List_003') + 'd';
3132    let fpath = dpath + '/File_List_003';
3133    let ddpath = dpath + '/File_List_003_1d';
3134    fileio.mkdirSync(dpath);
3135    fileio.mkdirSync(ddpath);
3136    expect(prepareFile(fpath, FILE_CONTENT)).assertTrue();
3137    file.list({
3138      uri: 'internal://cache/../files/File_List_003d',
3139      success: function (data) {
3140        console.info('File_List_003 call list success.' + JSON.stringify(data.fileList));
3141        done();
3142      },
3143      fail: function (data, code) {
3144        console.info('File_List_003 , code: ' + code + ', data: ' + data);
3145        expect(null).assertFail();
3146      },
3147    });
3148    file.writeText({
3149      uri: 'internal://cache/../files/File_List_003d/File_List_003',
3150      text: '1',
3151      success: function (data) {
3152        console.info('File_List_003 call write success.');
3153        done();
3154      },
3155      fail: function (data, code) {
3156        console.info('File_List_003 , code: ' + code + ', data: ' + data);
3157        expect(null).assertFail();
3158      },
3159    });
3160    file.list({
3161      uri: 'internal://cache/../files/File_List_003d',
3162      success: function (data) {
3163        console.info('File_List_003 call list success.' + JSON.stringify(data.fileList));
3164        fileio.unlinkSync(fpath);
3165        fileio.rmdirSync(ddpath);
3166        fileio.rmdirSync(dpath);
3167        done();
3168      },
3169      fail: function (data, code) {
3170        console.info('File_List_003 , code: ' + code + ', data: ' + data);
3171        expect(null).assertFail();
3172      },
3173    });
3174  });
3175
3176  /**
3177   * @tc.number SUB_STORAGE_File_List_0400
3178   * @tc.name File_List_004
3179   * @tc.desc Function of API, check length.The test file and dir are exist.
3180   */
3181  it('File_List_004', 0, async function (done) {
3182    let dpath = await fileName('File_List_004') + 'd';
3183    let fpath = dpath + '/File_List_004';
3184    let ddpath = dpath + '/File_List_004_1d';
3185    fileio.mkdirSync(dpath);
3186    fileio.mkdirSync(ddpath);
3187    expect(prepareFile(fpath, FILE_CONTENT)).assertTrue();
3188    file.list({
3189      uri: 'internal://cache/../files/File_List_004d',
3190      success: function (data) {
3191        console.info('File_List_004 call list success.');
3192        done();
3193      },
3194      fail: function (data, code) {
3195        console.info('File_List_004 , code: ' + code + ', data: ' + data);
3196        expect(null).assertFail();
3197      },
3198    });
3199  });
3200
3201  /**
3202   * @tc.number SUB_STORAGE_File_List_0500
3203   * @tc.name File_List_005
3204   * @tc.desc Function of API, check type.The test file and dir are exist.
3205   */
3206  it('File_List_005', 0, async function (done) {
3207    let dpath = await fileName('File_List_005') + 'd';
3208    let fpath = dpath + '/File_List_005';
3209    let ddpath = dpath + '/File_List_005_1d';
3210    fileio.mkdirSync(dpath);
3211    fileio.mkdirSync(ddpath);
3212    expect(prepareFile(fpath, FILE_CONTENT)).assertTrue();
3213    file.list({
3214      uri: 'internal://cache/../files/File_List_005d',
3215      success: function (data) {
3216        console.info('File_List_005 call list success.');
3217        done();
3218      },
3219      fail: function (data, code) {
3220        console.info('File_List_005 , code: ' + code + ', data: ' + data);
3221        expect(null).assertFail();
3222      },
3223    });
3224  });
3225
3226  /**
3227   * @tc.number SUB_STORAGE_File_List_0600
3228   * @tc.name File_List_006
3229   * @tc.desc Function of API, error code:202
3230   */
3231  it('File_List_006', 0, async function (done) {
3232    let dpath = await fileName('File_List_006') + 'd'
3233    file.list({
3234      uri: dpath,
3235      success: function (data) {
3236        console.info('File_List_006 call list success.' + data.fileList);
3237        expect(null).assertFail();
3238      },
3239      fail: function (data, code) {
3240        console.info('File_List_006 , code: ' + code + ', data: ' + data);
3241        expect(code == 202).assertTrue();
3242        done();
3243      },
3244    });
3245  });
3246
3247  /**
3248   * @tc.number SUB_STORAGE_File_List_0700
3249   * @tc.name File_List_007
3250   * @tc.desc Function of API, uri set value of file.
3251   */
3252  it('File_List_007', 0, async function (done) {
3253    let fpath = await fileName('File_List_007');
3254    expect(prepareFile(fpath, FILE_CONTENT)).assertTrue();
3255    file.list({
3256      uri: 'internal://cache/../files/File_List_007',
3257      success: function (data) {
3258        console.info('File_List_007 pass, data.fileList:' + JSON.stringify(data.fileList));
3259        fileio.unlinkSync(fpath);
3260        done();
3261      },
3262      fail: function (data, code) {
3263        console.info('File_List_007 , code: ' + code + ', data: ' + data);
3264        expect(null).assertFail();
3265      },
3266    });
3267  });
3268
3269  /**
3270   * @tc.number SUB_STORAGE_File_List_0800
3271   * @tc.name File_List_008
3272   * @tc.desc Function of API, error code: 301
3273   */
3274  it('File_List_008', 0, async function (done) {
3275    file.list({
3276      uri: 'internal://app/fakepath',
3277      success: function (data) {
3278        console.info('File_List_008 call list success.' + JSON.stringify(data.fileList));
3279        expect(null).assertFail();
3280      },
3281      fail: function (data, code) {
3282        console.info('File_List_008 , code: ' + code + ', data: ' + data);
3283        expect(code == 301).assertTrue();
3284        done();
3285      },
3286    });
3287  });
3288
3289  /**
3290   * @tc.number SUB_STORAGE_File_List_0900
3291   * @tc.name File_List_009
3292   * @tc.desc Function of API, uri too long.
3293   */
3294  it('File_List_009', 0, async function (done) {
3295    let firstPath = randomString(32);
3296    let dpath = await fileName(firstPath);
3297    let uri = 'internal://app/' + firstPath;
3298    fileio.mkdirSync(dpath);
3299    for (let i = 0; i < 16; i++) {
3300      console.info('time' + i);
3301      let sonPath = randomString(251);
3302      uri = uri + '/f' + sonPath;
3303    }
3304    file.list({
3305      uri: uri,
3306      success: function (data) {
3307        console.info('File_List_009 => pass' + data);
3308        expect(null).assertFail();
3309      },
3310      fail: function (data, code) {
3311        console.info('File_List_009 , code: ' + code + ', data: ' + data);
3312        expect(code == 300).assertTrue();
3313        fileio.rmdirSync(dpath);
3314        done();
3315      },
3316    });
3317  });
3318
3319  /**
3320   * @tc.number SUB_STORAGE_File_List_1000
3321   * @tc.name File_List_010
3322   * @tc.desc Function of API, cache path.The test file and dir are exist.
3323   */
3324  it('File_List_010', 0, async function (done) {
3325    let dpath = await nextFileName('File_List_010d');
3326    let fpath = dpath + '/File_List_010';
3327    let ffpath = dpath + '/File_List_010_1';
3328    let ddpath = dpath + '/File_List_010_1d';
3329    let fffpath = ddpath + '/File_List_010_2';
3330    try {
3331      fileio.mkdirSync(dpath);
3332      fileio.mkdirSync(ddpath);
3333      expect(prepareFile(fpath, FILE_CONTENT)).assertTrue();
3334      expect(prepareFile(ffpath, FILE_CONTENT)).assertTrue();
3335      expect(prepareFile(fffpath, FILE_CONTENT)).assertTrue();
3336    }
3337    catch (e) {
3338      console.info('File_List_010 has failed for ' + e);
3339      expect(null).assertFail();
3340    }
3341    file.list({
3342      uri: 'internal://cache/File_List_010d',
3343      success: function (data) {
3344        console.info('File_List_010 => pass' + JSON.stringify(data.fileList));
3345        fileio.unlinkSync(fpath);
3346        fileio.unlinkSync(ffpath);
3347        fileio.unlinkSync(fffpath);
3348        fileio.rmdirSync(ddpath);
3349        fileio.rmdirSync(dpath);
3350        done();
3351      },
3352      fail: function (data, code) {
3353        console.info('File_List_010 fail, code: ' + code + ', data: ' + data);
3354        expect(null).assertFail();
3355      },
3356    });
3357  });
3358
3359  /**
3360   * @tc.number SUB_STORAGE_File_List_1100
3361   * @tc.name File_List_011
3362   * @tc.desc Function of API, virtual path.The test dir are exist.
3363   */
3364  it('File_List_011', 0, async function (done) {
3365    let dpath = await fileName('File_List_011') + 'd';
3366    let fpath = dpath + '/File_List_011';
3367    let ddpath = dpath + '/File_List_011_1d';
3368    fileio.mkdirSync(dpath);
3369    fileio.mkdirSync(ddpath);
3370    expect(prepareFile(fpath, FILE_CONTENT)).assertTrue();
3371    file.list({
3372      uri: 'internal://cache/../files/File_List_011d',
3373      success: function (data) {
3374        console.info('File_List_011 call list success.' + JSON.stringify(data.fileList));
3375        fileio.unlinkSync(fpath);
3376        fileio.rmdirSync(ddpath);
3377        fileio.rmdirSync(dpath);
3378        done();
3379      },
3380      fail: function (data, code) {
3381        console.info('File_List_011 fail, code: ' + code + ', data: ' + data);
3382        expect(null).assertFail();
3383      },
3384    });
3385  });
3386
3387  /**
3388   * @tc.number SUB_STORAGE_File_List_1200
3389   * @tc.name Function of API, out of package, Virtual path(create and give 777 authority).
3390   * @tc.desc The test dir are exist.
3391   */
3392  it('File_List_012', 0, async function (done) {
3393    file.list({
3394      uri: 'internal://cache/../files/../../',
3395      success: function (data) {
3396        console.info('File_List_012 call list success.' + JSON.stringify(data.fileList));
3397        done();
3398      },
3399      fail: function (data, code) {
3400        console.info('File_List_012 fail, code: ' + code + ', data: ' + data);
3401        expect(null).assertFail();
3402      },
3403      complete: function () {
3404        console.info('list completed');
3405      }
3406    });
3407  });
3408
3409  /**
3410   * @tc.number SUB_STORAGE_File_Get_0100
3411   * @tc.name File_Get_001
3412   * @tc.desc Function of API, Get.The test file is exist.
3413   */
3414  it('File_Get_001', 0, async function (done) {
3415    let fpath = await fileName('File_Get_001');
3416    expect(prepareFile(fpath, FILE_CONTENT)).assertTrue();
3417    file.get({
3418      uri: 'internal://cache/../files/File_Get_001',
3419      recursive: true,
3420      success: function (data) {
3421        console.info('File_Get_001 pass,data.uri:' );
3422        fileio.unlinkSync(fpath);
3423        done();
3424      },
3425      fail: function (data, code) {
3426        console.info('File_Get_001 fail, code: ' + code + ', data: ' + data);
3427        expect(null).assertFail();
3428      },
3429    });
3430  });
3431
3432  /**
3433   * @tc.number SUB_STORAGE_File_Get_0200
3434   * @tc.name File_Get_002
3435   * @tc.desc Function of API, recursive = false.The test file is exist.
3436   */
3437  it('File_Get_002', 0, async function (done) {
3438    let fpath = await fileName('File_Get_002');
3439    expect(prepareFile(fpath, FILE_CONTENT)).assertTrue();
3440    file.get({
3441      uri: 'internal://cache/../files/File_Get_002',
3442      recursive: false,
3443      success: function (data) {
3444        console.info('File_Get_002 => file list:');
3445        console.info('{uri:' );
3446        console.info('length:' + data.length);
3447        console.info('lastModifiedTime:' + data.lastModifiedTime);
3448        console.info('type:' + data.type);
3449        console.info('subFiles:' + data.subFiles + '}');
3450        fileio.unlinkSync(fpath);
3451        done();
3452      },
3453      fail: function (data, code) {
3454        console.info('File_Get_002 fail, code: ' + code + ', data: ' + data);
3455        expect(null).assertFail();
3456      },
3457    });
3458  });
3459
3460  /**
3461   * @tc.number SUB_STORAGE_File_Get_0300
3462   * @tc.name File_Get_003
3463   * @tc.desc Function of API, not input recursive.The test file is exist.
3464   */
3465  it('File_Get_003', 0, async function (done) {
3466    let fpath = await fileName('File_Get_003');
3467    expect(prepareFile(fpath, FILE_CONTENT)).assertTrue();
3468    file.get({
3469      uri: 'internal://cache/../files/File_Get_003',
3470      success: function (data) {
3471        console.info('File_Get_003 => file list:');
3472        console.info('{uri:' );
3473        console.info('length:' + data.length);
3474        console.info('lastModifiedTime:' + data.lastModifiedTime);
3475        console.info('type:' + data.type);
3476        console.info('subFiles:' + data.subFiles + '}');
3477        console.info('File_Get_003 => pass');
3478        fileio.unlinkSync(fpath);
3479        done();
3480      },
3481      fail: function (data, code) {
3482        console.info('File_Get_003 fail, code: ' + code + ', data: ' + data);
3483        expect(null).assertFail();
3484      },
3485    });
3486  });
3487
3488  /**
3489   * @tc.number SUB_STORAGE_File_Get_0400
3490   * @tc.name File_Get_004
3491   * @tc.desc Function of API, recursive = ture.The test file is exist.
3492   */
3493  it('File_Get_004', 0, async function (done) {
3494    let dpath = await fileName('File_Get_004d');
3495    let ddpath = dpath + '/File_Get_004dd'
3496    let fpath = dpath + '/File_Get_004f'
3497    let ffpath = ddpath + '/File_Get_004ff'
3498    fileio.mkdirSync(dpath);
3499    fileio.mkdirSync(ddpath);
3500    expect(prepareFile(fpath, FILE_CONTENT)).assertTrue();
3501    expect(prepareFile(ffpath, FILE_CONTENT)).assertTrue();
3502    file.get({
3503      uri: 'internal://cache/../files/File_Get_004d',
3504      recursive: true,
3505      success: function (data) {
3506        console.info('File_Get_004 => file list:');
3507        console.info('{uri:' );
3508        console.info('length:' + data.length);
3509        console.info('lastModifiedTime:' + data.lastModifiedTime);
3510        console.info('type:' + data.type);
3511        console.info('subFiles:' + data.subFiles + '}');
3512        console.info('File_Get_004 => pass');
3513        fileio.unlinkSync(ffpath);
3514        fileio.unlinkSync(fpath);
3515        fileio.rmdirSync(ddpath);
3516        fileio.rmdirSync(dpath);
3517        done();
3518      },
3519      fail: function (data, code) {
3520        console.info('File_Get_004 fail, code: ' + code + ', data: ' + data);
3521        expect(null).assertFail();
3522      },
3523    });
3524  });
3525
3526  /**
3527   * @tc.number SUB_STORAGE_File_Get_0500
3528   * @tc.name File_Get_005
3529   * @tc.desc Function of API, recursive = false.The test file is exist.
3530   */
3531  it('File_Get_005', 0, async function (done) {
3532    let dpath = await fileName('File_Get_005d');
3533    let ddpath = dpath + '/File_Get_005dd';
3534    let fpath = dpath + '/File_Get_005f';
3535    let ffpath = ddpath + '/File_Get_005ff';
3536    fileio.mkdirSync(dpath);
3537    fileio.mkdirSync(ddpath);
3538    expect(prepareFile(fpath, FILE_CONTENT)).assertTrue();
3539    expect(prepareFile(ffpath, FILE_CONTENT)).assertTrue();
3540    file.get({
3541      uri: 'internal://cache/../files/File_Get_005d',
3542      recursive: false,
3543      success: function (data) {
3544        console.info('File_Get_005 => file list :');
3545        console.info('{uri:' );
3546        console.info('length:' + data.length);
3547        console.info('lastModifiedTime:' + data.lastModifiedTime);
3548        console.info('type:' + data.type);
3549        console.info('subFiles:' + data.subFiles + '}');
3550        console.info('File_Get_005 => pass');
3551        fileio.unlinkSync(ffpath);
3552        fileio.unlinkSync(fpath);
3553        fileio.rmdirSync(ddpath);
3554        fileio.rmdirSync(dpath);
3555        done();
3556      },
3557      fail: function (data, code) {
3558        console.info('File_Get_005 fail, code: ' + code + ', data: ' + data);
3559        expect(null).assertFail();
3560      },
3561    });
3562  });
3563
3564  /**
3565   * @tc.number SUB_STORAGE_File_Get_0600
3566   * @tc.name File_Get_006
3567   * @tc.desc Function of API, not input recursive.The test file is exist.
3568   */
3569  it('File_Get_006', 0, async function (done) {
3570    let dpath = await fileName('File_Get_006d');
3571    let ddpath = dpath + '/File_Get_006dd';
3572    let fpath = dpath + '/File_Get_006f';
3573    let ffpath = ddpath + '/File_Get_006ff';
3574    fileio.mkdirSync(dpath);
3575    fileio.mkdirSync(ddpath);
3576    expect(prepareFile(fpath, FILE_CONTENT)).assertTrue();
3577    expect(prepareFile(ffpath, FILE_CONTENT)).assertTrue();
3578    file.get({
3579      uri: 'internal://cache/../files/File_Get_006d',
3580      success: function (data) {
3581        console.info('File_Get_006 file list:');
3582        console.info('{uri:' );
3583        console.info('length:' + data.length);
3584        console.info('lastModifiedTime:' + data.lastModifiedTime);
3585        console.info('type:' + data.type);
3586        console.info('subFiles:' + data.subFiles + '}');
3587        console.info('File_Get_006 => pass');
3588        fileio.unlinkSync(ffpath);
3589        fileio.unlinkSync(fpath);
3590        fileio.rmdirSync(ddpath);
3591        fileio.rmdirSync(dpath);
3592        done();
3593      },
3594      fail: function (data, code) {
3595        console.info('File_Get_006 fail, code: ' + code + ', data: ' + data);
3596        expect(null).assertFail();
3597      },
3598    });
3599  });
3600
3601  /**
3602   * @tc.number SUB_STORAGE_File_Get_0700
3603   * @tc.name File_Get_007
3604   * @tc.desc Function of API, not input uri.The test file is exist.
3605   */
3606  it('File_Get_007', 0, async function (done) {
3607    file.get({
3608      recursive: true,
3609      success: function (data) {
3610        console.info('File_Get_007 call Copy success.');
3611        expect(null).assertFail();
3612      },
3613      fail: function (data, code) {
3614        console.info('File_Get_007 fail, code: ' + code + ', data: ' + data);
3615        expect(code == 202).assertTrue();
3616        done();
3617      },
3618    });
3619  });
3620
3621  /**
3622   * @tc.number SUB_STORAGE_File_Get_0800
3623   * @tc.name File_Get_008
3624   * @tc.desc Function of API, not input parameter.The test file is exist.
3625   */
3626  it('File_Get_008', 0, async function (done) {
3627    file.get({
3628      success: function (data) {
3629        console.info(data);
3630        expect(null).assertFail();
3631      },
3632      fail: function (data, code) {
3633        console.info('File_Get_008 fail, code: ' + code + ', data: ' + data);
3634        expect(code == 202).assertTrue();
3635        done();
3636      },
3637    });
3638  });
3639
3640  /**
3641   * @tc.number SUB_STORAGE_File_Get_0900
3642   * @tc.name File_Get_009
3643   * @tc.desc Function of API, error parameter.The test file and dir are not exist.
3644   */
3645  it('File_Get_009', 0, async function (done) {
3646    file.get({
3647      uri: 'internal://app/File_Get_009',
3648      success: function (data) {
3649        console.info('File_Get_009 call Copy success.');
3650        expect(null).assertFail();
3651      },
3652      fail: function (data, code) {
3653        console.info('File_Get_009 fail, code: ' + code + ', data: ' + data);
3654        expect(code == 301).assertTrue();
3655        done();
3656      },
3657    });
3658  });
3659
3660  /**
3661   * @tc.number SUB_STORAGE_File_Get_1000
3662   * @tc.name File_Get_010
3663   * @tc.desc Function of API, uri = -1.
3664   */
3665  it('File_Get_010', 0, async function (done) {
3666    file.get({
3667      uri: -1,
3668      success: function (data) {
3669        console.info('File_Get_010 call Copy success.');
3670        expect(null).assertFail();
3671      },
3672      fail: function (data, code) {
3673        console.info('File_Get_010 fail, code: ' + code + ', data: ' + data);
3674        expect(code == 202).assertTrue();
3675        done();
3676      },
3677    });
3678  });
3679
3680  /**
3681   * @tc.number SUB_STORAGE_File_Get_1100
3682   * @tc.name File_Get_011
3683   * @tc.desc Function of API, cacahe path.
3684   */
3685  it('File_Get_011', 0, async function (done) {
3686    file.writeText({
3687      uri: 'internal://cache/File_Get_011',
3688      text: 'test',
3689      success: function () {
3690        console.info('File_Get_011 writeText success');
3691        file.get({
3692          uri: 'internal://cache/File_Get_011',
3693          recursive: true,
3694          success: function (data) {
3695            console.info('file list');
3696            console.info('uri:' );
3697            console.info('length:' + data.length);
3698            console.info('lastModifiedTime:' + data.lastModifiedTime);
3699            console.info('type:' + data.type);
3700            console.info('subFiles:' + data.subFiles);
3701            file.delete({
3702              uri: 'internal://cache/File_Get_011',
3703              success: function () {
3704                console.info('File_Get_011 delete success');
3705                done();
3706              },
3707              fail: function (data, code) {
3708                console.info('File_Get_011 delete fail, code: ' + code + ', data: ' + data);
3709                expect(null).assertFail();
3710              },
3711            });
3712          },
3713          fail: function (data, code) {
3714            console.info('File_Get_011 get fail, code: ' + code + ', data: ' + data);
3715            expect(null).assertFail();
3716          },
3717        });
3718      },
3719      fail: function (data, code) {
3720        console.info('File_Get_011 writeText fail, code: ' + code + ', data: ' + data);
3721        expect(null).assertFail();
3722      },
3723    });
3724  });
3725
3726  /**
3727   * @tc.number SUB_STORAGE_File_Get_1200
3728   * @tc.name File_Get_012
3729   * @tc.desc Function of API, uri too long.
3730   */
3731  it('File_Get_012', 0, async function (done) {
3732    let firstPath = randomString(32);
3733    let dpath = await fileName(firstPath);
3734    let uri = 'internal://cache/' + firstPath;
3735    fileio.mkdirSync(dpath);
3736    for (let i = 0; i < 16; i++) {
3737      console.info('time' + i);
3738      let sonPath = randomString(251);
3739      uri = uri + '/f' + sonPath;
3740    }
3741    file.get({
3742      uri: uri,
3743      recursive: true,
3744      success: function (data) {
3745        console.info('file list');
3746        console.info('uri:' );
3747        console.info('length:' + data.length);
3748        console.info('lastModifiedTime:' + data.lastModifiedTime);
3749        console.info('type:' + data.type);
3750        console.info('subFiles:' + data.subFiles);
3751        console.info('File_Get_012 => pass');
3752        expect(null).assertFail();
3753      },
3754      fail: function (data, code) {
3755        console.info('File_Get_012 fail, code: ' + code + ', data: ' + data);
3756        expect(code == 300).assertTrue();
3757        done();
3758      },
3759    });
3760  });
3761
3762  /**
3763   * @tc.number SUB_STORAGE_File_Get_1300
3764   * @tc.name File_Get_013
3765   * @tc.desc Function of API, virtual path.
3766   */
3767  it('File_Get_013', 0, async function (done) {
3768    let dpath = await fileName('File_Get_013d');
3769    let ddpath = dpath + '/File_Get_013dd';
3770    let fpath = dpath + '/File_Get_013f';
3771    let ffpath = ddpath + '/File_Get_013ff';
3772    fileio.mkdirSync(dpath);
3773    fileio.mkdirSync(ddpath);
3774    expect(prepareFile(fpath, FILE_CONTENT)).assertTrue();
3775    expect(prepareFile(ffpath, FILE_CONTENT)).assertTrue();
3776    file.get({
3777      uri: 'internal://cache/../files/../files/File_Get_013d',
3778      recursive: true,
3779      success: function (data) {
3780        console.info('File_Get_013 => file list:');
3781        console.info('{uri:' );
3782        console.info('length:' + data.length);
3783        console.info('lastModifiedTime:' + data.lastModifiedTime);
3784        console.info('type:' + data.type);
3785        console.info('subFiles:' + data.subFiles + '}');
3786        console.info('File_Get_013 => pass');
3787        fileio.unlinkSync(ffpath);
3788        fileio.unlinkSync(fpath);
3789        fileio.rmdirSync(ddpath);
3790        fileio.rmdirSync(dpath);
3791        done();
3792      },
3793      fail: function (data, code) {
3794        console.info('File_Get_013 fail, code: ' + code + ', data: ' + data);
3795        expect(null).assertFail();
3796      },
3797    });
3798  });
3799
3800  /**
3801   * @tc.number SUB_STORAGE_File_Get_1400
3802   * @tc.name File_Get_014
3803   * @tc.desc Function of API, out of package, Virtual path, save the dir authority.
3804   */
3805  it('File_Get_014', 0, async function (done) {
3806    file.get({
3807      uri: 'internal://cache/../files/../../',
3808      success: function (data) {
3809        console.info('File_Get_014 => file list :');
3810        console.info('{uri:' );
3811        console.info('length:' + data.length);
3812        console.info('lastModifiedTime:' + data.lastModifiedTime);
3813        console.info('type:' + data.type);
3814        console.info('subFiles:' + data.subFiles + '}');
3815        console.info('File_Get_014 => pass');
3816        done();
3817      },
3818      fail: function (data, code) {
3819        console.info('File_Get_014 fail, code: ' + code + ', data: ' + data);
3820        expect(null).assertFail();
3821      },
3822      complete: function () {
3823        console.info('get completed');
3824      }
3825    });
3826  });
3827  /**
3828   * @tc.number SUB_STORAGE_Document_Choose_0100
3829   * @tc.name Document_Choose_001
3830   * @tc.desc Function of API, choose file.The test file is exist.
3831   */
3832   it('File_Document_Choose_001', 0, async function (done) {
3833    try {
3834      let types = [];
3835      let code = await document.choose(types);
3836      let str = 'Error';
3837      console.info("getFileUri===>" + code);
3838      expect(str).assertTrue();
3839      done();
3840    }
3841    catch (e) {
3842      console.info('File_Document_Choose_001 has failed for ' + e.message);
3843      expect(e.message == "error").assertTrue();
3844      done();
3845    }
3846  });
3847
3848  /**
3849   * @tc.number SUB_STORAGE_Document_Choose_0200
3850   * @tc.name Document_Choose_002
3851   * @tc.desc Function of API, choose file.The test file is  exist.
3852   */
3853   it('File_Document_Choose_002', 0, async function (done) {
3854    try {
3855      let uri = "";
3856      let code = await document.choose(function(err,uri){
3857
3858      });
3859      console.info("getFileUri===>" + code);
3860      expect(uri).assertTrue();
3861      done();
3862    }
3863    catch (e) {
3864      console.info('File_Document_Choose_002 has failed for ' + e.message);
3865      expect(e.message == "error").assertTrue();
3866      done();
3867    }
3868  });
3869
3870  /**
3871   * @tc.number SUB_STORAGE_Document_Choose_0300
3872   * @tc.name Document_Choose_003
3873   * @tc.desc Function of API, choose file.The test file is exist.
3874   */
3875   it('File_Document_Choose_003', 0, async function (done) {
3876    try {
3877      let types = [];
3878      let uri = "";
3879      let code = await document.choose(types,function(err,uri){
3880
3881      });
3882      console.info("getFileUri===>" + code);
3883      expect().assertTrue();
3884      done();
3885    }
3886    catch (e) {
3887      console.info('File_Document_Choose_003 has failed for ' + e.message);
3888      expect(e.message == "error").assertTrue();
3889      done();
3890    }
3891  });
3892
3893  /**
3894   * @tc.number SUB_STORAGE_Document_Show_0100
3895   * @tc.name Document_Show_001
3896   * @tc.desc Function of API, show file.The test file is exist.
3897   */
3898   it('File_Document_Show_001', 0, async function (done) {
3899    try {
3900      let type = "";
3901      let uri = "";
3902      let code = await document.show(uri,type);
3903      console.info("getFileUri===>" + code);
3904      expect().assertTrue();
3905      done();
3906    }
3907    catch (e) {
3908      console.info('File_Document_Show_001 has failed for ' + e.message);
3909      expect(e.message == "error").assertTrue();
3910      done();
3911    }
3912  });
3913
3914  /**
3915   * @tc.number SUB_STORAGE_Document_Show_0200
3916   * @tc.name Document_Show_002
3917   * @tc.desc Function of API, show file.The test file is exist.
3918   */
3919   it('File_Document_Show_002', 0, async function (done) {
3920    try {
3921      let type = "";
3922      let uri ="";
3923      let code = await document.show(uri,type,function(err){
3924
3925      });
3926      console.info("getFileUri===>" + code);
3927      expect().assertTrue();
3928      done();
3929    }
3930    catch (e) {
3931      console.info('File_Document_Show_002 has failed for ' + e.message);
3932      expect(e.message == "error").assertTrue();
3933      done();
3934    }
3935  });
3936});
3937}
3938