|
| 1 | +import type { Locator } from '@playwright/test' |
| 2 | +import { expect, test } from '@playwright/test' |
| 3 | +import { init } from './util' |
| 4 | + |
| 5 | +function getSpellCheck(locator: Locator) { |
| 6 | + return locator.evaluate((el: HTMLElement) => el.spellcheck) |
| 7 | +} |
| 8 | + |
| 9 | +test('Disable spellcheck', async ({ page }) => { |
| 10 | + await init(page) |
| 11 | + |
| 12 | + const textarea = page.locator('textarea') |
| 13 | + expect(await getSpellCheck(textarea), 'Original value set by browser is true').toBe(true) |
| 14 | + |
| 15 | + await textarea.click() |
| 16 | + await page.evaluate(() => { |
| 17 | + window.fcitx.setPreedit('pin xie', 7) |
| 18 | + }) |
| 19 | + expect(await getSpellCheck(textarea), 'Spellcheck is turned off when there is preedit').toBe(false) |
| 20 | + |
| 21 | + await page.evaluate(() => { |
| 22 | + window.fcitx.setPreedit('', 0) |
| 23 | + }) |
| 24 | + expect(await getSpellCheck(textarea), 'Original spellcheck value is restored').toBe(true) |
| 25 | +}) |
| 26 | + |
| 27 | +test('Respect original spellcheck value (manually set false)', async ({ page }) => { |
| 28 | + await init(page) |
| 29 | + |
| 30 | + const textarea = page.locator('textarea') |
| 31 | + await textarea.evaluate((el: HTMLElement) => { |
| 32 | + el.spellcheck = false |
| 33 | + }) |
| 34 | + |
| 35 | + await page.evaluate(() => { |
| 36 | + window.fcitx.setPreedit('pin xie', 7) |
| 37 | + }) |
| 38 | + expect(await getSpellCheck(textarea), 'Spellcheck is turned off when there is preedit').toBe(false) |
| 39 | + |
| 40 | + await page.evaluate(() => { |
| 41 | + window.fcitx.setPreedit('', 0) |
| 42 | + }) |
| 43 | + expect(await getSpellCheck(textarea), 'Original spellcheck value is restored').toBe(false) |
| 44 | +}) |
0 commit comments