123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209 |
- const platformInfo = process.env.uniTestPlatformInfo.toLocaleLowerCase()
- const isAndroid = platformInfo.startsWith('android')
- const isIOS = platformInfo.startsWith('ios')
- const isHarmony = platformInfo.startsWith('harmony')
- const isWeb = platformInfo.startsWith('web')
- const isMp = platformInfo.startsWith('mp')
- const isAppWebView = process.env.UNI_AUTOMATOR_APP_WEBVIEW == 'true'
- const PAGE_PATH = '/pages/API/request/request'
- const methodMap = {
- "GET": "/api/http/method/get",
- "POST": "/api/http/method/post",
- "PUT": "/api/http/method/put",
- "DELETE": "/api/http/method/delete",
- "PATCH": "/api/http/method/patch",
- "OPTIONS": "/api/http/method/options",
- "HEAD": "/api/http/method/head"
- }
- async function request(page, method, header, data, url) {
- if (url == null) {
- url = methodMap[method]
- }
- await page.setData({
- url: url,
- method: method,
- data: data,
- header: header
- })
- res = await page.callMethod('jest_request')
- await page.waitFor(2000);
- res = await page.data('jest_result');
- expect(res).toBe(true)
- }
- describe('ExtApi-Request', () => {
- let page;
- let res;
- beforeAll(async () => {
- page = await program.reLaunch(PAGE_PATH)
- await page.waitFor('view');
- });
- beforeEach(async () => {
- await page.setData({
- jest_result: false,
- data: null,
- header: null
- })
- });
- it('Check GET', async () => {
- await request(page, 'GET');
- });
- it('Check POST ContentType Json', async () => {
- await request(page, 'POST', {
- "Content-Type": "application/json"
- }, {
- "hello": "world"
- }, "/api/http/contentType/json");
- });
- it('Check POST ContentType Form', async () => {
- await request(page, 'POST', {
- "Content-Type": "application/x-www-form-urlencoded"
- }, "hello=world", "/api/http/contentType/xWwwFormUrlencoded");
- });
- it('Check PUT', async () => {
- await request(page, 'PUT');
- });
- it('Check DELETE', async () => {
- await request(page, 'DELETE');
- });
- // 鸿蒙平台暂不支持PATCH方法
- if (!isHarmony) {
- it('Check PATCH', async () => {
- await request(page, 'PATCH');
- });
- }
- if (process.env.uniTestPlatformInfo.indexOf('web') === -1) {
- it('Check OPTIONS', async () => {
- await request(page, 'OPTIONS');
- });
- }
- it('Check HEAD', async () => {
- await request(page, 'HEAD');
- });
- it('Request with timeout null', async () => {
- res = await page.callMethod('jest_timeout_null')
- await page.waitFor(2000);
- res = await page.data('jest_result');
- expect(res).toBe(true)
- });
- it('Get Array', async () => {
- res = await page.callMethod('jest_get_array')
- await page.waitFor(2000);
- res = await page.data('jest_result');
- expect(res).toBe(true)
- })
- let shouldTestCookie = false
- if (isAndroid && !isAppWebView) {
- let version = process.env.uniTestPlatformInfo
- version = parseInt(version.split(" ")[1])
- shouldTestCookie = version > 9
- }
- if (isIOS && !isAppWebView) {
- shouldTestCookie = true
- }
- if (shouldTestCookie) {
- it('Check Set Cookie', async () => {
- res = await page.callMethod('jest_set_cookie')
- await page.waitFor(2000);
- 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);
- res = await page.data('jest_result');
- expect(res).toBe(true)
- });
- it('Check Set Cookie Expires', async () => {
- await page.callMethod('jest_set_cookie_expires')
- await page.waitFor(2000);
- res = await page.data('jest_result_data');
- console.log("request expires cookie data :", res);
- res = await page.data('jest_result');
- expect(res).toBe(true)
- await page.setData({
- jest_result: false,
- jest_result_data: "",
- data: null,
- header: null
- })
- await page.waitFor(5000);
- await page.callMethod('jest_cookie_request', false)
- await page.waitFor(2000);
- res = await page.data('jest_result_data');
- console.log("verify request data :", res);
- res = await page.data('jest_result');
- expect(res).toBe(true)
- });
- }
- it('Check Get With Data', async () => {
- res = await page.callMethod('jest_get_with_data')
- await page.waitFor(2000);
- res = await page.data('jest_result');
- expect(res).toBe(true)
- })
- it('Check Get With Generics', async () => {
- res = await page.callMethod('jest_get_with_generics')
- await page.waitFor(2000);
- res = await page.data('jest_result');
- expect(res).toBe(true)
- })
- // 15以下的模拟器所对应的xcode不能编译自定义插件,大于15是因为某台设备,会用xcode14.1跑15.5的设备
- let version = process.env.uniTestPlatformInfo
- let split = version.split(" ")
- version = parseInt(split[split.length - 1])
- if (isIOS && version > 15 || isAndroid || isHarmony) {
- it('Check Post In UTS Module', async () => {
- res = await page.callMethod('jest_uts_module_invoked')
- await page.waitFor(2000);
- res = await page.data('jest_result');
- expect(res).toBe(true)
- })
- }
- it('Check Respone Json String', async () => {
- res = await page.callMethod('jest_respone_json_string')
- await page.waitFor(2000);
- res = await page.data('jest_result');
- expect(res).toBe(true)
- })
- if (process.env.uniTestPlatformInfo.toLocaleLowerCase().startsWith('android')) {
- it('Check Respone With String Generics', async () => {
- res = await page.callMethod('jest_respone_with_string_generics')
- await page.waitFor(2000);
- res = await page.data('jest_result');
- expect(res).toBe(true)
- })
- }
- if (process.env.uniTestPlatformInfo.toLocaleLowerCase().startsWith('android')) {
- it('Check Respone string generics when status is 404', async () => {
- res = await page.callMethod('jest_respone_with_404_and_string_generics')
- await page.waitFor(2000);
- res = await page.data('jest_result');
- expect(res).toBe(true)
- })
- }
- if (isAndroid || isIOS) {
- it('send arraybuffer', async () => {
- res = await page.callMethod('sendArrayBuffer', true)
- await page.waitFor(5000);
- res = await page.data('res');
- expect(res).toEqual('请求结果 : 123,34,104,101,108,108,111,34,58,34,119,111,114,108,100,34,125')
- })
- }
- });
|