mirror of
https://github.com/ether/etherpad-lite.git
synced 2025-04-20 15:36:16 -04:00
lint: Fix some straightforward ESLint errors
This commit is contained in:
parent
4b4b685bba
commit
54a3dbb9a0
4 changed files with 131 additions and 125 deletions
|
@ -391,9 +391,9 @@ const defaultResponseRefs = {
|
||||||
|
|
||||||
// convert to a dictionary of operation objects
|
// convert to a dictionary of operation objects
|
||||||
const operations = {};
|
const operations = {};
|
||||||
for (const resource in resources) {
|
for (const [resource, actions] of Object.entries(resources)) {
|
||||||
for (const action in resources[resource]) {
|
for (const [action, spec] of Object.entries(actions)) {
|
||||||
const {operationId, responseSchema, ...operation} = resources[resource][action];
|
const {operationId, responseSchema, ...operation} = spec;
|
||||||
|
|
||||||
// add response objects
|
// add response objects
|
||||||
const responses = {...defaultResponseRefs};
|
const responses = {...defaultResponseRefs};
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
'use strict';
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This file is copied & modified from <basedir>/tests/backend/specs/api/pad.js
|
* This file is copied & modified from <basedir>/tests/backend/specs/api/pad.js
|
||||||
*
|
*
|
||||||
|
|
|
@ -6,13 +6,11 @@
|
||||||
* TODO: unify those two files, and merge in a single one.
|
* TODO: unify those two files, and merge in a single one.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* eslint-disable max-len */
|
|
||||||
|
|
||||||
const common = require('../../common');
|
const common = require('../../common');
|
||||||
const supertest = require(`${__dirname}/../../../../src/node_modules/supertest`);
|
const settings = require('../../../container/loadSettings.js').loadSettings();
|
||||||
const settings = require(`${__dirname}/../../../../tests/container/loadSettings.js`).loadSettings();
|
const supertest = require('ep_etherpad-lite/node_modules/supertest');
|
||||||
const api = supertest(`http://${settings.ip}:${settings.port}`);
|
|
||||||
|
|
||||||
|
const api = supertest(`http://${settings.ip}:${settings.port}`);
|
||||||
const apiKey = common.apiKey;
|
const apiKey = common.apiKey;
|
||||||
const apiVersion = 1;
|
const apiVersion = 1;
|
||||||
|
|
||||||
|
@ -50,13 +48,13 @@ const testImports = {
|
||||||
"prefixcorrectlinenumber when introduced none list item - currently not supported see #3450": {
|
"prefixcorrectlinenumber when introduced none list item - currently not supported see #3450": {
|
||||||
input: '<html><body><ol><li>should be 1</li>test<li>should be 2</li></ol></body></html>',
|
input: '<html><body><ol><li>should be 1</li>test<li>should be 2</li></ol></body></html>',
|
||||||
expectedHTML: '<!DOCTYPE HTML><html><body><ol start="1" class="number"><li>should be 1</li>test<li>should be 2</li></ol><br></body></html>',
|
expectedHTML: '<!DOCTYPE HTML><html><body><ol start="1" class="number"><li>should be 1</li>test<li>should be 2</li></ol><br></body></html>',
|
||||||
expectedText: '\t1. should be 1\n\ttest\n\t2. should be 2\n\n'
|
expectedText: '\t1. should be 1\n\ttest\n\t2. should be 2\n\n',
|
||||||
}
|
}
|
||||||
,
|
,
|
||||||
"newlinesshouldntresetlinenumber #2194": {
|
"newlinesshouldntresetlinenumber #2194": {
|
||||||
input: '<html><body><ol><li>should be 1</li>test<li>should be 2</li></ol></body></html>',
|
input: '<html><body><ol><li>should be 1</li>test<li>should be 2</li></ol></body></html>',
|
||||||
expectedHTML: '<!DOCTYPE HTML><html><body><ol class="number"><li>should be 1</li>test<li>should be 2</li></ol><br></body></html>',
|
expectedHTML: '<!DOCTYPE HTML><html><body><ol class="number"><li>should be 1</li>test<li>should be 2</li></ol><br></body></html>',
|
||||||
expectedText: '\t1. should be 1\n\ttest\n\t2. should be 2\n\n'
|
expectedText: '\t1. should be 1\n\ttest\n\t2. should be 2\n\n',
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
'ignoreAnyTagsOutsideBody': {
|
'ignoreAnyTagsOutsideBody': {
|
||||||
|
@ -69,88 +67,88 @@ const testImports = {
|
||||||
description: 'Indented lists are represented with tabs and without bullets',
|
description: 'Indented lists are represented with tabs and without bullets',
|
||||||
input: '<html><body><ul class="indent"><li>indent</li><li>indent</ul></body></html>',
|
input: '<html><body><ul class="indent"><li>indent</li><li>indent</ul></body></html>',
|
||||||
expectedHTML: '<!DOCTYPE HTML><html><body><ul class="indent"><li>indent</li><li>indent</ul><br></body></html>',
|
expectedHTML: '<!DOCTYPE HTML><html><body><ul class="indent"><li>indent</li><li>indent</ul><br></body></html>',
|
||||||
expectedText: '\tindent\n\tindent\n\n'
|
expectedText: '\tindent\n\tindent\n\n',
|
||||||
},
|
},
|
||||||
lineWithMultipleSpaces: {
|
'lineWithMultipleSpaces': {
|
||||||
description: 'Multiple spaces should be collapsed',
|
description: 'Multiple spaces should be collapsed',
|
||||||
input: '<html><body>Text with more than one space.<br></body></html>',
|
input: '<html><body>Text with more than one space.<br></body></html>',
|
||||||
expectedHTML: '<!DOCTYPE HTML><html><body>Text with more than one space.<br><br></body></html>',
|
expectedHTML: '<!DOCTYPE HTML><html><body>Text with more than one space.<br><br></body></html>',
|
||||||
expectedText: 'Text with more than one space.\n\n'
|
expectedText: 'Text with more than one space.\n\n',
|
||||||
},
|
},
|
||||||
lineWithMultipleNonBreakingAndNormalSpaces: {
|
'lineWithMultipleNonBreakingAndNormalSpaces': {
|
||||||
// XXX the HTML between "than" and "one" looks strange
|
// XXX the HTML between "than" and "one" looks strange
|
||||||
description: 'non-breaking space should be preserved, but can be replaced when it',
|
description: 'non-breaking space should be preserved, but can be replaced when it',
|
||||||
input: '<html><body>Text with more than one space.<br></body></html>',
|
input: '<html><body>Text with more than one space.<br></body></html>',
|
||||||
expectedHTML: '<!DOCTYPE HTML><html><body>Text with more than one space.<br><br></body></html>',
|
expectedHTML: '<!DOCTYPE HTML><html><body>Text with more than one space.<br><br></body></html>',
|
||||||
expectedText: 'Text with more than one space.\n\n'
|
expectedText: 'Text with more than one space.\n\n',
|
||||||
},
|
},
|
||||||
multiplenbsp: {
|
'multiplenbsp': {
|
||||||
description: 'Multiple non-breaking space should be preserved',
|
description: 'Multiple non-breaking space should be preserved',
|
||||||
input: '<html><body> <br></body></html>',
|
input: '<html><body> <br></body></html>',
|
||||||
expectedHTML: '<!DOCTYPE HTML><html><body> <br><br></body></html>',
|
expectedHTML: '<!DOCTYPE HTML><html><body> <br><br></body></html>',
|
||||||
expectedText: ' \n\n'
|
expectedText: ' \n\n',
|
||||||
},
|
},
|
||||||
multipleNonBreakingSpaceBetweenWords: {
|
'multipleNonBreakingSpaceBetweenWords': {
|
||||||
description: 'A normal space is always inserted before a word',
|
description: 'A normal space is always inserted before a word',
|
||||||
input: '<html><body> word1 word2 word3<br></body></html>',
|
input: '<html><body> word1 word2 word3<br></body></html>',
|
||||||
expectedHTML: '<!DOCTYPE HTML><html><body> word1 word2 word3<br><br></body></html>',
|
expectedHTML: '<!DOCTYPE HTML><html><body> word1 word2 word3<br><br></body></html>',
|
||||||
expectedText: ' word1 word2 word3\n\n'
|
expectedText: ' word1 word2 word3\n\n',
|
||||||
},
|
},
|
||||||
nonBreakingSpacePreceededBySpaceBetweenWords: {
|
'nonBreakingSpacePreceededBySpaceBetweenWords': {
|
||||||
description: 'A non-breaking space preceeded by a normal space',
|
description: 'A non-breaking space preceeded by a normal space',
|
||||||
input: '<html><body> word1 word2 word3<br></body></html>',
|
input: '<html><body> word1 word2 word3<br></body></html>',
|
||||||
expectedHTML: '<!DOCTYPE HTML><html><body> word1 word2 word3<br><br></body></html>',
|
expectedHTML: '<!DOCTYPE HTML><html><body> word1 word2 word3<br><br></body></html>',
|
||||||
expectedText: ' word1 word2 word3\n\n'
|
expectedText: ' word1 word2 word3\n\n',
|
||||||
},
|
},
|
||||||
nonBreakingSpaceFollowededBySpaceBetweenWords: {
|
'nonBreakingSpaceFollowededBySpaceBetweenWords': {
|
||||||
description: 'A non-breaking space followed by a normal space',
|
description: 'A non-breaking space followed by a normal space',
|
||||||
input: '<html><body> word1 word2 word3<br></body></html>',
|
input: '<html><body> word1 word2 word3<br></body></html>',
|
||||||
expectedHTML: '<!DOCTYPE HTML><html><body> word1 word2 word3<br><br></body></html>',
|
expectedHTML: '<!DOCTYPE HTML><html><body> word1 word2 word3<br><br></body></html>',
|
||||||
expectedText: ' word1 word2 word3\n\n'
|
expectedText: ' word1 word2 word3\n\n',
|
||||||
},
|
},
|
||||||
spacesAfterNewline: {
|
'spacesAfterNewline': {
|
||||||
description: 'Collapse spaces that follow a newline',
|
description: 'Collapse spaces that follow a newline',
|
||||||
input: '<!doctype html><html><body>something<br> something<br></body></html>',
|
input: '<!doctype html><html><body>something<br> something<br></body></html>',
|
||||||
expectedHTML: '<!DOCTYPE HTML><html><body>something<br>something<br><br></body></html>',
|
expectedHTML: '<!DOCTYPE HTML><html><body>something<br>something<br><br></body></html>',
|
||||||
expectedText: 'something\nsomething\n\n'
|
expectedText: 'something\nsomething\n\n',
|
||||||
},
|
},
|
||||||
spacesAfterNewlineP: {
|
'spacesAfterNewlineP': {
|
||||||
description: 'Collapse spaces that follow a paragraph',
|
description: 'Collapse spaces that follow a paragraph',
|
||||||
input: '<!doctype html><html><body>something<p></p> something<br></body></html>',
|
input: '<!doctype html><html><body>something<p></p> something<br></body></html>',
|
||||||
expectedHTML: '<!DOCTYPE HTML><html><body>something<br><br>something<br><br></body></html>',
|
expectedHTML: '<!DOCTYPE HTML><html><body>something<br><br>something<br><br></body></html>',
|
||||||
expectedText: 'something\n\nsomething\n\n'
|
expectedText: 'something\n\nsomething\n\n',
|
||||||
},
|
},
|
||||||
spacesAtEndOfLine: {
|
'spacesAtEndOfLine': {
|
||||||
description: 'Collapse spaces that preceed/follow a newline',
|
description: 'Collapse spaces that preceed/follow a newline',
|
||||||
input: '<html><body>something <br> something<br></body></html>',
|
input: '<html><body>something <br> something<br></body></html>',
|
||||||
expectedHTML: '<!DOCTYPE HTML><html><body>something<br>something<br><br></body></html>',
|
expectedHTML: '<!DOCTYPE HTML><html><body>something<br>something<br><br></body></html>',
|
||||||
expectedText: 'something\nsomething\n\n'
|
expectedText: 'something\nsomething\n\n',
|
||||||
},
|
},
|
||||||
spacesAtEndOfLineP: {
|
'spacesAtEndOfLineP': {
|
||||||
description: 'Collapse spaces that preceed/follow a paragraph',
|
description: 'Collapse spaces that preceed/follow a paragraph',
|
||||||
input: '<html><body>something <p></p> something<br></body></html>',
|
input: '<html><body>something <p></p> something<br></body></html>',
|
||||||
expectedHTML: '<!DOCTYPE HTML><html><body>something<br><br>something<br><br></body></html>',
|
expectedHTML: '<!DOCTYPE HTML><html><body>something<br><br>something<br><br></body></html>',
|
||||||
expectedText: 'something\n\nsomething\n\n'
|
expectedText: 'something\n\nsomething\n\n',
|
||||||
},
|
},
|
||||||
nonBreakingSpacesAfterNewlines: {
|
'nonBreakingSpacesAfterNewlines': {
|
||||||
description: 'Don\'t collapse non-breaking spaces that follow a newline',
|
description: 'Don\'t collapse non-breaking spaces that follow a newline',
|
||||||
input: '<html><body>something<br> something<br></body></html>',
|
input: '<html><body>something<br> something<br></body></html>',
|
||||||
expectedHTML: '<!DOCTYPE HTML><html><body>something<br> something<br><br></body></html>',
|
expectedHTML: '<!DOCTYPE HTML><html><body>something<br> something<br><br></body></html>',
|
||||||
expectedText: 'something\n something\n\n'
|
expectedText: 'something\n something\n\n',
|
||||||
},
|
},
|
||||||
nonBreakingSpacesAfterNewlinesP: {
|
'nonBreakingSpacesAfterNewlinesP': {
|
||||||
description: 'Don\'t collapse non-breaking spaces that follow a paragraph',
|
description: 'Don\'t collapse non-breaking spaces that follow a paragraph',
|
||||||
input: '<html><body>something<p></p> something<br></body></html>',
|
input: '<html><body>something<p></p> something<br></body></html>',
|
||||||
expectedHTML: '<!DOCTYPE HTML><html><body>something<br><br> something<br><br></body></html>',
|
expectedHTML: '<!DOCTYPE HTML><html><body>something<br><br> something<br><br></body></html>',
|
||||||
expectedText: 'something\n\n something\n\n'
|
expectedText: 'something\n\n something\n\n',
|
||||||
},
|
},
|
||||||
collapseSpacesInsideElements: {
|
'collapseSpacesInsideElements': {
|
||||||
description: 'Preserve only one space when multiple are present',
|
description: 'Preserve only one space when multiple are present',
|
||||||
input: '<html><body>Need <span> more </span> space<i> s </i> !<br></body></html>',
|
input: '<html><body>Need <span> more </span> space<i> s </i> !<br></body></html>',
|
||||||
expectedHTML: '<!DOCTYPE HTML><html><body>Need more space<em> s </em>!<br><br></body></html>',
|
expectedHTML: '<!DOCTYPE HTML><html><body>Need more space<em> s </em>!<br><br></body></html>',
|
||||||
expectedText: 'Need more space s !\n\n'
|
expectedText: 'Need more space s !\n\n',
|
||||||
},
|
},
|
||||||
collapseSpacesAcrossNewlines: {
|
'collapseSpacesAcrossNewlines': {
|
||||||
description: 'Newlines and multiple spaces across newlines should be collapsed',
|
description: 'Newlines and multiple spaces across newlines should be collapsed',
|
||||||
input: `
|
input: `
|
||||||
<html><body>Need
|
<html><body>Need
|
||||||
|
@ -159,16 +157,16 @@ const testImports = {
|
||||||
<i> s </i>
|
<i> s </i>
|
||||||
!<br></body></html>`,
|
!<br></body></html>`,
|
||||||
expectedHTML: '<!DOCTYPE HTML><html><body>Need more space <em>s </em>!<br><br></body></html>',
|
expectedHTML: '<!DOCTYPE HTML><html><body>Need more space <em>s </em>!<br><br></body></html>',
|
||||||
expectedText: 'Need more space s !\n\n'
|
expectedText: 'Need more space s !\n\n',
|
||||||
},
|
},
|
||||||
multipleNewLinesAtBeginning: {
|
'multipleNewLinesAtBeginning': {
|
||||||
description: 'Multiple new lines and paragraphs at the beginning should be preserved',
|
description: 'Multiple new lines and paragraphs at the beginning should be preserved',
|
||||||
input: '<html><body><br><br><p></p><p></p>first line<br><br>second line<br></body></html>',
|
input: '<html><body><br><br><p></p><p></p>first line<br><br>second line<br></body></html>',
|
||||||
expectedHTML: '<!DOCTYPE HTML><html><body><br><br><br><br>first line<br><br>second line<br><br></body></html>',
|
expectedHTML: '<!DOCTYPE HTML><html><body><br><br><br><br>first line<br><br>second line<br><br></body></html>',
|
||||||
expectedText: '\n\n\n\nfirst line\n\nsecond line\n\n'
|
expectedText: '\n\n\n\nfirst line\n\nsecond line\n\n',
|
||||||
},
|
},
|
||||||
multiLineParagraph:{
|
'multiLineParagraph': {
|
||||||
description: "A paragraph with multiple lines should not loose spaces when lines are combined",
|
description: 'A paragraph with multiple lines should not loose spaces when lines are combined',
|
||||||
input: `<html><body>
|
input: `<html><body>
|
||||||
<p>
|
<p>
|
||||||
а б в г ґ д е є ж з и і ї й к л м н о
|
а б в г ґ д е є ж з и і ї й к л м н о
|
||||||
|
@ -176,11 +174,11 @@ const testImports = {
|
||||||
</p>
|
</p>
|
||||||
</body></html>`,
|
</body></html>`,
|
||||||
expectedHTML: '<!DOCTYPE HTML><html><body>а б в г ґ д е є ж з и і ї й к л м н о п р с т у ф х ц ч ш щ ю я ь<br><br></body></html>',
|
expectedHTML: '<!DOCTYPE HTML><html><body>а б в г ґ д е є ж з и і ї й к л м н о п р с т у ф х ц ч ш щ ю я ь<br><br></body></html>',
|
||||||
expectedText: 'а б в г ґ д е є ж з и і ї й к л м н о п р с т у ф х ц ч ш щ ю я ь\n\n'
|
expectedText: 'а б в г ґ д е є ж з и і ї й к л м н о п р с т у ф х ц ч ш щ ю я ь\n\n',
|
||||||
},
|
},
|
||||||
multiLineParagraphWithPre:{
|
'multiLineParagraphWithPre': {
|
||||||
// XXX why is there before "in"?
|
// XXX why is there before "in"?
|
||||||
description: "lines in preformatted text should be kept intact",
|
description: 'lines in preformatted text should be kept intact',
|
||||||
input: `<html><body>
|
input: `<html><body>
|
||||||
<p>
|
<p>
|
||||||
а б в г ґ д е є ж з и і ї й к л м н о<pre>multiple
|
а б в г ґ д е є ж з и і ї й к л м н о<pre>multiple
|
||||||
|
@ -191,40 +189,40 @@ const testImports = {
|
||||||
ь</p>
|
ь</p>
|
||||||
</body></html>`,
|
</body></html>`,
|
||||||
expectedHTML: '<!DOCTYPE HTML><html><body>а б в г ґ д е є ж з и і ї й к л м н о<br>multiple<br> lines<br> in<br> pre<br><br>п р с т у ф х ц ч ш щ ю я ь<br><br></body></html>',
|
expectedHTML: '<!DOCTYPE HTML><html><body>а б в г ґ д е є ж з и і ї й к л м н о<br>multiple<br> lines<br> in<br> pre<br><br>п р с т у ф х ц ч ш щ ю я ь<br><br></body></html>',
|
||||||
expectedText: 'а б в г ґ д е є ж з и і ї й к л м н о\nmultiple\n lines\n in\n pre\n\nп р с т у ф х ц ч ш щ ю я ь\n\n'
|
expectedText: 'а б в г ґ д е є ж з и і ї й к л м н о\nmultiple\n lines\n in\n pre\n\nп р с т у ф х ц ч ш щ ю я ь\n\n',
|
||||||
},
|
},
|
||||||
preIntroducesASpace: {
|
'preIntroducesASpace': {
|
||||||
description: "pre should be on a new line not preceeded by a space",
|
description: 'pre should be on a new line not preceeded by a space',
|
||||||
input: `<html><body><p>
|
input: `<html><body><p>
|
||||||
1
|
1
|
||||||
<pre>preline
|
<pre>preline
|
||||||
</pre></p></body></html>`,
|
</pre></p></body></html>`,
|
||||||
expectedHTML: '<!DOCTYPE HTML><html><body>1<br>preline<br><br><br></body></html>',
|
expectedHTML: '<!DOCTYPE HTML><html><body>1<br>preline<br><br><br></body></html>',
|
||||||
expectedText: '1\npreline\n\n\n'
|
expectedText: '1\npreline\n\n\n',
|
||||||
},
|
},
|
||||||
dontDeleteSpaceInsideElements: {
|
'dontDeleteSpaceInsideElements': {
|
||||||
description: 'Preserve spaces inside elements',
|
description: 'Preserve spaces inside elements',
|
||||||
input: '<html><body>Need<span> more </span>space<i> s </i>!<br></body></html>',
|
input: '<html><body>Need<span> more </span>space<i> s </i>!<br></body></html>',
|
||||||
expectedHTML: '<!DOCTYPE HTML><html><body>Need more space<em> s </em>!<br><br></body></html>',
|
expectedHTML: '<!DOCTYPE HTML><html><body>Need more space<em> s </em>!<br><br></body></html>',
|
||||||
expectedText: 'Need more space s !\n\n'
|
expectedText: 'Need more space s !\n\n',
|
||||||
},
|
},
|
||||||
dontDeleteSpaceOutsideElements: {
|
'dontDeleteSpaceOutsideElements': {
|
||||||
description: 'Preserve spaces outside elements',
|
description: 'Preserve spaces outside elements',
|
||||||
input: '<html><body>Need <span>more</span> space <i>s</i> !<br></body></html>',
|
input: '<html><body>Need <span>more</span> space <i>s</i> !<br></body></html>',
|
||||||
expectedHTML: '<!DOCTYPE HTML><html><body>Need more space <em>s</em> !<br><br></body></html>',
|
expectedHTML: '<!DOCTYPE HTML><html><body>Need more space <em>s</em> !<br><br></body></html>',
|
||||||
expectedText: 'Need more space s !\n\n'
|
expectedText: 'Need more space s !\n\n',
|
||||||
},
|
},
|
||||||
dontDeleteSpaceAtEndOfElement: {
|
'dontDeleteSpaceAtEndOfElement': {
|
||||||
description: 'Preserve spaces at the end of an element',
|
description: 'Preserve spaces at the end of an element',
|
||||||
input: '<html><body>Need <span>more </span>space <i>s </i>!<br></body></html>',
|
input: '<html><body>Need <span>more </span>space <i>s </i>!<br></body></html>',
|
||||||
expectedHTML: '<!DOCTYPE HTML><html><body>Need more space <em>s </em>!<br><br></body></html>',
|
expectedHTML: '<!DOCTYPE HTML><html><body>Need more space <em>s </em>!<br><br></body></html>',
|
||||||
expectedText: 'Need more space s !\n\n'
|
expectedText: 'Need more space s !\n\n',
|
||||||
},
|
},
|
||||||
dontDeleteSpaceAtBeginOfElements: {
|
'dontDeleteSpaceAtBeginOfElements': {
|
||||||
description: 'Preserve spaces at the start of an element',
|
description: 'Preserve spaces at the start of an element',
|
||||||
input: '<html><body>Need<span> more</span> space<i> s</i> !<br></body></html>',
|
input: '<html><body>Need<span> more</span> space<i> s</i> !<br></body></html>',
|
||||||
expectedHTML: '<!DOCTYPE HTML><html><body>Need more space<em> s</em> !<br><br></body></html>',
|
expectedHTML: '<!DOCTYPE HTML><html><body>Need more space<em> s</em> !<br><br></body></html>',
|
||||||
expectedText: 'Need more space s !\n\n'
|
expectedText: 'Need more space s !\n\n',
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -315,7 +313,7 @@ describe(__filename, function () {
|
||||||
function endPoint(point, version) {
|
function endPoint(point, version) {
|
||||||
version = version || apiVersion;
|
version = version || apiVersion;
|
||||||
return `/api/${version}/${point}?apikey=${apiKey}`;
|
return `/api/${version}/${point}?apikey=${apiKey}`;
|
||||||
};
|
}
|
||||||
|
|
||||||
function makeid() {
|
function makeid() {
|
||||||
let text = '';
|
let text = '';
|
||||||
|
|
|
@ -1,18 +1,17 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
/* eslint-disable max-len */
|
|
||||||
/*
|
/*
|
||||||
* While importexport tests target the `setHTML` API endpoint, which is nearly identical to what happens
|
* While importexport tests target the `setHTML` API endpoint, which is nearly identical to what
|
||||||
* when a user manually imports a document via the UI, the contentcollector tests here don't use rehype to process
|
* happens when a user manually imports a document via the UI, the contentcollector tests here don't
|
||||||
* the document. Rehype removes spaces and newĺines were applicable, so the expected results here can
|
* use rehype to process the document. Rehype removes spaces and newĺines were applicable, so the
|
||||||
* differ from importexport.js.
|
* expected results here can differ from importexport.js.
|
||||||
*
|
*
|
||||||
* If you add tests here, please also add them to importexport.js
|
* If you add tests here, please also add them to importexport.js
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const contentcollector = require('../../../src/static/js/contentcollector');
|
const AttributePool = require('ep_etherpad-lite/static/js/AttributePool');
|
||||||
const AttributePool = require('../../../src/static/js/AttributePool');
|
const cheerio = require('ep_etherpad-lite/node_modules/cheerio');
|
||||||
const cheerio = require('../../../src/node_modules/cheerio');
|
const contentcollector = require('ep_etherpad-lite/static/js/contentcollector');
|
||||||
|
|
||||||
const tests = {
|
const tests = {
|
||||||
nestedLi: {
|
nestedLi: {
|
||||||
|
@ -125,73 +124,73 @@ const tests = {
|
||||||
description: 'Multiple spaces should be preserved',
|
description: 'Multiple spaces should be preserved',
|
||||||
html: '<html><body>Text with more than one space.<br></body></html>',
|
html: '<html><body>Text with more than one space.<br></body></html>',
|
||||||
expectedLineAttribs: ['+10'],
|
expectedLineAttribs: ['+10'],
|
||||||
expectedText: ['Text with more than one space.']
|
expectedText: ['Text with more than one space.'],
|
||||||
},
|
},
|
||||||
lineWithMultipleNonBreakingAndNormalSpaces: {
|
lineWithMultipleNonBreakingAndNormalSpaces: {
|
||||||
description: 'non-breaking and normal space should be preserved',
|
description: 'non-breaking and normal space should be preserved',
|
||||||
html: '<html><body>Text with more than one space.<br></body></html>',
|
html: '<html><body>Text with more than one space.<br></body></html>',
|
||||||
expectedLineAttribs: ['+10'],
|
expectedLineAttribs: ['+10'],
|
||||||
expectedText: ['Text with more than one space.']
|
expectedText: ['Text with more than one space.'],
|
||||||
},
|
},
|
||||||
multiplenbsp: {
|
multiplenbsp: {
|
||||||
description: 'Multiple nbsp should be preserved',
|
description: 'Multiple nbsp should be preserved',
|
||||||
html: '<html><body> <br></body></html>',
|
html: '<html><body> <br></body></html>',
|
||||||
expectedLineAttribs: ['+2'],
|
expectedLineAttribs: ['+2'],
|
||||||
expectedText: [' ']
|
expectedText: [' '],
|
||||||
},
|
},
|
||||||
multipleNonBreakingSpaceBetweenWords: {
|
multipleNonBreakingSpaceBetweenWords: {
|
||||||
description: 'Multiple nbsp between words ',
|
description: 'Multiple nbsp between words ',
|
||||||
html: '<html><body> word1 word2 word3<br></body></html>',
|
html: '<html><body> word1 word2 word3<br></body></html>',
|
||||||
expectedLineAttribs: ['+m'],
|
expectedLineAttribs: ['+m'],
|
||||||
expectedText: [' word1 word2 word3']
|
expectedText: [' word1 word2 word3'],
|
||||||
},
|
},
|
||||||
nonBreakingSpacePreceededBySpaceBetweenWords: {
|
nonBreakingSpacePreceededBySpaceBetweenWords: {
|
||||||
description: 'A non-breaking space preceeded by a normal space',
|
description: 'A non-breaking space preceeded by a normal space',
|
||||||
html: '<html><body> word1 word2 word3<br></body></html>',
|
html: '<html><body> word1 word2 word3<br></body></html>',
|
||||||
expectedLineAttribs: ['+l'],
|
expectedLineAttribs: ['+l'],
|
||||||
expectedText: [' word1 word2 word3']
|
expectedText: [' word1 word2 word3'],
|
||||||
},
|
},
|
||||||
nonBreakingSpaceFollowededBySpaceBetweenWords: {
|
nonBreakingSpaceFollowededBySpaceBetweenWords: {
|
||||||
description: 'A non-breaking space followed by a normal space',
|
description: 'A non-breaking space followed by a normal space',
|
||||||
html: '<html><body> word1 word2 word3<br></body></html>',
|
html: '<html><body> word1 word2 word3<br></body></html>',
|
||||||
expectedLineAttribs: ['+l'],
|
expectedLineAttribs: ['+l'],
|
||||||
expectedText: [' word1 word2 word3']
|
expectedText: [' word1 word2 word3'],
|
||||||
},
|
},
|
||||||
spacesAfterNewline: {
|
spacesAfterNewline: {
|
||||||
description: 'Don\'t collapse spaces that follow a newline',
|
description: 'Don\'t collapse spaces that follow a newline',
|
||||||
html: '<!doctype html><html><body>something<br> something<br></body></html>',
|
html: '<!doctype html><html><body>something<br> something<br></body></html>',
|
||||||
expectedLineAttribs: ['+9', '+m'],
|
expectedLineAttribs: ['+9', '+m'],
|
||||||
expectedText: ['something', ' something']
|
expectedText: ['something', ' something'],
|
||||||
},
|
},
|
||||||
spacesAfterNewlineP: {
|
spacesAfterNewlineP: {
|
||||||
description: 'Don\'t collapse spaces that follow a empty paragraph',
|
description: 'Don\'t collapse spaces that follow a empty paragraph',
|
||||||
html: '<!doctype html><html><body>something<p></p> something<br></body></html>',
|
html: '<!doctype html><html><body>something<p></p> something<br></body></html>',
|
||||||
expectedLineAttribs: ['+9', '', '+m'],
|
expectedLineAttribs: ['+9', '', '+m'],
|
||||||
expectedText: ['something', '', ' something']
|
expectedText: ['something', '', ' something'],
|
||||||
},
|
},
|
||||||
spacesAtEndOfLine: {
|
spacesAtEndOfLine: {
|
||||||
description: 'Don\'t collapse spaces that preceed/follow a newline',
|
description: 'Don\'t collapse spaces that preceed/follow a newline',
|
||||||
html: '<html><body>something <br> something<br></body></html>',
|
html: '<html><body>something <br> something<br></body></html>',
|
||||||
expectedLineAttribs: ['+l', '+m'],
|
expectedLineAttribs: ['+l', '+m'],
|
||||||
expectedText: ['something ', ' something']
|
expectedText: ['something ', ' something'],
|
||||||
},
|
},
|
||||||
spacesAtEndOfLineP: {
|
spacesAtEndOfLineP: {
|
||||||
description: 'Don\'t collapse spaces that preceed/follow a empty paragraph',
|
description: 'Don\'t collapse spaces that preceed/follow a empty paragraph',
|
||||||
html: '<html><body>something <p></p> something<br></body></html>',
|
html: '<html><body>something <p></p> something<br></body></html>',
|
||||||
expectedLineAttribs: ['+l', '', '+m'],
|
expectedLineAttribs: ['+l', '', '+m'],
|
||||||
expectedText: ['something ', '', ' something']
|
expectedText: ['something ', '', ' something'],
|
||||||
},
|
},
|
||||||
nonBreakingSpacesAfterNewlines: {
|
nonBreakingSpacesAfterNewlines: {
|
||||||
description: 'Don\'t collapse non-breaking spaces that follow a newline',
|
description: 'Don\'t collapse non-breaking spaces that follow a newline',
|
||||||
html: '<html><body>something<br> something<br></body></html>',
|
html: '<html><body>something<br> something<br></body></html>',
|
||||||
expectedLineAttribs: ['+9', '+c'],
|
expectedLineAttribs: ['+9', '+c'],
|
||||||
expectedText: ['something', ' something']
|
expectedText: ['something', ' something'],
|
||||||
},
|
},
|
||||||
nonBreakingSpacesAfterNewlinesP: {
|
nonBreakingSpacesAfterNewlinesP: {
|
||||||
description: 'Don\'t collapse non-breaking spaces that follow a paragraph',
|
description: 'Don\'t collapse non-breaking spaces that follow a paragraph',
|
||||||
html: '<html><body>something<p></p> something<br></body></html>',
|
html: '<html><body>something<p></p> something<br></body></html>',
|
||||||
expectedLineAttribs: ['+9', '', '+c'],
|
expectedLineAttribs: ['+9', '', '+c'],
|
||||||
expectedText: ['something', '', ' something']
|
expectedText: ['something', '', ' something'],
|
||||||
},
|
},
|
||||||
preserveSpacesInsideElements: {
|
preserveSpacesInsideElements: {
|
||||||
description: 'Preserve all spaces when multiple are present',
|
description: 'Preserve all spaces when multiple are present',
|
||||||
|
@ -208,25 +207,25 @@ const tests = {
|
||||||
<i> s </i>
|
<i> s </i>
|
||||||
!<br></body></html>`,
|
!<br></body></html>`,
|
||||||
expectedLineAttribs: ['+19*0+4+b'],
|
expectedLineAttribs: ['+19*0+4+b'],
|
||||||
expectedText: [ 'Need more space s !' ]
|
expectedText: ['Need more space s !'],
|
||||||
},
|
},
|
||||||
multipleNewLinesAtBeginning: {
|
multipleNewLinesAtBeginning: {
|
||||||
description: 'Multiple new lines at the beginning should be preserved',
|
description: 'Multiple new lines at the beginning should be preserved',
|
||||||
html: '<html><body><br><br><p></p><p></p>first line<br><br>second line<br></body></html>',
|
html: '<html><body><br><br><p></p><p></p>first line<br><br>second line<br></body></html>',
|
||||||
expectedLineAttribs: ['', '', '', '', '+a', '', '+b'],
|
expectedLineAttribs: ['', '', '', '', '+a', '', '+b'],
|
||||||
expectedText: [ '', '', '', '', 'first line', '', 'second line']
|
expectedText: ['', '', '', '', 'first line', '', 'second line'],
|
||||||
},
|
},
|
||||||
multiLineParagraph: {
|
multiLineParagraph: {
|
||||||
description: "A paragraph with multiple lines should not loose spaces when lines are combined",
|
description: 'A paragraph with multiple lines should not loose spaces when lines are combined',
|
||||||
html: `<html><body><p>
|
html: `<html><body><p>
|
||||||
а б в г ґ д е є ж з и і ї й к л м н о
|
а б в г ґ д е є ж з и і ї й к л м н о
|
||||||
п р с т у ф х ц ч ш щ ю я ь</p>
|
п р с т у ф х ц ч ш щ ю я ь</p>
|
||||||
</body></html>`,
|
</body></html>`,
|
||||||
expectedLineAttribs: ['+1t'],
|
expectedLineAttribs: ['+1t'],
|
||||||
expectedText: ["а б в г ґ д е є ж з и і ї й к л м н о п р с т у ф х ц ч ш щ ю я ь"]
|
expectedText: ['а б в г ґ д е є ж з и і ї й к л м н о п р с т у ф х ц ч ш щ ю я ь'],
|
||||||
},
|
},
|
||||||
multiLineParagraphWithPre: {
|
multiLineParagraphWithPre: {
|
||||||
description: "lines in preformatted text should be kept intact",
|
description: 'lines in preformatted text should be kept intact',
|
||||||
html: `<html><body><p>
|
html: `<html><body><p>
|
||||||
а б в г ґ д е є ж з и і ї й к л м н о<pre>multiple
|
а б в г ґ д е є ж з и і ї й к л м н о<pre>multiple
|
||||||
lines
|
lines
|
||||||
|
@ -236,40 +235,47 @@ pre
|
||||||
ь</p>
|
ь</p>
|
||||||
</body></html>`,
|
</body></html>`,
|
||||||
expectedLineAttribs: ['+11', '+8', '+5', '+2', '+3', '+r'],
|
expectedLineAttribs: ['+11', '+8', '+5', '+2', '+3', '+r'],
|
||||||
expectedText: ['а б в г ґ д е є ж з и і ї й к л м н о', 'multiple', 'lines', 'in', 'pre', 'п р с т у ф х ц ч ш щ ю я ь']
|
expectedText: [
|
||||||
|
'а б в г ґ д е є ж з и і ї й к л м н о',
|
||||||
|
'multiple',
|
||||||
|
'lines',
|
||||||
|
'in',
|
||||||
|
'pre',
|
||||||
|
'п р с т у ф х ц ч ш щ ю я ь',
|
||||||
|
],
|
||||||
},
|
},
|
||||||
preIntroducesASpace: {
|
preIntroducesASpace: {
|
||||||
description: "pre should be on a new line not preceeded by a space",
|
description: 'pre should be on a new line not preceeded by a space',
|
||||||
html: `<html><body><p>
|
html: `<html><body><p>
|
||||||
1
|
1
|
||||||
<pre>preline
|
<pre>preline
|
||||||
</pre></p></body></html>`,
|
</pre></p></body></html>`,
|
||||||
expectedLineAttribs: ['+6', '+7'],
|
expectedLineAttribs: ['+6', '+7'],
|
||||||
expectedText: [' 1 ', 'preline']
|
expectedText: [' 1 ', 'preline'],
|
||||||
},
|
},
|
||||||
dontDeleteSpaceInsideElements: {
|
dontDeleteSpaceInsideElements: {
|
||||||
description: 'Preserve spaces on the beginning and end of a element',
|
description: 'Preserve spaces on the beginning and end of a element',
|
||||||
html: '<html><body>Need<span> more </span>space<i> s </i>!<br></body></html>',
|
html: '<html><body>Need<span> more </span>space<i> s </i>!<br></body></html>',
|
||||||
expectedLineAttribs: ['+f*0+3+1'],
|
expectedLineAttribs: ['+f*0+3+1'],
|
||||||
expectedText: ['Need more space s !']
|
expectedText: ['Need more space s !'],
|
||||||
},
|
},
|
||||||
dontDeleteSpaceOutsideElements: {
|
dontDeleteSpaceOutsideElements: {
|
||||||
description: 'Preserve spaces outside elements',
|
description: 'Preserve spaces outside elements',
|
||||||
html: '<html><body>Need <span>more</span> space <i>s</i> !<br></body></html>',
|
html: '<html><body>Need <span>more</span> space <i>s</i> !<br></body></html>',
|
||||||
expectedLineAttribs: ['+g*0+1+2'],
|
expectedLineAttribs: ['+g*0+1+2'],
|
||||||
expectedText: ['Need more space s !']
|
expectedText: ['Need more space s !'],
|
||||||
},
|
},
|
||||||
dontDeleteSpaceAtEndOfElement: {
|
dontDeleteSpaceAtEndOfElement: {
|
||||||
description: 'Preserve spaces at the end of an element',
|
description: 'Preserve spaces at the end of an element',
|
||||||
html: '<html><body>Need <span>more </span>space <i>s </i>!<br></body></html>',
|
html: '<html><body>Need <span>more </span>space <i>s </i>!<br></body></html>',
|
||||||
expectedLineAttribs: ['+g*0+2+1'],
|
expectedLineAttribs: ['+g*0+2+1'],
|
||||||
expectedText: ['Need more space s !']
|
expectedText: ['Need more space s !'],
|
||||||
},
|
},
|
||||||
dontDeleteSpaceAtBeginOfElements: {
|
dontDeleteSpaceAtBeginOfElements: {
|
||||||
description: 'Preserve spaces at the start of an element',
|
description: 'Preserve spaces at the start of an element',
|
||||||
html: '<html><body>Need<span> more</span> space<i> s</i> !<br></body></html>',
|
html: '<html><body>Need<span> more</span> space<i> s</i> !<br></body></html>',
|
||||||
expectedLineAttribs: ['+f*0+2+2'],
|
expectedLineAttribs: ['+f*0+2+2'],
|
||||||
expectedText: ['Need more space s !']
|
expectedText: ['Need more space s !'],
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -325,7 +331,7 @@ describe(__filename, function () {
|
||||||
function arraysEqual(a, b) {
|
function arraysEqual(a, b) {
|
||||||
if (a === b) return true;
|
if (a === b) return true;
|
||||||
if (a == null || b == null) return false;
|
if (a == null || b == null) return false;
|
||||||
if (a.length != b.length) return false;
|
if (a.length !== b.length) return false;
|
||||||
|
|
||||||
// If you don't care about the order of the elements inside
|
// If you don't care about the order of the elements inside
|
||||||
// the array, you should sort both arrays here.
|
// the array, you should sort both arrays here.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue