123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339 |
- jest.setTimeout(50000);
- const PAGE_PATH = '/pages/API/storage/storage'
- const platformInfo = process.env.uniTestPlatformInfo.toLocaleLowerCase()
- const isIOS = platformInfo.startsWith('ios')
- const StorageKeysBlackList = [
- '$$STAT__DBDATA:__UNI__HelloUniAppX',
- '_STAT_LAST_PAGE_ROUTE',
- ]
- const filterStorageKeys = (keys) => {
- return keys.filter(key => {
- return !StorageKeysBlackList.includes(key)
- })
- }
- describe('ExtApi-StorageInfoTest', () => {
- if (
- isIOS &&
- (
- platformInfo.indexOf('15.5') != -1 ||
- platformInfo.indexOf('14.5') != -1 ||
- platformInfo.indexOf('13.7') != -1 ||
- platformInfo.indexOf('12.4') != -1
- )
- ) {
- // TODO: 排查 ios 不兼容版本 测试异常原因
- it('ios 15.5 14.5 13.7 12.4 测试异常', () => {
- expect(1).toBe(1)
- })
- return
- }
- let page;
- 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);
- });
- it('Check async properties', async () => {
- // 异步存储测试
- await page.setData({
- key: "autotest_key_mock",
- data: "长安大道连狭斜,青牛白马七香车。玉辇纵横过主第,金鞭络绎向侯家。龙衔宝盖承朝日,凤吐流苏带晚霞。百尺游丝争绕树,一群娇鸟共啼花。游蜂戏蝶千门侧,碧树银台万种色。复道交窗作合欢,双阙连甍垂凤翼。"
- })
- await page.waitFor(600)
- const btnSetStorageButtonInfo = await page.$('.btn-setstorageAsync')
- await btnSetStorageButtonInfo.tap()
- await page.waitFor(600)
- const btnGetStorageButtonInfo = await page.$('.btn-getstorageAsync')
- await btnGetStorageButtonInfo.tap()
- await page.waitFor(600)
- expect(await getData('apiGetData')).toEqual("长安大道连狭斜,青牛白马七香车。玉辇纵横过主第,金鞭络绎向侯家。龙衔宝盖承朝日,凤吐流苏带晚霞。百尺游丝争绕树,一群娇鸟共啼花。游蜂戏蝶千门侧,碧树银台万种色。复道交窗作合欢,双阙连甍垂凤翼。")
- // 测试 clear
- let btnGetStorageInfoASyncButton = await page.$('.btn-getStorageInfoASync')
- // await btnGetStorageInfoASyncButton.tap()
- // await page.waitFor(600)
- // storageInfoRet = await getData('apiGetData')
- // expect(storageInfoRet.keys[0]).toEqual("autotest_key_mock")
- const btnClearStorageInfoASyncButton = await page.$('.btn-clearStorageInfoASync')
- await btnClearStorageInfoASyncButton.tap()
- page.waitFor(600)
- await btnGetStorageInfoASyncButton.tap()
- await page.waitFor(600)
- storageInfoRet = await getData('apiGetData')
- expect(filterStorageKeys(storageInfoRet.keys).length).toEqual(0)
- await page.setData({
- key: "autotest_key_mock",
- data: 1100.8989
- })
- await page.waitFor(600)
- await btnSetStorageButtonInfo.tap()
- await page.waitFor(600)
- await btnGetStorageButtonInfo.tap()
- await page.waitFor(600)
- expect(await getData('apiGetData')).toEqual(1100.8989)
- // 测试 remove
- // await btnGetStorageInfoASyncButton.tap()
- // await page.waitFor(600)
- // storageInfoRet = await getData('apiGetData')
- // expect(storageInfoRet.keys[0]).toEqual("autotest_key_mock")
- const btnRemoveStorageInfoASyncButton = await page.$('.btn-removeStorageInfoASync')
- await btnRemoveStorageInfoASyncButton.tap()
- page.waitFor(600)
- await btnGetStorageInfoASyncButton.tap()
- await page.waitFor(600)
- storageInfoRet = await getData('apiGetData')
- expect(filterStorageKeys(storageInfoRet.keys).length).toEqual(0)
- await page.setData({
- key: "autotest_key_mock",
- data: 123456789
- })
- await page.waitFor(600)
- await btnSetStorageButtonInfo.tap()
- await page.waitFor(600)
- await btnGetStorageButtonInfo.tap()
- await page.waitFor(600)
- expect(await getData('apiGetData')).toEqual(123456789)
- let userObj = {
- name: "zhangsan",
- age: 12
- }
- await page.setData({
- key: "autotest_key_mock",
- data: userObj
- })
- await page.waitFor(600)
- await btnSetStorageButtonInfo.tap()
- await page.waitFor(600)
- await btnGetStorageButtonInfo.tap()
- await page.waitFor(600)
- expect(await getData('apiGetData')).toEqual(userObj)
- await page.setData({
- key: "autotest_key_mock",
- data: {
- name: "zhangsan",
- age: 122
- }
- })
- await page.waitFor(600)
- await btnSetStorageButtonInfo.tap()
- await page.waitFor(600)
- await btnGetStorageButtonInfo.tap()
- await page.waitFor(600)
- let objRet = await getData('apiGetData')
- expect(objRet.age).toEqual(122)
- });
- it('Check sync properties', async () => {
- let btnComplexStaticTest = await page.$('.btn-complexStaticTest')
- await btnComplexStaticTest.tap()
- await page.waitFor(600)
- if (!isIOS) {
- expect(await getData('staticComplexRet')).toEqual(true)
- }
- await page.setData({
- key: "autotest_key_mock",
- data: "长安大道连狭斜,青牛白马七香车。玉辇纵横过主第,金鞭络绎向侯家。龙衔宝盖承朝日,凤吐流苏带晚霞。百尺游丝争绕树,一群娇鸟共啼花。游蜂戏蝶千门侧,碧树银台万种色。复道交窗作合欢,双阙连甍垂凤翼。"
- })
- await page.waitFor(600)
- let btnSetStorageButtonInfo = await page.$('.btn-setstorageSync')
- await btnSetStorageButtonInfo.tap()
- await page.waitFor(600)
- let btnGetStorageButtonInfo = await page.$('.btn-getstorageSync')
- await btnGetStorageButtonInfo.tap()
- await page.waitFor(600)
- expect(await getData('apiGetData')).toEqual("长安大道连狭斜,青牛白马七香车。玉辇纵横过主第,金鞭络绎向侯家。龙衔宝盖承朝日,凤吐流苏带晚霞。百尺游丝争绕树,一群娇鸟共啼花。游蜂戏蝶千门侧,碧树银台万种色。复道交窗作合欢,双阙连甍垂凤翼。")
- // 测试clear
- const btnGetStorageInfoSyncButton = await page.$('.btn-getStorageInfoSync')
- // await btnGetStorageInfoSyncButton.tap()
- // await page.waitFor(600)
- // let storageInfoRet = await getData('apiGetData')
- // expect(storageInfoRet.keys[0]).toEqual("autotest_key_mock")
- const btnClearStorageInfoSyncButton = await page.$('.btn-clearStorageInfoSync')
- await btnClearStorageInfoSyncButton.tap()
- await btnGetStorageInfoSyncButton.tap()
- await page.waitFor(600)
- storageInfoRet = await getData('apiGetData')
- expect(filterStorageKeys(storageInfoRet.keys).length).toEqual(0)
- await page.setData({
- key: "autotest_key_mock",
- data: 12345789.235689
- })
- await page.waitFor(600)
- btnSetStorageButtonInfo = await page.$('.btn-setstorageSync')
- await btnSetStorageButtonInfo.tap()
- await page.waitFor(600)
- btnGetStorageButtonInfo = await page.$('.btn-getstorageSync')
- await btnGetStorageButtonInfo.tap()
- await page.waitFor(600)
- expect(await getData('apiGetData')).toEqual(12345789.235689)
- // 测试 remove
- // await btnGetStorageInfoSyncButton.tap()
- // await page.waitFor(600)
- // storageInfoRet = await getData('apiGetData')
- // expect(storageInfoRet.keys[0]).toEqual("autotest_key_mock")
- const btnRemoveStorageInfoSyncButton = await page.$('.btn-removeStorageInfoSync')
- await btnRemoveStorageInfoSyncButton.tap()
- page.waitFor(600)
- await btnGetStorageInfoSyncButton.tap()
- await page.waitFor(600)
- storageInfoRet = await getData('apiGetData')
- expect(filterStorageKeys(storageInfoRet.keys).length).toEqual(0)
- await page.setData({
- key: "autotest_key_mock",
- data: 0
- })
- await page.waitFor(600)
- btnSetStorageButtonInfo = await page.$('.btn-setstorageSync')
- await btnSetStorageButtonInfo.tap()
- await page.waitFor(600)
- btnGetStorageButtonInfo = await page.$('.btn-getstorageSync')
- await btnGetStorageButtonInfo.tap()
- await page.waitFor(600)
- expect(await getData('apiGetData')).toEqual(0)
- await page.setData({
- key: "autotest_key_mock",
- data: {
- name: "tom",
- age: 10
- }
- })
- await page.waitFor(600)
- btnSetStorageButtonInfo = await page.$('.btn-setstorageSync')
- await btnSetStorageButtonInfo.tap()
- await page.waitFor(600)
- btnGetStorageButtonInfo = await page.$('.btn-getstorageSync')
- await btnGetStorageButtonInfo.tap()
- await page.waitFor(600)
- let objRet = await getData('apiGetData')
- expect(objRet.name).toEqual("tom")
- await page.setData({
- key: "autotest_key_mock",
- data: JSON.stringify({
- name: "james",
- age: 12,
- from: "american"
- })
- })
- await page.waitFor(600)
- btnSetStorageButtonInfo = await page.$('.btn-setstorageSync')
- await btnSetStorageButtonInfo.tap()
- await page.waitFor(600)
- btnGetStorageButtonInfo = await page.$('.btn-getstorageSync')
- await btnGetStorageButtonInfo.tap()
- await page.waitFor(600)
- let jsonStr = await getData('apiGetData')
- // 顺序不能保证,验证长度和各个属性来区分
- let parseObj = JSON.parse(jsonStr)
- expect(jsonStr.length).toEqual(43)
- expect(parseObj['age']).toEqual(12)
- expect(parseObj['from']).toEqual('american')
- expect(parseObj['name']).toEqual('james')
- await page.setData({
- key: "autotest_key_mock",
- data: "1234567890"
- })
- await page.waitFor(600)
- btnSetStorageButtonInfo = await page.$('.btn-setstorageSync')
- await btnSetStorageButtonInfo.tap()
- await page.waitFor(600)
- btnGetStorageButtonInfo = await page.$('.btn-getstorageSync')
- await btnGetStorageButtonInfo.tap()
- await page.waitFor(600)
- let strRet = await getData('apiGetData')
- // 顺序不能保证,验证长度和各个属性来区分
- expect(typeof strRet).toEqual("string")
- expect(strRet).toEqual("1234567890")
- await page.setData({
- key: "autotest_key_mock",
- data: "1234567.890"
- })
- await page.waitFor(600)
- btnSetStorageButtonInfo = await page.$('.btn-setstorageSync')
- await btnSetStorageButtonInfo.tap()
- await page.waitFor(600)
- btnGetStorageButtonInfo = await page.$('.btn-getstorageSync')
- await btnGetStorageButtonInfo.tap()
- await page.waitFor(600)
- let strRet2 = await getData('apiGetData')
- // 顺序不能保证,验证长度和各个属性来区分
- expect(typeof strRet2).toEqual("string")
- expect(strRet2).toEqual("1234567.890")
- });
- it('saveUTSJSONObject', async () => {
- await page.callMethod('jest_saveUTSJSONObject')
- await page.waitFor(600)
- const {
- jest_saveUTSJSONObjectSyncResult,
- jest_saveUTSJSONObjectAsyncResult
- } = await page.data()
- expect(jest_saveUTSJSONObjectSyncResult).toBe(1)
- expect(jest_saveUTSJSONObjectAsyncResult).toBe(1)
- })
- // ios js 层与原生层通信时,原始数据类型丢失
- if (!isIOS) {
- it('saveUTSJSONObjectArray', async () => {
- await page.callMethod('jest_saveUTSJSONObjectArray')
- await page.waitFor(600)
- const {
- jest_saveUTSJSONObjectArraySyncResult
- } = await page.data()
- expect(jest_saveUTSJSONObjectArraySyncResult).toBe(1)
- })
- }
- });
|