textarea.test.js 3.8 KB
Newer Older
张磊 已提交
1 2 3
// uni-app自动化测试教程: uni-app自动化测试教程: https://uniapp.dcloud.net.cn/worktile/auto/hbuilderx-extension/

describe('component-native-textarea', () => {
4 5 6 7 8
  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')
张磊 已提交
9 10 11 12 13 14 15 16 17 18

  let page;
  let textarea;
  beforeAll(async () => {
    page = await program.reLaunch("/pages/component/textarea/textarea");
    await page.waitFor(3000);
    textarea = await page.$('.uni-textarea');
    await page.waitFor(1000);
  });

19 20 21 22 23 24
  beforeEach(async () => {
    await page.setData({
      jest_result: false,
    })
  });

25
  if(isAndroid){
26 27 28 29 30 31 32 33 34 35 36 37
    it("input event triggered when the default value is", async () => {
        await program.adbCommand("input text 1")
        await page.waitFor(2000)
        let res = await page.data('jest_result');
        expect(res).toBe(true)
    })
    it("reset status", async () => {
      await program.adbCommand("input keyevent KEYCODE_DEL")
      await page.waitFor(2000)
    })
  }

38 39 40 41 42 43 44 45 46 47 48
  if(!isMP) {
    // TODO 微信小程序自动化测试textarea focus属性取到的是数字
    it('focus', async () => {
      expect(await textarea.attribute("focus")).toBe("true")
      await page.setData({
        focus_boolean: false,
      })
      await page.waitFor(500)
      expect(await textarea.attribute("focus")).toBe("false")
    });
  }
49
  it("auto-height", async () => {
张磊 已提交
50
    await page.setData({
51
      default_value: "",
张磊 已提交
52 53 54 55 56 57 58
      auto_height_boolean: true
    })
    await page.waitFor(500)
    var {
      width,
      height
    } = await textarea.size()
taohebin@dcloud.io's avatar
taohebin@dcloud.io 已提交
59
    expect(height).toBeLessThanOrEqual(200)
60 61 62 63 64 65 66 67 68 69 70 71 72
    if(!isMP) {
      // TODO 微信小程序auto-height由true切换成false时不会影响text-area高度
      await page.setData({
        default_value: "1\n2\n3\n4\n5\n6",
        auto_height_boolean: false
      })
      await page.waitFor(500)
      var {
        width,
        height
      } = await textarea.size()
      expect(height).toEqual(200)
    }
73
  })
74 75 76 77 78 79 80 81 82

  if(!isMP) {
    // 微信小程序text-area不支持cursor-color属性
    it("cursor-color", async () => {
      await page.setData({
        cursor_color: "transparent",
      })
      await page.waitFor(500)
      expect(await textarea.attribute("cursor-color")).toBe("transparent")
83
    })
84
  }
张磊 已提交
85

86 87 88 89 90 91 92 93 94
  it("flex 1 height exception", async () => {
    const bottomTextarea = await page.$('#textarea-height-exception');
    var {
      height
    } = await bottomTextarea.size()
    expect(height).toEqual(150)
  })


95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
  if(!isMP) {
    // 微信小程序自动化测试无法获取inputmode属性
    it("inputmode", async () => {
      const inputmodeEnum = await page.data("inputmode_enum")
      for (var i = 0; i < inputmodeEnum.length; i++) {
        var x = inputmodeEnum[i]
        console.log(x['value'], x['name'])
        var selected = x['value'] - 1
        if (i == inputmodeEnum.length - 1) {
          selected = i
        }
        await page.callMethod("radio_change_inputmode_enum", selected);
        await page.waitFor(500)
        expect(await textarea.attribute("inputmode")).toEqual(x['name'])
        await page.waitFor(500)
110
      }
111 112
    })
  }
113

114 115 116
  it("maxlength", async () => {
    const input = await page.$('#textarea-instance-maxlength');
    let str = "";
117
    for (let i = 0; i < 200; i++) {
118 119 120 121 122 123 124 125 126 127 128 129
      str += `${i}`
    }
    await page.setData({
      textareaMaxLengthValue: str
    })
    let length = (await input.value()).length
    expect(length).toBe(10)
    await page.setData({
      textareaMaxLengthValue: ""
    })
  })

130 131 132 133 134
  it('both set modelValue and value', async () => {
    const textarea2 = await page.$('#both-model-value');
    expect(await textarea2.value()).toEqual("123")
  })

张磊 已提交
135
});