showdown.Converter.js 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. /**
  2. * Created by Estevao on 31-05-2015.
  3. */
  4. require('source-map-support').install();
  5. require('chai').should();
  6. require('sinon');
  7. var showdown = require('../bootstrap').showdown;
  8. describe('showdown.Converter', function () {
  9. 'use strict';
  10. describe('option methods', function () {
  11. var converter = new showdown.Converter();
  12. it('setOption() should set option foo=baz', function () {
  13. converter.setOption('foo', 'baz');
  14. });
  15. it('getOption() should get option foo to equal baz', function () {
  16. converter.getOption('foo').should.equal('baz');
  17. });
  18. it('getOptions() should contain foo=baz', function () {
  19. var options = converter.getOptions();
  20. options.should.have.ownProperty('foo');
  21. options.foo.should.equal('baz');
  22. });
  23. });
  24. describe('setFlavor() github', function () {
  25. var converter = new showdown.Converter(),
  26. ghOpts = {
  27. omitExtraWLInCodeBlocks: true,
  28. prefixHeaderId: 'user-content-',
  29. simplifiedAutoLink: true,
  30. literalMidWordUnderscores: true,
  31. strikethrough: true,
  32. tables: true,
  33. tablesHeaderId: true,
  34. ghCodeBlocks: true,
  35. tasklists: true
  36. };
  37. converter.setFlavor('github');
  38. for (var opt in ghOpts) {
  39. if (ghOpts.hasOwnProperty(opt)) {
  40. check(opt, ghOpts[opt]);
  41. }
  42. }
  43. function check(key, val) {
  44. it('should set ' + opt + ' to ' + val, function () {
  45. converter.getOption(key).should.equal(val);
  46. });
  47. }
  48. });
  49. describe('extension methods', function () {
  50. var extObjMock = {
  51. type: 'lang',
  52. filter: function () {}
  53. },
  54. extObjFunc = function () {
  55. return extObjMock;
  56. };
  57. it('addExtension() should add an extension Object', function () {
  58. var converter = new showdown.Converter();
  59. converter.addExtension(extObjMock);
  60. converter.getAllExtensions().language.should.contain(extObjMock);
  61. });
  62. it('addExtension() should unwrap an extension wrapped in a function', function () {
  63. var converter = new showdown.Converter();
  64. converter.addExtension(extObjFunc);
  65. converter.getAllExtensions().language.should.contain(extObjMock);
  66. });
  67. it('useExtension() should use a previous registered extension in showdown', function () {
  68. showdown.extension('foo', extObjMock);
  69. var converter = new showdown.Converter();
  70. converter.useExtension('foo');
  71. converter.getAllExtensions().language.should.contain(extObjMock);
  72. showdown.resetExtensions();
  73. });
  74. });
  75. });