image.test.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. const platformInfo = process.env.uniTestPlatformInfo.toLocaleLowerCase()
  2. const isMP = platformInfo.startsWith('mp')
  3. const isAppWebView = process.env.UNI_AUTOMATOR_APP_WEBVIEW == 'true'
  4. const isAndroid = platformInfo.startsWith('android')
  5. describe('component-native-image', () => {
  6. const screenshotParams = { fullPage: true }
  7. let page;
  8. let start = 0;
  9. beforeAll(async () => {
  10. page = await program.reLaunch('/pages/component/image/image');
  11. await page.waitFor(600);
  12. });
  13. it('check_image_load', async () => {
  14. expect(await page.data('loadError')).toBe(false)
  15. });
  16. it('check_image_load_url', async () => {
  17. await page.setData({
  18. loadError: false,
  19. imageSrc: 'https://request.dcloud.net.cn/api/http/contentType/image/png'
  20. })
  21. await page.waitFor(300);
  22. expect(await page.data('loadError')).toBe(false)
  23. })
  24. if(process.env.uniTestPlatformInfo.toLowerCase().startsWith('ios')) {
  25. it('check_qurey_url', async () => {
  26. await page.setData({
  27. loadError: false,
  28. imageSrc: '/static/logo.png?t=11234'
  29. })
  30. await page.waitFor(300);
  31. expect(await page.data('loadError')).toBe(false)
  32. })
  33. };
  34. it('check_image_load_error', async () => {
  35. await page.setData({
  36. loadError: false,
  37. imageSrc: 'testerror.jpg'
  38. })
  39. await page.waitFor(300);
  40. expect(await page.data('loadError')).toBe(true)
  41. })
  42. if (isAndroid && !isAppWebView) {
  43. it('check-cookie', async () => {
  44. await page.setData({
  45. autoTest: true,
  46. setCookieImage: 'https://cdn.dcloud.net.cn/img/shadow-grey.png'
  47. });
  48. await page.waitFor(1000);
  49. await page.setData({
  50. loadError: false,
  51. verifyCookieImage: 'https://request.dcloud.net.cn/img/shadow-grey.png'
  52. });
  53. await page.waitFor(1000);
  54. expect(await page.data('loadError')).toBe(false);
  55. await page.setData({
  56. autoTest: false
  57. });
  58. })
  59. }
  60. it('test event load', async () => {
  61. await page.setData({
  62. autoTest: true,
  63. imageSrc: 'https://request.dcloud.net.cn/api/http/contentType/image/png'
  64. });
  65. start = Date.now();
  66. await page.waitFor(async () => {
  67. return (await page.data('eventLoad')) || (Date.now() - start > 1000);
  68. });
  69. expect(await page.data('eventLoad')).toEqual({
  70. tagName: isMP ? '' : 'IMAGE',
  71. type: 'load',
  72. width: 10,
  73. height: 10
  74. });
  75. });
  76. it('test event error', async () => {
  77. await page.setData({
  78. imageSrc: 'https://request.dcloud.net.cn/api/http/contentType/404.png'
  79. });
  80. start = Date.now();
  81. await page.waitFor(async () => {
  82. return (await page.data('eventError')) || (Date.now() - start > 1000);
  83. });
  84. expect(await page.data('eventError')).toEqual({
  85. tagName: isMP ? '' : 'IMAGE',
  86. type: 'error'
  87. });
  88. await page.setData({
  89. autoTest: false
  90. });
  91. });
  92. if(isMP) {
  93. // TODO 整理小程序、web支持的类型,页面上进行条件编译展示
  94. return
  95. }
  96. it('path-screenshot', async () => {
  97. const page = await program.navigateTo('/pages/component/image/image-path');
  98. await page.waitFor(3000);
  99. const image = await program.screenshot(screenshotParams)
  100. expect(image).toSaveImageSnapshot()
  101. });
  102. it('mode-screenshot', async () => {
  103. if (process.env.android_cpu_type === 'x86_64') return
  104. const page = await program.navigateTo('/pages/component/image/image-mode');
  105. await page.waitFor(1000);
  106. const image = await program.screenshot(screenshotParams)
  107. expect(image).toSaveImageSnapshot()
  108. });
  109. it('long-path-screenshot', async() => {
  110. if (isAndroid) {
  111. const infos = process.env.uniTestPlatformInfo.split(' ');
  112. const version = parseInt(infos[infos.length - 1]);
  113. if (version < 8) {
  114. console.log("安卓版本小于8设备 测试image-long 模拟器会出现内存不足错误 影响后续测试")
  115. expect(1).toBe(1)
  116. return
  117. }
  118. }
  119. const page = await program.navigateTo('/pages/component/image/image-long');
  120. await page.waitFor(3000);
  121. const image = await program.screenshot(screenshotParams)
  122. expect(image).toSaveImageSnapshot()
  123. })
  124. });