diff --git a/pages/API/download-file/download-file.test.js b/pages/API/download-file/download-file.test.js
index 6cdd70d98fdc19b36316623d58beb7c621fcaecb..22f40ba57129636248e2fce80fe389425136ad20 100644
--- a/pages/API/download-file/download-file.test.js
+++ b/pages/API/download-file/download-file.test.js
@@ -3,18 +3,29 @@ const PAGE_PATH = '/pages/API/download-file/download-file'
describe('ExtApi-DownloadFile', () => {
let page;
- let res;
+ let res;
+ let timeout = 3000
+ let waitForStartTime
+ async function waitCallbackTriggredOrTimeout(){
+ waitForStartTime = Date.now()
+ await page.waitFor(async () => {
+ const callbackTriggred = await page.data('jest_callback_triggred')
+ return callbackTriggred || (Date.now() - waitForStartTime > timeout)
+ })
+ }
+
beforeAll(async () => {
page = await program.reLaunch(PAGE_PATH)
- await page.waitFor(600);
+ await page.waitFor('view');
await page.callMethod('jest_downloadFile');
- await page.waitFor(2000);
+ await waitCallbackTriggredOrTimeout()
res = await page.data('jest_result');
});
- beforeEach(async () => {
+ beforeEach(async () => {
await page.setData({
- jest_result: false
+ jest_result: false,
+ jest_callback_triggred: false
})
});
@@ -24,7 +35,7 @@ describe('ExtApi-DownloadFile', () => {
it('Check Special characters Url download file', async () => {
res = await page.callMethod('jest_special_characters_download')
- await page.waitFor(2000);
+ await waitCallbackTriggredOrTimeout()
res = await page.data('jest_result');
expect(res).toBe(true)
});
@@ -35,7 +46,7 @@ describe('ExtApi-DownloadFile', () => {
) {
it('Check uni.env', async () => {
await page.callMethod('jest_downloadFile_with_uni_env');
- await page.waitFor(2000);
+ await waitCallbackTriggredOrTimeout()
res = await page.data('jest_result');
expect(res).toBe(true);
});
@@ -47,7 +58,7 @@ describe('ExtApi-DownloadFile', () => {
if (!process.env.uniTestPlatformInfo.toLocaleLowerCase().startsWith('ios') || version > 15) {
it('Check Download File In UTS Module', async () => {
res = await page.callMethod('jest_uts_module_invoked')
- await page.waitFor(2000);
+ await waitCallbackTriggredOrTimeout()
res = await page.data('jest_result');
expect(res).toBe(true)
})
@@ -70,13 +81,13 @@ describe('ExtApi-DownloadFile', () => {
it('Check Set Cookie', async () => {
res = await page.callMethod('jest_set_cookie')
- await page.waitFor(2000);
+ await waitCallbackTriggredOrTimeout()
res = await page.data('jest_result');
expect(res).toBe(true)
});
it('Check Delete Cookie', async () => {
res = await page.callMethod('jest_delete_cookie')
- await page.waitFor(2000);
+ await waitCallbackTriggredOrTimeout()
res = await page.data('jest_result');
expect(res).toBe(true)
});
diff --git a/pages/API/download-file/download-file.uvue b/pages/API/download-file/download-file.uvue
index 01afed158b882f07d707deda26f4eb340343facd..ac8d4e302ccecf0b17e09a3ede48f2b14c173725 100644
--- a/pages/API/download-file/download-file.uvue
+++ b/pages/API/download-file/download-file.uvue
@@ -10,7 +10,7 @@
点击按钮下载服务端示例图片(下载网络文件到本地临时目录)
-
+
下载接口的Content-Disposition中的filename非法值例子
@@ -37,7 +37,8 @@
imageSrc: '',
task: null as DownloadTask | null,
//自动化测试例专用
- jest_result: false
+ jest_result: false,
+ jest_callback_triggred: false
}
},
onLoad() {
@@ -87,10 +88,12 @@
uni.downloadFile({
url: "https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/uni-app.png",
success: () => {
- this.jest_result = true
+ this.jest_result = true
+ this.jest_callback_triggred = true
},
fail: () => {
this.jest_result = false
+ this.jest_callback_triggred = true
}
});
},
@@ -101,9 +104,11 @@
filePath: `${uni.env.CACHE_PATH}/a/b/`,
success: () => {
this.jest_result = true
+ this.jest_callback_triggred = true
},
fail: () => {
this.jest_result = false
+ this.jest_callback_triggred = true
}
});
},
@@ -118,9 +123,11 @@
firstIpv4: false,
success: () => {
this.jest_cookie_download(true)
+ this.jest_callback_triggred = true
},
fail: () => {
this.jest_result = false;
+ this.jest_callback_triggred = true
},
});
},
@@ -135,9 +142,11 @@
firstIpv4: false,
success: () => {
this.jest_cookie_download(false)
+ this.jest_callback_triggred = true
},
fail: () => {
this.jest_result = false;
+ this.jest_callback_triggred = true
},
});
},
@@ -157,9 +166,11 @@
testInovkeDownloadFile({
success: (res : any) => {
this.jest_result = true
+ this.jest_callback_triggred = true
},
fail: (err : any) => {
- this.jest_result = false
+ this.jest_result = false
+ this.jest_callback_triggred = true
}
} as CommonOptions)
// #endif
@@ -167,11 +178,13 @@
jest_special_characters_download() {
uni.downloadFile({
url: "https://web-ext-storage.dcloud.net.cn/hello-uni-app-x/1789834995055525889-你好%23你好.png",
- success: (res : DownloadFileSuccess) => {
- this.jest_result = true;
+ success: (res : DownloadFileSuccess) => {
+ this.jest_result = true;
+ this.jest_callback_triggred = true
},
fail: () => {
- this.jest_result = false;
+ this.jest_result = false;
+ this.jest_callback_triggred = true
}
});
}