123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- const platformInfo = process.env.uniTestPlatformInfo.toLocaleLowerCase()
- const isAndroid = platformInfo.startsWith('android')
- const isIOS = platformInfo.startsWith('ios')
- const isMP = platformInfo.startsWith('mp')
- const isWeb = platformInfo.startsWith('web')
- const isHarmony = platformInfo.startsWith('harmony')
- const isAppWebView = process.env.UNI_AUTOMATOR_APP_WEBVIEW == 'true'
- const PAGE_PATH = '/pages/component/picker-view/picker-view'
- let page, pickerViewEl;
- describe('PickerView.uvue', () => {
- beforeAll(async () => {
- page = await program.reLaunch(PAGE_PATH)
- await page.waitFor('view')
- await page.callMethod('setEventCallbackNum', 0)
- pickerViewEl = await page.$('.picker-view')
- })
- afterEach(async () => {
- await page.callMethod('setEventCallbackNum', 0)
- })
- async function toScreenshot(imgName) {
- const image = await program.screenshot({
- fullPage: true
- });
- expect(image).toSaveImageSnapshot({
- customSnapshotIdentifier() {
- return imgName
- }
- })
- await page.waitFor(500);
- }
- it('value', async () => {
- await page.callMethod('setValue')
- await page.waitFor(1000)
- const newValue1 = await pickerViewEl.property('value')
- // TODO
- expect(newValue1.toString()).toEqual('0,1,30')
- // 仅在App端,setValue可触发change事件
- if (isAndroid || isIOS) {
- expect(await page.data('result')).toEqual([ 0, 1, 30 ])
- }
- await page.callMethod('setValue1')
- await page.waitFor(1000)
- const newValue2 = await pickerViewEl.property('value')
- // TODO
- expect(newValue2.toString()).toEqual('10,10,10')
- if (isAndroid || isIOS) {
- expect(await page.data('result')).toEqual([10, 10, 10])
- }
- })
- it('length', async () => {
- const els = await page.$$('.picker-view')
- expect(els.length).toBe(1)
- const els1 = await page.$$('.picker-view-column')
- expect(els1.length).toBe(3)
- })
- // indicatorStyle 属性在编译时被解析成了对象,在获取时和用户设置的值格式不一样 [object Object]
- if (!isHarmony) {
- it('indicator-style', async () => {
- const indicatorStyle = "height: 50px;border:#ff5500 solid 1px;background:rgba(182, 179, 255, 0.4);"
- await page.callMethod('setIndicatorStyle',true)
- await page.waitFor(500)
- expect(await pickerViewEl.attribute(isMP ? 'indicator-style' : 'indicatorStyle')).toBe(indicatorStyle)
- await toScreenshot('picker-view-indicator-style')
- //清空indicatorStyle
- await page.callMethod('setIndicatorStyle',false)
- })
- }
- if (isWeb || isMP) {
- // indicator-class、mask-style、mask-class 仅web和MP支持
- it('indicator-class', async () => {
- //设置indicator-class
- await page.callMethod('setIndicatorClass',true)
- expect(await pickerViewEl.attribute(isMP ? 'indicator-class': 'indicatorClass')).toBe("indicator-test")
- await toScreenshot('picker-view-web-indicator-class')
- //清空indicatorClass
- await page.callMethod('setIndicatorClass',false)
- })
- it('mask-style', async () => {
- const maskStyle = "background-image: linear-gradient(to bottom, #d8e5ff, rgba(216, 229, 255, 0));"
- // 设置mask-style
- await page.callMethod('setMaskStyle',true)
- expect(await pickerViewEl.attribute(isMP ? 'mask-style' : 'maskStyle')).toBe(maskStyle)
- await toScreenshot('picker-view-web-mask-style')
- })
- it('mask-class', async () => {
- // 设置mask-class
- await page.callMethod('setMaskClass',true)
- expect(await pickerViewEl.attribute(isMP ? 'mask-class' : 'maskClass')).toBe("mask-test")
- await toScreenshot('picker-view-web-mask-class')
- })
- return
- }
- if (!isAppWebView && !isMP && !isHarmony) {
- it('mask-top-bottom-style', async () => {
- // mask-top-style、mask-bottom-style仅App端支持
- const linearToTop = "background-image: linear-gradient(to bottom, #f4ff73, rgba(216, 229, 255, 0));"
- const linearToBottom = "background-image: linear-gradient(to top, #f4ff73, rgba(216, 229, 255, 0));"
- await page.callMethod('setMaskTopStyle',true)
- await page.callMethod('setMaskBottomStyle',true)
- await page.waitFor(500)
- expect(await pickerViewEl.attribute('mask-top-style')).toBe(linearToTop)
- expect(await pickerViewEl.attribute('mask-bottom-style')).toBe(linearToBottom)
- await page.waitFor(2000)
- await toScreenshot('picker-view-app-mask-top-bottom-style')
- })
- it('reopen-picker-view-page', async () => {
- page = await program.switchTab('/pages/tabBar/component')
- await page.waitFor(500)
- page = await program.navigateTo(PAGE_PATH)
- await page.waitFor(500)
- const {
- year,
- month,
- day
- } = await page.data()
- expect(year).toEqual(2018)
- expect(month).toEqual(1)
- expect(day).toEqual(12)
- })
- it('trigger UniPickerViewChangeEvent', async () => {
- await page.callMethod('setValue')
- await page.waitFor(1500)
- const eventCallbackNum = await page.callMethod('getEventCallbackNum')
- // 年月日滚动三次,测试 e.tagName +1 和 e.type+2,正常为9
- expect(eventCallbackNum).toBe(9)
- })
- }
- })
|