pad.libre-service.eu-etherpad/tests/frontend/specs/pageupdownshort.js

44 lines
1.4 KiB
JavaScript
Raw Normal View History

2021-01-07 21:48:42 +01:00
'use strict';
describe('Page Up/Down Beginning and End position', function () {
beforeEach(function (cb) {
helper.newPad({
cb: async () => {
await helper.clearPad();
// 200 lines
await helper.edit(
'\n\n\n\nhello');
cb();
},
});
});
it('scrolls to very end content on page down when viewport is at bottom', async function () {
// this places the caret in the first line
await helper.edit('Line 1', 1);
const currentLineNumber = helper.caretLineNumber();
helper.pageDown();
await helper.waitForPromise(() => currentLineNumber < helper.caretLineNumber());
// make sure caret is after hello
const pos = helper.padInner$.document.getSelection();
await helper.waitForPromise(() => pos.anchorOffset > 0);
});
// scrolls down 3 times - caret should be AFTER "hello
it(`scrolls to very beginning content on pg up when
viewport is at bottom of document`, async function () {
// this places the caret in the first line
await helper.edit('Line 1', 1);
const currentLineNumber = helper.caretLineNumber();
helper.pageUp();
await helper.waitForPromise(() => currentLineNumber > helper.caretLineNumber());
// make sure caret is at 0 position
const pos = helper.padInner$.document.getSelection();
await helper.waitForPromise(() => pos.anchorOffset === 0);
});
});