tests: Factor out common skip checks

This commit is contained in:
Richard Hansen 2020-09-25 13:55:19 -04:00 committed by John McLear
parent 1c3c5b744c
commit 54c999fe83

View file

@ -70,12 +70,15 @@ Example Curl command for testing import URI:
*/ */
describe('Imports and Exports', function(){ describe('Imports and Exports', function(){
it('creates a new Pad, imports content to it, checks that content', function(done) { before(function() {
if (!settings.allowAnyoneToImport) { if (!settings.allowAnyoneToImport) {
console.warn("not anyone can import so not testing -- to include this test set allowAnyoneToImport to true in settings.json"); console.warn('not anyone can import so not testing -- ' +
'to include this test set allowAnyoneToImport to true in settings.json');
this.skip(); this.skip();
done(); }
}else{ });
it('creates a new Pad, imports content to it, checks that content', function(done) {
api.get(endPoint('createPad') + "&padID=" + testPadId) api.get(endPoint('createPad') + "&padID=" + testPadId)
.expect(function(res) { .expect(function(res) {
if (res.body.code !== 0) throw new Error("Unable to create new Pad"); if (res.body.code !== 0) throw new Error("Unable to create new Pad");
@ -103,19 +106,19 @@ describe('Imports and Exports', function(){
}) })
.expect('Content-Type', /json/) .expect('Content-Type', /json/)
.expect(200, done) .expect(200, done)
});
describe('Import/Export tests requiring AbiWord/LibreOffice', function() {
before(function() {
if ((!settings.abiword || settings.abiword.indexOf('/') === -1) &&
(!settings.soffice || settings.soffice.indexOf('/') === -1)) {
this.skip();
} }
}); });
// For some reason word import does not work in testing.. // For some reason word import does not work in testing..
// TODO: fix support for .doc files.. // TODO: fix support for .doc files..
it('Tries to import .doc that uses soffice or abiword', function(done) { it('Tries to import .doc that uses soffice or abiword', function(done) {
if (!settings.allowAnyoneToImport) { this.skip(); return done(); }
if ((!settings.abiword || settings.abiword.indexOf('/') === -1) &&
(!settings.soffice || settings.soffice.indexOf('/') === -1)) {
this.skip();
return done();
}
var req = request.post(host + '/p/'+testPadId+'/import', function (err, res, body) { var req = request.post(host + '/p/'+testPadId+'/import', function (err, res, body) {
if (err) { if (err) {
throw new Error("Failed to import", err); throw new Error("Failed to import", err);
@ -136,12 +139,6 @@ describe('Imports and Exports', function(){
}); });
it('exports DOC', function(done) { it('exports DOC', function(done) {
if (!settings.allowAnyoneToImport) { this.skip(); return done(); }
if ((!settings.abiword || settings.abiword.indexOf('/') === -1) &&
(!settings.soffice || settings.soffice.indexOf('/') === -1)) {
this.skip();
return done();
}
try{ try{
request(host + '/p/'+testPadId+'/export/doc', function (err, res, body) { request(host + '/p/'+testPadId+'/export/doc', function (err, res, body) {
// TODO: At some point checking that the contents is correct would be suitable // TODO: At some point checking that the contents is correct would be suitable
@ -154,16 +151,9 @@ describe('Imports and Exports', function(){
}catch(e){ }catch(e){
throw new Error(e); throw new Error(e);
} }
}) });
it('Tries to import .docx that uses soffice or abiword', function(done) { it('Tries to import .docx that uses soffice or abiword', function(done) {
if (!settings.allowAnyoneToImport) { this.skip(); return done(); }
if ((!settings.abiword || settings.abiword.indexOf('/') === -1) &&
(!settings.soffice || settings.soffice.indexOf('/') === -1)) {
this.skip();
return done();
}
var req = request.post(host + '/p/'+testPadId+'/import', function (err, res, body) { var req = request.post(host + '/p/'+testPadId+'/import', function (err, res, body) {
if (err) { if (err) {
throw new Error("Failed to import", err); throw new Error("Failed to import", err);
@ -184,12 +174,6 @@ describe('Imports and Exports', function(){
}); });
it('exports DOC from imported DOCX', function(done) { it('exports DOC from imported DOCX', function(done) {
if (!settings.allowAnyoneToImport) { this.skip(); return done(); }
if ((!settings.abiword || settings.abiword.indexOf('/') === -1) &&
(!settings.soffice || settings.soffice.indexOf('/') === -1)) {
this.skip();
return done();
}
request(host + '/p/'+testPadId+'/export/doc', function (err, res, body) { request(host + '/p/'+testPadId+'/export/doc', function (err, res, body) {
// TODO: At some point checking that the contents is correct would be suitable // TODO: At some point checking that the contents is correct would be suitable
if(body.length >= 9100){ if(body.length >= 9100){
@ -198,16 +182,9 @@ describe('Imports and Exports', function(){
throw new Error("Word Document export length is not right"); throw new Error("Word Document export length is not right");
} }
}) })
}) });
it('Tries to import .pdf that uses soffice or abiword', function(done) { it('Tries to import .pdf that uses soffice or abiword', function(done) {
if (!settings.allowAnyoneToImport) { this.skip(); return done(); }
if ((!settings.abiword || settings.abiword.indexOf('/') === -1) &&
(!settings.soffice || settings.soffice.indexOf('/') === -1)) {
this.skip();
return done();
}
var req = request.post(host + '/p/'+testPadId+'/import', function (err, res, body) { var req = request.post(host + '/p/'+testPadId+'/import', function (err, res, body) {
if (err) { if (err) {
throw new Error("Failed to import", err); throw new Error("Failed to import", err);
@ -228,12 +205,6 @@ describe('Imports and Exports', function(){
}); });
it('exports PDF', function(done) { it('exports PDF', function(done) {
if (!settings.allowAnyoneToImport) { this.skip(); return done(); }
if ((!settings.abiword || settings.abiword.indexOf('/') === -1) &&
(!settings.soffice || settings.soffice.indexOf('/') === -1)) {
this.skip();
return done();
}
request(host + '/p/'+testPadId+'/export/pdf', function (err, res, body) { request(host + '/p/'+testPadId+'/export/pdf', function (err, res, body) {
// TODO: At some point checking that the contents is correct would be suitable // TODO: At some point checking that the contents is correct would be suitable
if(body.length >= 1000){ if(body.length >= 1000){
@ -242,16 +213,9 @@ describe('Imports and Exports', function(){
throw new Error("PDF Document export length is not right"); throw new Error("PDF Document export length is not right");
} }
}) })
}) });
it('Tries to import .odt that uses soffice or abiword', function(done) { it('Tries to import .odt that uses soffice or abiword', function(done) {
if (!settings.allowAnyoneToImport) { this.skip(); return done(); }
if ((!settings.abiword || settings.abiword.indexOf('/') === -1) &&
(!settings.soffice || settings.soffice.indexOf('/') === -1)) {
this.skip();
return done();
}
var req = request.post(host + '/p/'+testPadId+'/import', function (err, res, body) { var req = request.post(host + '/p/'+testPadId+'/import', function (err, res, body) {
if (err) { if (err) {
throw new Error("Failed to import", err); throw new Error("Failed to import", err);
@ -272,12 +236,6 @@ describe('Imports and Exports', function(){
}); });
it('exports ODT', function(done) { it('exports ODT', function(done) {
if (!settings.allowAnyoneToImport) { this.skip(); return done(); }
if ((!settings.abiword || settings.abiword.indexOf('/') === -1) &&
(!settings.soffice || settings.soffice.indexOf('/') === -1)) {
this.skip();
return done();
}
request(host + '/p/'+testPadId+'/export/odt', function (err, res, body) { request(host + '/p/'+testPadId+'/export/odt', function (err, res, body) {
// TODO: At some point checking that the contents is correct would be suitable // TODO: At some point checking that the contents is correct would be suitable
if(body.length >= 7000){ if(body.length >= 7000){
@ -286,11 +244,11 @@ describe('Imports and Exports', function(){
throw new Error("ODT Document export length is not right"); throw new Error("ODT Document export length is not right");
} }
}) })
}) });
}); // End of AbiWord/LibreOffice tests.
it('Tries to import .etherpad', function(done) { it('Tries to import .etherpad', function(done) {
if (!settings.allowAnyoneToImport) { this.skip(); return done(); }
var req = request.post(host + '/p/'+testPadId+'/import', function (err, res, body) { var req = request.post(host + '/p/'+testPadId+'/import', function (err, res, body) {
if (err) { if (err) {
throw new Error("Failed to import", err); throw new Error("Failed to import", err);
@ -311,7 +269,6 @@ describe('Imports and Exports', function(){
}); });
it('exports Etherpad', function(done) { it('exports Etherpad', function(done) {
if (!settings.allowAnyoneToImport) { this.skip(); return done(); }
request(host + '/p/'+testPadId+'/export/etherpad', function (err, res, body) { request(host + '/p/'+testPadId+'/export/etherpad', function (err, res, body) {
// TODO: At some point checking that the contents is correct would be suitable // TODO: At some point checking that the contents is correct would be suitable
if(body.indexOf("hello") !== -1){ if(body.indexOf("hello") !== -1){
@ -321,10 +278,9 @@ describe('Imports and Exports', function(){
throw new Error("Etherpad Document does not include hello"); throw new Error("Etherpad Document does not include hello");
} }
}) })
}) });
it('exports HTML for this Etherpad file', function(done) { it('exports HTML for this Etherpad file', function(done) {
if (!settings.allowAnyoneToImport) { this.skip(); return done(); }
request(host + '/p/'+testPadId+'/export/html', function (err, res, body) { request(host + '/p/'+testPadId+'/export/html', function (err, res, body) {
// broken pre fix export -- <ul class="bullet"></li><ul class="bullet"></ul></li></ul> // broken pre fix export -- <ul class="bullet"></li><ul class="bullet"></ul></li></ul>
@ -337,10 +293,9 @@ describe('Imports and Exports', function(){
throw new Error("Exported HTML nested list items is not right", body); throw new Error("Exported HTML nested list items is not right", body);
} }
}) })
}) });
it('tries to import Plain Text to a pad that does not exist', function(done) { it('tries to import Plain Text to a pad that does not exist', function(done) {
if (!settings.allowAnyoneToImport) { this.skip(); return done(); }
var req = request.post(host + '/p/'+testPadId+testPadId+testPadId+'/import', function (err, res, body) { var req = request.post(host + '/p/'+testPadId+testPadId+testPadId+'/import', function (err, res, body) {
if (res.statusCode === 200) { if (res.statusCode === 200) {
throw new Error("Was able to import to a pad that doesn't exist"); throw new Error("Was able to import to a pad that doesn't exist");
@ -363,7 +318,6 @@ describe('Imports and Exports', function(){
}); });
it('Tries to import unsupported file type', function(done) { it('Tries to import unsupported file type', function(done) {
if (!settings.allowAnyoneToImport) { this.skip(); return done(); }
if(settings.allowUnknownFileEnds === true){ if(settings.allowUnknownFileEnds === true){
console.log("allowing unknown file ends so skipping this test"); console.log("allowing unknown file ends so skipping this test");
this.skip(); this.skip();