123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497 |
- jest.setTimeout(50000);
- const platformInfo = process.env.uniTestPlatformInfo.toLocaleLowerCase()
- const isIOS = platformInfo.startsWith('ios')
- const isAndroid = platformInfo.startsWith('android')
- const isHarmony = platformInfo.startsWith('harmony')
- const isMP = platformInfo.startsWith('mp')
- const isWeb = platformInfo.startsWith('web')
- const isAppWebView = process.env.UNI_AUTOMATOR_APP_WEBVIEW == 'true'
- const isApp = isAndroid || isIOS || isHarmony && !isAppWebView
- const PAGE_PATH = '/pages/API/get-file-system-manager/get-file-system-manager'
- describe('ExtApi-FileManagerTest', () => {
- if (isWeb || isAppWebView) {
- it('not support', () => {
- expect(1).toBe(1)
- })
- return
- }
- let page;
- let mBasePath;
- let mGlobalTempPath;
- beforeAll(async () => {
- page = await program.reLaunch(PAGE_PATH)
- await page.waitFor('text');
- await page.waitFor(600);
- });
- async function isDone() {
- let isDone = await page.waitFor(async () => {
- return await page.data('done')
- })
- await page.setData({
- done: false
- })
- return isDone
- }
- it('USER_DATA_PATH test', async () => {
- // 测试 USER_DATA_PATH
- let globalUserDataPath = await page.data('globalUserDataPath')
- mBasePath = await page.data('basePath')
- mGlobalRootPath = await page.data('globalRootPath')
- mGlobalTempPath = await page.data('globalTempPath')
- await page.setData({
- logAble: false,
- recursiveVal: true,
- copyToBasePath: globalUserDataPath,
- basePath: globalUserDataPath,
- rmDirFile: 'a',
- readDir: 'a',
- writeFile: 'a/1.txt',
- readFile: 'a/1.txt',
- unlinkFile: 'a/1.txt',
- writeFileContent: '锄禾日当午,汗滴禾下土,谁知盘中餐,粒粒皆辛苦'
- })
- // 先清除文件,需要清除全部可能存在的历史测试文件,避免运行失败
- const btnUnLinkFileButton = await page.$('#btn-clear-file')
- await btnUnLinkFileButton.tap()
- await isDone()
- // 清除文件夹
- const btnRmDirButton = await page.$('#btn-remove-dir')
- await btnRmDirButton.tap()
- await isDone()
- // 重新创建测试目录
- const btnMkdDirButton = await page.$('#btn-mkdir')
- await btnMkdDirButton.tap()
- await isDone()
- const btnReadDirButton = await page.$('#btn-read-dir')
- await btnReadDirButton.tap()
- await isDone()
- // 期望通过 recursive = true的 文件夹删除,得到一个空的 /a 目录
- let fileListComplete = await page.data('fileListComplete')
- expect(JSON.stringify(fileListComplete)).toEqual('[]')
- let fileListSuccess = await page.data('fileListSuccess')
- expect(JSON.stringify(fileListSuccess)).toEqual('[]')
- // 先测试 recursive = false 文件夹创建,期望失败
- await page.setData({
- recursiveVal: false,
- mkdirFile: 'a/b/c'
- })
- if (!isMP) {
- await btnMkdDirButton.tap()
- await isDone()
- let lastFailError = await page.data('lastFailError')
- expect(lastFailError.errCode).toEqual(1300002)
- expect(lastFailError.errMsg).toContain('No such file or directory')
- // let lastCompleteError = await page.data('lastCompleteError')
- // expect(lastCompleteError.errCode).toEqual(1300002)
- // expect(lastCompleteError.errMsg).toEqual('No such file or directory')
- }
- // 测试 recursive = true 期望文件夹创建成功
- await page.setData({
- recursiveVal: true
- })
- await btnMkdDirButton.tap()
- await isDone()
- await btnReadDirButton.tap()
- await isDone()
- // 期望通过 recursive = true的 文件夹删除,得到一个空的 /a 目录
- fileListComplete = await page.data('fileListComplete')
- expect(JSON.stringify(fileListComplete)).toEqual("[\"b\"]")
- fileListSuccess = await page.data('fileListSuccess')
- expect(JSON.stringify(fileListSuccess)).toEqual("[\"b\"]")
- // 测试写入文件
- const btnWriteFileButton = await page.$('#btn-write-file')
- await btnWriteFileButton.tap()
- await isDone()
- // 检查目录列表数量
- await btnReadDirButton.tap()
- await isDone()
- fileListComplete = await page.data('fileListComplete')
- fileListComplete.sort()
- expect(JSON.stringify(fileListComplete)).toEqual("[\"1.txt\",\"b\"]")
- fileListSuccess = await page.data('fileListSuccess')
- fileListSuccess.sort()
- expect(JSON.stringify(fileListSuccess)).toEqual("[\"1.txt\",\"b\"]")
- // 获取和对比 文件内容
- const btnReadFileButton = await page.$('#btn-read-file')
- await btnReadFileButton.tap()
- await isDone()
- let readFileRet = await page.data('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.",
- getFileInfoAlgorithm: "md5"
- })
- await btnWriteFileButton.tap()
- await isDone()
- await btnReadFileButton.tap()
- await isDone()
- readFileRet = await page.data('readFileRet')
- 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."
- )
- const btnGetFileInfoButton = await page.$('#btn-get-file-info')
- await btnGetFileInfoButton.tap()
- await isDone()
- let getFileInfoSize = await page.data('getFileInfoSize')
- expect(getFileInfoSize).toEqual(185)
- let getFileInfoDigest = await page.data('getFileInfoDigest')
- expect(getFileInfoDigest).toEqual("29ddd02ed3c38ccebb98884eda082cb1")
- // 切换为 sha1
- await page.setData({
- getFileInfoAlgorithm: "sha1"
- })
- await btnGetFileInfoButton.tap()
- await isDone()
- getFileInfoSize = await page.data('getFileInfoSize')
- expect(getFileInfoSize).toEqual(185)
- getFileInfoDigest = await page.data('getFileInfoDigest')
- expect(getFileInfoDigest).toEqual("ebef4e75783e0db499fc260d120e695005bead8a")
- // 测试 copyfile
- await page.setData({
- copyFromFile: "a/1.txt",
- copyToFile: "a/2.txt"
- })
- const btnCopyFileButton = await page.$('#btn-copy-file')
- await btnCopyFileButton.tap()
- await isDone()
- await btnReadDirButton.tap()
- await isDone()
- // 1.txt 2.txt 两个文件都存在
- fileListComplete = await page.data('fileListComplete')
- fileListComplete.sort()
- expect(JSON.stringify(fileListComplete)).toEqual("[\"1.txt\",\"2.txt\",\"b\"]")
- fileListSuccess = await page.data('fileListSuccess')
- fileListSuccess.sort()
- expect(JSON.stringify(fileListSuccess)).toEqual("[\"1.txt\",\"2.txt\",\"b\"]")
- // 测试 rename
- await page.setData({
- renameFromFile: "a/2.txt",
- renameToFile: "a/3.txt"
- })
- const btnRenameFileButton = await page.$('#btn-rename-file')
- await btnRenameFileButton.tap()
- await isDone()
- await btnReadDirButton.tap()
- await isDone()
- // 1.txt 3.txt 两个文件都存在
- fileListComplete = await page.data('fileListComplete')
- fileListComplete.sort()
- expect(JSON.stringify(fileListComplete)).toEqual("[\"1.txt\",\"3.txt\",\"b\"]")
- fileListSuccess = await page.data('fileListSuccess')
- fileListSuccess.sort()
- expect(JSON.stringify(fileListSuccess)).toEqual("[\"1.txt\",\"3.txt\",\"b\"]")
- });
- if (isMP) {
- // 如下大量测试是对非USER_DATA_PATH的测试,后续有机会再行整理
- return
- }
- it('TEMP_PATH test', async () => {
- // 测试 TEMP_PATH
- let globalTempPath = await page.data('globalTempPath')
- let version = process.env.uniTestPlatformInfo
- version = parseInt(version.split(" ")[1])
- let testDirName = "我们经历了一场兵慌马乱的战争.1@2#3$4%5^6&7*8(9)0+-qwertyuiopasdfghjklzxcvbnm;,"
- if (version < 6) {
- // android 6 以下文件名不能包含特殊字符
- testDirName = "我们经历了一场兵慌马乱的战争"
- }
- await page.setData({
- logAble: false,
- recursiveVal: true,
- basePath: globalTempPath,
- copyToBasePath: globalTempPath,
- rmDirFile: 'a',
- mkdirFile: 'a',
- unlinkFile: 'a/' + testDirName + '/中文路径/张三/name/中文文件.mock'
- })
- // 先清除文件,需要清除全部可能存在的历史测试文件,避免运行失败
- const btnUnLinkFileButton = await page.$('#btn-unlink-file')
- await btnUnLinkFileButton.tap()
- await isDone()
- // 清除文件夹
- const btnRmDirButton = await page.$('#btn-remove-dir')
- await btnRmDirButton.tap()
- await isDone()
- // 重新创建测试目录
- const btnMkdDirButton = await page.$('#btn-mkdir')
- await btnMkdDirButton.tap()
- await isDone()
- const btnReadDirButton = await page.$('#btn-read-dir')
- await btnReadDirButton.tap()
- await isDone()
- // 期望通过 recursive = true的 文件夹删除,得到一个空的 /a 目录
- let fileListComplete = await page.data('fileListComplete')
- expect(JSON.stringify(fileListComplete)).toEqual("[]")
- let fileListSuccess = await page.data('fileListSuccess')
- expect(JSON.stringify(fileListSuccess)).toEqual("[]")
- // 测试 创建多层级文件目录
- await page.setData({
- recursiveVal: true,
- 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',
- })
- await btnMkdDirButton.tap()
- await isDone()
- await btnReadDirButton.tap()
- await isDone()
- fileListComplete = await page.data('fileListComplete')
- expect(JSON.stringify(fileListComplete)).toEqual("[\"b\"]")
- fileListSuccess = await page.data('fileListSuccess')
- expect(JSON.stringify(fileListSuccess)).toEqual("[\"b\"]")
- // 测试 创建包含中文特殊符号的目录
- await page.setData({
- recursiveVal: true,
- mkdirFile: 'a/' + testDirName + '/中文路径/张三/name',
- })
- await btnMkdDirButton.tap()
- await isDone()
- await btnReadDirButton.tap()
- await isDone()
- // 期望通过 recursive = true的 文件夹删除,得到一个空的 /a 目录
- fileListComplete = await page.data('fileListComplete')
- fileListComplete.sort()
- expect(JSON.stringify(fileListComplete)).toEqual("[\"b\",\"" + testDirName + "\"]")
- fileListSuccess = await page.data('fileListSuccess')
- fileListSuccess.sort()
- expect(JSON.stringify(fileListSuccess)).toEqual("[\"b\",\"" + testDirName + "\"]")
- /**
- * 从资源文件中读取图片为base64,测试写入较大文件场景
- * 'static/test-image/logo.ico' 注意,依赖这个资源文件,不能删除
- */
- await page.setData({
- basePath: "/",
- readFile: 'static/test-image/logo.ico',
- readFileEncoding: 'base64'
- })
- // 获取和对比 文件内容
- const btnReadFileButton = await page.$('#btn-read-file')
- await btnReadFileButton.tap()
- await isDone()
- let readFileRet = await page.data('readFileRet')
- expect(readFileRet.length).toEqual(5716)
- let endStr = readFileRet.substring(readFileRet.length - 10)
- expect(endStr).toEqual("AA///AA/8=")
- await page.setData({
- basePath: globalTempPath,
- writeFile: 'a/' + testDirName + '/中文路径/张三/name/中文文件.mock',
- writeFileContent: readFileRet
- })
- const btnWriteFileButton = await page.$('#btn-write-file')
- await btnWriteFileButton.tap()
- await isDone()
- // 获取文件列表,判断是否写入成功,同时置空base64内容 避免影响实时查看状态
- await page.setData({
- readDir: 'a/' + testDirName + '/中文路径/张三/name',
- readFileRet: '',
- writeFileContent: ''
- })
- // 检查目录列表数量
- await btnReadDirButton.tap()
- await isDone()
- fileListComplete = await page.data('fileListComplete')
- expect(JSON.stringify(fileListComplete)).toEqual("[\"中文文件.mock\"]")
- fileListSuccess = await page.data('fileListSuccess')
- expect(JSON.stringify(fileListSuccess)).toEqual("[\"中文文件.mock\"]")
- // 更换文件内容 获取和对比 文件md5和sha1
- await page.setData({
- getFileInfoFile: 'a/' + testDirName + '/中文路径/张三/name/中文文件.mock',
- getFileInfoAlgorithm: "md5",
- })
- const btnGetFileInfoButton = await page.$('#btn-get-file-info')
- await btnGetFileInfoButton.tap()
- await isDone()
- let getFileInfoSize = await page.data('getFileInfoSize')
- expect(getFileInfoSize).toEqual(5716)
- let getFileInfoDigest = await page.data('getFileInfoDigest')
- expect(getFileInfoDigest).toEqual("5d8accb35bda875ca3726d18b020e474")
- // 切换为 sha1
- await page.setData({
- getFileInfoAlgorithm: "sha1"
- })
- await btnGetFileInfoButton.tap()
- await isDone()
- getFileInfoSize = await page.data('getFileInfoSize')
- expect(getFileInfoSize).toEqual(5716)
- getFileInfoDigest = await page.data('getFileInfoDigest')
- expect(getFileInfoDigest).toEqual("b48cf507b618974ee5b7d5449d8c1911e2d68245")
- // 测试不支持的摘要算法,期望返回错误
- await page.setData({
- getFileInfoAlgorithm: "sha256"
- })
- if (!isMP) {
- await btnGetFileInfoButton.tap()
- await isDone()
- let lastFailError = await page.data('lastFailError')
- expect(lastFailError.errCode).toEqual(1300022)
- // let lastCompleteError = await page.data('lastCompleteError')
- // expect(lastCompleteError.errCode).toEqual(1300022)
- }
- // rename 到一个没有提前创建过的目录,期望返回错误
- await page.setData({
- renameFromFile: "a/" + testDirName + "/中文路径/张三/name/中文文件.mock",
- renameToFile: "a/没有提前创建的目录/3.txt"
- })
- if (!isMP) {
- const btnRenameFileButton = await page.$('#btn-rename-file')
- await btnRenameFileButton.tap()
- await isDone()
- lastFailError = await page.data('lastFailError')
- expect(lastFailError.errCode).toEqual(1300002)
- // lastCompleteError = await page.data('lastCompleteError')
- // expect(lastCompleteError.errCode).toEqual(1300002)
- }
- // 非递归创建一级目录。期望成功
- await page.setData({
- recursiveVal: false,
- mkdirFile: 'a/提前创建的目录',
- })
- await btnMkdDirButton.tap()
- await isDone()
- await page.setData({
- readDir: 'a',
- })
- await btnReadDirButton.tap()
- await isDone()
- fileListComplete = await page.data('fileListComplete')
- fileListComplete.sort()
- expect(JSON.stringify(fileListComplete)).toEqual("[\"b\",\"" + testDirName +
- "\",\"提前创建的目录\"]")
- fileListSuccess = await page.data('fileListSuccess')
- fileListSuccess.sort()
- expect(JSON.stringify(fileListSuccess)).toEqual("[\"b\",\"" + testDirName +
- "\",\"提前创建的目录\"]")
- await page.setData({
- copyFromFile: "a/" + testDirName + "/中文路径/张三/name/中文文件.mock",
- copyToFile: "a/提前创建的目录/4.txt"
- })
- const btnCopyFileButton = await page.$('#btn-copy-file')
- await btnCopyFileButton.tap()
- await isDone()
- await page.setData({
- readDir: 'a/提前创建的目录',
- })
- await btnReadDirButton.tap()
- await isDone()
- fileListComplete = await page.data('fileListComplete')
- expect(JSON.stringify(fileListComplete)).toEqual("[\"4.txt\"]")
- fileListSuccess = await page.data('fileListSuccess')
- expect(JSON.stringify(fileListSuccess)).toEqual("[\"4.txt\"]")
- await page.setData({
- unlinkFile: 'a/提前创建的目录/4.txt',
- rmDirFile: 'a/提前创建的目录'
- })
- await btnUnLinkFileButton.tap()
- await isDone()
- await btnReadDirButton.tap()
- await isDone()
- fileListComplete = await page.data('fileListComplete')
- expect(JSON.stringify(fileListComplete)).toEqual("[]")
- fileListSuccess = await page.data('fileListSuccess')
- expect(JSON.stringify(fileListSuccess)).toEqual("[]")
- });
- it('CROSS DIR test', async () => {
- /**
- * 跨越用户目录和代码资源目录
- */
- let globalRootPath = await page.data('globalRootPath')
- await page.setData({
- recursiveVal: true,
- logAble: false,
- basePath: globalRootPath,
- readDir: 'a',
- rmDirFile: 'a',
- mkdirFile: 'a',
- accessFile: 'a/从代码目录拷贝的资源.png',
- unlinkFile: 'a/从代码目录拷贝的资源.png'
- })
- // 先清除文件,需要清除全部可能存在的历史测试文件,避免运行失败
- const btnClearFileButton = await page.$('#btn-clear-file')
- await btnClearFileButton.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()
- const btnReadDirButton = await page.$('#btn-read-dir')
- await btnReadDirButton.tap()
- await isDone()
- let fileListComplete = await page.data('fileListComplete')
- expect(JSON.stringify(fileListComplete)).toEqual('[]')
- let fileListSuccess = await page.data('fileListSuccess')
- expect(JSON.stringify(fileListSuccess)).toEqual('[]')
- // 检查资源文件,此时不存在
- const btnAccessFileButton = await page.$('#btn-access-file')
- await btnAccessFileButton.tap()
- await isDone()
- let accessFileRet = await page.data("accessFileRet")
- expect(accessFileRet).toEqual('')
- // 准备从资源目录拷贝png
- await page.setData({
- basePath: "/",
- unlinkFile: 'static/test-image/logo.ico',
- accessFile: 'static/test-image/logo.ico',
- })
- // 检查资源文件,期望存在
- await btnAccessFileButton.tap()
- await isDone()
- accessFileRet = await page.data("accessFileRet")
- expect(accessFileRet).toEqual('access:ok')
- // // 尝试删除资源,期望失败
- const btnUnLinkFileButton = await page.$('#btn-unlink-file')
- if (!isIOS) {
- await btnUnLinkFileButton.tap()
- await isDone()
- }
- await btnAccessFileButton.tap()
- await isDone()
- accessFileRet = await page.data("accessFileRet")
- expect(accessFileRet).toEqual('access:ok')
- // 复制资源到 root目录
- await page.setData({
- copyToBasePath: globalRootPath,
- copyFromFile: "static/test-image/logo.ico",
- copyToFile: "a/从代码目录拷贝的资源.png"
- })
- const btnCopyFileButton = await page.$('#btn-copy-file')
- await btnCopyFileButton.tap()
- await isDone()
- // 检查期望 root 目录中图片文件存在
- await page.setData({
- basePath: globalRootPath,
- unlinkFile: 'a/从代码目录拷贝的资源.png',
- accessFile: 'a/从代码目录拷贝的资源.png',
- rmDirFile: 'a',
- })
- await btnAccessFileButton.tap()
- await isDone()
- accessFileRet = await page.data("accessFileRet")
- expect(accessFileRet).toEqual('access:ok')
- await btnUnLinkFileButton.tap()
- await isDone()
- await btnAccessFileButton.tap()
- await isDone()
- accessFileRet = await page.data("accessFileRet")
- expect(accessFileRet).toEqual('')
- // 从页面的按钮触发一次文件复制
- const btnCopyStaticFileButton = await page.$('#btn-copyStatic-file')
- await btnCopyStaticFileButton.tap()
- await isDone()
- await btnReadDirButton.tap()
- await isDone()
- fileListComplete = await page.data('fileListComplete')
- expect(JSON.stringify(fileListComplete)).toEqual("[\"mock.json\"]")
- fileListSuccess = await page.data('fileListSuccess')
- expect(JSON.stringify(fileListSuccess)).toEqual("[\"mock.json\"]")
- // 从页面的按钮触发一次文件清空
- await btnClearFileButton.tap()
- await isDone()
- await btnReadDirButton.tap()
- await isDone()
- fileListComplete = await page.data('fileListComplete')
- expect(JSON.stringify(fileListComplete)).toEqual("[]")
- fileListSuccess = await page.data('fileListSuccess')
- expect(JSON.stringify(fileListSuccess)).toEqual("[]")
- });
- it('write and read', async () => {
- /**
- * 测试writefile readfile 各个参数是否符合预期
- */
- let globalTempPath = await page.data('globalTempPath')
- await page.setData({
- recursiveVal: true,
- logAble: false,
- basePath: globalTempPath,
- 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"
- })
- // 先清除文件,需要清除全部可能存在的历史测试文件,避免运行失败
- 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()
- const btnReadDirButton = await page.$('#btn-read-dir')
- await btnReadDirButton.tap()
- await isDone()
- let fileListComplete = await page.data('fileListComplete')
- expect(JSON.stringify(fileListComplete)).toEqual('[]')
- let fileListSuccess = await page.data('fileListSuccess')
- expect(JSON.stringify(fileListSuccess)).toEqual('[]')
- // 先用utf-8 写入内容
- const btnWriteFileButton = await page.$('#btn-write-file')
- await btnWriteFileButton.tap()
- await isDone()
- const btnReadFileButton = await page.$('#btn-read-file')
- await btnReadFileButton.tap()
- await isDone()
- let readFileRet = await page.data('readFileRet')
- expect(readFileRet).toEqual("我爱北京天安门,天安门前太阳升")
- const btnGetFileInfoButton = await page.$('#btn-get-file-info')
- await btnGetFileInfoButton.tap()
- await isDone()
- let getFileInfoSize = await page.data('getFileInfoSize')
- expect(getFileInfoSize).toEqual(45)
- let getFileInfoDigest = await page.data('getFileInfoDigest')
- expect(getFileInfoDigest).toEqual("2ae9c7672ff6c1e7c7e6a0bb4e74a6f06b39350b")
- // 尝试读取base64 信息
- await page.setData({
- readFileEncoding: "base64",
- })
- await btnReadFileButton.tap()
- await isDone()
- readFileRet = await page.data('readFileRet')
- expect(readFileRet).toEqual("5oiR54ix5YyX5Lqs5aSp5a6J6Zeo77yM5aSp5a6J6Zeo5YmN5aSq6Ziz5Y2H")
- // 测试ascii,需要特别测试 ascii 写入非法字符的情况,因为微信的常量字符编码和android原生有差异。
- await page.setData({
- writeFileContent: "丙辰中秋,欢饮达旦,大醉,作此篇,兼怀子由。明月几时有?把酒问青天。不知天上宫阙,今夕是何年。我欲乘风归去,又恐琼楼玉宇,高处不胜寒。起舞弄清影,何似在人间",
- writeFileEncoding: "ascii",
- readFileEncoding: "base64",
- })
- await btnWriteFileButton.tap()
- await isDone()
- await btnGetFileInfoButton.tap()
- await isDone()
- getFileInfoSize = await page.data('getFileInfoSize')
- expect(getFileInfoSize).toEqual(78)
- getFileInfoDigest = await page.data('getFileInfoDigest')
- expect(getFileInfoDigest).toEqual("4ac7a65055628818341c2ad86ddc4205d8503801")
- await btnReadFileButton.tap()
- await isDone()
- readFileRet = await page.data('readFileRet')
- expect(readFileRet).toEqual(
- "GbAtywwibr7mDCeJDFxkxwx8AFAxAg4I4PYJH4pS7lIpAg3lKQqrGQzKFS9VdAIRMljOUrsMyFA8fImHDNgEDdzSAnceBAVxDFU8KLr0"
- )
- // 尝试写入合法ascii
- await page.setData({
- writeFileContent: "hello jack.hello marry.",
- writeFileEncoding: "ascii",
- readFileEncoding: "ascii",
- })
- await btnWriteFileButton.tap()
- await isDone()
- await btnReadFileButton.tap()
- await isDone()
- readFileRet = await page.data('readFileRet')
- expect(readFileRet).toEqual("hello jack.hello marry.")
- // 写入base64 获取 中文
- await page.setData({
- writeFileContent: "5LiZ6L6w5Lit56eL77yM5qyi6aWu6L6+5pem77yM5aSn6YaJ77yM5L2c5q2k56+H77yM5YW85oCA5a2Q55Sx44CC5piO5pyI5Yeg5pe25pyJ77yf5oqK6YWS6Zeu6Z2S5aSp44CC5LiN55+l5aSp5LiK5a6r6ZiZ77yM5LuK5aSV5piv5L2V5bm044CC5oiR5qyy5LmY6aOO5b2S5Y6777yM5Y+I5oGQ55C85qW8546J5a6H77yM6auY5aSE5LiN6IOc5a+S44CC6LW36Iie5byE5riF5b2x77yM5L2V5Ly85Zyo5Lq66Ze0",
- writeFileEncoding: "base64",
- readFileEncoding: "utf-8",
- })
- await btnWriteFileButton.tap()
- await isDone()
- await btnReadFileButton.tap()
- await isDone()
- readFileRet = await page.data('readFileRet')
- expect(readFileRet).toEqual(
- "丙辰中秋,欢饮达旦,大醉,作此篇,兼怀子由。明月几时有?把酒问青天。不知天上宫阙,今夕是何年。我欲乘风归去,又恐琼楼玉宇,高处不胜寒。起舞弄清影,何似在人间")
- await page.setData({
- readFileEncoding: "base64",
- })
- await btnReadFileButton.tap()
- await isDone()
- readFileRet = await page.data('readFileRet')
- expect(readFileRet).toEqual(
- "5LiZ6L6w5Lit56eL77yM5qyi6aWu6L6+5pem77yM5aSn6YaJ77yM5L2c5q2k56+H77yM5YW85oCA5a2Q55Sx44CC5piO5pyI5Yeg5pe25pyJ77yf5oqK6YWS6Zeu6Z2S5aSp44CC5LiN55+l5aSp5LiK5a6r6ZiZ77yM5LuK5aSV5piv5L2V5bm044CC5oiR5qyy5LmY6aOO5b2S5Y6777yM5Y+I5oGQ55C85qW8546J5a6H77yM6auY5aSE5LiN6IOc5a+S44CC6LW36Iie5byE5riF5b2x77yM5L2V5Ly85Zyo5Lq66Ze0"
- )
- });
- it('stat and asset test', async () => {
- // 测试 USER_DATA_PATH //globalTempPath
- let globalRootPath = await page.data('globalRootPath')
- await page.setData({
- logAble: false,
- recursiveVal: true,
- copyToBasePath: globalRootPath,
- basePath: globalRootPath,
- globalTempPath: globalRootPath,
- rmDirFile: 'a',
- mkdirFile: 'a',
- readDir: 'a',
- unlinkFile: 'a/1.txt',
- })
- // 先清除文件,需要清除全部可能存在的历史测试文件,避免运行失败
- const btnUnLinkFileButton = await page.$('#btn-unlink-file')
- await btnUnLinkFileButton.tap()
- await isDone()
- await page.setData({
- unlinkFile: 'a/2.txt',
- })
- await btnUnLinkFileButton.tap()
- await isDone()
- await page.setData({
- unlinkFile: 'a/m/3.txt',
- })
- await btnUnLinkFileButton.tap()
- await isDone()
- // // 清除文件夹
- const btnRmDirButton = await page.$('#btn-remove-dir')
- await btnRmDirButton.tap()
- await isDone()
- // 重新创建测试目录
- const btnMkdDirButton = await page.$('#btn-mkdir')
- await btnMkdDirButton.tap()
- await isDone()
- const btnReadDirButton = await page.$('#btn-read-dir')
- await btnReadDirButton.tap()
- await isDone()
- // 期望通过 recursive = true的 文件夹删除,得到一个空的 /a 目录
- let fileListComplete = await page.data('fileListComplete')
- expect(JSON.stringify(fileListComplete)).toEqual('[]')
- let fileListSuccess = await page.data('fileListSuccess')
- expect(JSON.stringify(fileListSuccess)).toEqual('[]')
- // 写入一个文件
- await page.setData({
- writeFileContent: "锄禾日当午,汗滴禾下土,谁知盘中餐,粒粒皆辛苦",
- writeFileEncoding: "utf-8",
- writeFile: 'a/1.txt',
- recursiveVal: false,
- statFile: 'a/1.txt',
- })
- let lastFailError = await page.data('lastFailError')
- console.log(lastFailError)
- const btnWriteFileButton = await page.$('#btn-write-file')
- await btnWriteFileButton.tap()
- await isDone()
- let btnStatFileButton = await page.$('#btn-stat-file')
- await btnStatFileButton.tap()
- await isDone()
- // 读取单个文件信息
- let statsRet = await page.data('statsRet')
- expect(statsRet.length).toEqual(1)
- expect(statsRet[0].path).toEqual('')
- if (!isIOS) {
- expect(statsRet[0].stats.size).toEqual(69)
- }
- if (isApp) {
- // 写入一个文件
- await page.setData({
- statsRet: ''
- })
- btnStatFileButton = await page.$('#btn-stat-file-sync')
- await btnStatFileButton.tap()
- await isDone()
- // 读取单个文件信息
- statsRet = await page.data('statsRet')
- expect(statsRet.length).toEqual(1)
- expect(statsRet[0].path).toEqual('')
- if (!isIOS) {
- expect(statsRet[0].stats.size).toEqual(69)
- }
- }
- /**
- * 创建子目录和子目录文件,测试recursive参数
- */
- await page.setData({
- writeFileContent: "1234567890",
- writeFileEncoding: "ascii",
- writeFile: 'a/2.txt',
- basePath: globalRootPath,
- recursiveVal: false,
- statFile: 'a',
- mkdirFile: 'a/m',
- })
- await btnWriteFileButton.tap()
- await isDone()
- // 创建子目录
- await btnMkdDirButton.tap()
- await isDone()
- // 复制一份文件到 /a/m/3.txt
- await page.setData({
- // asset 只能正式版测试,这里只能模拟返回路径
- basePath: '/',
- copyFromFile: 'static/test-image/logo.ico',
- copyToFile: 'a/m/3.txt',
- })
- const btnCopyFileButton = await page.$('#btn-copy-file')
- await btnCopyFileButton.tap()
- await isDone()
- await page.setData({
- basePath: globalRootPath,
- recursiveVal: true,
- statFile: 'a',
- })
- await btnStatFileButton.tap()
- await isDone()
- // 读取全部文件信息
- statsRet = await page.data('statsRet')
- statsRet.sort(function(a, b) {
- if (a.path > b.path) {
- return 1
- } else if (a.path < b.path) {
- return -1
- }
- return 0
- })
- expect(statsRet.length).toEqual(5)
- const expectedPaths = ['/', '/m', '/1.txt', '/2.txt', '/m/3.txt']
- const pathsInResult = statsRet.map(item => item.path)
- for (const expectedPath of expectedPaths) {
- expect(pathsInResult).toContainEqual(expect.stringMatching(new RegExp(expectedPath)))
- }
- // 额外校验 size
- const findItem = (path) => statsRet.find(item => item.path.includes(path))
- const item2 = findItem('/2.txt')
- expect(item2).toBeTruthy()
- if (!isIOS && item2) {
- expect(item2.stats.size).toEqual(10)
- }
- const item3 = findItem('/m/3.txt')
- expect(item3).toBeTruthy()
- if (!isIOS && item3) {
- expect(item3.stats.size).toEqual(4286)
- }
- // 清理文件,避免影响其他测试用例
- await page.setData({
- unlinkFile: 'a/1.txt',
- })
- await btnUnLinkFileButton.tap()
- await isDone()
- await page.setData({
- unlinkFile: 'a/2.txt',
- })
- await btnUnLinkFileButton.tap()
- await isDone()
- await page.setData({
- unlinkFile: 'a/m/3.txt',
- rmDirFile: 'a',
- readDir: 'a',
- recursiveVal: true,
- })
- await btnUnLinkFileButton.tap()
- await isDone()
- await btnRmDirButton.tap()
- await isDone()
- await btnReadDirButton.tap()
- await isDone()
- lastFailError = await page.data('lastFailError')
- expect(lastFailError.errCode).toEqual(1300002)
- fileListSuccess = await page.data('fileListSuccess')
- expect(JSON.stringify(fileListSuccess)).toEqual('[]')
- });
- 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 btnUnLinkFileButton = await page.$('#btn-clear-file')
- await btnUnLinkFileButton.tap()
- await isDone()
- const btnClear = await page.$('#btn-remove-dir')
- await btnClear.tap()
- await isDone()
- }
- if (isApp) {
- it('appendFileTest', async () => {
- await page.setData({
- basePath: mBasePath,
- 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 page.data('readFileRet')
- expect(readFileRet).toEqual("我爱北京天安门,天安门前太阳升再说一遍")
- });
- //nlinkSyncTest mkdirSyncTest appendFileTest writeFileSyncTest readFileSyncTest rmdirSyncTest readDirSyncTest accessFileSyncTest
- //renameFileSync copyFileSyncTest appendFileSyncTest truncateFileTest truncateFileSyncTest
- it('sync test', async () => {
- await page.setData({
- basePath: mBasePath,
- 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',
- })
- await clearDir('sync')
- // 重新创建测试目录,期望通过 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 page.data('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 page.data("accessFileRet")
- expect(accessFileRet).toEqual('access:ok')
- //重新命名文件
- const btnRenameFileButton = await page.$('#btn-rename-file-sync')
- await btnRenameFileButton.tap()
- await isDone()
- let renameFileRet = await page.data("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()
- readFileRet = await page.data('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 page.data('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 page.data('readFileRet')
- expect(readFileRet).toEqual("我")
- // 测试 copyfile
- await page.setData({
- basePath: mBasePath,
- copyToBasePath: mBasePath,
- 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 page.data("accessFileRet")
- expect(accessFileRet).toEqual('access:ok')
- await clearDir('sync')
- });
- it('removeSavedFileTest', async () => {
- await page.setData({
- logAble: false,
- basePath: mBasePath
- })
- await clearDir('save4')
- await page.setData({
- logAble: false,
- basePath: mGlobalTempPath,
- temFile: 'save4/saveSync.txt',
- mkdirFile: 'save4',
- writeFile: 'save4/saveSync.txt',
- accessFile: 'saveSync.txt'
- })
- await createFile()
- let btnRemoveSavedFileRet = await page.$('#btn-remove-saved-file')
- await btnRemoveSavedFileRet.tap()
- await isDone()
- let removeSavedFileRet = await page.data("removeSavedFileRet")
- expect(removeSavedFileRet).toEqual('removeSavedFile:ok')
- });
- //openFiletest openFileSynctest closeTest closeTestSync writeTest writeSyncTest
- it('openFiletest', async () => {
- await page.setData({
- basePath: mBasePath,
- logAble: false,
- mkdirFile: 'fd',
- writeFile: 'fd/1.txt',
- readFile: 'fd/1.txt'
- })
- await clearDir('fd')
- await createFile()
- console.log('openFiletest', '2')
- //openFiletest
- let btnOpenFile = await page.$('#btn-open-file')
- await btnOpenFile.tap()
- await isDone()
- let fd = await page.data("fd")
- expect(fd).not.toBe('');
- await page.setData({
- fd: '',
- })
- console.log('openFiletest', '3')
- //openFileSynctest
- btnOpenFile = await page.$('#btn-open-file-sync')
- await btnOpenFile.tap()
- await isDone()
- fd = await page.data("fd")
- expect(fd).not.toBe('');
- console.log('openFiletest', '4')
- });
- // closeTest closeTestSync
- it('closeTest', async () => {
- await page.setData({
- basePath: mBasePath,
- logAble: false,
- mkdirFile: 'fd',
- writeFile: 'fd/1.txt',
- readFile: 'fd/1.txt'
- })
- await clearDir('fd')
- await createFile()
- //closeTest
- let btnCloseFile = await page.$('#btn-close-file')
- await btnCloseFile.tap()
- await isDone()
- let closeFileRet = await page.data("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 page.data("closeFileRet")
- expect(closeFileRet).toEqual('close:ok')
- });
- // writeTest writeSyncTest
- it('writeTest', async () => {
- console.log('writeTest', 'start')
- await page.setData({
- basePath: mBasePath,
- logAble: false,
- mkdirFile: 'fd',
- writeFile: 'fd/1.txt',
- readFile: 'fd/1.txt',
- writeData: '我是一只小小鸟'
- })
- await clearDir('fd')
- await createFile()
- console.log('writeTest', '1')
- let btnWrite = await page.$('#btn-write')
- await btnWrite.tap()
- await isDone()
- let bytesWritten = await page.data("bytesWritten")
- let lastFailError = await page.data("lastFailError")
- if (bytesWritten != 21) {
- let writeData = await page.data("writeData")
- console.log('writeTest', lastFailError.errCode, lastFailError.errMsg, bytesWritten,
- writeData)
- }
- expect(bytesWritten).toEqual(21)
- console.log('writeTest', '2')
- //writeSyncTest
- await page.setData({
- writeFile: 'fd/1.txt',
- readFile: 'fd/1.txt',
- writeData: '我是'
- })
- btnWrite = await page.$('#btn-write-sync')
- await btnWrite.tap()
- await isDone()
- bytesWritten = await page.data("bytesWritten")
- expect(bytesWritten).toEqual(6)
- console.log('writeTest', '3')
- //fstatTest
- let btnFstat = await page.$('#btn-fstat-file')
- await btnFstat.tap()
- await isDone()
- let fstatSize = await page.data("fstatSize")
- expect(fstatSize > 0).toBe(true)
- console.log('writeTest', '4')
- //fstatSyncTest
- btnFstat = await page.$('#btn-fstat-file-sync')
- await btnFstat.tap()
- await isDone()
- fstatSize = await page.data("fstatSize")
- expect(fstatSize > 0).toBe(true)
- console.log('writeTest', '5')
- //ftruncateFileTest
- let btnFTruncateFile = await page.$('#btn-ftruncate-file')
- await btnFTruncateFile.tap()
- await isDone()
- let ftruncateRet = await page.data("ftruncateRet")
- expect(ftruncateRet).toEqual('ftruncate:ok')
- await page.setData({
- ftruncate: '',
- })
- console.log('writeTest', '6')
- //ftruncateFileSyncTest
- btnFTruncateFile = await page.$('#btn-ftruncate-file-sync')
- await btnFTruncateFile.tap()
- await isDone()
- ftruncateRet = await page.data("ftruncateRet")
- expect(ftruncateRet).toEqual('ftruncate:ok')
- console.log('writeTest', '7')
- });
- //writeTest writeSyncTest
- it('ftruncateFileTest', async () => {
- await page.setData({
- basePath: mBasePath,
- logAble: false,
- mkdirFile: 'fd',
- writeFile: 'fd/1.txt',
- readFile: 'fd/1.txt',
- writeData: '我是一只小小鸟我是'
- })
- await clearDir('fd')
- await createFile()
- console.log('ftruncateFileTest', '1')
- btnWrite = await page.$('#btn-write-sync')
- await btnWrite.tap()
- await isDone()
- bytesWritten = await page.data("bytesWritten")
- expect(bytesWritten).toEqual(27)
- console.log('ftruncateFileTest', '3')
- //ftruncateFileTest
- let btnFTruncateFile = await page.$('#btn-ftruncate-file')
- await btnFTruncateFile.tap()
- await isDone()
- let ftruncateRet = await page.data("ftruncateRet")
- expect(ftruncateRet).toEqual('ftruncate:ok')
- await page.setData({
- ftruncate: '',
- })
- console.log('ftruncateFileTest', '6')
- //ftruncateFileSyncTest
- btnFTruncateFile = await page.$('#btn-ftruncate-file-sync')
- await btnFTruncateFile.tap()
- await isDone()
- ftruncateRet = await page.data("ftruncateRet")
- expect(ftruncateRet).toEqual('ftruncate:ok')
- console.log('ftruncateFileTest', '7')
- });
- //testAppendFileBuffer
- it('testAppendFileBuffer', async () => {
- var btnWrite = await page.$('#btn-appendfile-buffer')
- await btnWrite.tap()
- await isDone()
- let arrayBufferRes = await page.data("arrayBufferRes")
- expect(arrayBufferRes).toEqual(21)
- });
- it('testAppendFileBufferSync', async () => {
- var btnWrite = await page.$('#btn-appendfilesync-buffer')
- await btnWrite.tap()
- await isDone()
- let arrayBufferRes = await page.data("arrayBufferRes")
- expect(arrayBufferRes).toEqual(20)
- });
- it('testWriteReadSyncBuffer', async () => {
- var btnWrite = await page.$('#btn-writereadsync-buffer')
- await btnWrite.tap()
- await isDone()
- let arrayBufferRes = await page.data("arrayBufferRes")
- expect(arrayBufferRes).toEqual(1.11)
- });
- it('testWriteReadBuffer', async () => {
- var btnWrite = await page.$('#btn-writeread-buffer')
- await btnWrite.tap()
- await isDone()
- let arrayBufferRes = await page.data("arrayBufferRes")
- expect(arrayBufferRes).toEqual(1.24)
- });
- it('testWriteReadFileSyncBuffer', async () => {
- var btnWrite = await page.$('#btn-writereadfilesync-buffer')
- await btnWrite.tap()
- await isDone()
- let arrayBufferRes = await page.data("arrayBufferRes")
- expect(arrayBufferRes).toEqual(1.333)
- });
- it('testReadFileBuffer', async () => {
- var btnWrite = await page.$('#btn-writereadfile-buffer')
- await btnWrite.tap()
- await isDone()
- let arrayBufferRes = await page.data("arrayBufferRes")
- expect(arrayBufferRes).toEqual(1.2222222)
- });
- it('SavedFileTest', async () => {
- await page.setData({
- logAble: false,
- basePath: mBasePath,
- writeFile: 'a/1.txt',
- temFile: 'a/1.txt',
- accessFile: 'a/1.txt'
- })
- let saveFileFileButton = await page.$('#btn-save-file')
- await saveFileFileButton.tap()
- await isDone()
- await page.waitFor(600);
- let saveFileRet = await page.data('saveFileRet')
- expect(saveFileRet).toEqual('unifile://cache/uni-store/1.txt')
- let saveFileFileButton1 = await page.$('#btn-save-file1')
- await saveFileFileButton1.tap()
- await isDone()
- await page.waitFor(600);
- saveFileRet = await page.data('saveFileRet')
- expect(saveFileRet).toEqual('unifile://usr/local/1.txt')
- let saveFileFileButton2 = await page.$('#btn-save-file2')
- await saveFileFileButton2.tap()
- await isDone()
- await page.waitFor(600);
- saveFileRet = await page.data('saveFileRet')
- expect(saveFileRet).toEqual('unifile://usr/local')
- let saveFileFileButton3 = await page.$('#btn-save-file3')
- await saveFileFileButton3.tap()
- await isDone()
- await page.waitFor(600);
- saveFileRet = await page.data('saveFileRet')
- expect(saveFileRet).toEqual('unifile://usr/local')
- });
- it('getSavedFileListTest', async () => {
- // await page.setData({
- // logAble: false,
- // basePath: mBasePath
- // })
- // console.log('getSavedFileListTest', 'start')
- // await clearDir('')
- // console.log('getSavedFileListTest', 'end')
- await page.setData({
- logAble: false,
- basePath: mGlobalTempPath,
- temFile: 'save3/2.txt',
- mkdirFile: 'save3',
- writeFile: 'save3/2.txt',
- accessFile: '2.txt'
- })
- await createFile()
- await page.setData({
- basePath: mBasePath,
- writeFile: 'save/2.txt',
- })
- btnSaveFile = await page.$('#btn-save-file-sync')
- await btnSaveFile.tap()
- await isDone()
- let btnSavedFileList = await page.$('#btn-getsaved-filelist')
- await btnSavedFileList.tap()
- await isDone()
- let getSavedFileListRet = await page.data("getSavedFileListRet")
- console.log('getSavedFileListTest->' + getSavedFileListRet)
- expect(getSavedFileListRet).toEqual('getSavedFileList:ok')
- });
- }
- if (isAndroid) {
- it('testReadAssetFile', async () => {
- await page.setData({
- basePath: 'file:///android_asset/uni-app-x',
- logAble: false,
- readFileRet: "",
- readFile: '/version.json'
- })
- let btnReadFileButton = await page.$('#btn-read-file-sync')
- await btnReadFileButton.tap()
- await isDone()
- let readFileRet = await page.data('readFileRet')
- expect(readFileRet.length > 0).toBe(true)
- });
- }
- });
|