const platformInfo = process.env.uniTestPlatformInfo.toLocaleLowerCase()
const isMP = platformInfo.startsWith('mp')
const isAppWebView = process.env.UNI_AUTOMATOR_APP_WEBVIEW == 'true'
const isAndroid = platformInfo.startsWith('android')
const isWeb = platformInfo.startsWith('web')
describe('component-native-image', () => {
const screenshotParams = { fullPage: true }
let page;
let start = 0;
beforeAll(async () => {
page = await program.reLaunch('/pages/component/image/image');
await page.waitFor('view');
await page.waitFor(isWeb ? 4000 : 100);
});
it('screenshot', async () => {
const image = await program.screenshot({fullPage: true});
expect(image).toSaveImageSnapshot()
});
it('check_image_load', async () => {
expect(await page.data('loadError')).toBe(false)
});
it('check_image_load_url', async () => {
await page.setData({
loadError: false,
imageSrc: 'https://request.dcloud.net.cn/api/http/contentType/image/png'
})
await page.waitFor(300);
expect(await page.data('loadError')).toBe(false)
})
if(process.env.uniTestPlatformInfo.toLowerCase().startsWith('ios')) {
it('check_qurey_url', async () => {
await page.setData({
loadError: false,
imageSrc: '/static/logo.png?t=11234'
})
await page.waitFor(300);
expect(await page.data('loadError')).toBe(false)
})
};
it('check_image_load_error', async () => {
await page.setData({
loadError: false,
imageSrc: 'testerror.jpg'
})
await page.waitFor(300);
expect(await page.data('loadError')).toBe(true)
})
if (isAndroid && !isAppWebView) {
it('check-cookie', async () => {
await page.setData({
autoTest: true,
setCookieImage: 'https://cdn.dcloud.net.cn/img/shadow-grey.png'
});
await page.waitFor(1000);
await page.setData({
loadError: false,
verifyCookieImage: 'https://request.dcloud.net.cn/img/shadow-grey.png'
});
await page.waitFor(1000);
expect(await page.data('loadError')).toBe(false);
await page.setData({
autoTest: false
});
})
}
it('test event load', async () => {
await page.setData({
autoTest: true,
imageSrc: 'https://request.dcloud.net.cn/api/http/contentType/image/png'
});
start = Date.now();
await page.waitFor(async () => {
return (await page.data('eventLoad')) || (Date.now() - start > 1000);
});
expect(await page.data('eventLoad')).toEqual({
tagName: isMP ? '' : 'IMAGE',
type: 'load',
width: 10,
height: 10
});
});
it('test event error', async () => {
await page.setData({
imageSrc: 'https://request.dcloud.net.cn/api/http/contentType/404.png'
});
start = Date.now();
await page.waitFor(async () => {
return (await page.data('eventError')) || (Date.now() - start > 1000);
});
expect(await page.data('eventError')).toEqual({
tagName: isMP ? '' : 'IMAGE',
type: 'error'
});
await page.setData({
autoTest: false
});
});
if(isMP) {
return
}
if (!isAppWebView) {
it('path-screenshot', async () => {
const page = await program.navigateTo('/pages/component/image/image-path');
await page.waitFor(3000);
const image = await program.screenshot(screenshotParams)
expect(image).toSaveImageSnapshot()
});
}
it('mode-screenshot', async () => {
if (process.env.android_cpu_type === 'x86_64') return
const page = await program.navigateTo('/pages/component/image/image-mode');
await page.waitFor(1000);
const image = await program.screenshot(screenshotParams)
expect(image).toSaveImageSnapshot()
});
it('long-path-screenshot', async() => {
if (isAndroid) {
const infos = process.env.uniTestPlatformInfo.split(' ');
const version = parseInt(infos[infos.length - 1]);
if (version < 8) {
console.log("安卓版本小于8设备 测试image-long 模拟器会出现内存不足错误 影响后续测试")
expect(1).toBe(1)
return
}
}
const page = await program.navigateTo('/pages/component/image/image-long');
await page.waitFor(3000);
const image = await program.screenshot(screenshotParams)
expect(image).toSaveImageSnapshot()
})
});