mirror of
https://github.com/ether/etherpad-lite.git
synced 2025-04-23 08:56:17 -04:00
tests: show that Etherpad is not able to import & export back a mixed lists
This commit replaces an old test with a new, different one. Reasons for removing the old test: - the old list test was introduced incadb83a
with an explicit attempt to import an invalid HTML and see if it could recover from it - in5967e08
the code base finally managed to export a meaningful HTML (but we do not know if other bugs were introduced in pursuing this) - the old test seemed to aim at attaining resiliency, but correctness should be addressed before that Modified by muxator. See discussion in: https://github.com/ether/etherpad-lite/pull/3268#issuecomment-411185713
This commit is contained in:
parent
bacc37cf9b
commit
718b175524
1 changed files with 29 additions and 7 deletions
|
@ -14,7 +14,19 @@ var apiVersion = 1;
|
||||||
var testPadId = makeid();
|
var testPadId = makeid();
|
||||||
var lastEdited = "";
|
var lastEdited = "";
|
||||||
var text = generateLongText();
|
var text = generateLongText();
|
||||||
var ULhtml = '<!DOCTYPE html><html><body><ul class="bullet"><li>one</li><li>2</li></ul><br><ul><ul class="bullet"><li>UL2</li></ul></ul></body></html>';
|
|
||||||
|
/*
|
||||||
|
* Html document with nested lists of different types, to test its import and
|
||||||
|
* verify it is exported back correctly
|
||||||
|
*/
|
||||||
|
var ulHtml = '<!doctype html><html><body><ul class="bullet"><li>one</li><li>two</li><li>0</li><li>1</li><li>2<ul class="bullet"><li>3</li><li>4</li></ul></li></ul><ol class="number"><li>item<ol class="number"><li>item1</li><li>item2</li></ol></li></ol></body></html>';
|
||||||
|
|
||||||
|
/*
|
||||||
|
* When exported back, Etherpad produces an html which is not exactly the same
|
||||||
|
* textually, but at least it remains standard compliant and has an equal DOM
|
||||||
|
* structure.
|
||||||
|
*/
|
||||||
|
var expectedHtml = '<!doctype html><html><body><ul class="bullet"><li>one</li><li>two</li><li>0</li><li>1</li><li>2<ul class="bullet"><li>3</li><li>4</ul></li></ul><ol class="number"><li>item<ol class="number"><li>item1</li><li>item2</ol></li></ol></body></html>';
|
||||||
|
|
||||||
describe('Connectivity', function(){
|
describe('Connectivity', function(){
|
||||||
it('errors if can not connect', function(done) {
|
it('errors if can not connect', function(done) {
|
||||||
|
@ -522,8 +534,8 @@ describe('setHTML', function(){
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('setHTML', function(){
|
describe('setHTML', function(){
|
||||||
it('Sets the HTML of a Pad with a bunch of weird unordered lists inserted', function(done) {
|
it('Sets the HTML of a Pad with complex nested lists of different types', function(done) {
|
||||||
api.get(endPoint('setHTML')+"&padID="+testPadId+"&html="+ULhtml)
|
api.get(endPoint('setHTML')+"&padID="+testPadId+"&html="+ulHtml)
|
||||||
.expect(function(res){
|
.expect(function(res){
|
||||||
if(res.body.code !== 0) throw new Error("List HTML cant be imported")
|
if(res.body.code !== 0) throw new Error("List HTML cant be imported")
|
||||||
})
|
})
|
||||||
|
@ -533,12 +545,22 @@ describe('setHTML', function(){
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('getHTML', function(){
|
describe('getHTML', function(){
|
||||||
it('Gets the HTML of a Pad with a bunch of weird unordered lists inserted', function(done) {
|
it('Gets back the HTML of a Pad with complex nested lists of different types', function(done) {
|
||||||
api.get(endPoint('getHTML')+"&padID="+testPadId)
|
api.get(endPoint('getHTML')+"&padID="+testPadId)
|
||||||
.expect(function(res){
|
.expect(function(res){
|
||||||
var ehtml = res.body.data.html.replace("<br></body>", "</body>").toLowerCase();
|
var receivedHtml = res.body.data.html.replace("<br></body>", "</body>").toLowerCase();
|
||||||
var uhtml = ULhtml.toLowerCase();
|
|
||||||
if(ehtml !== uhtml) throw new Error("Imported HTML does not match served HTML")
|
if (receivedHtml !== expectedHtml) {
|
||||||
|
throw new Error(`HTML received from export is not the one we were expecting.
|
||||||
|
Received:
|
||||||
|
${receivedHtml}
|
||||||
|
|
||||||
|
Expected:
|
||||||
|
${expectedHtml}
|
||||||
|
|
||||||
|
Which is a slightly modified version of the originally imported one:
|
||||||
|
${ulHtml}`);
|
||||||
|
}
|
||||||
})
|
})
|
||||||
.expect('Content-Type', /json/)
|
.expect('Content-Type', /json/)
|
||||||
.expect(200, done)
|
.expect(200, done)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue