123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209 |
- const platformInfo = process.env.uniTestPlatformInfo.toLocaleLowerCase()
- const isIOS = platformInfo.startsWith('ios')
- const isMP = platformInfo.startsWith('mp')
- const isWeb = platformInfo.startsWith('web')
- const isHarmony = platformInfo.startsWith('harmony')
- const isAndroid = platformInfo.startsWith('android')
- const isAppWebView = process.env.UNI_AUTOMATOR_APP_WEBVIEW == 'true'
- describe('component-native-web-view', () => {
- if (isWeb || isAppWebView) {
- it('web', async () => {
- expect(1).toBe(1)
- })
- return
- }
- let page;
- let start = 0;
- beforeAll(async () => {
- page = await program.reLaunch('/pages/component/web-view/web-view');
- await page.waitFor(3000);
- });
- it('check_load_url', async () => {
- expect(await page.data('loadError')).toBe(false)
- });
- it('test attr webview-styles', async () => {
- await page.setData({
- webview_styles: {
- progress: {
- color: '#FF0'
- }
- }
- });
- await page.waitFor(100);
- await page.callMethod('reload');
- await page.waitFor(100);
- await page.setData({
- webview_styles: {
- progress: {
- color: 'yellow'
- }
- }
- });
- await page.waitFor(100);
- await page.callMethod('reload');
- });
- if (isMP) {
- return
- }
- it('set auto test', async () => {
- await page.setData({
- autoTest: true
- });
- expect(1).toBe(1)
- });
- it('test touch event', async () => {
- const windowInfo = await program.callUniMethod('getWindowInfo');
- await program.tap({
- x: 1,
- y: windowInfo.safeAreaInsets.top + 44 + 1
- });
- await page.waitFor(500);
- if (!isIOS) {
- expect(await page.data('isTouchEnable')).toBe(true);
- }
- await page.setData({
- pointerEvents: 'none',
- isTouchEnable: false
- });
- await page.waitFor(100);
- await program.tap({
- x: 10,
- y: windowInfo.safeAreaInsets.top + 44 + 10
- });
- await page.waitFor(500);
- if (!isIOS && !isHarmony) {
- expect(await page.data('isTouchEnable')).toBe(false);
- }
- await page.setData({
- pointerEvents: 'auto'
- });
- });
- it('test event loading load', async () => {
- await page.callMethod('reload');
- start = Date.now();
- await page.waitFor(async () => {
- return (await page.data('eventLoading')) || (Date.now() - start > 500);
- });
- if (isIOS) {
- const platformInfo = process.env.uniTestPlatformInfo.toLocaleLowerCase()
- if (
- platformInfo.indexOf('14.5') != -1 ||
- platformInfo.indexOf('13.7') != -1 ||
- platformInfo.indexOf('12.4') != -1
- ) {
- expect(1).toBe(1)
- return
- }
- expect(await page.data('eventLoading')).toEqual({
- "tagName": "WEB-VIEW",
- type: 'loading',
- src: 'https://www.dcloud.io/'
- });
- } else {
- expect(await page.data('eventLoading')).toEqual({
- tagName: 'WEB-VIEW',
- type: 'loading',
- src: 'https://www.dcloud.io/'
- });
- }
- start = Date.now();
- await page.waitFor(async () => {
- return (await page.data('eventLoad')) || (Date.now() - start > 5000);
- });
- expect(await page.data('eventLoad')).toEqual({
- tagName: 'WEB-VIEW',
- type: 'load',
- src: 'https://www.dcloud.io/',
- url: 'https://www.dcloud.io/'
- });
- });
- it('test event contentheightchange', async () => {
- if (!isAndroid && !isIOS && !isHarmony) {
- expect(1).toBe(1);
- return;
- }
- expect(await page.callMethod('getContentHeight')).toBeGreaterThan(0);
- start = Date.now();
- await page.waitFor(async () => {
- return (await page.data('eventContentHeightChange')) || (Date.now() - start > 500);
- });
- expect(await page.data('eventContentHeightChange')).toEqual({
- tagName: 'WEB-VIEW',
- type: 'contentheightchange',
- isValidHeight: true
- });
- });
- it('test event contentheightchange', async () => {
- if (!isAndroid && !isIOS && !isHarmony) {
- expect(1).toBe(1);
- return;
- }
- expect(await page.callMethod('getContentHeight')).toBeGreaterThan(0);
- start = Date.now();
- await page.waitFor(async () => {
- return (await page.data('eventContentHeightChange')) || (Date.now() - start > 500);
- });
- expect(await page.data('eventContentHeightChange')).toEqual({
- tagName: 'WEB-VIEW',
- type: 'contentheightchange',
- isValidHeight: true
- });
- });
- it('test event error', async () => {
- const infos = process.env.uniTestPlatformInfo.split(' ');
- const version = parseInt(infos[infos.length - 1]);
- if (isAndroid && version > 5) {
- await page.setData({
- src: 'https://www.dclou.io/uni-app-x'
- });
- start = Date.now();
- await page.waitFor(async () => {
- return (await page.data('eventError')) || (Date.now() - start > 5000);
- });
- expect(await page.data('eventError')).toEqual({
- tagName: 'WEB-VIEW',
- type: 'error',
- errCode: 100002,
- errMsg: 'page error',
- url: 'https://www.dclou.io',
- fullUrl: 'https://www.dclou.io/uni-app-x',
- src: 'https://www.dclou.io/uni-app-x'
- });
- }
- await page.setData({
- autoTest: false
- });
- });
- it('checkNativeWebView', async () => {
- const platformInfo = process.env.uniTestPlatformInfo.toLocaleLowerCase()
- if (
- platformInfo.indexOf('14.5') != -1 ||
- platformInfo.indexOf('13.7') != -1 ||
- platformInfo.indexOf('12.4') != -1
- ) {
- expect(1).toBe(1)
- return
- }
- await page.waitFor(300);
- const has = await page.callMethod('checkNativeWebView')
- expect(has).toBe(true)
- })
- it('test lodaData', async () => {
- await page.callMethod('loadData');
- await page.waitFor(1000);
- const image = await program.screenshot({ fullPage: true });
- expect(image).toSaveImageSnapshot();
- });
- });
|