2020-12-28 21:53:08 +01:00
|
|
|
'use strict';
|
2021-01-07 20:48:42 +00:00
|
|
|
|
2021-01-01 21:05:13 +00:00
|
|
|
describe('Page Up & Page Down', function () {
|
2020-12-28 21:53:08 +01:00
|
|
|
beforeEach(function (cb) {
|
|
|
|
helper.newPad({
|
|
|
|
cb: async () => {
|
|
|
|
await helper.clearPad();
|
|
|
|
// 200 lines
|
|
|
|
await helper.edit(
|
2020-12-29 23:44:43 +00:00
|
|
|
'\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n' +
|
2020-12-28 21:53:08 +01:00
|
|
|
'\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n' +
|
|
|
|
'\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n' +
|
|
|
|
'\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n' +
|
2021-01-03 11:51:35 +00:00
|
|
|
'\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nhello');
|
2020-12-29 23:44:43 +00:00
|
|
|
cb();
|
|
|
|
},
|
2020-12-28 21:53:08 +01:00
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2021-01-03 11:51:35 +00:00
|
|
|
// scrolls up 2 times
|
2020-12-29 23:44:43 +00:00
|
|
|
it('scrolls up on key stroke', async function () {
|
2021-01-03 11:51:35 +00:00
|
|
|
await helper.edit('Line 80', 80);
|
|
|
|
await helper.waitForPromise(() => 81 === helper.caretLineNumber());
|
2021-01-08 08:19:15 +01:00
|
|
|
// because we don't send the edit via key events but using `sendkeys` the viewport is
|
|
|
|
// not automatically scrolled. The line below puts the viewport top exactly to where
|
|
|
|
// the caret is.
|
|
|
|
let lineOffset = helper.linesDiv()[80][0].offsetTop;
|
|
|
|
helper.padOuter$('#outerdocbody').parent().scrollTop(lineOffset);
|
2021-01-03 11:51:35 +00:00
|
|
|
let intitialLineNumber = helper.caretLineNumber();
|
2020-12-28 21:53:08 +01:00
|
|
|
helper.pageUp();
|
2021-01-08 08:19:15 +01:00
|
|
|
await helper.waitForPromise(() => intitialLineNumber > helper.caretLineNumber() &&
|
|
|
|
lineOffset > helper.padOuter$('#outerdocbody').parent().scrollTop());
|
2021-01-03 11:51:35 +00:00
|
|
|
intitialLineNumber = helper.caretLineNumber();
|
2021-01-08 08:19:15 +01:00
|
|
|
lineOffset = helper.padOuter$('#outerdocbody').parent().scrollTop();
|
2020-12-28 21:53:08 +01:00
|
|
|
helper.pageUp();
|
2021-01-08 08:19:15 +01:00
|
|
|
await helper.waitForPromise(() => intitialLineNumber > helper.caretLineNumber() &&
|
|
|
|
lineOffset > helper.padOuter$('#outerdocbody').parent().scrollTop());
|
2020-12-29 23:44:43 +00:00
|
|
|
});
|
2020-12-28 21:53:08 +01:00
|
|
|
// scrolls down 3 times
|
2020-12-29 23:44:43 +00:00
|
|
|
it('scrolls down on key stroke', async function () {
|
2020-12-28 21:53:08 +01:00
|
|
|
// this places the caret in the first line
|
|
|
|
await helper.edit('Line 1', 1);
|
|
|
|
|
|
|
|
let currentLineNumber = helper.caretLineNumber();
|
2021-01-08 08:19:15 +01:00
|
|
|
let lineOffset = helper.padOuter$('#outerdocbody').parent().scrollTop();
|
2020-12-28 21:53:08 +01:00
|
|
|
helper.pageDown();
|
2021-01-08 08:19:15 +01:00
|
|
|
await helper.waitForPromise(() => currentLineNumber < helper.caretLineNumber() &&
|
|
|
|
lineOffset < helper.padOuter$('#outerdocbody').parent().scrollTop());
|
2020-12-28 21:53:08 +01:00
|
|
|
|
|
|
|
currentLineNumber = helper.caretLineNumber();
|
2021-01-08 08:19:15 +01:00
|
|
|
lineOffset = helper.padOuter$('#outerdocbody').parent().scrollTop();
|
2020-12-28 21:53:08 +01:00
|
|
|
helper.pageDown();
|
2021-01-08 08:19:15 +01:00
|
|
|
await helper.waitForPromise(() => currentLineNumber < helper.caretLineNumber() &&
|
|
|
|
lineOffset < helper.padOuter$('#outerdocbody').parent().scrollTop());
|
2020-12-28 21:53:08 +01:00
|
|
|
|
|
|
|
currentLineNumber = helper.caretLineNumber();
|
2021-01-08 08:19:15 +01:00
|
|
|
lineOffset = helper.padOuter$('#outerdocbody').parent().scrollTop();
|
2020-12-28 21:53:08 +01:00
|
|
|
helper.pageDown();
|
2021-01-08 08:19:15 +01:00
|
|
|
await helper.waitForPromise(() => currentLineNumber < helper.caretLineNumber() &&
|
|
|
|
lineOffset < helper.padOuter$('#outerdocbody').parent().scrollTop());
|
2020-12-29 23:44:43 +00:00
|
|
|
});
|
|
|
|
});
|