mirror of
https://github.com/ether/etherpad-lite.git
synced 2025-04-22 00:16:15 -04:00
linted tests
This commit is contained in:
parent
6d8a28b993
commit
79630c7ab6
6 changed files with 357 additions and 561 deletions
|
@ -51,207 +51,3 @@ describe('Page Up & Page Down', function () {
|
||||||
await helper.waitForPromise(() => currentLineNumber < helper.caretLineNumber());
|
await helper.waitForPromise(() => currentLineNumber < helper.caretLineNumber());
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('Viewport based 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('page up when top is at 100 and caret is at bottom', async function () {
|
|
||||||
// by default page down when caret is at end of the document will leave it in the same place.
|
|
||||||
// viewport based pageup/down changes that
|
|
||||||
const initialLineNumber = helper.caretLineNumber();
|
|
||||||
helper.pageDown();
|
|
||||||
helper.padOuter$('#outerdocbody').parent().scrollTop(100);
|
|
||||||
helper.pageUp();
|
|
||||||
await helper.waitForPromise(() => helper.caretLineNumber() < initialLineNumber);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('page down when top is at 0 and caret is at bottom', async function () {
|
|
||||||
// by default page down when caret is at end of the document will leave it in the same place.
|
|
||||||
// viewport based pageup/down changes that
|
|
||||||
const initialLineNumber = helper.caretLineNumber();
|
|
||||||
helper.padOuter$('#outerdocbody').parent().scrollTop(0);
|
|
||||||
await helper.waitForPromise(() => helper.padOuter$('#outerdocbody').parent().scrollTop() === 0);
|
|
||||||
helper.pageUp(); // I think this might not be right..
|
|
||||||
helper.pageDown();
|
|
||||||
|
|
||||||
await helper.waitForPromise(() => (helper
|
|
||||||
.caretLineNumber() < initialLineNumber) && (helper.caretLineNumber() > 1));
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
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');
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
describe('Press and Hold 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('page up press and hold to top', async function () {
|
|
||||||
// by default page down when caret is at end of the document will leave it in the same place.
|
|
||||||
// viewport based pageup/down changes that
|
|
||||||
helper.pageUp({
|
|
||||||
pressAndHold: true,
|
|
||||||
});
|
|
||||||
await helper.waitForPromise(() => helper.caretLineNumber() === 1);
|
|
||||||
});
|
|
||||||
it('page down press and hold to bottom', async function () {
|
|
||||||
// by default page down when caret is at end of the document will leave it in the same place.
|
|
||||||
// viewport based pageup/down changes that
|
|
||||||
const initialLineNumber = helper.caretLineNumber();
|
|
||||||
helper.pageDown({
|
|
||||||
pressAndHold: true,
|
|
||||||
});
|
|
||||||
await helper.waitForPromise(() => helper.caretLineNumber() === initialLineNumber);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
|
@ -1,55 +1,55 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
describe('Line number integrity is kept between page up/down', function () {
|
describe('Line number integrity is kept between page up/down', function () {
|
||||||
beforeEach(function (cb) {
|
beforeEach(function (cb) {
|
||||||
helper.newPad({
|
helper.newPad({
|
||||||
cb: async () => {
|
cb: async () => {
|
||||||
await helper.clearPad();
|
await helper.clearPad();
|
||||||
// 200 lines
|
// 200 lines
|
||||||
await helper.edit(
|
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' +
|
'\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n' +
|
||||||
'\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n' +
|
'\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n' +
|
||||||
'\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n');
|
'\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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();
|
cb();
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
const lineHistory = [];
|
const lineHistory = [];
|
||||||
|
|
||||||
it('Page down x times, then page up and see if lines match', async function () {
|
it('Page down x times, then page up and see if lines match', async function () {
|
||||||
// this places the caret in the first line
|
// this places the caret in the first line
|
||||||
await helper.edit('Line 1', 1);
|
await helper.edit('Line 1', 1);
|
||||||
|
|
||||||
const currentLineNumber = helper.caretLineNumber();
|
const currentLineNumber = helper.caretLineNumber();
|
||||||
lineHistory.push(helper.caretLineNumber());
|
lineHistory.push(helper.caretLineNumber());
|
||||||
|
|
||||||
helper.pageDown();
|
helper.pageDown();
|
||||||
await helper.waitForPromise(() => currentLineNumber < helper.caretLineNumber());
|
await helper.waitForPromise(() => currentLineNumber < helper.caretLineNumber());
|
||||||
lineHistory.push(helper.caretLineNumber());
|
lineHistory.push(helper.caretLineNumber());
|
||||||
|
|
||||||
helper.pageDown();
|
helper.pageDown();
|
||||||
await helper.waitForPromise(() => currentLineNumber < helper.caretLineNumber());
|
await helper.waitForPromise(() => currentLineNumber < helper.caretLineNumber());
|
||||||
lineHistory.push(helper.caretLineNumber());
|
lineHistory.push(helper.caretLineNumber());
|
||||||
|
|
||||||
helper.pageDown();
|
helper.pageDown();
|
||||||
await helper.waitForPromise(() => currentLineNumber < helper.caretLineNumber());
|
await helper.waitForPromise(() => currentLineNumber < helper.caretLineNumber());
|
||||||
|
|
||||||
let futureLineNumber = helper.caretLineNumber();
|
let futureLineNumber = helper.caretLineNumber();
|
||||||
helper.pageUp();
|
helper.pageUp();
|
||||||
await helper.waitForPromise(() => futureLineNumber > helper.caretLineNumber());
|
await helper.waitForPromise(() => futureLineNumber > helper.caretLineNumber());
|
||||||
if (helper.caretLineNumber() !== lineHistory[lineHistory.length - 1]) {
|
if (helper.caretLineNumber() !== lineHistory[lineHistory.length - 1]) {
|
||||||
throw new Error('Line History not being properly maintained on page up #1');
|
throw new Error('Line History not being properly maintained on page up #1');
|
||||||
}
|
}
|
||||||
lineHistory.pop();
|
lineHistory.pop();
|
||||||
|
|
||||||
futureLineNumber = helper.caretLineNumber();
|
futureLineNumber = helper.caretLineNumber();
|
||||||
helper.pageUp();
|
helper.pageUp();
|
||||||
await helper.waitForPromise(() => futureLineNumber > helper.caretLineNumber());
|
await helper.waitForPromise(() => futureLineNumber > helper.caretLineNumber());
|
||||||
if (helper.caretLineNumber() !== lineHistory[lineHistory.length - 1]) {
|
if (helper.caretLineNumber() !== lineHistory[lineHistory.length - 1]) {
|
||||||
throw new Error('Line History not being properly maintained on page up #2');
|
throw new Error('Line History not being properly maintained on page up #2');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,95 +1,95 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
describe(`Really long text line goes to character within text line if text line is last
|
describe(`Really long text line goes to character within text line if text line is last
|
||||||
line in viewport if the second line is also incredibly long`, function () {
|
line in viewport if the second line is also incredibly long`, function () {
|
||||||
beforeEach(function (cb) {
|
beforeEach(function (cb) {
|
||||||
helper.newPad({
|
helper.newPad({
|
||||||
cb: async () => {
|
cb: async () => {
|
||||||
await helper.clearPad();
|
await helper.clearPad();
|
||||||
// 200 lines
|
// 200 lines
|
||||||
await helper.edit(
|
await helper.edit(
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world\n ' +
|
'hello world hello world hello world hello world hello world hello world hello world\n ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'hello world hello world hello world hello world hello world hello world hello world ' +
|
'hello world hello world hello world hello world hello world hello world hello world ' +
|
||||||
'\n\n\n\n\n\n\n\n\n ');
|
'\n\n\n\n\n\n\n\n\n ');
|
||||||
cb();
|
cb();
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('Pg down on long line keeps char on the same line but with large X offset', async function () {
|
it('Pg down on long line keeps char on the same line but with large X offset', async function () {
|
||||||
await helper.edit('xxx', 1); // caret is offset 6
|
await helper.edit('xxx', 1); // caret is offset 6
|
||||||
await helper.waitForPromise(() => {
|
await helper.waitForPromise(() => {
|
||||||
if ((helper.padInner$.document.getSelection().anchorOffset === 0) &&
|
if ((helper.padInner$.document.getSelection().anchorOffset === 0) &&
|
||||||
(helper.caretLineNumber() === 1)) {
|
(helper.caretLineNumber() === 1)) {
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
helper.pageUp();
|
helper.pageUp();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
helper.pageDown();
|
helper.pageDown();
|
||||||
await helper.waitForPromise(() => {
|
await helper.waitForPromise(() => {
|
||||||
if ((helper.padInner$.document.getSelection().anchorOffset > 0) &&
|
if ((helper.padInner$.document.getSelection().anchorOffset > 0) &&
|
||||||
(helper.caretLineNumber() === 1)) {
|
(helper.caretLineNumber() === 1)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
helper.pageUp();
|
helper.pageUp();
|
||||||
await helper.waitForPromise(() => {
|
await helper.waitForPromise(() => {
|
||||||
if ((helper.padInner$.document.getSelection().anchorOffset > 0) &&
|
if ((helper.padInner$.document.getSelection().anchorOffset > 0) &&
|
||||||
(helper.caretLineNumber() === 1)) {
|
(helper.caretLineNumber() === 1)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,36 +1,36 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
describe('Press and Hold Page Up/Down', function () {
|
describe('Press and Hold Page Up/Down', function () {
|
||||||
beforeEach(function (cb) {
|
beforeEach(function (cb) {
|
||||||
helper.newPad({
|
helper.newPad({
|
||||||
cb: async () => {
|
cb: async () => {
|
||||||
await helper.clearPad();
|
await helper.clearPad();
|
||||||
// 200 lines
|
// 200 lines
|
||||||
await helper.edit(
|
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' +
|
'\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n' +
|
||||||
'\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n' +
|
'\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n' +
|
||||||
'\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n');
|
'\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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();
|
cb();
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
it('page up press and hold to top', async function () {
|
it('page up press and hold to top', async function () {
|
||||||
// by default page down when caret is at end of the document will leave it in the same place.
|
// by default page down when caret is at end of the document will leave it in the same place.
|
||||||
// viewport based pageup/down changes that
|
// viewport based pageup/down changes that
|
||||||
helper.pageUp({
|
helper.pageUp({
|
||||||
pressAndHold: true,
|
pressAndHold: true,
|
||||||
});
|
});
|
||||||
await helper.waitForPromise(() => helper.caretLineNumber() === 1);
|
await helper.waitForPromise(() => helper.caretLineNumber() === 1);
|
||||||
});
|
});
|
||||||
it('page down press and hold to bottom', async function () {
|
it('page down press and hold to bottom', async function () {
|
||||||
// by default page down when caret is at end of the document will leave it in the same place.
|
// by default page down when caret is at end of the document will leave it in the same place.
|
||||||
// viewport based pageup/down changes that
|
// viewport based pageup/down changes that
|
||||||
const initialLineNumber = helper.caretLineNumber();
|
const initialLineNumber = helper.caretLineNumber();
|
||||||
helper.pageDown({
|
helper.pageDown({
|
||||||
pressAndHold: true,
|
pressAndHold: true,
|
||||||
});
|
});
|
||||||
await helper.waitForPromise(() => helper.caretLineNumber() === initialLineNumber);
|
await helper.waitForPromise(() => helper.caretLineNumber() === initialLineNumber);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,130 +1,130 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
describe('Shift Page Up/Down', function () {
|
describe('Shift Page Up/Down', function () {
|
||||||
beforeEach(function (cb) {
|
beforeEach(function (cb) {
|
||||||
helper.newPad({
|
helper.newPad({
|
||||||
cb: async () => {
|
cb: async () => {
|
||||||
await helper.clearPad();
|
await helper.clearPad();
|
||||||
// 200 lines
|
// 200 lines
|
||||||
await helper.edit(
|
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' +
|
'\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n' +
|
||||||
'\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n' +
|
'\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n' +
|
||||||
'\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n');
|
'\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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();
|
cb();
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('highlights lines on shift page down and releases them on page up', async function () {
|
it('highlights lines on shift page down and releases them on page up', async function () {
|
||||||
await helper.edit('xxx', 1); // caret is offset 6
|
await helper.edit('xxx', 1); // caret is offset 6
|
||||||
|
|
||||||
helper.pageUp();
|
helper.pageUp();
|
||||||
helper.pageDown({
|
helper.pageDown({
|
||||||
shift: true,
|
shift: true,
|
||||||
});
|
});
|
||||||
await helper.waitForPromise(() => helper.padInner$.document.getSelection().type === 'Range');
|
await helper.waitForPromise(() => helper.padInner$.document.getSelection().type === 'Range');
|
||||||
|
|
||||||
helper.pageUp({
|
helper.pageUp({
|
||||||
shift: true,
|
shift: true,
|
||||||
});
|
});
|
||||||
await helper.waitForPromise(() => helper.padInner$.document.getSelection().type === 'Caret');
|
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 () {
|
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
|
await helper.edit('xxx', 1); // caret is offset 6
|
||||||
|
|
||||||
helper.pageUp();
|
helper.pageUp();
|
||||||
helper.pageDown({
|
helper.pageDown({
|
||||||
shift: true,
|
shift: true,
|
||||||
});
|
});
|
||||||
await helper.waitForPromise(() => helper.padInner$.document.getSelection().type === 'Range');
|
await helper.waitForPromise(() => helper.padInner$.document.getSelection().type === 'Range');
|
||||||
|
|
||||||
helper.pageDown({
|
helper.pageDown({
|
||||||
shift: true,
|
shift: true,
|
||||||
});
|
});
|
||||||
await helper.waitForPromise(() => helper.padInner$.document.getSelection().type === 'Range');
|
await helper.waitForPromise(() => helper.padInner$.document.getSelection().type === 'Range');
|
||||||
|
|
||||||
helper.pageUp({
|
helper.pageUp({
|
||||||
shift: true,
|
shift: true,
|
||||||
});
|
});
|
||||||
await helper.waitForPromise(() => helper.padInner$.document.getSelection().type === 'Range');
|
await helper.waitForPromise(() => helper.padInner$.document.getSelection().type === 'Range');
|
||||||
});
|
});
|
||||||
|
|
||||||
it(`Highlights from end of document on pg up
|
it(`Highlights from end of document on pg up
|
||||||
then releases them on shift pg down`, async function () {
|
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..
|
// TODO: JM NEEDS HELP: Why isn't this working? It works if you do the same in browser..
|
||||||
|
|
||||||
await helper.waitForPromise(() => helper.caretLineNumber() >= 201);
|
await helper.waitForPromise(() => helper.caretLineNumber() >= 201);
|
||||||
// make sure we're at bottom
|
// make sure we're at bottom
|
||||||
helper.pageDown({
|
helper.pageDown({
|
||||||
pressAndHold: true,
|
pressAndHold: true,
|
||||||
});
|
});
|
||||||
await helper.waitForPromise(() => helper.caretLineNumber() >= 201);
|
await helper.waitForPromise(() => helper.caretLineNumber() >= 201);
|
||||||
|
|
||||||
helper.pageUp({
|
helper.pageUp({
|
||||||
shift: true,
|
shift: true,
|
||||||
});
|
});
|
||||||
await helper.waitForPromise(() => helper.padInner$.document.getSelection().type === 'Range');
|
await helper.waitForPromise(() => helper.padInner$.document.getSelection().type === 'Range');
|
||||||
|
|
||||||
helper.pageDown({
|
helper.pageDown({
|
||||||
shift: true,
|
shift: true,
|
||||||
});
|
});
|
||||||
await helper.waitForPromise(() => helper.padInner$.document.getSelection().type === 'Caret');
|
await helper.waitForPromise(() => helper.padInner$.document.getSelection().type === 'Caret');
|
||||||
throw new Error('I NEED HELPZ PLZ');
|
throw new Error('I NEED HELPZ PLZ');
|
||||||
});
|
});
|
||||||
it(`highlights from end of document on pg up twice
|
it(`highlights from end of document on pg up twice
|
||||||
and retains on single pg down`, async function () {
|
and retains on single pg down`, async function () {
|
||||||
helper.pageUp({
|
helper.pageUp({
|
||||||
shift: true,
|
shift: true,
|
||||||
});
|
});
|
||||||
await helper.waitForPromise(() => helper.padInner$.document.getSelection().type === 'Range');
|
await helper.waitForPromise(() => helper.padInner$.document.getSelection().type === 'Range');
|
||||||
|
|
||||||
helper.pageUp({
|
helper.pageUp({
|
||||||
shift: true,
|
shift: true,
|
||||||
});
|
});
|
||||||
await helper.waitForPromise(() => helper.padInner$.document.getSelection().type === 'Range');
|
await helper.waitForPromise(() => helper.padInner$.document.getSelection().type === 'Range');
|
||||||
|
|
||||||
helper.pageDown({
|
helper.pageDown({
|
||||||
shift: true,
|
shift: true,
|
||||||
});
|
});
|
||||||
await helper.waitForPromise(() => helper.padInner$.document.getSelection().type === 'Range');
|
await helper.waitForPromise(() => helper.padInner$.document.getSelection().type === 'Range');
|
||||||
});
|
});
|
||||||
|
|
||||||
it(`highlights from 3rd line on page up twice
|
it(`highlights from 3rd line on page up twice
|
||||||
should keep highlight`, async function () {
|
should keep highlight`, async function () {
|
||||||
await helper.edit('xxx', 3); // caret is offset 6
|
await helper.edit('xxx', 3); // caret is offset 6
|
||||||
|
|
||||||
helper.pageUp({
|
helper.pageUp({
|
||||||
shift: true,
|
shift: true,
|
||||||
});
|
});
|
||||||
await helper.waitForPromise(() => helper.padInner$.document.getSelection().type === 'Range');
|
await helper.waitForPromise(() => helper.padInner$.document.getSelection().type === 'Range');
|
||||||
|
|
||||||
helper.pageUp({
|
helper.pageUp({
|
||||||
shift: true,
|
shift: true,
|
||||||
});
|
});
|
||||||
await helper.waitForPromise(() => helper.padInner$.document.getSelection().type === 'Range');
|
await helper.waitForPromise(() => helper.padInner$.document.getSelection().type === 'Range');
|
||||||
});
|
});
|
||||||
xit(`highlights range forward then hit page up, selStart should be prior to initial
|
xit(`highlights range forward then hit page up, selStart should be prior to initial
|
||||||
selStart and selEnd should be the original selStart`, async function () {
|
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
|
// TODO: JM Needs help, need a way to just select this line but it needs direction
|
||||||
// {select} wont cut the mustard
|
// {select} wont cut the mustard
|
||||||
// selStartFocus is internal to rep
|
// selStartFocus is internal to rep
|
||||||
});
|
});
|
||||||
|
|
||||||
xit(`highlights (a few lines) range forwards then hit page down, selStart should be initial
|
xit(`highlights (a few lines) range forwards then hit page down, selStart should be initial
|
||||||
selStart and selEnd further than original selEnd`, async function () {
|
selStart and selEnd further than original selEnd`, async function () {
|
||||||
throw new Error('JM TO DO');
|
throw new Error('JM TO DO');
|
||||||
});
|
});
|
||||||
|
|
||||||
xit(`highlights (a few lines) range backwards (rep.selFocusAtStart) then hit page up, selEnd
|
xit(`highlights (a few lines) range backwards (rep.selFocusAtStart) then hit page up, selEnd
|
||||||
should be initial selStart,
|
should be initial selStart,
|
||||||
selStart should be less than original selStart`, async function () {
|
selStart should be less than original selStart`, async function () {
|
||||||
throw new Error('JM TO DO');
|
throw new Error('JM TO DO');
|
||||||
});
|
});
|
||||||
|
|
||||||
xit(`highlights (a few lines) range backwards (rep.selFocusAtStart) then hit page down, selStart
|
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 () {
|
should be initial selEnd and selEnd further than original selEnd`, async function () {
|
||||||
throw new Error('JM TO DO');
|
throw new Error('JM TO DO');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,41 +1,41 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
describe('Viewport based Page Up/Down', function () {
|
describe('Viewport based Page Up/Down', function () {
|
||||||
beforeEach(function (cb) {
|
beforeEach(function (cb) {
|
||||||
helper.newPad({
|
helper.newPad({
|
||||||
cb: async () => {
|
cb: async () => {
|
||||||
await helper.clearPad();
|
await helper.clearPad();
|
||||||
// 200 lines
|
// 200 lines
|
||||||
await helper.edit(
|
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' +
|
'\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n' +
|
||||||
'\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n' +
|
'\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n' +
|
||||||
'\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n');
|
'\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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();
|
cb();
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
it('page up when top is at 100 and caret is at bottom', async function () {
|
it('page up when top is at 100 and caret is at bottom', async function () {
|
||||||
// by default page down when caret is at end of the document will leave it in the same place.
|
// by default page down when caret is at end of the document will leave it in the same place.
|
||||||
// viewport based pageup/down changes that
|
// viewport based pageup/down changes that
|
||||||
const initialLineNumber = helper.caretLineNumber();
|
const initialLineNumber = helper.caretLineNumber();
|
||||||
helper.pageDown();
|
helper.pageDown();
|
||||||
helper.padOuter$('#outerdocbody').parent().scrollTop(100);
|
helper.padOuter$('#outerdocbody').parent().scrollTop(100);
|
||||||
helper.pageUp();
|
helper.pageUp();
|
||||||
await helper.waitForPromise(() => helper.caretLineNumber() < initialLineNumber);
|
await helper.waitForPromise(() => helper.caretLineNumber() < initialLineNumber);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('page down when top is at 0 and caret is at bottom', async function () {
|
it('page down when top is at 0 and caret is at bottom', async function () {
|
||||||
// by default page down when caret is at end of the document will leave it in the same place.
|
// by default page down when caret is at end of the document will leave it in the same place.
|
||||||
// viewport based pageup/down changes that
|
// viewport based pageup/down changes that
|
||||||
const initialLineNumber = helper.caretLineNumber();
|
const initialLineNumber = helper.caretLineNumber();
|
||||||
helper.padOuter$('#outerdocbody').parent().scrollTop(0);
|
helper.padOuter$('#outerdocbody').parent().scrollTop(0);
|
||||||
await helper.waitForPromise(() => helper.padOuter$('#outerdocbody').parent().scrollTop() === 0);
|
await helper.waitForPromise(() => helper.padOuter$('#outerdocbody').parent().scrollTop() === 0);
|
||||||
helper.pageUp(); // I think this might not be right..
|
helper.pageUp(); // I think this might not be right..
|
||||||
helper.pageDown();
|
helper.pageDown();
|
||||||
|
|
||||||
await helper.waitForPromise(() => (helper
|
await helper.waitForPromise(() => (helper
|
||||||
.caretLineNumber() < initialLineNumber) && (helper.caretLineNumber() > 1));
|
.caretLineNumber() < initialLineNumber) && (helper.caretLineNumber() > 1));
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue