| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746 |
- 'use strict';
- var common = require('../common');
- describe('TopNav', function () {
- describe('showViewButtons & hideViewButtons', function () {
- before(function () {
- cleanup();
- });
- it(
- 'displays & hides navigation elements for viewing an existing paste',
- function () {
- var results = [];
- $('body').html(
- '<nav class="navbar navbar-inverse navbar-static-top">' +
- '<div id="navbar" class="navbar-collapse collapse"><ul ' +
- 'class="nav navbar-nav"><li><button id="newbutton" ' +
- 'type="button" class="hidden btn btn-warning navbar-btn">' +
- '<span class="glyphicon glyphicon-file" aria-hidden="true">' +
- '</span> New</button><button id="clonebutton" type="button"' +
- ' class="hidden btn btn-warning navbar-btn">' +
- '<span class="glyphicon glyphicon-duplicate" ' +
- 'aria-hidden="true"></span> Clone</button><button ' +
- 'id="rawtextbutton" type="button" class="hidden btn ' +
- 'btn-warning navbar-btn"><span class="glyphicon ' +
- 'glyphicon-text-background" aria-hidden="true"></span> ' +
- 'Raw text</button><button id="qrcodelink" type="button" ' +
- 'data-toggle="modal" data-target="#qrcodemodal" ' +
- 'class="hidden btn btn-warning navbar-btn"><span ' +
- 'class="glyphicon glyphicon-qrcode" aria-hidden="true">' +
- '</span> QR code</button></li></ul></div></nav>'
- );
- $.PrivateBin.TopNav.init();
- results.push(
- $('#newbutton').hasClass('hidden') &&
- $('#clonebutton').hasClass('hidden') &&
- $('#rawtextbutton').hasClass('hidden') &&
- $('#qrcodelink').hasClass('hidden')
- );
- $.PrivateBin.TopNav.showViewButtons();
- results.push(
- !$('#newbutton').hasClass('hidden') &&
- !$('#clonebutton').hasClass('hidden') &&
- !$('#rawtextbutton').hasClass('hidden') &&
- !$('#qrcodelink').hasClass('hidden')
- );
- $.PrivateBin.TopNav.hideViewButtons();
- results.push(
- $('#newbutton').hasClass('hidden') &&
- $('#clonebutton').hasClass('hidden') &&
- $('#rawtextbutton').hasClass('hidden') &&
- $('#qrcodelink').hasClass('hidden')
- );
- cleanup();
- assert.ok(results.every(element => element));
- }
- );
- });
- describe('showCreateButtons & hideCreateButtons', function () {
- before(function () {
- cleanup();
- });
- it(
- 'displays & hides navigation elements for creating a paste',
- function () {
- var results = [];
- $('body').html(
- '<nav><div id="navbar"><ul><li><button id="newbutton" ' +
- 'type="button" class="hidden">New</button></li><li><a ' +
- 'id="expiration" href="#" class="hidden">Expiration</a>' +
- '</li><li><div id="burnafterreadingoption" class="hidden">' +
- 'Burn after reading</div></li><li><div id="opendiscussion' +
- 'option" class="hidden">Open discussion</div></li><li>' +
- '<div id="password" class="hidden">Password</div></li>' +
- '<li id="attach" class="hidden">Attach a file</li><li>' +
- '<a id="formatter" href="#" class="hidden">Format</a>' +
- '</li><li><button id="sendbutton" type="button" ' +
- 'class="hidden">Create</button></li></ul></div></nav>'
- );
- $.PrivateBin.TopNav.init();
- results.push(
- $('#sendbutton').hasClass('hidden') &&
- $('#expiration').hasClass('hidden') &&
- $('#formatter').hasClass('hidden') &&
- $('#burnafterreadingoption').hasClass('hidden') &&
- $('#opendiscussionoption').hasClass('hidden') &&
- $('#newbutton').hasClass('hidden') &&
- $('#password').hasClass('hidden') &&
- $('#attach').hasClass('hidden')
- );
- $.PrivateBin.TopNav.showCreateButtons();
- results.push(
- !$('#sendbutton').hasClass('hidden') &&
- !$('#expiration').hasClass('hidden') &&
- !$('#formatter').hasClass('hidden') &&
- !$('#burnafterreadingoption').hasClass('hidden') &&
- !$('#opendiscussionoption').hasClass('hidden') &&
- !$('#newbutton').hasClass('hidden') &&
- !$('#password').hasClass('hidden') &&
- !$('#attach').hasClass('hidden')
- );
- $.PrivateBin.TopNav.hideCreateButtons();
- results.push(
- $('#sendbutton').hasClass('hidden') &&
- $('#expiration').hasClass('hidden') &&
- $('#formatter').hasClass('hidden') &&
- $('#burnafterreadingoption').hasClass('hidden') &&
- $('#opendiscussionoption').hasClass('hidden') &&
- $('#newbutton').hasClass('hidden') &&
- $('#password').hasClass('hidden') &&
- $('#attach').hasClass('hidden')
- );
- cleanup();
- assert.ok(results.every(element => element));
- }
- );
- });
- describe('showNewPasteButton', function () {
- before(function () {
- cleanup();
- });
- it(
- 'displays the button for creating a paste',
- function () {
- var results = [];
- $('body').html(
- '<nav><div id="navbar"><ul><li><button id="newbutton" type=' +
- '"button" class="hidden">New</button></li></ul></div></nav>'
- );
- $.PrivateBin.TopNav.init();
- results.push(
- $('#newbutton').hasClass('hidden')
- );
- $.PrivateBin.TopNav.showNewPasteButton();
- results.push(
- !$('#newbutton').hasClass('hidden')
- );
- cleanup();
- assert.ok(results.every(element => element));
- }
- );
- });
- describe('hideCloneButton', function () {
- before(function () {
- cleanup();
- });
- it(
- 'hides the button for cloning a paste',
- function () {
- var results = [];
- $('body').html(
- '<nav><div id="navbar"><ul><li><button id="clonebutton" ' +
- 'type="button" class="btn btn-warning navbar-btn">' +
- '<span class="glyphicon glyphicon-duplicate" aria-hidden=' +
- '"true"></span> Clone</button></li></ul></div></nav>'
- );
- $.PrivateBin.TopNav.init();
- results.push(
- !$('#clonebutton').hasClass('hidden')
- );
- $.PrivateBin.TopNav.hideCloneButton();
- results.push(
- $('#clonebutton').hasClass('hidden')
- );
- cleanup();
- assert.ok(results.every(element => element));
- }
- );
- });
- describe('hideRawButton', function () {
- before(function () {
- cleanup();
- });
- it(
- 'hides the raw text button',
- function () {
- var results = [];
- $('body').html(
- '<nav><div id="navbar"><ul><li><button ' +
- 'id="rawtextbutton" type="button" class="btn ' +
- 'btn-warning navbar-btn"><span class="glyphicon ' +
- 'glyphicon-text-background" aria-hidden="true"></span> ' +
- 'Raw text</button></li></ul></div></nav>'
- );
- $.PrivateBin.TopNav.init();
- results.push(
- !$('#rawtextbutton').hasClass('hidden')
- );
- $.PrivateBin.TopNav.hideRawButton();
- results.push(
- $('#rawtextbutton').hasClass('hidden')
- );
- cleanup();
- assert.ok(results.every(element => element));
- }
- );
- });
- describe('hideFileSelector', function () {
- before(function () {
- cleanup();
- });
- it(
- 'hides the file attachment selection button',
- function () {
- var results = [];
- $('body').html(
- '<nav><div id="navbar"><ul><li id="attach" class="hidden ' +
- 'dropdown"><a href="#" class="dropdown-toggle" data-' +
- 'toggle="dropdown" role="button" aria-haspopup="true" ' +
- 'aria-expanded="false">Attach a file <span class="caret">' +
- '</span></a><ul class="dropdown-menu"><li id="filewrap">' +
- '<div><input type="file" id="file" name="file" /></div>' +
- '</li><li id="customattachment" class="hidden"></li><li>' +
- '<a id="fileremovebutton" href="#">Remove attachment</a>' +
- '</li></ul></li></ul></div></nav>'
- );
- $.PrivateBin.TopNav.init();
- results.push(
- !$('#filewrap').hasClass('hidden')
- );
- $.PrivateBin.TopNav.hideFileSelector();
- results.push(
- $('#filewrap').hasClass('hidden')
- );
- cleanup();
- assert.ok(results.every(element => element));
- }
- );
- });
- describe('showCustomAttachment', function () {
- before(function () {
- cleanup();
- });
- it(
- 'display the custom file attachment',
- function () {
- var results = [];
- $('body').html(
- '<nav><div id="navbar"><ul><li id="attach" class="hidden ' +
- 'dropdown"><a href="#" class="dropdown-toggle" data-' +
- 'toggle="dropdown" role="button" aria-haspopup="true" ' +
- 'aria-expanded="false">Attach a file <span class="caret">' +
- '</span></a><ul class="dropdown-menu"><li id="filewrap">' +
- '<div><input type="file" id="file" name="file" /></div>' +
- '</li><li id="customattachment" class="hidden"></li><li>' +
- '<a id="fileremovebutton" href="#">Remove attachment</a>' +
- '</li></ul></li></ul></div></nav>'
- );
- $.PrivateBin.TopNav.init();
- results.push(
- $('#customattachment').hasClass('hidden')
- );
- $.PrivateBin.TopNav.showCustomAttachment();
- results.push(
- !$('#customattachment').hasClass('hidden')
- );
- cleanup();
- assert.ok(results.every(element => element));
- }
- );
- });
- describe('collapseBar', function () {
- before(function () {
- cleanup();
- });
- it(
- 'collapses the navigation when displayed on a small screen',
- function () {
- var clean = jsdom(),
- results = [];
- $('body').html(
- '<nav><div class="navbar-header"><button type="button" ' +
- 'class="navbar-toggle collapsed" data-toggle="collapse" ' +
- 'data-target="#navbar" aria-expanded="false" aria-controls' +
- '="navbar">Toggle navigation</button><a class="reloadlink ' +
- 'navbar-brand" href=""><img alt="PrivateBin" ' +
- 'src="img/icon.svg" width="38" /></a></div><div ' +
- 'id="navbar"><ul><li><button id="newbutton" type=' +
- '"button" class="hidden">New</button></li></ul></div></nav>'
- );
- $.PrivateBin.TopNav.init();
- results.push(
- $('.navbar-toggle').hasClass('collapsed') &&
- $('#navbar').attr('aria-expanded') != 'true'
- );
- $.PrivateBin.TopNav.collapseBar();
- results.push(
- $('.navbar-toggle').hasClass('collapsed') &&
- $('#navbar').attr('aria-expanded') != 'true'
- );
- /*
- with the upgrade for bootstrap-3.3.7.js to bootstrap-3.4.1.js
- the mobile interface detection changed to check if the
- ontouchstart event exists, which broke this section of the test
- $('.navbar-toggle').trigger('click');
- results.push(
- !$('.navbar-toggle').hasClass('collapsed') &&
- $('#navbar').attr('aria-expanded') == 'true'
- );
- $.PrivateBin.TopNav.collapseBar();
- results.push(
- $('.navbar-toggle').hasClass('collapsed') &&
- $('#navbar').attr('aria-expanded') == 'false'
- );
- */
- clean();
- assert.ok(results.every(element => element));
- }
- );
- });
- describe('resetInput', function () {
- before(function () {
- cleanup();
- });
- it(
- 'reset inputs to defaults (options off)',
- function () {
- var results = [];
- $('body').html(
- '<nav><div id="navbar"><ul><li id="burnafterreadingoption" ' +
- 'class="hidden"><label><input type="checkbox" ' +
- 'id="burnafterreading" name="burnafterreading" /> ' +
- 'Burn after reading</label></li><li id="opendiscussionoption" ' +
- 'class="hidden"><label><input type="checkbox" ' +
- 'id="opendiscussion" name="opendiscussion" /> ' +
- 'Open discussion</label></li></ul></div></nav>'
- );
- $.PrivateBin.TopNav.init();
- results.push(
- !$.PrivateBin.TopNav.getBurnAfterReading()
- );
- results.push(
- !$.PrivateBin.TopNav.getOpenDiscussion()
- );
- $('#burnafterreading').attr('checked', 'checked');
- $('#opendiscussion').attr('checked', 'checked');
- results.push(
- $.PrivateBin.TopNav.getBurnAfterReading()
- );
- results.push(
- $.PrivateBin.TopNav.getOpenDiscussion()
- );
- $.PrivateBin.TopNav.resetInput();
- results.push(
- !$.PrivateBin.TopNav.getBurnAfterReading()
- );
- results.push(
- !$.PrivateBin.TopNav.getOpenDiscussion()
- );
- cleanup();
- assert.ok(results.every(element => element));
- }
- );
- it(
- 'reset inputs to defaults (burnafterreading on)',
- function () {
- var results = [];
- $('body').html(
- '<nav><div id="navbar"><ul><li id="burnafterreadingoption" ' +
- 'class="hidden"><label><input type="checkbox" ' +
- 'id="burnafterreading" name="burnafterreading" checked="checked" /> ' +
- 'Burn after reading</label></li><li id="opendiscussionoption" ' +
- 'class="hidden"><label><input type="checkbox" ' +
- 'id="opendiscussion" name="opendiscussion" checked="checked" /> ' +
- 'Open discussion</label></li></ul></div></nav>'
- );
- $.PrivateBin.TopNav.init();
- results.push(
- $.PrivateBin.TopNav.getBurnAfterReading()
- );
- results.push(
- !$.PrivateBin.TopNav.getOpenDiscussion()
- );
- $('#burnafterreading').removeAttr('checked');
- results.push(
- !$.PrivateBin.TopNav.getBurnAfterReading()
- );
- results.push(
- !$.PrivateBin.TopNav.getOpenDiscussion()
- );
- $.PrivateBin.TopNav.resetInput();
- results.push(
- $.PrivateBin.TopNav.getBurnAfterReading()
- );
- results.push(
- !$.PrivateBin.TopNav.getOpenDiscussion()
- );
- cleanup();
- assert.ok(results.every(element => element));
- }
- );
- it(
- 'reset inputs to defaults (opendiscussion on)',
- function () {
- var results = [];
- $('body').html(
- '<nav><div id="navbar"><ul><li id="burnafterreadingoption" ' +
- 'class="hidden"><label><input type="checkbox" ' +
- 'id="burnafterreading" name="burnafterreading" /> ' +
- 'Burn after reading</label></li><li id="opendiscussionoption" ' +
- 'class="hidden"><label><input type="checkbox" ' +
- 'id="opendiscussion" name="opendiscussion" checked="checked" /> ' +
- 'Open discussion</label></li></ul></div></nav>'
- );
- $.PrivateBin.TopNav.init();
- results.push(
- !$.PrivateBin.TopNav.getBurnAfterReading()
- );
- results.push(
- $.PrivateBin.TopNav.getOpenDiscussion()
- );
- $('#opendiscussion').removeAttr('checked');
- $('#burnafterreading').prop('checked', true);
- results.push(
- $.PrivateBin.TopNav.getBurnAfterReading()
- );
- results.push(
- !$.PrivateBin.TopNav.getOpenDiscussion()
- );
- $.PrivateBin.TopNav.resetInput();
- results.push(
- !$.PrivateBin.TopNav.getBurnAfterReading()
- );
- results.push(
- $.PrivateBin.TopNav.getOpenDiscussion()
- );
- cleanup();
- assert.ok(results.every(element => element));
- }
- );
- });
- describe('getExpiration', function () {
- before(function () {
- cleanup();
- });
- it(
- 'returns the currently selected expiration date',
- function () {
- $('body').html(
- '<select id="pasteExpiration" name="pasteExpiration">' +
- '<option value="1day">1 day</option>' +
- '<option value="never">Never</option></select>'
- );
- $.PrivateBin.TopNav.init();
- assert.ok($.PrivateBin.TopNav.getExpiration() === '1day');
- cleanup();
- }
- );
- });
- describe('getFileList', function () {
- before(function () {
- cleanup();
- });
- var File = window.File,
- FileList = window.FileList,
- path = require('path'),
- mime = require('mime-types');
- // mocking file input as per https://github.com/jsdom/jsdom/issues/1272
- function createFile(file_path) {
- var file = fs.statSync(file_path),
- lastModified = file.mtimeMs,
- size = file.size;
- return new File(
- [new fs.readFileSync(file_path)],
- path.basename(file_path),
- {
- lastModified,
- type: mime.lookup(file_path) || '',
- }
- )
- }
- function addFileList(input, file_paths) {
- if (typeof file_paths === 'string')
- file_paths = [file_paths]
- else if (!Array.isArray(file_paths)) {
- throw new Error('file_paths needs to be a file path string or an Array of file path strings')
- }
- const file_list = file_paths.map(fp => createFile(fp))
- file_list.__proto__ = Object.create(FileList.prototype)
- Object.defineProperty(input, 'files', {
- value: file_list,
- writeable: false,
- })
- return input
- }
- it(
- 'returns the selected files',
- function () {
- var results = [];
- $('body').html(
- '<nav><div id="navbar"><ul><li id="attach" class="hidden ' +
- 'dropdown"><a href="#" class="dropdown-toggle" data-' +
- 'toggle="dropdown" role="button" aria-haspopup="true" ' +
- 'aria-expanded="false">Attach a file <span class="caret">' +
- '</span></a><ul class="dropdown-menu"><li id="filewrap">' +
- '<div><input type="file" id="file" name="file" /></div>' +
- '</li><li id="customattachment" class="hidden"></li><li>' +
- '<a id="fileremovebutton" href="#">Remove attachment</a>' +
- '</li></ul></li></ul></div></nav>'
- );
- $.PrivateBin.TopNav.init();
- results.push(
- $.PrivateBin.TopNav.getFileList() === null
- );
- addFileList($('#file')[0], [
- '../img/logo.svg',
- '../img/busy.gif'
- ]);
- var files = $.PrivateBin.TopNav.getFileList();
- results.push(
- files[0].name === 'logo.svg' &&
- files[1].name === 'busy.gif'
- );
- cleanup();
- assert.ok(results.every(element => element));
- }
- );
- });
- describe('getBurnAfterReading', function () {
- before(function () {
- cleanup();
- });
- it(
- 'returns if the burn-after-reading checkbox was ticked',
- function () {
- var results = [];
- $('body').html(
- '<nav><div id="navbar"><ul><li id="burnafterreadingoption" ' +
- 'class="hidden"><label><input type="checkbox" ' +
- 'id="burnafterreading" name="burnafterreading" /> ' +
- 'Burn after reading</label></li></ul></div></nav>'
- );
- $.PrivateBin.TopNav.init();
- results.push(
- !$.PrivateBin.TopNav.getBurnAfterReading()
- );
- $('#burnafterreading').attr('checked', 'checked');
- results.push(
- $.PrivateBin.TopNav.getBurnAfterReading()
- );
- $('#burnafterreading').removeAttr('checked');
- results.push(
- !$.PrivateBin.TopNav.getBurnAfterReading()
- );
- cleanup();
- assert.ok(results.every(element => element));
- }
- );
- });
- describe('getOpenDiscussion', function () {
- before(function () {
- cleanup();
- });
- it(
- 'returns if the open-discussion checkbox was ticked',
- function () {
- var results = [];
- $('body').html(
- '<nav><div id="navbar"><ul><li id="opendiscussionoption" ' +
- 'class="hidden"><label><input type="checkbox" ' +
- 'id="opendiscussion" name="opendiscussion" /> ' +
- 'Open discussion</label></li></ul></div></nav>'
- );
- $.PrivateBin.TopNav.init();
- results.push(
- !$.PrivateBin.TopNav.getOpenDiscussion()
- );
- $('#opendiscussion').attr('checked', 'checked');
- results.push(
- $.PrivateBin.TopNav.getOpenDiscussion()
- );
- $('#opendiscussion').removeAttr('checked');
- results.push(
- !$.PrivateBin.TopNav.getOpenDiscussion()
- );
- cleanup();
- assert.ok(results.every(element => element));
- }
- );
- });
- describe('getPassword', function () {
- before(function () {
- cleanup();
- });
- jsc.property(
- 'returns the contents of the password input',
- 'string',
- function (password) {
- password = password.replace(/\r+/g, '');
- var results = [];
- $('body').html(
- '<nav><div id="navbar"><ul><li><div id="password" ' +
- 'class="navbar-form hidden"><input type="password" ' +
- 'id="passwordinput" placeholder="Password (recommended)" ' +
- 'class="form-control" size="23" /></div></li></ul></div></nav>'
- );
- $.PrivateBin.TopNav.init();
- results.push(
- $.PrivateBin.TopNav.getPassword() === ''
- );
- $('#passwordinput').val(password);
- results.push(
- $.PrivateBin.TopNav.getPassword() === password
- );
- $('#passwordinput').val('');
- results.push(
- $.PrivateBin.TopNav.getPassword() === ''
- );
- cleanup();
- return results.every(element => element);
- }
- );
- });
- describe('getCustomAttachment', function () {
- before(function () {
- cleanup();
- });
- it(
- 'returns the custom attachment element',
- function () {
- var results = [];
- $('body').html(
- '<nav><div id="navbar"><ul><li id="attach" class="hidden ' +
- 'dropdown"><a href="#" class="dropdown-toggle" data-' +
- 'toggle="dropdown" role="button" aria-haspopup="true" ' +
- 'aria-expanded="false">Attach a file <span class="caret">' +
- '</span></a><ul class="dropdown-menu"><li id="filewrap">' +
- '<div><input type="file" id="file" name="file" /></div>' +
- '</li><li id="customattachment" class="hidden"></li><li>' +
- '<a id="fileremovebutton" href="#">Remove attachment</a>' +
- '</li></ul></li></ul></div></nav>'
- );
- $.PrivateBin.TopNav.init();
- results.push(
- !$.PrivateBin.TopNav.getCustomAttachment().hasClass('test')
- );
- $('#customattachment').addClass('test');
- results.push(
- $.PrivateBin.TopNav.getCustomAttachment().hasClass('test')
- );
- cleanup();
- assert.ok(results.every(element => element));
- }
- );
- });
- describe('hideAllButtons', function () {
- before(function () {
- cleanup();
- });
- it(
- 'hides all buttons correctly',
- function () {
- // Insert any setup code needed for the hideAllButtons function
- // Example: Initialize the DOM elements required for testing
- $('body').html(
- '<nav class="navbar navbar-inverse navbar-static-top">' +
- '<div id="navbar" class="navbar-collapse collapse"><ul ' +
- 'class="nav navbar-nav"><li><button id="newbutton" ' +
- 'type="button" class="hidden btn btn-warning navbar-btn">' +
- '<span class="glyphicon glyphicon-file" aria-hidden="true">' +
- '</span> New</button><button id="clonebutton" type="button"' +
- ' class="hidden btn btn-warning navbar-btn">' +
- '<span class="glyphicon glyphicon-duplicate" ' +
- 'aria-hidden="true"></span> Clone</button><button ' +
- 'id="rawtextbutton" type="button" class="hidden btn ' +
- 'btn-warning navbar-btn"><span class="glyphicon ' +
- 'glyphicon-text-background" aria-hidden="true"></span> ' +
- 'Raw text</button><button id="qrcodelink" type="button" ' +
- 'data-toggle="modal" data-target="#qrcodemodal" ' +
- 'class="hidden btn btn-warning navbar-btn"><span ' +
- 'class="glyphicon glyphicon-qrcode" aria-hidden="true">' +
- '</span> QR code</button></li></ul></div></nav>'
- );
- $.PrivateBin.TopNav.init();
- $.PrivateBin.TopNav.hideAllButtons();
- assert.ok($('#newbutton').hasClass('hidden'));
- assert.ok($('#clonebutton').hasClass('hidden'));
- assert.ok($('#rawtextbutton').hasClass('hidden'));
- assert.ok($('#qrcodelink').hasClass('hidden'));
- cleanup();
- }
- );
- });
- describe('rawText', function () {
- before(function () {
- cleanup();
- });
- it(
- 'displays raw text view correctly',
- function () {
- const clean = jsdom('', {url: 'https://privatebin.net/?0123456789abcdef#0'});
- global.URL = require('jsdom-url').URL;
- $('body').html('<button id="rawtextbutton"></button>');
- const sample = 'example';
- $.PrivateBin.PasteViewer.setText(sample);
- $.PrivateBin.Helper.reset();
- $.PrivateBin.TopNav.init();
- $('#rawtextbutton').click();
- assert.equal($('pre').text(), sample);
- clean();
- }
- );
- });
- });
|