From f56949248cf418b12882952e8d2f56518d39da7c Mon Sep 17 00:00:00 2001 From: wupingyuan Date: Thu, 17 Aug 2023 15:22:36 +0800 Subject: [PATCH] update xts --- .../entry/src/ohosTest/ets/test/POP3.test.ets | 497 +++++++----------- 1 file changed, 190 insertions(+), 307 deletions(-) diff --git a/POP3Client/entry/src/ohosTest/ets/test/POP3.test.ets b/POP3Client/entry/src/ohosTest/ets/test/POP3.test.ets index b575f8e..077034f 100644 --- a/POP3Client/entry/src/ohosTest/ets/test/POP3.test.ets +++ b/POP3Client/entry/src/ohosTest/ets/test/POP3.test.ets @@ -25,159 +25,12 @@ export default function POP3Test() { describe('POP3Test', function () { - beforeAll(async function () { - globalThis.client = undefined; - let jumpOption = undefined; - try { - if (this.secure) { - let option: socket.TLSConnectOptions = { - ALPNProtocols: ["spdy/1", "http/1.1"], - address: { - address: 'smtp.qq.com', - port: 465, - family: 1 - }, - secureOptions: { - key: '', - cert: '', - ca: [''], - useRemoteCipherPrefer: true, - } - } - let context = AbilityDelegatorRegistry.getAbilityDelegator().getAppContext() - let ca0Data = await context.resourceManager.getRawFileContent('QQMailMiddle.pem') - let ca0 = ''; - for (let i = 0; i < ca0Data.length; i++) { - let todo = ca0Data[i] - let item = String.fromCharCode(todo); - ca0 += item; - } - // @ts-ignore - option.secureOptions.ca[0] = ca0; - - let ca1Data = await context.resourceManager.getRawFileContent('QQMailRoot.pem') - let ca1 = ''; - for (let i = 0; i < ca1Data.length; i++) { - let todo = ca1Data[i] - let item = String.fromCharCode(todo); - ca1 += item; - } - // @ts-ignore - option.secureOptions.ca[1] = ca1; - jumpOption = { - host: 'pop.qq.com', - port: 995, - user: account + mailType, - password: password, - timeout: 30000, - servername: 'pop.qq.com', - tls: true, - tlsOptions: option - } - } else { - jumpOption = { - host: 'pop.qq.com', - port: 110, - user: account + mailType, - password: password, - timeout: 30000, - servername: 'pop.qq.com', - tls: false, - tlsOptions: undefined - } - } - } catch (err) { - expect(0).assertEqual(1) - } - }) - - it('diyLogin', 0, async function () { - try { - if (!globalThis.client) { - let client: Pop3Command = undefined; - if (this.secure) { - let option: socket.TLSConnectOptions = { - ALPNProtocols: ["spdy/1", "http/1.1"], - address: { - address: 'smtp.qq.com', - port: 465, - family: 1 - }, - secureOptions: { - key: '', - cert: '', - ca: [''], - useRemoteCipherPrefer: true, - } - } - let context = AbilityDelegatorRegistry.getAbilityDelegator().getAppContext() - let ca0Data = await context.resourceManager.getRawFileContent('QQMailMiddle.pem') - let ca0 = ''; - for (let i = 0; i < ca0Data.length; i++) { - let todo = ca0Data[i] - let item = String.fromCharCode(todo); - ca0 += item; - } - // @ts-ignore - option.secureOptions.ca[0] = ca0; - - let ca1Data = await context.resourceManager.getRawFileContent('QQMailRoot.pem') - let ca1 = ''; - for (let i = 0; i < ca1Data.length; i++) { - let todo = ca1Data[i] - let item = String.fromCharCode(todo); - ca1 += item; - } - // @ts-ignore - option.secureOptions.ca[1] = ca1; - - client = new Pop3Command({ - host: 'pop.qq.com', - port: 465, - user: account + mailType, - password: password, - timeout: 30000, - servername: 'pop.qq.com', - tls: true, - tlsOptions: option - }); - } else { - client = new Pop3Command({ - host: 'pop.qq.com', - port: 465, - user: account + mailType, - password: password, - timeout: 30000, - servername: 'pop.qq.com', - tls: false, - tlsOptions: undefined - }); - } - globalThis.client = client - } - - if (globalThis.client) { - // 因为没有登录状态判断的接口 所以登陆之前先退出一下 防止已经登录导致出错了 - try { - const [quitInfo] = await globalThis.client.commond('QUIT'); - } catch (err) { - - } - // These must be in order - await globalThis.client.connect(); - await globalThis.client.command('USER', account + mailType); - await globalThis.client.command('PASS', password); - } - } catch (err) { - expect(0).assertEqual(1) - } - }) - it('autoLogin', 0, async function () { + async function login() { globalThis.client = undefined; let jumpOption = undefined; try { - if (this.secure) { + if (secure) { let option: socket.TLSConnectOptions = { ALPNProtocols: ["spdy/1", "http/1.1"], address: { @@ -234,46 +87,18 @@ export default function POP3Test() { tlsOptions: undefined } } + client = new Pop3Command(jumpOption); } catch (err) { expect(0).assertEqual(1) } - }) + } - it('sendSTAT', 0, async function () { - isListShow = false - msgList = [] - listData = [] - selectMsgNum = -1; - try { - if (globalThis.client) { - let result = await globalThis.client.STAT() - if (result && result.toString() && result.toString().length > 0) { - let arr = result.toString().split(' ') - if (arr && arr.length >= 1) { - let totalMailSize = parseInt(arr[0]); - if (totalMailSize > 0) { - isListShow = true; - listData.push(`获取到STAT命令的结果:${'\r\n'}${result}`) - return - } - } - } - listData.push(`获取到STAT命令的结果:${'\r\n'}获取到的结果为空`) - } else { - listData.push(`账号未登录,请需重新登录`) - expect(0).assertEqual(1) - } - - } catch (err) { - listData.push(`获取STAT命令结果失败:${'\r\n'}${err.message}`) - expect(0).assertEqual(1) - } + beforeAll(function () { + login() + sendList() }) - it('sendLIST', 0, async function () { - msgList = []; - listData = [] - selectMsgNum = -1; + async function sendList(){ try { if (client) { let result = await client.LIST() @@ -294,7 +119,6 @@ export default function POP3Test() { } } listData.push(`获取到LIST命令的结果解析失败,${result}`) - expect(0).assertEqual(1) } else { listData.push(`账号未登录,请需重新登录`) expect(0).assertEqual(1) @@ -304,163 +128,222 @@ export default function POP3Test() { listData.push(`获取LIST命令结果失败:${'\r\n'}${err.message}`) expect(0).assertEqual(1) } - }) - - it('sendNOOP', 0, async function () { - msgList = [] - listData = [] - selectMsgNum = -1; - try { - if (client) { - let result = await client.NOOP() - listData.push(`获取到NOOP命令的结果:${'\r\n'}${JSON.stringify(result)}`) - } else { - listData.push(`账号未登录,请需重新登录`) + } + + + it('sendSTAT', 0, function () { + setTimeout(async ()=>{ + isListShow = false + msgList = [] + listData = [] + selectMsgNum = -1; + try { + if (client) { + let result = await client.STAT() + if (result && result.toString() && result.toString().length > 0) { + expect(0).assertEqual(0) + let arr = result.toString().split(' ') + if (arr && arr.length >= 1) { + let totalMailSize = parseInt(arr[0]); + if (totalMailSize > 0) { + isListShow = true; + listData.push(`获取到STAT命令的结果:${'\r\n'}${result}`) + return + } + } + } + listData.push(`获取到STAT命令的结果:${'\r\n'}获取到的结果为空`) + } else { + expect(0).assertEqual(1) + listData.push(`账号未登录,请需重新登录`) + } + } catch (err) { expect(0).assertEqual(1) + console + listData.push(`获取STAT命令结果失败:${'\r\n'}${err.message}`) } - - } catch (err) { - listData.push(`获取NOOP命令结果失败:${'\r\n'}${err.message}`) - expect(0).assertEqual(1) - } + },200) }) - it('sendUIDL', 0, async function () { - listData = [] - try { - if (selectMsgNum === -1) { - expect(0).assertEqual(1) - return - } - if (client) { - let result = await client.UIDL(selectMsgNum + '') - listData.push(`获取到UIDL命令的结果:${'\r\n'}${result}`) - } else { - listData.push(`账号未登录,请需重新登录`) + it('sendNOOP', 0, function () { + setTimeout(async ()=>{ + msgList = [] + listData = [] + selectMsgNum = -1; + try { + if (client) { + let result = await client.NOOP() + listData.push(`获取到NOOP命令的结果:${'\r\n'}${JSON.stringify(result)}`) + } else { + listData.push(`账号未登录,请需重新登录`) + expect(0).assertEqual(1) + } + + } catch (err) { + listData.push(`获取NOOP命令结果失败:${'\r\n'}${err.message}`) expect(0).assertEqual(1) } - - } catch (err) { - listData.push(`获取UIDL命令结果失败:${'\r\n'}${err.message}`) - expect(0).assertEqual(1) - } - selectMsgNum = -1; + },200) }) - it('sendLAST', 0, async function () { - msgList = [] - listData = [] - selectMsgNum = -1; - try { - if (client) { - let result = await client.LAST() - listData.push(`获取到LAST命令的结果:${'\r\n'}${result}`) - } else { - listData.push(`账号未登录,请需重新登录`) + it('sendUIDL', 0, function () { + setTimeout(async ()=>{ + listData = [] + try { + selectMsgNum = 1; + if (selectMsgNum === -1) { + expect(0).assertEqual(1) + return + } + if (client) { + let result = await client.UIDL(selectMsgNum + '') + listData.push(`获取到UIDL命令的结果:${'\r\n'}${result}`) + expect(0).assertEqual(0) + } else { + listData.push(`账号未登录,请需重新登录`) + expect(0).assertEqual(1) + } + + } catch (err) { + listData.push(`获取UIDL命令结果失败:${'\r\n'}${err.message}`) expect(0).assertEqual(1) } - - } catch (err) { - listData.push(`获取LAST命令结果失败:${'\r\n'}${err.message}`) - expect(0).assertEqual(1) - } + selectMsgNum = -1; + }) }) - it('sendDELE', 0, async function () { - listData = [] - try { - if (selectMsgNum === -1) { - expect(0).assertEqual(1) - return - } - if (client) { - let result = await client.DELE(selectMsgNum + '') - listData.push(`获取到DELE命令的结果:${'\r\n'}${result}`) - } else { - listData.push(`账号未登录,请需重新登录`) + it('sendLAST', 0, function () { + setTimeout(async ()=>{ + msgList = [] + listData = [] + selectMsgNum = -1; + try { + if (client) { + let result = await client.LAST() + listData.push(`获取到LAST命令的结果:${'\r\n'}${result}`) + expect(0).assertEqual(0) + } else { + listData.push(`账号未登录,请需重新登录`) + expect(0).assertEqual(1) + } + + } catch (err) { + listData.push(`获取LAST命令结果失败:${'\r\n'}${err.message}`) expect(0).assertEqual(1) } - - } catch (err) { - listData.push(`获取DELE命令结果失败:${'\r\n'}${err.message}`) - expect(0).assertEqual(1) - } - selectMsgNum = -1; + },200) }) - it('sendRSET', 0, async function () { - listData = [] - try { - if (selectMsgNum === -1) { - return - } - if (client) { - let delResult = client.DELE(selectMsgNum + '') - listData.push(`发送DELE命令删除的结果:${'\r\n'}${delResult}`) - let result = await client.RSET() // 用于撤销DELE命令 所以不需要等DELE命令返回 - listData.push(`发送RSET命令取消删除操作的结果:${'\r\n'}${result}`) - } else { - listData.push(`账号未登录,请需重新登录`) + it('sendRSET', 0, function () { + setTimeout(async ()=>{ + listData = [] + try { + selectMsgNum = 3 + if (selectMsgNum === -1) { + return + } + if (client) { + let delResult = client.DELE(selectMsgNum + '') + listData.push(`发送DELE命令删除的结果:${'\r\n'}${delResult}`) + let result = await client.RSET() // 用于撤销DELE命令 所以不需要等DELE命令返回 + listData.push(`发送RSET命令取消删除操作的结果:${'\r\n'}${result}`) + expect(0).assertEqual(0) + } else { + listData.push(`账号未登录,请需重新登录`) + expect(0).assertEqual(1) + } + + } catch (err) { + listData.push(`获取RSET命令结果失败:${'\r\n'}${err.message}`) expect(0).assertEqual(1) } - - } catch (err) { - listData.push(`获取RSET命令结果失败:${'\r\n'}${err.message}`) - expect(0).assertEqual(1) - } - selectMsgNum = -1; + selectMsgNum = -1; + },200) }) - it('sendRETR', 0, async function () { - listData = [] - try { - if (selectMsgNum === -1) { + it('sendRETR', 0, function () { + setTimeout(async ()=>{ + listData = [] + try { + selectMsgNum = 4 + if (selectMsgNum === -1) { + expect(0).assertEqual(1) + return + } + if (client) { + + let result = await client.RETR(selectMsgNum + '') + listData.push(`获取到RETR命令的结果,结果长度为:${'\r\n'}${result.toString().length}${'\r\n'}}`) + if (result.toString().length > 1000) { + listData.push(`由于RETR命令的结果太长text无法完全显示,取最后1000字节显示:${'\r\n'}${result.toString() + .substring(result.toString().length - 1000, result.toString().length)}`) + } else { + listData.push(`ETR命令的结果显示:${'\r\n'}${result.toString()}`) + } + expect(0).assertEqual(0) + } else { + listData.push(`账号未登录,请需重新登录`) + expect(0).assertEqual(1) + } + + } catch (err) { + listData.push(`获取RETR命令结果失败:${'\r\n'}${err.message}`) expect(0).assertEqual(1) - return } - if (client) { + selectMsgNum = -1; + },200) + }) - let result = await client.RETR(selectMsgNum + '') - listData.push(`获取到RETR命令的结果,结果长度为:${'\r\n'}${result.toString().length}${'\r\n'}}`) - if (result.toString().length > 1000) { - listData.push(`由于RETR命令的结果太长text无法完全显示,取最后1000字节显示:${'\r\n'}${result.toString() - .substring(result.toString().length - 1000, result.toString().length)}`) - }else { - listData.push(`ETR命令的结果显示:${'\r\n'}${result.toString()}`) + + it('sendDELE', 0,function () { + setTimeout(async ()=>{ + listData = [] + try { + selectMsgNum = 4 + if (selectMsgNum === -1) { + expect(0).assertEqual(1) + return + } + if (client) { + let result = await client.DELE(selectMsgNum + '') + listData.push(`获取到DELE命令的结果:${'\r\n'}${result}`) + expect(0).assertEqual(0) + } else { + listData.push(`账号未登录,请需重新登录`) + expect(0).assertEqual(1) } - } else { - listData.push(`账号未登录,请需重新登录`) + } catch (err) { + listData.push(`获取DELE命令结果失败:${'\r\n'}${err.message}`) expect(0).assertEqual(1) } - - } catch (err) { - listData.push(`获取RETR命令结果失败:${'\r\n'}${err.message}`) - expect(0).assertEqual(1) - } - selectMsgNum = -1; + selectMsgNum = -1; + },500) }) - it('sendQUIT', 0, async function () { - msgList = [] - listData = [] - selectMsgNum = -1; - try { - if (client) { - const [quitInfo] = await client.QUIT(); + it('sendQUIT', 0, function () { + setTimeout(async ()=>{ + msgList = [] + listData = [] + selectMsgNum = -1; + try { - listData.push(`获取到QUIT命令的结果:${'\r\n'}${quitInfo}`) + if (client) { + const [quitInfo] = await client.QUIT(); - } else { - listData.push(`账号未登录,请需重新登录`) + listData.push(`获取到QUIT命令的结果:${'\r\n'}${quitInfo}`) + + } else { + listData.push(`账号未登录,请需重新登录`) + expect(0).assertEqual(1) + } + + } catch (err) { + listData.push(`获取RETR命令结果失败:${'\r\n'}${err.message}`) expect(0).assertEqual(1) } - - } catch (err) { - listData.push(`获取RETR命令结果失败:${'\r\n'}${err.message}`) - expect(0).assertEqual(1) - } + },800) }) }) -- Gitee