diff --git a/pages.json b/pages.json index 14900ee4b4815bc3d13ead8109d31f12968fdeb0..b8f0b42a2a124e720f938b3b5635e5cbae59e398 100644 --- a/pages.json +++ b/pages.json @@ -1512,7 +1512,8 @@ { "path": "pages/API/dialog-page/dialog-4", "style": { - "navigationBarTitleText": "dialogPage4" + "navigationBarTitleText": "dialogPage4", + "navigationBarTextStyle": "black" } }, // #endif diff --git a/pages/API/dialog-page/dialog-page.test.js b/pages/API/dialog-page/dialog-page.test.js index c73baa4452226ddedd4361891fb520a821fe4ca3..a76451b32e611a9ebe8e94c4c0ba4605007cc671 100644 --- a/pages/API/dialog-page/dialog-page.test.js +++ b/pages/API/dialog-page/dialog-page.test.js @@ -3,6 +3,7 @@ jest.setTimeout(50000) const platformInfo = process.env.uniTestPlatformInfo.toLocaleLowerCase() const isWeb = platformInfo.startsWith('web') const isAndroid = platformInfo.startsWith('android') +const isIos = platformInfo.startsWith('ios') const isMP = platformInfo.startsWith('mp') const FIRST_PAGE_PATH = '/pages/API/dialog-page/dialog-page' const NEXT_PAGE_PATH = '/pages/API/dialog-page/next-page' @@ -15,10 +16,10 @@ describe('dialog page', () => { return } if (isMP) { - it('skip mp', () => { - expect(1).toBe(1) - }) - return + it('skip mp', () => { + expect(1).toBe(1) + }) + return } let page; @@ -201,7 +202,7 @@ describe('dialog page', () => { await page.callMethod('setLifeCycleNum', 0) }) - it('openDialogPage to home page', async () => { + it('openDialogPage to home page', async () => { // 本测试例中是在 FIRST_PAGE_PATH 中打开 await page.callMethod('openDialogPage1ToHomePage') await page.waitFor(1000) @@ -227,7 +228,7 @@ describe('dialog page', () => { expect(image).toSaveImageSnapshot(); lifecycleNum = await page.callMethod('getLifeCycleNum') // dialogPage2 onBackPress +1 dialogPage1 show +1 dialogPage unload -5*2 firstPage show +10 - expect(lifecycleNum).toBe(2) + expect(lifecycleNum).toBe(2) await page.callMethod('setLifeCycleNum', 0) }) @@ -298,111 +299,149 @@ describe('dialog page', () => { }); expect(image5).toSaveImageSnapshot(); lifecycleNum = await page.callMethod('getLifeCycleNum') - expect(lifecycleNum).toBe(2) + expect(lifecycleNum).toBe(2) await page.callMethod('setLifeCycleNum', 0) - }) - - it('check triggerParentHide', async () => { - // no triggerParentHide should not trigger parent hide - await page.callMethod('openDialog4') - await page.waitFor(1000) - if (isWeb) { - await page.waitFor(2000) - } - // dialog4 show +1 - expect(await page.callMethod('getLifeCycleNum')).toBe(1) - await page.callMethod('closeDialog') - await page.waitFor(200) - // dialog4 unload -5 closeDialog callback +2 - expect(await page.callMethod('getLifeCycleNum')).toBe(-2) - - - // triggerParentHide should trigger parent hide - await page.callMethod('openDialogWithTriggerParentHide') - await page.waitFor(1000) - if (isWeb) { - await page.waitFor(2000) - } - // openDialog callback +2 dialog4 show +1 parent hide -10 - expect(await page.callMethod('getLifeCycleNum')).toBe(-9) - await page.callMethod('closeDialog') - await page.waitFor(200) - // dialog4 unload -5 parent show +10 closeDialog callback +2 - expect(await page.callMethod('getLifeCycleNum')).toBe(-2) - - - // triggerParentHide should trigger parent hide - await page.callMethod('openDialogWithTriggerParentHide') - await page.waitFor(1000) - if (isWeb) { - await page.waitFor(2000) - } - // openDialog callback +2 dialog4 show +1 parent hide -10 - expect(await page.callMethod('getLifeCycleNum')).toBe(-9) - - // second triggerParentHide should not trigger parent hide - await page.callMethod('openDialogWithTriggerParentHide') - await page.waitFor(1000) - if (isWeb) { - await page.waitFor(2000) - } - // openDialog callback +2 dialog4 show +1 - expect(await page.callMethod('getLifeCycleNum')).toBe(-6) - - await page.callMethod('closeSpecifiedDialog', 1) - await page.waitFor(200) - // close not last triggerParentHide should not trigger parent show - // close callback +2 dialog4 unload -5 dialog4 show +1 - expect(await page.callMethod('getLifeCycleNum')).toBe(-8) - - await page.callMethod('closeSpecifiedDialog', 0) - await page.waitFor(200) - // close last triggerParentHide should trigger parent show - // close callback +2 dialog4 unload -5 parent show +10 - expect(await page.callMethod('getLifeCycleNum')).toBe(-1) - - - // no triggerParentHide should not trigger parent hide - await page.callMethod('openDialog4') - await page.waitFor(1000) - if (isWeb) { - await page.waitFor(2000) - } - // dialog4 show +1 - expect(await page.callMethod('getLifeCycleNum')).toBe(0) - // triggerParentHide should trigger parent hide - await page.callMethod('openDialogWithTriggerParentHide') - await page.waitFor(1000) - if (isWeb) { - await page.waitFor(2000) - } - // openDialog callback +2 dialog4 show +1 parent hide -10 - expect(await page.callMethod('getLifeCycleNum')).toBe(-7) - - // second triggerParentHide should not trigger parent hide - await page.callMethod('openDialogWithTriggerParentHide') - await page.waitFor(1000) - if (isWeb) { - await page.waitFor(2000) - } - // openDialog callback +2 dialog4 show +1 - expect(await page.callMethod('getLifeCycleNum')).toBe(-4) - // close middle triggerParentHide dialogPage - await page.callMethod('closeSpecifiedDialog', 1) - await page.waitFor(200) - // close callback +2 dialog4 unload -5 - expect(await page.callMethod('getLifeCycleNum')).toBe(-7) - // close last triggerParentHide dialogPage shoud trigger parent show - await page.callMethod('closeSpecifiedDialog', 1) - await page.waitFor(200) - // close callback +2 dialog4 unload -5 dialog4 show +1 parent show +10 - expect(await page.callMethod('getLifeCycleNum')).toBe(1) - await page.callMethod('closeDialog') - await page.waitFor(200) - // close callback +2 dialog4 unload -5 - expect(await page.callMethod('getLifeCycleNum')).toBe(-2) }) + it('check triggerParentHide', async () => { + // no triggerParentHide should not trigger parent hide + await page.callMethod('openDialog4') + await page.waitFor(1000) + if (isWeb) { + await page.waitFor(2000) + } + // dialog4 show +1 + expect(await page.callMethod('getLifeCycleNum')).toBe(1) + await page.callMethod('closeDialog') + await page.waitFor(200) + // dialog4 unload -5 closeDialog callback +2 + expect(await page.callMethod('getLifeCycleNum')).toBe(-2) + + + // triggerParentHide should trigger parent hide + await page.callMethod('openDialogWithTriggerParentHide') + await page.waitFor(1000) + if (isWeb) { + await page.waitFor(2000) + } + // openDialog callback +2 dialog4 show +1 parent hide -10 + expect(await page.callMethod('getLifeCycleNum')).toBe(-9) + await page.callMethod('closeDialog') + await page.waitFor(200) + // dialog4 unload -5 parent show +10 closeDialog callback +2 + expect(await page.callMethod('getLifeCycleNum')).toBe(-2) + + + // triggerParentHide should trigger parent hide + await page.callMethod('openDialogWithTriggerParentHide') + await page.waitFor(1000) + if (isWeb) { + await page.waitFor(2000) + } + // openDialog callback +2 dialog4 show +1 parent hide -10 + expect(await page.callMethod('getLifeCycleNum')).toBe(-9) + + // second triggerParentHide should not trigger parent hide + await page.callMethod('openDialogWithTriggerParentHide') + await page.waitFor(1000) + if (isWeb) { + await page.waitFor(2000) + } + // openDialog callback +2 dialog4 show +1 + expect(await page.callMethod('getLifeCycleNum')).toBe(-6) + + await page.callMethod('closeSpecifiedDialog', 1) + await page.waitFor(200) + // close not last triggerParentHide should not trigger parent show + // close callback +2 dialog4 unload -5 dialog4 show +1 + expect(await page.callMethod('getLifeCycleNum')).toBe(-8) + + await page.callMethod('closeSpecifiedDialog', 0) + await page.waitFor(200) + // close last triggerParentHide should trigger parent show + // close callback +2 dialog4 unload -5 parent show +10 + expect(await page.callMethod('getLifeCycleNum')).toBe(-1) + + + // no triggerParentHide should not trigger parent hide + await page.callMethod('openDialog4') + await page.waitFor(1000) + if (isWeb) { + await page.waitFor(2000) + } + // dialog4 show +1 + expect(await page.callMethod('getLifeCycleNum')).toBe(0) + // triggerParentHide should trigger parent hide + await page.callMethod('openDialogWithTriggerParentHide') + await page.waitFor(1000) + if (isWeb) { + await page.waitFor(2000) + } + // openDialog callback +2 dialog4 show +1 parent hide -10 + expect(await page.callMethod('getLifeCycleNum')).toBe(-7) + + // second triggerParentHide should not trigger parent hide + await page.callMethod('openDialogWithTriggerParentHide') + await page.waitFor(1000) + if (isWeb) { + await page.waitFor(2000) + } + // openDialog callback +2 dialog4 show +1 + expect(await page.callMethod('getLifeCycleNum')).toBe(-4) + // close middle triggerParentHide dialogPage + await page.callMethod('closeSpecifiedDialog', 1) + await page.waitFor(200) + // close callback +2 dialog4 unload -5 + expect(await page.callMethod('getLifeCycleNum')).toBe(-7) + // close last triggerParentHide dialogPage shoud trigger parent show + await page.callMethod('closeSpecifiedDialog', 1) + await page.waitFor(200) + // close callback +2 dialog4 unload -5 dialog4 show +1 parent show +10 + expect(await page.callMethod('getLifeCycleNum')).toBe(1) + await page.callMethod('closeDialog') + await page.waitFor(200) + // close callback +2 dialog4 unload -5 + expect(await page.callMethod('getLifeCycleNum')).toBe(-2) + }) + + + if (isAndroid || isIos) { + it('after closeDialogPage reset statusBar color', async () => { + const adbScreenShotArea = { + x: 900, + y: 50, + width: 100, + height: 70 + }; + + if (process.env.uniTestPlatformInfo.startsWith('android 6')) { + adbScreenShotArea.x = 535 + adbScreenShotArea.width = 90 + adbScreenShotArea.height = 50 + } else if (process.env.uniTestPlatformInfo.startsWith('android 12')) { + adbScreenShotArea.x = 1160 + adbScreenShotArea.width = 70 + adbScreenShotArea.height = 80 + } + + await page.callMethod('openDialog4') + await page.waitFor(1000) + const imageForDialog4 = await program.screenshot({ + deviceShot: true, + area: adbScreenShotArea, + }); + expect(imageForDialog4).toSaveImageSnapshot(); + + await page.callMethod('closeDialog') + await page.waitFor(1000) + + const imageForParent = await program.screenshot({ + deviceShot: true, + area: adbScreenShotArea, + }); + expect(imageForParent).toSaveImageSnapshot(); + }) + } it('input-hold-keyboard in dialog', async () => { await page.callMethod('jest_OpenDialog1') await page.waitFor(2000);