get-file-system-manager.test.js 44.1 KB
Newer Older
1
jest.setTimeout(30000);
杜庆泉's avatar
杜庆泉 已提交
2
const PAGE_PATH = '/pages/API/get-file-system-manager/get-file-system-manager'
3 4 5


describe('ExtApi-FileManagerTest', () => {
6
  if (process.env.uniTestPlatformInfo.indexOf('web') > -1 || process.env.UNI_AUTOMATOR_APP_WEBVIEW == 'true') {
雪洛's avatar
雪洛 已提交
7 8 9 10 11
    it('dummyTest', () => {
      expect(1).toBe(1)
    })
    return
  }
12
  let page;
W
WOSHIMAHAIFENG 已提交
13

14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
  function getData(key = '') {
    return new Promise(async (resolve, reject) => {
      const data = await page.data()
      resolve(key ? data[key] : data)
    })
  }


  beforeAll(async () => {
    page = await program.reLaunch(PAGE_PATH)
    await page.waitFor(600);
  });

  async function isDone() {
    let isDone = await page.waitFor(async () => {
      return await page.data('done')
    })
W
WOSHIMAHAIFENG 已提交
31 32 33
    await page.setData({
      done: false
    })
34 35 36 37 38 39 40 41
    return isDone
  }

  it('USER_DATA_PATH test', async () => {
    // 测试 USER_DATA_PATH
    let globalUserDataPath = await getData('globalUserDataPath')

    await page.setData({
W
WOSHIMAHAIFENG 已提交
42
      logAble: false,
43
      recursiveVal: true,
W
WOSHIMAHAIFENG 已提交
44
      copyToBasePath: globalUserDataPath,
45
      basePath: globalUserDataPath,
W
WOSHIMAHAIFENG 已提交
46 47 48 49 50 51
      rmDirFile: 'a',
      readDir: 'a',
      writeFile: 'a/1.txt',
      readFile: 'a/1.txt',
      unlinkFile: 'a/1.txt',
      writeFileContent: '锄禾日当午,汗滴禾下土,谁知盘中餐,粒粒皆辛苦'
52 53 54
    })

    // 先清除文件,需要清除全部可能存在的历史测试文件,避免运行失败
55
    const btnUnLinkFileButton = await page.$('#btn-clear-file')
56 57 58 59 60
    await btnUnLinkFileButton.tap()
    await isDone()


    // 清除文件夹
61
    const btnRmDirButton = await page.$('#btn-remove-dir')
62 63 64
    await btnRmDirButton.tap()
    await isDone()
    // 重新创建测试目录
65
    const btnMkdDirButton = await page.$('#btn-mkdir')
66 67 68
    await btnMkdDirButton.tap()
    await isDone()

69
    const btnReadDirButton = await page.$('#btn-read-dir')
70 71 72 73 74 75 76 77 78 79 80 81 82
    await btnReadDirButton.tap()
    await isDone()


    // 期望通过 recursive = true的 文件夹删除,得到一个空的 /a 目录
    let fileListComplete = await getData('fileListComplete')
    expect(JSON.stringify(fileListComplete)).toEqual('[]')
    let fileListSuccess = await getData('fileListSuccess')
    expect(JSON.stringify(fileListSuccess)).toEqual('[]')

    // 先测试 recursive = false 文件夹创建,期望失败
    await page.setData({
      recursiveVal: false,
W
WOSHIMAHAIFENG 已提交
83
      mkdirFile: 'a/b/c'
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
    })


    await btnMkdDirButton.tap()
    await isDone()


    let lastFailError = await getData('lastFailError')
    expect(lastFailError.errCode).toEqual(1300002)
    expect(lastFailError.errMsg).toEqual('no such file or directory:unifile://usr/a/b/c')
    let lastCompleteError = await getData('lastCompleteError')
    expect(lastCompleteError.errCode).toEqual(1300002)
    expect(lastCompleteError.errMsg).toEqual('no such file or directory:unifile://usr/a/b/c')


    // 测试 recursive = true 期望文件夹创建成功
    await page.setData({
      recursiveVal: true
    })
    await btnMkdDirButton.tap()
    await isDone()

    await btnReadDirButton.tap()
    await isDone()

    // 期望通过 recursive = true的 文件夹删除,得到一个空的 /a 目录
    fileListComplete = await getData('fileListComplete')
    expect(JSON.stringify(fileListComplete)).toEqual("[\"b\"]")
    fileListSuccess = await getData('fileListSuccess')
    expect(JSON.stringify(fileListSuccess)).toEqual("[\"b\"]")

    // 测试写入文件
116
    const btnWriteFileButton = await page.$('#btn-write-file')
117 118 119 120 121 122
    await btnWriteFileButton.tap()
    await isDone()
    // 检查目录列表数量
    await btnReadDirButton.tap()
    await isDone()
    fileListComplete = await getData('fileListComplete')
123 124
    fileListComplete.sort()
    expect(JSON.stringify(fileListComplete)).toEqual("[\"1.txt\",\"b\"]")
125
    fileListSuccess = await getData('fileListSuccess')
126 127
    fileListSuccess.sort()
    expect(JSON.stringify(fileListSuccess)).toEqual("[\"1.txt\",\"b\"]")
128
    // 获取和对比 文件内容
129
    const btnReadFileButton = await page.$('#btn-read-file')
130 131 132 133 134 135 136 137
    await btnReadFileButton.tap()
    await isDone()
    let readFileRet = await getData('readFileRet')
    expect(readFileRet).toEqual("锄禾日当午,汗滴禾下土,谁知盘中餐,粒粒皆辛苦")

    // 更换文件内容 获取和对比 文件md5和sha1
    await page.setData({
      writeFileContent: "If you were a teardrop;In my eye,For fear of losing you,I would never cry.And if the golden sun,Should cease to shine its light,Just one smile from you,Would make my whole world bright.",
W
WOSHIMAHAIFENG 已提交
138
      getFileInfoAlgorithm: "md5"
139 140 141 142 143 144 145
    })
    await btnWriteFileButton.tap()
    await isDone()

    await btnReadFileButton.tap()
    await isDone()
    readFileRet = await getData('readFileRet')
W
WOSHIMAHAIFENG 已提交
146 147 148
    expect(readFileRet).toEqual(
      "If you were a teardrop;In my eye,For fear of losing you,I would never cry.And if the golden sun,Should cease to shine its light,Just one smile from you,Would make my whole world bright."
    )
149

150
    const btnGetFileInfoButton = await page.$('#btn-get-file-info')
151 152 153 154 155 156 157 158 159
    await btnGetFileInfoButton.tap()
    await isDone()

    let getFileInfoSize = await getData('getFileInfoSize')
    expect(getFileInfoSize).toEqual(185)
    let getFileInfoDigest = await getData('getFileInfoDigest')
    expect(getFileInfoDigest).toEqual("29ddd02ed3c38ccebb98884eda082cb1")
    // 切换为 sha1
    await page.setData({
W
WOSHIMAHAIFENG 已提交
160
      getFileInfoAlgorithm: "sha1"
161 162 163 164 165 166 167 168 169 170 171 172 173
    })

    await btnGetFileInfoButton.tap()
    await isDone()

    getFileInfoSize = await getData('getFileInfoSize')
    expect(getFileInfoSize).toEqual(185)
    getFileInfoDigest = await getData('getFileInfoDigest')
    expect(getFileInfoDigest).toEqual("ebef4e75783e0db499fc260d120e695005bead8a")

    // 测试 copyfile
    await page.setData({

W
WOSHIMAHAIFENG 已提交
174 175
      copyFromFile: "a/1.txt",
      copyToFile: "a/2.txt"
176
    })
177
    const btnCopyFileButton = await page.$('#btn-copy-file')
178 179 180 181 182 183 184 185 186
    await btnCopyFileButton.tap()
    await isDone()


    await btnReadDirButton.tap()
    await isDone()

    // 1.txt 2.txt 两个文件都存在
    fileListComplete = await getData('fileListComplete')
187 188
    fileListComplete.sort()
    expect(JSON.stringify(fileListComplete)).toEqual("[\"1.txt\",\"2.txt\",\"b\"]")
189
    fileListSuccess = await getData('fileListSuccess')
190 191
    fileListSuccess.sort()
    expect(JSON.stringify(fileListSuccess)).toEqual("[\"1.txt\",\"2.txt\",\"b\"]")
192 193 194

    // 测试 rename
    await page.setData({
W
WOSHIMAHAIFENG 已提交
195 196
      renameFromFile: "a/2.txt",
      renameToFile: "a/3.txt"
197 198
    })

199
    const btnRenameFileButton = await page.$('#btn-rename-file')
200 201 202 203 204 205 206 207
    await btnRenameFileButton.tap()
    await isDone()

    await btnReadDirButton.tap()
    await isDone()

    // 1.txt 3.txt 两个文件都存在
    fileListComplete = await getData('fileListComplete')
208 209
    fileListComplete.sort()
    expect(JSON.stringify(fileListComplete)).toEqual("[\"1.txt\",\"3.txt\",\"b\"]")
210
    fileListSuccess = await getData('fileListSuccess')
211 212
    fileListSuccess.sort()
    expect(JSON.stringify(fileListSuccess)).toEqual("[\"1.txt\",\"3.txt\",\"b\"]")
213 214 215 216 217
  });

  it('TEMP_PATH test', async () => {
    // 测试 TEMP_PATH
    let globalTempPath = await getData('globalTempPath')
218 219 220 221

    let version = process.env.uniTestPlatformInfo
    version = parseInt(version.split(" ")[1])
    let testDirName = "我们经历了一场兵慌马乱的战争.1@2#3$4%5^6&7*8(9)0+-qwertyuiopasdfghjklzxcvbnm;,"
W
WOSHIMAHAIFENG 已提交
222
    if (version < 6) {
223 224 225 226
      // android 6 以下文件名不能包含特殊字符
      testDirName = "我们经历了一场兵慌马乱的战争"
    }

227
    await page.setData({
W
WOSHIMAHAIFENG 已提交
228
      logAble: false,
229 230
      recursiveVal: true,
      basePath: globalTempPath,
W
WOSHIMAHAIFENG 已提交
231 232
      copyToBasePath: globalTempPath,
      rmDirFile: 'a',
233
      mkdirFile: 'a',
W
WOSHIMAHAIFENG 已提交
234
      unlinkFile: 'a/' + testDirName + '/中文路径/张三/name/中文文件.mock'
235 236 237 238
    })


    // 先清除文件,需要清除全部可能存在的历史测试文件,避免运行失败
239
    const btnUnLinkFileButton = await page.$('#btn-unlink-file')
240 241 242 243 244
    await btnUnLinkFileButton.tap()
    await isDone()


    // 清除文件夹
245
    const btnRmDirButton = await page.$('#btn-remove-dir')
246 247 248 249
    await btnRmDirButton.tap()
    await isDone()

    // 重新创建测试目录
250
    const btnMkdDirButton = await page.$('#btn-mkdir')
251 252 253
    await btnMkdDirButton.tap()
    await isDone()

254
    const btnReadDirButton = await page.$('#btn-read-dir')
255 256 257 258 259 260
    await btnReadDirButton.tap()
    await isDone()


    // 期望通过 recursive = true的 文件夹删除,得到一个空的 /a 目录
    let fileListComplete = await getData('fileListComplete')
261
    expect(JSON.stringify(fileListComplete)).toEqual("[]")
262
    let fileListSuccess = await getData('fileListSuccess')
263
    expect(JSON.stringify(fileListSuccess)).toEqual("[]")
264 265 266 267

    // 测试 创建多层级文件目录
    await page.setData({
      recursiveVal: true,
W
WOSHIMAHAIFENG 已提交
268
      mkdirFile: 'a/b/c/d/e/f/g/h/i/g/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/中文路径/张三/test',
269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284
    })

    await btnMkdDirButton.tap()
    await isDone()

    await btnReadDirButton.tap()
    await isDone()

    fileListComplete = await getData('fileListComplete')
    expect(JSON.stringify(fileListComplete)).toEqual("[\"b\"]")
    fileListSuccess = await getData('fileListSuccess')
    expect(JSON.stringify(fileListSuccess)).toEqual("[\"b\"]")

    // 测试 创建包含中文特殊符号的目录
    await page.setData({
      recursiveVal: true,
W
WOSHIMAHAIFENG 已提交
285
      mkdirFile: 'a/' + testDirName + '/中文路径/张三/name',
286 287 288 289 290 291 292 293 294
    })
    await btnMkdDirButton.tap()
    await isDone()

    await btnReadDirButton.tap()
    await isDone()

    // 期望通过 recursive = true的 文件夹删除,得到一个空的 /a 目录
    fileListComplete = await getData('fileListComplete')
295
    fileListComplete.sort()
296
    expect(JSON.stringify(fileListComplete)).toEqual("[\"b\",\"" + testDirName + "\"]")
297
    fileListSuccess = await getData('fileListSuccess')
298
    fileListSuccess.sort()
299
    expect(JSON.stringify(fileListSuccess)).toEqual("[\"b\",\"" + testDirName + "\"]")
300 301 302

    /**
     * 从资源文件中读取图片为base64,测试写入较大文件场景
303
     * 'static/test-image/logo.ico' 注意,依赖这个资源文件,不能删除
304 305
     */
    await page.setData({
306
      basePath: "",
W
WOSHIMAHAIFENG 已提交
307 308
      readFile: 'static/test-image/logo.ico',
      readFileEncoding: 'base64'
309 310 311 312
    })


    // 获取和对比 文件内容
313
    const btnReadFileButton = await page.$('#btn-read-file')
314 315 316
    await btnReadFileButton.tap()
    await isDone()
    let readFileRet = await getData('readFileRet')
317
    expect(readFileRet.length).toEqual(208544)
318
    let endStr = readFileRet.substring(readFileRet.length - 10)
319
    expect(endStr).toEqual("///////w==")
320 321 322

    await page.setData({
      basePath: globalTempPath,
W
WOSHIMAHAIFENG 已提交
323 324
      writeFile: 'a/' + testDirName + '/中文路径/张三/name/中文文件.mock',
      writeFileContent: readFileRet
325 326 327
    })


328
    const btnWriteFileButton = await page.$('#btn-write-file')
329 330 331 332 333
    await btnWriteFileButton.tap()
    await isDone()

    // 获取文件列表,判断是否写入成功,同时置空base64内容 避免影响实时查看状态
    await page.setData({
W
WOSHIMAHAIFENG 已提交
334 335 336
      readDir: 'a/' + testDirName + '/中文路径/张三/name',
      readFileRet: '',
      writeFileContent: ''
337 338 339 340 341 342 343 344 345 346 347 348 349
    })

    // 检查目录列表数量
    await btnReadDirButton.tap()
    await isDone()
    fileListComplete = await getData('fileListComplete')
    expect(JSON.stringify(fileListComplete)).toEqual("[\"中文文件.mock\"]")
    fileListSuccess = await getData('fileListSuccess')
    expect(JSON.stringify(fileListSuccess)).toEqual("[\"中文文件.mock\"]")


    // 更换文件内容 获取和对比 文件md5和sha1
    await page.setData({
W
WOSHIMAHAIFENG 已提交
350 351
      getFileInfoFile: 'a/' + testDirName + '/中文路径/张三/name/中文文件.mock',
      getFileInfoAlgorithm: "md5",
352 353
    })

354
    const btnGetFileInfoButton = await page.$('#btn-get-file-info')
355 356 357 358
    await btnGetFileInfoButton.tap()
    await isDone()

    let getFileInfoSize = await getData('getFileInfoSize')
359
    expect(getFileInfoSize).toEqual(208544)
360
    let getFileInfoDigest = await getData('getFileInfoDigest')
361
    expect(getFileInfoDigest).toEqual("486f75ea76625f8c103cac4bc9c49511")
362 363 364

    // 切换为 sha1
    await page.setData({
W
WOSHIMAHAIFENG 已提交
365
      getFileInfoAlgorithm: "sha1"
366 367 368 369 370 371
    })

    await btnGetFileInfoButton.tap()
    await isDone()

    getFileInfoSize = await getData('getFileInfoSize')
372
    expect(getFileInfoSize).toEqual(208544)
373
    getFileInfoDigest = await getData('getFileInfoDigest')
374
    expect(getFileInfoDigest).toEqual("1830169a16e7c860beff4a3b0975ba0b6f775f9e")
375 376 377

    // 测试不支持的摘要算法,期望返回错误
    await page.setData({
W
WOSHIMAHAIFENG 已提交
378
      getFileInfoAlgorithm: "sha256"
379 380 381 382 383 384 385 386 387 388 389 390 391
    })

    await btnGetFileInfoButton.tap()
    await isDone()

    let lastFailError = await getData('lastFailError')
    expect(lastFailError.errCode).toEqual(1300022)
    let lastCompleteError = await getData('lastCompleteError')
    expect(lastCompleteError.errCode).toEqual(1300022)


    // rename 到一个没有提前创建过的目录,期望返回错误
    await page.setData({
W
WOSHIMAHAIFENG 已提交
392 393
      renameFromFile: "a/" + testDirName + "/中文路径/张三/name/中文文件.mock",
      renameToFile: "a/没有提前创建的目录/3.txt"
394 395
    })

396
    const btnRenameFileButton = await page.$('#btn-rename-file')
397 398 399 400 401 402 403 404 405 406 407
    await btnRenameFileButton.tap()
    await isDone()

    lastFailError = await getData('lastFailError')
    expect(lastFailError.errCode).toEqual(1300002)
    lastCompleteError = await getData('lastCompleteError')
    expect(lastCompleteError.errCode).toEqual(1300002)

    // 非递归创建一级目录。期望成功
    await page.setData({
      recursiveVal: false,
W
WOSHIMAHAIFENG 已提交
408
      mkdirFile: 'a/提前创建的目录',
409 410 411 412 413 414
    })

    await btnMkdDirButton.tap()
    await isDone()

    await page.setData({
W
WOSHIMAHAIFENG 已提交
415
      readDir: 'a',
416 417 418 419 420 421
    })

    await btnReadDirButton.tap()
    await isDone()

    fileListComplete = await getData('fileListComplete')
422
    fileListComplete.sort()
423
    expect(JSON.stringify(fileListComplete)).toEqual("[\"b\",\"" + testDirName + "\",\"提前创建的目录\"]")
424
    fileListSuccess = await getData('fileListSuccess')
425
    fileListSuccess.sort()
426
    expect(JSON.stringify(fileListSuccess)).toEqual("[\"b\",\"" + testDirName + "\",\"提前创建的目录\"]")
427 428 429


    await page.setData({
W
WOSHIMAHAIFENG 已提交
430 431
      copyFromFile: "a/" + testDirName + "/中文路径/张三/name/中文文件.mock",
      copyToFile: "a/提前创建的目录/4.txt"
432 433
    })

W
WOSHIMAHAIFENG 已提交
434 435 436
    const btnCopyFileButton = await page.$('#btn-copy-file')
    await btnCopyFileButton.tap()
    await isDone()
437 438

    await page.setData({
W
WOSHIMAHAIFENG 已提交
439
      readDir: 'a/提前创建的目录',
440 441 442 443 444 445 446 447 448 449 450
    })

    await btnReadDirButton.tap()
    await isDone()

    fileListComplete = await getData('fileListComplete')
    expect(JSON.stringify(fileListComplete)).toEqual("[\"4.txt\"]")
    fileListSuccess = await getData('fileListSuccess')
    expect(JSON.stringify(fileListSuccess)).toEqual("[\"4.txt\"]")

    await page.setData({
W
WOSHIMAHAIFENG 已提交
451 452
      unlinkFile: 'a/提前创建的目录/4.txt',
      rmDirFile: 'a/提前创建的目录'
453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475
    })
    await btnUnLinkFileButton.tap()
    await isDone()

    await btnReadDirButton.tap()
    await isDone()

    fileListComplete = await getData('fileListComplete')
    expect(JSON.stringify(fileListComplete)).toEqual("[]")
    fileListSuccess = await getData('fileListSuccess')
    expect(JSON.stringify(fileListSuccess)).toEqual("[]")

  });



  it('CROSS DIR test', async () => {
    /**
     * 跨越用户目录和代码资源目录
     */
    let globalRootPath = await getData('globalRootPath')
    await page.setData({
      recursiveVal: true,
W
WOSHIMAHAIFENG 已提交
476
      logAble: false,
477
      basePath: globalRootPath,
W
WOSHIMAHAIFENG 已提交
478 479 480 481 482
      readDir: 'a',
      rmDirFile: 'a',
      mkdirFile: 'a',
      accessFile: 'a/从代码目录拷贝的资源.png',
      unlinkFile: 'a/从代码目录拷贝的资源.png'
483 484 485 486
    })


    // 先清除文件,需要清除全部可能存在的历史测试文件,避免运行失败
487
    const btnClearFileButton = await page.$('#btn-clear-file')
488
    await btnClearFileButton.tap()
489 490 491 492
    await isDone()


    // 清除文件夹
493
    const btnRmDirButton = await page.$('#btn-remove-dir')
494 495 496 497
    await btnRmDirButton.tap()
    await isDone()

    // 重新创建测试目录,期望通过 recursive = true的 文件夹删除,得到一个空的 /a 目录
498
    const btnMkdDirButton = await page.$('#btn-mkdir')
499 500 501
    await btnMkdDirButton.tap()
    await isDone()

502
    const btnReadDirButton = await page.$('#btn-read-dir')
503 504 505 506 507 508 509 510 511 512
    await btnReadDirButton.tap()
    await isDone()

    let fileListComplete = await getData('fileListComplete')
    expect(JSON.stringify(fileListComplete)).toEqual('[]')
    let fileListSuccess = await getData('fileListSuccess')
    expect(JSON.stringify(fileListSuccess)).toEqual('[]')


    // 检查资源文件,此时不存在
513
    const btnAccessFileButton = await page.$('#btn-access-file')
514 515 516 517 518 519 520 521 522
    await btnAccessFileButton.tap()
    await isDone()

    let accessFileRet = await getData("accessFileRet")
    expect(accessFileRet).toEqual('')


    // 准备从资源目录拷贝png
    await page.setData({
523
      basePath: "",
W
WOSHIMAHAIFENG 已提交
524 525
      unlinkFile: 'static/test-image/logo.ico',
      accessFile: 'static/test-image/logo.ico',
526 527 528 529 530 531 532 533 534
    })
    // 检查资源文件,期望存在
    await btnAccessFileButton.tap()
    await isDone()

    accessFileRet = await getData("accessFileRet")
    expect(accessFileRet).toEqual('access:ok')

    // 尝试删除资源,期望失败
535
    const btnUnLinkFileButton = await page.$('#btn-unlink-file')
536 537 538 539 540 541 542 543 544 545
    await btnUnLinkFileButton.tap()
    await isDone()

    await btnAccessFileButton.tap()
    await isDone()

    accessFileRet = await getData("accessFileRet")
    expect(accessFileRet).toEqual('access:ok')
    // 复制资源到 root目录
    await page.setData({
W
WOSHIMAHAIFENG 已提交
546 547 548
      copyToBasePath: globalRootPath,
      copyFromFile: "static/test-image/logo.ico",
      copyToFile: "a/从代码目录拷贝的资源.png"
549
    })
550
    const btnCopyFileButton = await page.$('#btn-copy-file')
551 552 553 554 555
    await btnCopyFileButton.tap()
    await isDone()

    // 检查期望 root 目录中图片文件存在
    await page.setData({
W
WOSHIMAHAIFENG 已提交
556 557 558 559
      basePath: globalRootPath,
      unlinkFile: 'a/从代码目录拷贝的资源.png',
      accessFile: 'a/从代码目录拷贝的资源.png',
      rmDirFile: 'a',
560 561 562 563 564 565 566 567 568 569
    })
    await btnAccessFileButton.tap()
    await isDone()

    accessFileRet = await getData("accessFileRet")
    expect(accessFileRet).toEqual('access:ok')

    await btnUnLinkFileButton.tap()
    await isDone()

570 571
    await btnAccessFileButton.tap()
    await isDone()
572 573 574 575

    accessFileRet = await getData("accessFileRet")
    expect(accessFileRet).toEqual('')

576
    // 从页面的按钮触发一次文件复制
577
    const btnCopyStaticFileButton = await page.$('#btn-copyStatic-file')
578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600
    await btnCopyStaticFileButton.tap()
    await isDone()

    await btnReadDirButton.tap()
    await isDone()

    fileListComplete = await getData('fileListComplete')
    expect(JSON.stringify(fileListComplete)).toEqual("[\"mock.json\"]")
    fileListSuccess = await getData('fileListSuccess')
    expect(JSON.stringify(fileListSuccess)).toEqual("[\"mock.json\"]")

    // 从页面的按钮触发一次文件清空
    await btnClearFileButton.tap()
    await isDone()

    await btnReadDirButton.tap()
    await isDone()

    fileListComplete = await getData('fileListComplete')
    expect(JSON.stringify(fileListComplete)).toEqual("[]")
    fileListSuccess = await getData('fileListSuccess')
    expect(JSON.stringify(fileListSuccess)).toEqual("[]")

601 602 603
  });


604 605 606 607 608 609 610
  it('write and read', async () => {
    /**
     * 测试writefile readfile 各个参数是否符合预期
     */
    let globalTempPath = await getData('globalTempPath')
    await page.setData({
      recursiveVal: true,
W
WOSHIMAHAIFENG 已提交
611
      logAble: false,
612
      basePath: globalTempPath,
W
WOSHIMAHAIFENG 已提交
613 614 615 616 617 618 619 620 621 622 623
      readDir: 'd',
      rmDirFile: 'd',
      mkdirFile: 'd',
      writeFileContent: "我爱北京天安门,天安门前太阳升",
      writeFileEncoding: "utf-8",
      readFileEncoding: "utf-8",
      unlinkFile: 'd/write.bing',
      writeFile: 'd/write.bing',
      readFile: 'd/write.bing',
      getFileInfoFile: 'd/write.bing',
      getFileInfoAlgorithm: "sha1"
624 625 626
    })

    // 先清除文件,需要清除全部可能存在的历史测试文件,避免运行失败
627
    const btnUnLinkFileButton = await page.$('#btn-unlink-file')
628 629 630 631
    await btnUnLinkFileButton.tap()
    await isDone()

    // 清除文件夹
632
    const btnRmDirButton = await page.$('#btn-remove-dir')
633 634 635 636
    await btnRmDirButton.tap()
    await isDone()

    // 重新创建测试目录,期望通过 recursive = true的 文件夹删除,得到一个空的 /a 目录
637
    const btnMkdDirButton = await page.$('#btn-mkdir')
638 639 640
    await btnMkdDirButton.tap()
    await isDone()

641
    const btnReadDirButton = await page.$('#btn-read-dir')
642 643 644 645 646 647 648 649 650
    await btnReadDirButton.tap()
    await isDone()

    let fileListComplete = await getData('fileListComplete')
    expect(JSON.stringify(fileListComplete)).toEqual('[]')
    let fileListSuccess = await getData('fileListSuccess')
    expect(JSON.stringify(fileListSuccess)).toEqual('[]')

    // 先用utf-8 写入内容
651
    const btnWriteFileButton = await page.$('#btn-write-file')
652 653 654
    await btnWriteFileButton.tap()
    await isDone()

655
    const btnReadFileButton = await page.$('#btn-read-file')
656 657 658 659 660
    await btnReadFileButton.tap()
    await isDone()
    let readFileRet = await getData('readFileRet')
    expect(readFileRet).toEqual("我爱北京天安门,天安门前太阳升")

661
    const btnGetFileInfoButton = await page.$('#btn-get-file-info')
662 663 664 665 666 667 668 669 670 671
    await btnGetFileInfoButton.tap()
    await isDone()

    let getFileInfoSize = await getData('getFileInfoSize')
    expect(getFileInfoSize).toEqual(45)
    let getFileInfoDigest = await getData('getFileInfoDigest')
    expect(getFileInfoDigest).toEqual("2ae9c7672ff6c1e7c7e6a0bb4e74a6f06b39350b")

    // 尝试读取base64 信息
    await page.setData({
W
WOSHIMAHAIFENG 已提交
672
      readFileEncoding: "base64",
673 674 675 676 677 678 679 680 681
    })

    await btnReadFileButton.tap()
    await isDone()
    readFileRet = await getData('readFileRet')
    expect(readFileRet).toEqual("5oiR54ix5YyX5Lqs5aSp5a6J6Zeo77yM5aSp5a6J6Zeo5YmN5aSq6Ziz5Y2H")
    // 测试ascii,需要特别测试 ascii 写入非法字符的情况,因为微信的常量字符编码和android原生有差异。

    await page.setData({
W
WOSHIMAHAIFENG 已提交
682 683 684
      writeFileContent: "丙辰中秋,欢饮达旦,大醉,作此篇,兼怀子由。明月几时有?把酒问青天。不知天上宫阙,今夕是何年。我欲乘风归去,又恐琼楼玉宇,高处不胜寒。起舞弄清影,何似在人间",
      writeFileEncoding: "ascii",
      readFileEncoding: "base64",
685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700
    })

    await btnWriteFileButton.tap()
    await isDone()

    await btnGetFileInfoButton.tap()
    await isDone()

    getFileInfoSize = await getData('getFileInfoSize')
    expect(getFileInfoSize).toEqual(78)
    getFileInfoDigest = await getData('getFileInfoDigest')
    expect(getFileInfoDigest).toEqual("4ac7a65055628818341c2ad86ddc4205d8503801")

    await btnReadFileButton.tap()
    await isDone()
    readFileRet = await getData('readFileRet')
W
WOSHIMAHAIFENG 已提交
701 702 703
    expect(readFileRet).toEqual(
      "GbAtywwibr7mDCeJDFxkxwx8AFAxAg4I4PYJH4pS7lIpAg3lKQqrGQzKFS9VdAIRMljOUrsMyFA8fImHDNgEDdzSAnceBAVxDFU8KLr0"
    )
704 705 706

    // 尝试写入合法ascii
    await page.setData({
W
WOSHIMAHAIFENG 已提交
707 708 709
      writeFileContent: "hello jack.hello marry.",
      writeFileEncoding: "ascii",
      readFileEncoding: "ascii",
710 711 712 713 714 715 716 717 718 719 720 721
    })

    await btnWriteFileButton.tap()
    await isDone()

    await btnReadFileButton.tap()
    await isDone()
    readFileRet = await getData('readFileRet')
    expect(readFileRet).toEqual("hello jack.hello marry.")

    // 写入base64 获取 中文
    await page.setData({
W
WOSHIMAHAIFENG 已提交
722 723 724
      writeFileContent: "5LiZ6L6w5Lit56eL77yM5qyi6aWu6L6+5pem77yM5aSn6YaJ77yM5L2c5q2k56+H77yM5YW85oCA5a2Q55Sx44CC5piO5pyI5Yeg5pe25pyJ77yf5oqK6YWS6Zeu6Z2S5aSp44CC5LiN55+l5aSp5LiK5a6r6ZiZ77yM5LuK5aSV5piv5L2V5bm044CC5oiR5qyy5LmY6aOO5b2S5Y6777yM5Y+I5oGQ55C85qW8546J5a6H77yM6auY5aSE5LiN6IOc5a+S44CC6LW36Iie5byE5riF5b2x77yM5L2V5Ly85Zyo5Lq66Ze0",
      writeFileEncoding: "base64",
      readFileEncoding: "utf-8",
725 726 727 728 729 730 731 732
    })

    await btnWriteFileButton.tap()
    await isDone()

    await btnReadFileButton.tap()
    await isDone()
    readFileRet = await getData('readFileRet')
W
WOSHIMAHAIFENG 已提交
733 734
    expect(readFileRet).toEqual(
      "丙辰中秋,欢饮达旦,大醉,作此篇,兼怀子由。明月几时有?把酒问青天。不知天上宫阙,今夕是何年。我欲乘风归去,又恐琼楼玉宇,高处不胜寒。起舞弄清影,何似在人间")
735 736

    await page.setData({
W
WOSHIMAHAIFENG 已提交
737
      readFileEncoding: "base64",
738 739 740 741 742
    })

    await btnReadFileButton.tap()
    await isDone()
    readFileRet = await getData('readFileRet')
W
WOSHIMAHAIFENG 已提交
743 744 745
    expect(readFileRet).toEqual(
      "5LiZ6L6w5Lit56eL77yM5qyi6aWu6L6+5pem77yM5aSn6YaJ77yM5L2c5q2k56+H77yM5YW85oCA5a2Q55Sx44CC5piO5pyI5Yeg5pe25pyJ77yf5oqK6YWS6Zeu6Z2S5aSp44CC5LiN55+l5aSp5LiK5a6r6ZiZ77yM5LuK5aSV5piv5L2V5bm044CC5oiR5qyy5LmY6aOO5b2S5Y6777yM5Y+I5oGQ55C85qW8546J5a6H77yM6auY5aSE5LiN6IOc5a+S44CC6LW36Iie5byE5riF5b2x77yM5L2V5Ly85Zyo5Lq66Ze0"
    )
746 747

  });
748

749 750 751 752 753 754
  it('stat and asset test', async () => {
    // 测试 USER_DATA_PATH //globalTempPath
    let globalRootPath = await getData('globalRootPath')

    await page.setData({
      recursiveVal: true,
W
WOSHIMAHAIFENG 已提交
755
      copyToBasePath: globalRootPath,
756
      basePath: globalRootPath,
W
WOSHIMAHAIFENG 已提交
757 758 759 760
      globalTempPath: globalRootPath,
      rmDirFile: 'a',
      mkdirFile: 'a',
      unlinkFile: 'a/1.txt',
761 762 763
    })

    // 先清除文件,需要清除全部可能存在的历史测试文件,避免运行失败
764
    const btnUnLinkFileButton = await page.$('#btn-unlink-file')
765 766 767 768
    await btnUnLinkFileButton.tap()
    await isDone()

    await page.setData({
W
WOSHIMAHAIFENG 已提交
769
      unlinkFile: 'a/2.txt',
770 771 772 773 774
    })
    await btnUnLinkFileButton.tap()
    await isDone()

    await page.setData({
W
WOSHIMAHAIFENG 已提交
775
      unlinkFile: 'a/m/3.txt',
776 777 778 779 780
    })
    await btnUnLinkFileButton.tap()
    await isDone()

    // // 清除文件夹
781
    const btnRmDirButton = await page.$('#btn-remove-dir')
782 783 784
    await btnRmDirButton.tap()
    await isDone()
    // // 重新创建测试目录
785
    const btnMkdDirButton = await page.$('#btn-mkdir')
786 787 788
    await btnMkdDirButton.tap()
    await isDone()

789
    const btnReadDirButton = await page.$('#btn-read-dir')
790 791 792 793 794 795 796 797 798 799 800 801 802
    await btnReadDirButton.tap()
    await isDone()


    // 期望通过 recursive = true的 文件夹删除,得到一个空的 /a 目录
    let fileListComplete = await getData('fileListComplete')
    expect(JSON.stringify(fileListComplete)).toEqual('[]')
    let fileListSuccess = await getData('fileListSuccess')
    expect(JSON.stringify(fileListSuccess)).toEqual('[]')

    // 写入一个文件
    await page.setData({
      writeFileContent: "锄禾日当午,汗滴禾下土,谁知盘中餐,粒粒皆辛苦",
W
WOSHIMAHAIFENG 已提交
803 804 805 806
      writeFileEncoding: "utf-8",
      writeFile: 'a/1.txt',
      recursiveVal: false,
      statFile: 'a/1.txt',
807 808 809 810 811
    })

    let lastFailError = await getData('lastFailError')
    console.log(lastFailError)

812
    const btnWriteFileButton = await page.$('#btn-write-file')
813 814 815
    await btnWriteFileButton.tap()
    await isDone()

W
WOSHIMAHAIFENG 已提交
816
    let btnStatFileButton = await page.$('#btn-stat-file')
817 818 819 820 821 822
    await btnStatFileButton.tap()
    await isDone()

    // 读取单个文件信息
    let statsRet = await getData('statsRet')
    expect(statsRet.length).toEqual(1)
823
    expect(statsRet[0].path).toMatch(new RegExp('.*/a/1.txt$'))
824 825
    expect(statsRet[0].stats.size).toEqual(69)

W
WOSHIMAHAIFENG 已提交
826 827 828 829 830 831 832 833 834 835 836 837 838 839
    // 写入一个文件
    await page.setData({
      statsRet: ''
    })
    btnStatFileButton = await page.$('#btn-stat-file-sync')
    await btnStatFileButton.tap()
    await isDone()

    // 读取单个文件信息
    statsRet = await getData('statsRet')
    expect(statsRet.length).toEqual(1)
    expect(statsRet[0].path).toMatch(new RegExp('.*/a/1.txt$'))
    expect(statsRet[0].stats.size).toEqual(69)

840 841 842 843 844
    /**
     * 创建子目录和子目录文件,测试recursive参数
     */
    await page.setData({
      writeFileContent: "1234567890",
W
WOSHIMAHAIFENG 已提交
845 846
      writeFileEncoding: "ascii",
      writeFile: 'a/2.txt',
847
      basePath: globalRootPath,
W
WOSHIMAHAIFENG 已提交
848 849 850
      recursiveVal: false,
      statFile: 'a',
      mkdirFile: 'a/m',
851 852 853 854 855 856 857 858 859 860 861 862 863
    })


    await btnWriteFileButton.tap()
    await isDone()

    // 创建子目录
    await btnMkdDirButton.tap()
    await isDone()

    // 复制一份文件到 /a/m/3.txt
    await page.setData({
      //  asset 只能正式版测试,这里只能模拟返回路径
W
WOSHIMAHAIFENG 已提交
864 865 866
      basePath: '',
      copyFromFile: 'static/test-image/logo.ico',
      copyToFile: 'a/m/3.txt',
867
    })
868
    const btnCopyFileButton = await page.$('#btn-copy-file')
869 870 871 872 873 874
    await btnCopyFileButton.tap()
    await isDone()


    await page.setData({
      basePath: globalRootPath,
W
WOSHIMAHAIFENG 已提交
875 876
      recursiveVal: true,
      statFile: 'a',
877 878 879 880 881 882 883
    })

    await btnStatFileButton.tap()
    await isDone()

    // 读取全部文件信息
    statsRet = await getData('statsRet')
884

W
WOSHIMAHAIFENG 已提交
885 886
    statsRet.sort(function(a, b) {
      if (a.path > b.path) {
887
        return 1
W
WOSHIMAHAIFENG 已提交
888
      } else if (a.path < b.path) {
889 890 891 892
        return -1
      }
      return 0
    })
893 894
    console.log(statsRet)
    expect(statsRet.length).toEqual(5)
895 896
    expect(statsRet[0].path).toMatch(new RegExp('.*/a$'))
    // expect(statsRet[0].stats.size).toEqual(0)
897

898
    expect(statsRet[2].path).toMatch(new RegExp('.*/a/2.txt$'))
899 900
    expect(statsRet[2].stats.size).toEqual(10)

901 902
    expect(statsRet[4].path).toMatch(new RegExp('.*/a/m/3.txt$'))
    expect(statsRet[4].stats.size).toEqual(156406)
903

904

905 906
    // 清理文件,避免影响其他测试用例
    await page.setData({
W
WOSHIMAHAIFENG 已提交
907
      unlinkFile: 'a/1.txt',
908 909 910 911 912
    })
    await btnUnLinkFileButton.tap()
    await isDone()

    await page.setData({
W
WOSHIMAHAIFENG 已提交
913
      unlinkFile: 'a/2.txt',
914 915 916 917 918
    })
    await btnUnLinkFileButton.tap()
    await isDone()

    await page.setData({
W
WOSHIMAHAIFENG 已提交
919 920 921 922
      unlinkFile: 'a/m/3.txt',
      rmDirFile: 'a',
      readDir: 'a',
      recursiveVal: true,
923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939
    })
    await btnUnLinkFileButton.tap()
    await isDone()

    await btnRmDirButton.tap()
    await isDone()

    await btnReadDirButton.tap()
    await isDone()

    // 期望通过 recursive = true的 文件夹删除,得到一个空的 /a 目录
    fileListComplete = await getData('fileListComplete')
    expect(JSON.stringify(fileListComplete)).toEqual('[]')
    fileListSuccess = await getData('fileListSuccess')
    expect(JSON.stringify(fileListSuccess)).toEqual('[]')

  });
W
WOSHIMAHAIFENG 已提交
940
  it('appendFileTest', async () => {
W
WOSHIMAHAIFENG 已提交
941
    if (!isAndroid()) {
W
WOSHIMAHAIFENG 已提交
942 943 944 945 946
      return
    }



W
WOSHIMAHAIFENG 已提交
947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997
    await page.setData({
      recursiveVal: true,
      logAble: false,
      rmDirFile: 'appendfile',
      mkdirFile: 'appendfile',
      writeFileContent: "我爱北京天安门,天安门前太阳升",
      appendFileContent: "再说一遍",
      writeFileEncoding: "utf-8",
      readFileEncoding: "utf-8",
      readFile: 'appendfile/appendfile.txt',
      unlinkFile: 'appendfile/appendfile.txt',
      writeFile: 'appendfile/appendfile.txt',
    })

    // 先清除文件,需要清除全部可能存在的历史测试文件,避免运行失败
    const btnUnLinkFileButton = await page.$('#btn-unlink-file')
    await btnUnLinkFileButton.tap()
    await isDone()

    // 清除文件夹
    const btnRmDirButton = await page.$('#btn-remove-dir')
    await btnRmDirButton.tap()
    await isDone()

    // 重新创建测试目录,期望通过 recursive = true的 文件夹删除,得到一个空的 /a 目录
    const btnMkdDirButton = await page.$('#btn-mkdir')
    await btnMkdDirButton.tap()
    await isDone()

    // // 先用utf-8 写入内容
    const btnWriteFileButton = await page.$('#btn-write-file')

    await btnWriteFileButton.tap()
    await isDone()


    // //追加内容
    const btnAppendFileButton = await page.$('#btn-append-file')
    await btnAppendFileButton.tap()
    await isDone()

    const btnReadFileButton = await page.$('#btn-read-file')
    await btnReadFileButton.tap()
    await isDone()
    let readFileRet = await getData('readFileRet')
    expect(readFileRet).toEqual("我爱北京天安门,天安门前太阳升再说一遍")
  });
  //nlinkSyncTest mkdirSyncTest appendFileTest writeFileSyncTest readFileSyncTest rmdirSyncTest readDirSyncTest accessFileSyncTest
  //renameFileSync copyFileSyncTest appendFileSyncTest truncateFileTest truncateFileSyncTest
  it('sync test',
    async () => {
W
WOSHIMAHAIFENG 已提交
998
      if (!isAndroid()) {
W
WOSHIMAHAIFENG 已提交
999 1000 1001 1002
        return
      }


W
WOSHIMAHAIFENG 已提交
1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136
      await page.setData({
        recursiveVal: false,
        logAble: false,
        rmDirFile: 'sync',
        mkdirFile: 'sync',
        writeFileContent: "我爱北京天安门,天安门前太阳升",
        appendFileContent: "再说一遍",
        writeFileEncoding: "utf-8",
        readFileEncoding: "utf-8",
        readDir: 'sync',
        rmDirFile: 'sync',
        unlinkFile: 'sync/sync.txt',
        readFile: 'sync/sync.txt',
        writeFile: 'sync/sync.txt',
        accessFile: 'sync/sync.txt',
        renameToFile: 'sync/sync.txt',
        renameFromFile: 'sync/sync.txt',
      })

      // 先清除文件,需要清除全部可能存在的历史测试文件,避免运行失败
      const btnUnLinkFileButton = await page.$('#btn-unlink-file-sync')
      await btnUnLinkFileButton.tap()
      await isDone()

      //清除文件夹
      const btnRmDirButton = await page.$('#btn-remove-dir-sync')
      await btnRmDirButton.tap()
      await isDone()


      // 重新创建测试目录,期望通过 recursive = true的 文件夹删除,得到一个空的  目录
      const btnMkdDirButton = await page.$('#btn-mkdir-sync')
      await btnMkdDirButton.tap()
      await isDone()

      const btnReadDirButton = await page.$('#btn-read-dir-sync')
      await btnReadDirButton.tap()
      await isDone()
      const fileListSuccess = await getData('fileListSuccess')
      expect(JSON.stringify(fileListSuccess)).toEqual('[]')

      // 先用utf-8 写入内容
      const btnWriteFileButton = await page.$('#btn-write-file-sync')
      await btnWriteFileButton.tap()
      await isDone()

      let btnAccessFileButton = await page.$('#btn-access-file-sync')
      await btnAccessFileButton.tap()
      await isDone()
      let accessFileRet = await getData("accessFileRet")
      expect(accessFileRet).toEqual('access:ok')

      //重新命名文件
      const btnRenameFileButton = await page.$('#btn-rename-file-sync')
      await btnRenameFileButton.tap()
      await isDone()
      let renameFileRet = await getData("renameFileRet")
      expect(renameFileRet).toEqual("rename:ok")


      //追加内容
      let btnAppendFileButton = await page.$('#btn-append-file')
      await btnAppendFileButton.tap()
      await isDone()

      btnAppendFileButton = await page.$('#btn-append-file-sync')
      await btnAppendFileButton.tap()


      let btnReadFileButton = await page.$('#btn-read-file-sync')
      await btnReadFileButton.tap()
      await isDone()
      let readFileRet = await getData('readFileRet')
      expect(readFileRet).toEqual("我爱北京天安门,天安门前太阳升再说一遍再说一遍")

      //truncateFileTest
      let btnTruncateFile = await page.$('#btn-truncate-file')
      await btnTruncateFile.tap()
      await isDone()
      btnReadFileButton = await page.$('#btn-read-file-sync')
      await btnReadFileButton.tap()
      await isDone()
      readFileRet = await getData('readFileRet')
      expect(readFileRet).toEqual("我爱北京天安门")

      btnTruncateFile = await page.$('#btn-truncate-file-sync')
      await btnTruncateFile.tap()
      await isDone()
      btnReadFileButton = await page.$('#btn-read-file-sync')
      await btnReadFileButton.tap()
      await isDone()
      readFileRet = await getData('readFileRet')
      expect(readFileRet).toEqual("我爱北京")


      // 测试 copyfile
      await page.setData({
        copyFromFile: "sync/sync.txt",
        copyToFile: "sync/syncto.txt",
        accessFile: "sync/syncto.txt"
      })
      const btnCopyFileButton = await page.$('#btn-copy-file-sync')
      await btnCopyFileButton.tap()
      await isDone()
      btnAccessFileButton = await page.$('#btn-access-file-sync')
      await btnAccessFileButton.tap()
      await isDone()
      accessFileRet = await getData("accessFileRet")
      expect(accessFileRet).toEqual('access:ok')

      clearDir('sync')
    });

  async function createFile() {
    // 重新创建测试目录,期望通过 recursive = true的 文件夹删除,得到一个空的  目录
    const btnMkdDirButton = await page.$('#btn-mkdir-sync')
    await btnMkdDirButton.tap()
    await isDone()

    // 先用utf-8 写入内容
    const btnWriteFileButton = await page.$('#btn-write-file-sync')
    await btnWriteFileButton.tap()
    await isDone()
  }

  async function clearDir(dir) {
    // 最后需要清楚所有文件避免测试失败
    await page.setData({
      rmDirFile: dir,
    })
    const btnClear = await page.$('#btn-clear-file')
    await btnClear.tap()
    await isDone()
  }
W
WOSHIMAHAIFENG 已提交
1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152

  function isAndroid() {
    if (process.env.uniTestPlatformInfo.indexOf('web') > -1 || process.env.UNI_AUTOMATOR_APP_WEBVIEW === 'true') {
      it('web', () => {
        expect(1).toBe(1)
      })
      return false
    }
    if (process.env.uniTestPlatformInfo.toLocaleLowerCase().startsWith('ios')) {
      it('ios', () => {
        expect(1).toBe(1)
      })
      return false
    }
    return true
  }
W
WOSHIMAHAIFENG 已提交
1153

W
WOSHIMAHAIFENG 已提交
1154 1155
  it('saveFileSyncTest',
    async () => {
W
WOSHIMAHAIFENG 已提交
1156
      if (!isAndroid()) {
W
WOSHIMAHAIFENG 已提交
1157 1158 1159
        return
      }

1160
      console.log('start saveFileSyncTest')
W
WOSHIMAHAIFENG 已提交
1161 1162 1163
      let globalTempPath = await getData('globalTempPath')
      let basePath = await getData('basePath')
      await page.setData({
W
WOSHIMAHAIFENG 已提交
1164
        logAble: false,
W
WOSHIMAHAIFENG 已提交
1165 1166 1167
        basePath: basePath
      })
      await clearDir('')
1168
      console.log('end saveFileSyncTest1')
W
WOSHIMAHAIFENG 已提交
1169
      await page.setData({
W
WOSHIMAHAIFENG 已提交
1170
        logAble: false,
W
WOSHIMAHAIFENG 已提交
1171 1172 1173 1174 1175 1176 1177
        basePath: globalTempPath,
        temFile: 'save/2.txt',
        mkdirFile: 'save',
        writeFile: 'save/2.txt',
        accessFile: '2.txt'
      })
      await createFile()
1178
      console.log('end saveFileSyncTest2')
W
WOSHIMAHAIFENG 已提交
1179 1180 1181 1182 1183 1184
      await page.setData({
        basePath: basePath,
        writeFile: 'save/2.txt',
      })
      btnSaveFile = await page.$('#btn-save-file-sync')
      await btnSaveFile.tap()
1185
      console.log('end saveFileSyncTest3')
W
WOSHIMAHAIFENG 已提交
1186 1187
      let btnRemoveSavedFileRet = await page.$('#btn-remove-saved-file')
      await btnRemoveSavedFileRet.tap()
1188 1189 1190
      await isDone()
      console.log('end saveFileSyncTest4')

W
WOSHIMAHAIFENG 已提交
1191 1192 1193 1194 1195
      let removeSavedFileRet = await getData("removeSavedFileRet")
      expect(removeSavedFileRet).toEqual('removeSavedFile:ok')
      await page.setData({
        removeSavedFileRet: ''
      })
W
WOSHIMAHAIFENG 已提交
1196
      await clearDir('')
1197
      console.log('end saveFileSyncTest')
W
WOSHIMAHAIFENG 已提交
1198 1199 1200 1201
    });

  it('getSavedFileListTest',
    async () => {
W
WOSHIMAHAIFENG 已提交
1202
      if (!isAndroid()) {
W
WOSHIMAHAIFENG 已提交
1203 1204 1205 1206
        return
      }


W
WOSHIMAHAIFENG 已提交
1207 1208 1209
      let globalTempPath = await getData('globalTempPath')
      let basePath = await getData('basePath')
      await page.setData({
W
WOSHIMAHAIFENG 已提交
1210
        logAble: false,
W
WOSHIMAHAIFENG 已提交
1211 1212 1213 1214
        basePath: basePath
      })
      await clearDir('')
      await page.setData({
W
WOSHIMAHAIFENG 已提交
1215
        logAble: false,
W
WOSHIMAHAIFENG 已提交
1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232
        basePath: globalTempPath,
        temFile: 'save/2.txt',
        mkdirFile: 'save',
        writeFile: 'save/2.txt',
        accessFile: '2.txt'
      })
      await createFile()
      await page.setData({
        basePath: basePath,
        writeFile: 'save/2.txt',
      })
      btnSaveFile = await page.$('#btn-save-file-sync')
      await btnSaveFile.tap()

      let btnSavedFileList = await page.$('#btn-getsaved-filelist')
      await btnSavedFileList.tap()
      await isDone()
1233 1234
      let fileListSuccess = await getData("getSavedFileListRet")
      expect(fileListSuccess).toEqual('getSavedFileList:ok')
W
WOSHIMAHAIFENG 已提交
1235

W
WOSHIMAHAIFENG 已提交
1236 1237 1238 1239 1240
      await clearDir('')
    });

  it('removeSavedFileTest',
    async () => {
W
WOSHIMAHAIFENG 已提交
1241
      if (!isAndroid()) {
W
WOSHIMAHAIFENG 已提交
1242 1243 1244 1245
        return
      }


W
WOSHIMAHAIFENG 已提交
1246 1247 1248
      let globalTempPath = await getData('globalTempPath')
      let basePath = await getData('basePath')
      await page.setData({
W
WOSHIMAHAIFENG 已提交
1249
        logAble: false,
W
WOSHIMAHAIFENG 已提交
1250 1251 1252 1253
        basePath: basePath
      })
      await clearDir('')
      await page.setData({
W
WOSHIMAHAIFENG 已提交
1254
        logAble: false,
W
WOSHIMAHAIFENG 已提交
1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273
        basePath: globalTempPath,
        temFile: 'save/2.txt',
        mkdirFile: 'save',
        writeFile: 'save/2.txt',
        accessFile: '2.txt'
      })
      await createFile()
      await page.setData({
        basePath: basePath,
        writeFile: 'save/2.txt',
      })
      btnSaveFile = await page.$('#btn-save-file-sync')
      await btnSaveFile.tap()
      await isDone()

      let btnRemoveSavedFileRet = await page.$('#btn-remove-saved-file')
      await btnRemoveSavedFileRet.tap()
      let removeSavedFileRet = await getData("removeSavedFileRet")
      expect(removeSavedFileRet).toEqual('removeSavedFile:ok')
W
WOSHIMAHAIFENG 已提交
1274 1275 1276 1277
      await clearDir('')
    });

  //openFiletest openFileSynctest closeTest closeTestSync writeTest writeSyncTest
W
WOSHIMAHAIFENG 已提交
1278
  it('openFiletest', async () => {
W
WOSHIMAHAIFENG 已提交
1279
    if (!isAndroid()) {
W
WOSHIMAHAIFENG 已提交
1280 1281 1282 1283
      return
    }


W
WOSHIMAHAIFENG 已提交
1284 1285
    await clearDir('')
    await page.setData({
W
WOSHIMAHAIFENG 已提交
1286
      logAble: false,
W
WOSHIMAHAIFENG 已提交
1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307
      mkdirFile: 'fd',
      writeFile: 'fd/1.txt',
      readFile: 'fd/1.txt'
    })
    await createFile()
    //openFiletest
    let btnOpenFile = await page.$('#btn-open-file')
    await btnOpenFile.tap()
    await isDone()
    let fd = await getData("fd")
    expect(fd).not.toBe('');
    await page.setData({
      fd: '',
    })

    //openFileSynctest
    btnOpenFile = await page.$('#btn-open-file-sync')
    await btnOpenFile.tap()
    await isDone()
    fd = await getData("fd")
    expect(fd).not.toBe('');
W
WOSHIMAHAIFENG 已提交
1308 1309 1310
  });
  // closeTest closeTestSync
  it('closeTest', async () => {
W
WOSHIMAHAIFENG 已提交
1311
    if (!isAndroid()) {
W
WOSHIMAHAIFENG 已提交
1312 1313 1314 1315
      return
    }


W
WOSHIMAHAIFENG 已提交
1316 1317
    await clearDir('')
    await page.setData({
W
WOSHIMAHAIFENG 已提交
1318
      logAble: false,
W
WOSHIMAHAIFENG 已提交
1319 1320 1321 1322 1323
      mkdirFile: 'fd',
      writeFile: 'fd/1.txt',
      readFile: 'fd/1.txt'
    })
    await createFile()
W
WOSHIMAHAIFENG 已提交
1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339
    //closeTest
    let btnCloseFile = await page.$('#btn-close-file')
    await btnCloseFile.tap()
    await isDone()
    let closeFileRet = await getData("closeFileRet")
    expect(closeFileRet).toEqual('close:ok')
    await page.setData({
      closeFileRet: '',
    })
    //closeTestSync
    btnCloseFile = await page.$('#btn-close-file-sync')
    await btnCloseFile.tap()
    await isDone()
    closeFileRet = await getData("closeFileRet")
    expect(closeFileRet).toEqual('close:ok')

W
WOSHIMAHAIFENG 已提交
1340 1341 1342
  });
  //writeTest writeSyncTest
  it('writeTest', async () => {
W
WOSHIMAHAIFENG 已提交
1343
    if (!isAndroid()) {
W
WOSHIMAHAIFENG 已提交
1344 1345 1346
      return
    }

W
WOSHIMAHAIFENG 已提交
1347
    await clearDir('')
W
WOSHIMAHAIFENG 已提交
1348
    await page.setData({
W
WOSHIMAHAIFENG 已提交
1349
      logAble: false,
W
WOSHIMAHAIFENG 已提交
1350
      mkdirFile: 'fd',
W
WOSHIMAHAIFENG 已提交
1351 1352 1353 1354
      writeFile: 'fd/1.txt',
      readFile: 'fd/1.txt',
      writeData: '我是一只小小鸟'
    })
W
WOSHIMAHAIFENG 已提交
1355
    await createFile()
W
WOSHIMAHAIFENG 已提交
1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369

    let btnWrite = await page.$('#btn-write')
    await btnWrite.tap()
    await isDone()
    let bytesWritten = await getData("bytesWritten")
    expect(bytesWritten).toEqual(7)

    //writeSyncTest
    await page.setData({
      writeFile: 'fd/1.txt',
      readFile: 'fd/1.txt',
      writeData: '我是'
    })

W
WOSHIMAHAIFENG 已提交
1370
    btnWrite = await page.$('#btn-write')
W
WOSHIMAHAIFENG 已提交
1371 1372
    await btnWrite.tap()
    await isDone()
W
WOSHIMAHAIFENG 已提交
1373
    bytesWritten = await getData("bytesWritten")
W
WOSHIMAHAIFENG 已提交
1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406
    expect(bytesWritten).toEqual(2)

    //fstatTest
    let btnFstat = await page.$('#btn-fstat-file')
    await btnFstat.tap()
    await isDone()
    let fstat = await getData("fstat")
    expect(fstat.size > 0).toBe(true)

    //fstatSyncTest
    btnFstat = await page.$('#btn-fstat-file-sync')
    await btnFstat.tap()
    await isDone()
    fstat = await getData("fstat")
    expect(fstat.size > 0).toBe(true)

    //ftruncateFileTest
    let btnFTruncateFile = await page.$('#btn-ftruncate-file')
    await btnFTruncateFile.tap()
    await isDone()
    let ftruncateRet = await getData("ftruncateRet")
    expect(fstat).not.toEqual('ftruncate:ok')
    await page.setData({
      ftruncate: '',
    })
    //ftruncateFileSyncTest
    btnFTruncateFile = await page.$('#btn-ftruncate-file-sync')
    await btnFTruncateFile.tap()
    await isDone()
    ftruncateRet = await getData("ftruncateRet")
    expect(fstat).not.toEqual('ftruncate:ok')

  });
W
WOSHIMAHAIFENG 已提交
1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448

  //saveFileTest saveFileSyncTest getSavedFileListTest removeSavedFileTest
  it('savefile test',
    async () => {
      if (!isAndroid()) {
        return
      }


      let globalTempPath = await getData('globalTempPath')
      let basePath = await getData('basePath')
      await page.setData({
        logAble: false,
        basePath: basePath
      })
      await clearDir('')


      await page.setData({
        basePath: globalTempPath,
        temFile: 'save/1.txt',
        mkdirFile: 'save',
        writeFile: 'save/1.txt',
        accessFile: '1.txt'
      })
      await createFile()

      await page.setData({
        basePath: basePath,
        temFile: 'save/1.txt',
      })
      let btnSaveFile = await page.$('#btn-save-file')
      await btnSaveFile.tap()
      await isDone()
      let saveFileRet = await getData("saveFileRet")
      expect(saveFileRet).not.toBe('');
      await page.setData({
        saveFileRet: ''
      })
      // await clearDir('')
    });

1449
});