2021-01-07 21:49:48 +01:00
|
|
|
'use strict';
|
|
|
|
|
|
|
|
describe('Shift Page Up/Down', function () {
|
|
|
|
beforeEach(function (cb) {
|
|
|
|
helper.newPad({
|
|
|
|
cb: async () => {
|
|
|
|
await helper.clearPad();
|
|
|
|
// 200 lines
|
|
|
|
await helper.edit(
|
|
|
|
'\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' +
|
|
|
|
'\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');
|
|
|
|
cb();
|
|
|
|
},
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
it('highlights lines on shift page down and releases them on page up', async function () {
|
|
|
|
await helper.edit('xxx', 1); // caret is offset 6
|
|
|
|
|
|
|
|
helper.pageUp();
|
|
|
|
helper.pageDown({
|
|
|
|
shift: true,
|
|
|
|
});
|
|
|
|
await helper.waitForPromise(() => helper.padInner$.document.getSelection().type === 'Range');
|
|
|
|
|
|
|
|
helper.pageUp({
|
|
|
|
shift: true,
|
|
|
|
});
|
|
|
|
await helper.waitForPromise(() => helper.padInner$.document.getSelection().type === 'Caret');
|
|
|
|
});
|
|
|
|
it('highlights lines on shift pg down and maintains first selection on pg up', async function () {
|
|
|
|
await helper.edit('xxx', 1); // caret is offset 6
|
|
|
|
|
|
|
|
helper.pageUp();
|
|
|
|
helper.pageDown({
|
|
|
|
shift: true,
|
|
|
|
});
|
|
|
|
await helper.waitForPromise(() => helper.padInner$.document.getSelection().type === 'Range');
|
|
|
|
|
|
|
|
helper.pageDown({
|
|
|
|
shift: true,
|
|
|
|
});
|
|
|
|
await helper.waitForPromise(() => helper.padInner$.document.getSelection().type === 'Range');
|
|
|
|
|
|
|
|
helper.pageUp({
|
|
|
|
shift: true,
|
|
|
|
});
|
|
|
|
await helper.waitForPromise(() => helper.padInner$.document.getSelection().type === 'Range');
|
|
|
|
});
|
|
|
|
|
|
|
|
it(`Highlights from end of document on pg up
|
|
|
|
then releases them on shift pg down`, async function () {
|
|
|
|
// TODO: JM NEEDS HELP: Why isn't this working? It works if you do the same in browser..
|
|
|
|
|
|
|
|
await helper.waitForPromise(() => helper.caretLineNumber() >= 201);
|
|
|
|
// make sure we're at bottom
|
|
|
|
helper.pageDown({
|
|
|
|
pressAndHold: true,
|
|
|
|
});
|
|
|
|
await helper.waitForPromise(() => helper.caretLineNumber() >= 201);
|
|
|
|
|
|
|
|
helper.pageUp({
|
|
|
|
shift: true,
|
|
|
|
});
|
|
|
|
await helper.waitForPromise(() => helper.padInner$.document.getSelection().type === 'Range');
|
|
|
|
|
|
|
|
helper.pageDown({
|
|
|
|
shift: true,
|
|
|
|
});
|
|
|
|
await helper.waitForPromise(() => helper.padInner$.document.getSelection().type === 'Caret');
|
|
|
|
throw new Error('I NEED HELPZ PLZ');
|
|
|
|
});
|
|
|
|
it(`highlights from end of document on pg up twice
|
|
|
|
and retains on single pg down`, async function () {
|
|
|
|
helper.pageUp({
|
|
|
|
shift: true,
|
|
|
|
});
|
|
|
|
await helper.waitForPromise(() => helper.padInner$.document.getSelection().type === 'Range');
|
|
|
|
|
|
|
|
helper.pageUp({
|
|
|
|
shift: true,
|
|
|
|
});
|
|
|
|
await helper.waitForPromise(() => helper.padInner$.document.getSelection().type === 'Range');
|
|
|
|
|
|
|
|
helper.pageDown({
|
|
|
|
shift: true,
|
|
|
|
});
|
|
|
|
await helper.waitForPromise(() => helper.padInner$.document.getSelection().type === 'Range');
|
|
|
|
});
|
|
|
|
|
|
|
|
it(`highlights from 3rd line on page up twice
|
|
|
|
should keep highlight`, async function () {
|
|
|
|
await helper.edit('xxx', 3); // caret is offset 6
|
|
|
|
|
|
|
|
helper.pageUp({
|
|
|
|
shift: true,
|
|
|
|
});
|
|
|
|
await helper.waitForPromise(() => helper.padInner$.document.getSelection().type === 'Range');
|
|
|
|
|
|
|
|
helper.pageUp({
|
|
|
|
shift: true,
|
|
|
|
});
|
|
|
|
await helper.waitForPromise(() => helper.padInner$.document.getSelection().type === 'Range');
|
|
|
|
});
|
|
|
|
xit(`highlights range forward then hit page up, selStart should be prior to initial
|
|
|
|
selStart and selEnd should be the original selStart`, async function () {
|
|
|
|
// TODO: JM Needs help, need a way to just select this line but it needs direction
|
|
|
|
// {select} wont cut the mustard
|
|
|
|
// selStartFocus is internal to rep
|
|
|
|
});
|
|
|
|
|
|
|
|
xit(`highlights (a few lines) range forwards then hit page down, selStart should be initial
|
|
|
|
selStart and selEnd further than original selEnd`, async function () {
|
|
|
|
throw new Error('JM TO DO');
|
|
|
|
});
|
|
|
|
|
|
|
|
xit(`highlights (a few lines) range backwards (rep.selFocusAtStart) then hit page up, selEnd
|
|
|
|
should be initial selStart,
|
|
|
|
selStart should be less than original selStart`, async function () {
|
|
|
|
throw new Error('JM TO DO');
|
|
|
|
});
|
|
|
|
|
|
|
|
xit(`highlights (a few lines) range backwards (rep.selFocusAtStart) then hit page down, selStart
|
|
|
|
should be initial selEnd and selEnd further than original selEnd`, async function () {
|
|
|
|
throw new Error('JM TO DO');
|
|
|
|
});
|
|
|
|
});
|