文件
OmniCard/mpuniapp/pages/API/create-inner-audio-context/create-inner-audio-context.test.js

103 行
3.3 KiB
JavaScript

const platformInfo = process.env.uniTestPlatformInfo.toLocaleLowerCase()
const isMP = platformInfo.startsWith('mp')
const isIos = platformInfo.startsWith('ios')
const isHarmony = platformInfo.toLocaleLowerCase().startsWith('harmony')
const isSafari = platformInfo.indexOf('safari') > -1
const isAndroid = platformInfo.startsWith('android')
const isWeb = platformInfo.startsWith('web')
describe('inner-audio', () => {
// safari 浏览器运行正常,playwright 环境下给 Audio 实例 src 属性赋值会崩溃
if (isMP || isIos || isSafari) {
it('not support', () => {
expect(1).toBe(1)
})
return
}
beforeAll(async () => {
page = await program.reLaunch('/pages/API/create-inner-audio-context/create-inner-audio-context')
await page.waitFor('view');
await page.waitFor(1000);
});
it('onCanplay',async()=>{
await page.waitFor(1000)
await page.waitFor(async()=>{
return await page.data('data.isCanplay')
})
const isCanplay = await page.data('data.isCanplay')
if (!isHarmony) {
expect(await page.data('data.buffered')).toBeGreaterThan(0)
} else {
expect(isCanplay).toBe(true)
}
})
it('seek-onSeeking-onSeeked', async () => {
if (isAndroid) {
expect(1).toBe(1)
return false
}
await page.callMethod('onchangeValue',20)
const waitTime = isWeb ? 5000:500
await page.waitFor(waitTime)
expect(await page.data('data.onSeekingTest')).toBeTruthy();
expect(await page.data('data.currentTime')).toBe(20);
// expect(await page.data('onWaitingTest')).toBeTruthy();
// expect(await page.data('onSeekedTest')).toBeTruthy();
const image = await program.screenshot({fullPage: true})
expect(image).toSaveImageSnapshot();
});
it('play-onPlay-onTimeUpdate', async () => {
await page.callMethod('play')
const waitTime = isWeb ? 5000:3000
await page.waitFor(waitTime)
expect(await page.data('data.isPlaying')).toBeTruthy()
expect(await page.data('data.duration')).toBeCloseTo(175.109, 0);
// expect(await page.data('currentTime')).toBeGreaterThan(0);
// expect(await page.data('isPaused')).toBeFalsy();
});
it('pause-onPause', async () => {
await page.callMethod('pause')
await page.waitFor(500);
expect(await page.data('data.isPlaying')).toBeFalsy()
// expect(await page.data('isPaused')).toBeTruthy();
});
it('stop-onStop', async () => {
await page.callMethod('play')
await page.waitFor(2000);
// 第一次点停止时,不触发onStop事件
await page.callMethod('stop')
await page.callMethod('stop')
await page.waitFor(1000);
expect(await page.data('data.isPlaying')).toBeFalsy()
// expect(await page.data('isPaused')).toBeTruthy();
});
it('onEnded', async () => {
await page.callMethod('onchangeValue',173)
await page.waitFor(500);
await page.callMethod('play')
await page.waitFor(3000);
// expect(await page.data('isPlayEnd')).toBeTruthy();
});
it('onEnded-android', async () => {
if (!isAndroid) {
expect(1).toBe(1)
return
}
await page.setData({
data:{isPlayEnd: false}
})
await page.callMethod('setSrc','file:///android_asset/uni-autoTest/alert2s.mp3')
await page.callMethod('play')
await page.waitFor(3000);
expect(await page.data('data.isPlayEnd')).toBeTruthy();
});
});