123 lines
4.4 KiB
JavaScript
123 lines
4.4 KiB
JavaScript
import { loginAsFoobar } from '../roles'
|
|
import {
|
|
generalSettingsButton,
|
|
getNthShowOrHideButton,
|
|
getNthStatus, getNthStatusAndSensitiveButton, getNthStatusRelativeDateTime, homeNavButton,
|
|
notificationsNavButton,
|
|
scrollToStatus,
|
|
settingsNavButton
|
|
} from '../utils'
|
|
import { Selector as $ } from 'testcafe'
|
|
|
|
import { homeTimeline } from '../fixtures'
|
|
|
|
fixture`022-status-aria-label.js`
|
|
.page`http://localhost:4002`
|
|
|
|
test('basic aria-labels for statuses', async t => {
|
|
await loginAsFoobar(t)
|
|
await t
|
|
.hover(getNthStatus(1))
|
|
.expect(getNthStatus(1).getAttribute('aria-label')).match(
|
|
/quux, pinned toot 1, .+ ago, @quux, Unlisted, Boosted by admin/i
|
|
)
|
|
.expect(getNthStatusRelativeDateTime(1).getAttribute('aria-label')).match(
|
|
/.* ago - click to show thread/i
|
|
)
|
|
.hover(getNthStatus(1))
|
|
.expect(getNthStatus(2).getAttribute('aria-label')).match(
|
|
/admin, @foobar notification of unlisted message, .* ago, @admin, Unlisted/i
|
|
)
|
|
})
|
|
|
|
test('aria-labels for CWed statuses', async t => {
|
|
await loginAsFoobar(t)
|
|
const kittenIdx = homeTimeline.findIndex(_ => _.spoiler === 'kitten CW')
|
|
await scrollToStatus(t, 1 + kittenIdx)
|
|
await t
|
|
.hover(getNthStatus(1 + kittenIdx))
|
|
.expect(getNthStatus(1 + kittenIdx).getAttribute('aria-label')).match(
|
|
/foobar, Content warning: kitten CW, .* ago, @foobar, Public/i
|
|
)
|
|
// toggle the CW button
|
|
.click(getNthShowOrHideButton(1 + kittenIdx))
|
|
.expect(getNthStatus(1 + kittenIdx).getAttribute('aria-label')).match(
|
|
/foobar, here's a kitten with a CW, .* ago, @foobar, Public/i
|
|
)
|
|
.click(getNthShowOrHideButton(1 + kittenIdx))
|
|
.expect(getNthStatus(1 + kittenIdx).getAttribute('aria-label')).match(
|
|
/foobar, Content warning: kitten CW, .* ago, @foobar, Public/i
|
|
)
|
|
// toggle the "show sensitive media" button
|
|
.click(getNthStatusAndSensitiveButton(1 + kittenIdx, 1))
|
|
.expect(getNthStatus(1 + kittenIdx).getAttribute('aria-label')).match(
|
|
/foobar, Content warning: kitten CW, has media, kitten, .* ago, @foobar, Public/i
|
|
)
|
|
.click(getNthStatusAndSensitiveButton(1 + kittenIdx, 1))
|
|
.expect(getNthStatus(1 + kittenIdx).getAttribute('aria-label')).match(
|
|
/foobar, Content warning: kitten CW, .* ago, @foobar, Public/i
|
|
)
|
|
})
|
|
|
|
test('aria-labels for two media attachments', async t => {
|
|
await loginAsFoobar(t)
|
|
const twoKittensIdx = homeTimeline.findIndex(_ => _.content === 'here\'s 2 kitten photos')
|
|
await scrollToStatus(t, 1 + twoKittensIdx)
|
|
await t
|
|
.hover(getNthStatus(1 + twoKittensIdx))
|
|
.expect(getNthStatus(1 + twoKittensIdx).getAttribute('aria-label')).match(
|
|
/foobar, here's 2 kitten photos, has media, kitten, kitten, .* ago, @foobar, Public/i
|
|
)
|
|
})
|
|
|
|
test('aria-labels for notifications', async t => {
|
|
await loginAsFoobar(t)
|
|
await t
|
|
.click(notificationsNavButton)
|
|
.hover(getNthStatus(1))
|
|
.expect(getNthStatus(1).getAttribute('aria-label')).match(
|
|
/admin favorited your toot, foobar, this is unlisted, .* ago, @foobar, Unlisted/i
|
|
)
|
|
.hover(getNthStatus(2))
|
|
.expect(getNthStatus(2).getAttribute('aria-label')).match(
|
|
/admin boosted your toot, foobar, this is unlisted, .* ago, @foobar, Unlisted/i
|
|
)
|
|
.hover(getNthStatus(3))
|
|
.expect(getNthStatus(3).getAttribute('aria-label')).match(
|
|
/admin, @foobar notification of unlisted message, .* ago, @admin, Unlisted/i
|
|
)
|
|
await scrollToStatus(t, 5)
|
|
await t
|
|
.hover(getNthStatus(5))
|
|
.expect(getNthStatus(5).getAttribute('aria-label')).match(
|
|
/admin, @foobar notification of direct message, .* ago, @admin, Direct/i
|
|
)
|
|
await scrollToStatus(t, 6)
|
|
await t
|
|
.hover(getNthStatus(6))
|
|
.expect(getNthStatus(6).getAttribute('aria-label')).match(
|
|
/quux followed you, @quux/i
|
|
)
|
|
})
|
|
|
|
test('can shorten aria-labels', async t => {
|
|
await loginAsFoobar(t)
|
|
await t
|
|
.click(settingsNavButton)
|
|
.click(generalSettingsButton)
|
|
.click($('#choice-disable-long-aria-labels'))
|
|
.click(homeNavButton)
|
|
.hover(getNthStatus(1))
|
|
.expect(getNthStatus(1).getAttribute('aria-label')).match(
|
|
/Unlisted toot by quux/
|
|
)
|
|
.click(settingsNavButton)
|
|
.click(generalSettingsButton)
|
|
.click($('#choice-disable-long-aria-labels'))
|
|
.click(homeNavButton)
|
|
.hover(getNthStatus(1))
|
|
.expect(getNthStatus(1).getAttribute('aria-label')).match(
|
|
/quux, pinned toot 1, .+ ago, @quux, Unlisted, Boosted by admin/i
|
|
)
|
|
})
|