scroll-view-refresher.test.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. const platformInfo = process.env.uniTestPlatformInfo.toLocaleLowerCase()
  2. const isAndroid = platformInfo.startsWith('android')
  3. const isIos = platformInfo.startsWith('ios')
  4. const isMP = platformInfo.startsWith('mp')
  5. const isHarmony = platformInfo.startsWith('harmony')
  6. const isAppWebView = process.env.UNI_AUTOMATOR_APP_WEBVIEW == 'true'
  7. describe('component-native-scroll-view-refresher', () => {
  8. if (isAppWebView) {
  9. it('other platform', () => {
  10. expect(1).toBe(1)
  11. })
  12. return
  13. }
  14. if (process.env.UNI_TEST_DEVICES_DIRECTION == 'landscape') {
  15. it('跳过横屏模式', () => {
  16. expect(1).toBe(1)
  17. })
  18. return
  19. }
  20. let page;
  21. beforeAll(async () => {
  22. page = await program.reLaunch('/pages/component/scroll-view/scroll-view-refresher');
  23. await page.waitFor(300);
  24. });
  25. it('scroll-view-refresher-screenshot', async () => {
  26. //禁止滚动条
  27. await page.setData({
  28. showScrollbar: false
  29. })
  30. await page.waitFor(300);
  31. const image = await program.screenshot({fullPage: true});
  32. expect(image).toSaveImageSnapshot();
  33. })
  34. it('check_refresher_refresh_event', async () => {
  35. await page.setData({
  36. refresherTriggered: true
  37. })
  38. await page.waitFor(2000);
  39. expect(await page.data('refresherrefreshTimes')).toBe(1)
  40. // 手动设置下拉刷新状态refresher-triggered为true时,在web和iOS不触发@refresherpulling事件
  41. if(isAndroid){
  42. expect(await page.data('onRefresherpullingTest')).toBe('refresherpulling:Success')
  43. expect(await page.data('refresherrefreshTest')).toBe('refresherrefresh:Success')
  44. }
  45. await page.waitFor(2000);
  46. expect(await page.data('onRefresherrestoreTest')).toBe('refresherrestore:Success')
  47. });
  48. // 仅App端支持手势下拉刷新,在不同设备上位置有差异可能导致不触发中止事件
  49. // 安卓端仅测'android 11.0.0'、'android 10.0.0_x86_64'、'android 10.0.0_x86'
  50. if(isAndroid || isIos || isHarmony){
  51. it('check_refresherabort', async () => {
  52. if(isIos || isHarmony){
  53. await program.swipe({
  54. startPoint: {x: 100,y: 500},
  55. endPoint: {x: 100,y: 630},
  56. duration: 100
  57. })
  58. }else if(isAndroid){
  59. await program.swipe({
  60. startPoint: {x: 100,y: 400},
  61. endPoint: {x: 100,y: 450},
  62. duration: 1000
  63. })
  64. }
  65. await page.waitFor(1500)
  66. console.log('onRefresherpullingTest',await page.data('onRefresherpullingTest'))
  67. console.log(platformInfo,'onRefresherabortTest',await page.data('onRefresherabortTest'))
  68. if(isIos || platformInfo.startsWith('android 10') || platformInfo.startsWith('android 11')){
  69. expect(await page.data('onRefresherabortTest')).toBe('refresherabort:Success')
  70. }
  71. });
  72. }
  73. it('check_refresher_snapshot', async () => {
  74. await page.setData({
  75. refresherTriggered: true
  76. })
  77. await page.waitFor(300);
  78. const image = await program.screenshot({fullPage: true});
  79. expect(image).toSaveImageSnapshot();
  80. await page.waitFor(1500);
  81. });
  82. //验证issues 16020bug问题
  83. it('check_page_orientation_snapshot', async () => {
  84. // if(isAndroid || isIos) {
  85. if(isAndroid || isHarmony) {
  86. await page.callMethod('setPageStyle', {pageOrientation: "landscape"})
  87. await page.waitFor(800);
  88. const image = await program.screenshot({fullPage: true});
  89. expect(image).toSaveImageSnapshot();
  90. await page.callMethod('setPageStyle', {pageOrientation: "portrait"})
  91. await page.waitFor(800);
  92. } else {
  93. expect(1).toBe(1)
  94. }
  95. });
  96. });