describe('import functionality', function () { beforeEach(function (cb) { helper.newPad(cb); // creates a new pad this.timeout(60000); }); function getinnertext() { const inner = helper.padInner$; if (!inner) { return ''; } let newtext = ''; inner('div').each((line, el) => { newtext += `${el.innerHTML}\n`; }); return newtext; } function importrequest(data, importurl, type) { let success; let error; const result = $.ajax({ url: importurl, type: 'post', processData: false, async: false, contentType: 'multipart/form-data; boundary=boundary', accepts: { text: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', }, data: `Content-Type: multipart/form-data; boundary=--boundary\r\n\r\n--boundary\r\nContent-Disposition: form-data; name="file"; filename="import.${type}"\r\nContent-Type: text/plain\r\n\r\n${data}\r\n\r\n--boundary`, error(res) { error = res; }, }); expect(error).to.be(undefined); return result; } function exportfunc(link) { const exportresults = []; $.ajaxSetup({ async: false, }); $.get(`${link}/export/html`, (data) => { const start = data.indexOf(''); const end = data.indexOf(''); const html = data.substr(start + 6, end - start - 6); exportresults.push(['html', html]); }); $.get(`${link}/export/txt`, (data) => { exportresults.push(['txt', data]); }); return exportresults; } xit('import a pad with newlines from txt', function (done) { const importurl = `${helper.padChrome$.window.location.href}/import`; const textWithNewLines = 'imported text\nnewline'; importrequest(textWithNewLines, importurl, 'txt'); helper.waitFor(() => expect(getinnertext()).to.be('imported text\nnewline\n
\n')); const results = exportfunc(helper.padChrome$.window.location.href); expect(results[0][1]).to.be('imported text
newline

'); expect(results[1][1]).to.be('imported text\nnewline\n\n'); done(); }); xit('import a pad with newlines from html', function (done) { const importurl = `${helper.padChrome$.window.location.href}/import`; const htmlWithNewLines = 'htmltext
newline'; importrequest(htmlWithNewLines, importurl, 'html'); helper.waitFor(() => expect(getinnertext()).to.be('htmltext\nnewline\n
\n')); const results = exportfunc(helper.padChrome$.window.location.href); expect(results[0][1]).to.be('htmltext
newline

'); expect(results[1][1]).to.be('htmltext\nnewline\n\n'); done(); }); xit('import a pad with attributes from html', function (done) { const importurl = `${helper.padChrome$.window.location.href}/import`; const htmlWithNewLines = 'htmltext
newline'; importrequest(htmlWithNewLines, importurl, 'html'); helper.waitFor(() => expect(getinnertext()).to.be('htmltext\nnewline\n
\n')); const results = exportfunc(helper.padChrome$.window.location.href); expect(results[0][1]).to.be('htmltext
newline

'); expect(results[1][1]).to.be('htmltext\nnewline\n\n'); done(); }); xit('import a pad with bullets from html', function (done) { const importurl = `${helper.padChrome$.window.location.href}/import`; const htmlWithBullets = ''; importrequest(htmlWithBullets, importurl, 'html'); helper.waitFor(() => expect(getinnertext()).to.be('\ \n\ \n\ \n\ \n\
\n')); const results = exportfunc(helper.padChrome$.window.location.href); expect(results[0][1]).to.be('
'); expect(results[1][1]).to.be('\t* bullet line 1\n\t* bullet line 2\n\t\t* bullet2 line 1\n\t\t* bullet2 line 2\n\n'); done(); }); xit('import a pad with bullets and newlines from html', function (done) { const importurl = `${helper.padChrome$.window.location.href}/import`; const htmlWithBullets = '

'; importrequest(htmlWithBullets, importurl, 'html'); helper.waitFor(() => expect(getinnertext()).to.be('\ \n\
\n\ \n\ \n\
\n\ \n\
\n')); const results = exportfunc(helper.padChrome$.window.location.href); expect(results[0][1]).to.be('


'); expect(results[1][1]).to.be('\t* bullet line 1\n\n\t* bullet line 2\n\t\t* bullet2 line 1\n\n\t\t* bullet2 line 2\n\n'); done(); }); xit('import a pad with bullets and newlines and attributes from html', function (done) { const importurl = `${helper.padChrome$.window.location.href}/import`; const htmlWithBullets = '

'; importrequest(htmlWithBullets, importurl, 'html'); helper.waitFor(() => expect(getinnertext()).to.be('\ \n\
\n\ \n\ \n
\n\ \n\ \n\ \n\
\n')); const results = exportfunc(helper.padChrome$.window.location.href); expect(results[0][1]).to.be('


'); expect(results[1][1]).to.be('\t* bullet line 1\n\n\t* bullet line 2\n\t\t* bullet2 line 1\n\n\t\t\t\t* bullet4 line 2 bisu\n\t\t\t\t* bullet4 line 2 bs\n\t\t\t\t* bullet4 line 2 uuis\n\n'); done(); }); xit('import a pad with nested bullets from html', function (done) { const importurl = `${helper.padChrome$.window.location.href}/import`; const htmlWithBullets = ''; importrequest(htmlWithBullets, importurl, 'html'); const oldtext = getinnertext(); helper.waitFor(() => oldtext != getinnertext() // return expect(getinnertext()).to.be('\ // \n\ // \n\ // \n\ // \n\ // \n\ // \n\ //
\n') ); const results = exportfunc(helper.padChrome$.window.location.href); expect(results[0][1]).to.be('
'); expect(results[1][1]).to.be('\t* bullet line 1\n\t* bullet line 2\n\t\t* bullet2 line 1\n\t\t\t\t* bullet4 line 2\n\t\t\t\t* bullet4 line 2\n\t\t\t\t* bullet4 line 2\n\t\t\t* bullet3 line 1\n\t* bullet2 line 1\n\n'); done(); }); xit('import a pad with 8 levels of bullets and newlines and attributes from html', function (done) { const importurl = `${helper.padChrome$.window.location.href}/import`; const htmlWithBullets = '