const platformInfo = process.env.uniTestPlatformInfo.toLocaleLowerCase()
const isMP = platformInfo.startsWith('mp')
const isWeb = platformInfo.startsWith('web')
const isIOS = platformInfo.startsWith('ios')
const isHarmony = platformInfo.startsWith('harmony')
describe('component-native-list-view', () => {
if (isMP) {
it('skip mp', () => {
expect(1).toBe(1)
})
return
}
let page
beforeAll(async () => {
page = await program.reLaunch('/pages/component/list-view/list-view')
await page.waitFor(600)
})
it('check_scroll_top', async () => {
await page.callMethod('confirm_scroll_top_input', 600)
await page.waitFor(600)
const listElement = await page.$('#listview')
const scrollTop = await listElement.attribute("scrollTop")
console.log("check_scroll_top---"+scrollTop)
expect(scrollTop-600).toBeGreaterThanOrEqual(0)
await page.callMethod('confirm_scroll_top_input', 0)
await page.waitFor(600)
})
it('check_scroll_left', async () => {
if(await page.data('scroll_x_boolean') === false) {
await page.callMethod('change_scroll_x_boolean', true)
await page.callMethod('change_scroll_y_boolean', false)
await page.waitFor(600)
}
await page.callMethod('confirm_scroll_left_input', 600)
await page.waitFor(600)
const listElement = await page.$('#listview')
const scrollLeft = await listElement.attribute("scrollLeft")
console.log("check_scroll_left---"+scrollLeft)
expect(scrollLeft-600).toBeGreaterThanOrEqual(0)
await page.callMethod('confirm_scroll_left_input', 0)
await page.waitFor(600)
})
it('Event check_scroll', async () => {
await page.callMethod('change_scroll_y_boolean', true)
await page.callMethod('change_scroll_x_boolean', false)
await page.waitFor(600)
await page.callMethod('confirm_scroll_top_input', 600)
await page.waitFor(500)
await page.callMethod('confirm_scroll_top_input', 300)
await page.waitFor(500)
const scrollDetail = await page.data('scrollDetailTest')
expect(scrollDetail.scrollLeft).toBe(0)
expect(scrollDetail.scrollTop).toBeGreaterThan(299.5)
expect(scrollDetail.scrollHeight).toBeGreaterThan(0)
expect(scrollDetail.scrollWidth).toBeGreaterThan(0)
expect(scrollDetail.deltaX).toBe(0)
expect(scrollDetail.deltaY).toBeGreaterThan(299.5)
expect(await page.data('isScrollTest')).toBe('scroll:Success')
await page.callMethod('confirm_scroll_top_input', 0)
await page.waitFor(600)
})
it('Event scrolltolower-滚动到底部/右边',async()=>{
await page.callMethod('confirm_scroll_top_input', 2500)
await page.waitFor(600)
expect(await page.data('isScrolltolowerTest')).toBe('scrolltolower:Success-bottom')
await page.callMethod('confirm_scroll_top_input', 0)
await page.waitFor(600)
})
it('Event scrolltoupper-滚动到顶部/左边',async()=>{
await page.callMethod('confirm_scroll_top_input', 40)
await page.waitFor(1000)
expect(await page.data('isScrolltoupperTest')).toBe('scrolltoupper:Success-top')
await page.callMethod('confirm_scroll_top_input', 0)
await page.waitFor(600)
})
if(isWeb || isIOS) {
return
}
it('Event scrollend-滚动结束时触发',async()=>{
await program.swipe({
startPoint: { x: 100, y: 200 },
endPoint: { x: 100, y: 100 },
duration: 100
})
await page.waitFor(1600)
const endDetail = await page.data('scrollEndDetailTest')
console.log('scrollEndDetailTest:', endDetail)
expect(endDetail.deltaY).toBe(0)
expect(endDetail.deltaX).toBe(0)
expect(endDetail.scrollLeft).toBe(0)
expect(endDetail.scrollTop).toBeGreaterThan(0)
expect(endDetail.scrollHeight).toBeGreaterThan(0)
expect(endDetail.scrollWidth).toBeGreaterThan(0)
})
it('check_scroll_height', async () => {
await page.callMethod('change_scroll_y_boolean', true)
await page.callMethod('change_scroll_x_boolean', false)
await page.waitFor(600)
const value = await page.callMethod('check_scroll_height')
expect(value).toBe(true)
})
it('check_scroll_width', async () => {
if(isHarmony) {
expect(1).toBe(1)
return
}
if(await page.data('scroll_x_boolean') === false) {
await page.callMethod('change_scroll_x_boolean', true)
await page.callMethod('change_scroll_y_boolean', false)
await page.waitFor(600)
}
await page.callMethod('change_scroll_y_boolean', false)
await page.callMethod('change_scroll_x_boolean', true)
await page.waitFor(600)
const value = await page.callMethod('check_scroll_width')
expect(value).toBe(true)
})
it('check_refresher', async () => {
if(await page.data('scroll_y_boolean') === false) {
await page.callMethod('change_scroll_y_boolean', true)
await page.callMethod('change_scroll_x_boolean', false)
await page.waitFor(600)
}
await page.setData({
refresher_enabled_boolean: true,
refresher_triggered_boolean: true
})
await page.waitFor(1000)
expect(await page.data('refresherrefresh')).toBe(true)
await page.waitFor(2000)
})
it('check_scroll_into_view_top', async () => {
if(await page.data('scroll_y_boolean') === false) {
await page.callMethod('change_scroll_y_boolean', true)
await page.callMethod('change_scroll_x_boolean', false)
await page.waitFor(600)
}
await page.callMethod('item_change_size_enum', 3)
await page.waitFor(600)
const listElement = await page.$('#listview')
const scrollTop = await listElement.attribute("scrollTop")
console.log("check_scroll_into_view_top--"+scrollTop)
await page.callMethod('item_change_size_enum', 0)
expect(scrollTop-690).toBeGreaterThanOrEqual(0)
})
it('check_scroll_into_view_left', async () => {
if(await page.data('scroll_x_boolean') === false) {
await page.callMethod('change_scroll_x_boolean', true)
await page.callMethod('change_scroll_y_boolean', false)
await page.waitFor(600)
}
await page.callMethod('setScrollIntoView', "item---3")
await page.waitFor(600)
const listElement = await page.$('#listview')
const scrollLeft = await listElement.attribute("scrollLeft")
console.log("check_scroll_into_view_left--"+scrollLeft)
await page.callMethod('setScrollIntoView', "item---0")
expect(scrollLeft-1080).toBeGreaterThanOrEqual(0)
})
})