Memory.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. 'use strict';
  2. const common = require('../common');
  3. describe('Memory', function () {
  4. describe('add & refreshList', function () {
  5. this.timeout(30000);
  6. jsc.property(
  7. 'allows adding valid paste URLs',
  8. common.jscSchemas(),
  9. jsc.nearray(common.jscA2zString()),
  10. jsc.array(common.jscQueryString()),
  11. 'string',
  12. function (schema, address, query, fragment) {
  13. const expectedQuery = encodeURI(
  14. query.join('').replace(/^&+|&+$/gm,'')
  15. ),
  16. expected = schema + '://' + address.join('') + '/?' +
  17. expectedQuery + '#' + fragment,
  18. clean = jsdom();
  19. $('body').html(
  20. '<main><div id="sidebar-wrapper"><table><tbody>' +
  21. '</tbody></table></div></main>'
  22. );
  23. // clear cache, then the first cell will match what we add
  24. $.PrivateBin.Memory.init();
  25. $.PrivateBin.Memory.add(expected);
  26. $.PrivateBin.Memory.refreshList();
  27. const result = $('#sidebar-wrapper table tbody tr td')[3].textContent;
  28. clean();
  29. return result === expectedQuery;
  30. }
  31. );
  32. });
  33. describe('init', function () {
  34. it(
  35. 'enables toggling the memory sidebar',
  36. function() {
  37. $('body').html(
  38. '<main><div id="sidebar-wrapper"></div>' +
  39. '<button id="menu-toggle"></button></main>'
  40. );
  41. assert.ok(!$('main').hasClass('toggled'));
  42. $('#menu-toggle').click();
  43. assert.ok(!$('main').hasClass('toggled'));
  44. $.PrivateBin.Memory.init();
  45. assert.ok(!$('main').hasClass('toggled'));
  46. $('#menu-toggle').click();
  47. assert.ok($('main').hasClass('toggled'));
  48. $('#menu-toggle').click();
  49. assert.ok(!$('main').hasClass('toggled'));
  50. }
  51. );
  52. });
  53. });