showdown.Converter.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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('../../dist/showdown.js');
  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('extension methods', function () {
  25. var extObjMock = {
  26. type: 'lang',
  27. filter: function () {}
  28. },
  29. extObjFunc = function () {
  30. return extObjMock;
  31. };
  32. it('addExtension() should add an extension Object', function () {
  33. var converter = new showdown.Converter();
  34. converter.addExtension(extObjMock);
  35. converter.getAllExtensions().language.should.contain(extObjMock);
  36. });
  37. it('addExtension() should unwrap an extension wrapped in a function', function () {
  38. var converter = new showdown.Converter();
  39. converter.addExtension(extObjFunc);
  40. converter.getAllExtensions().language.should.contain(extObjMock);
  41. });
  42. it('useExtension() should use a previous registered extension in showdown', function () {
  43. showdown.extension('foo', extObjMock);
  44. var converter = new showdown.Converter();
  45. converter.useExtension('foo');
  46. converter.getAllExtensions().language.should.contain(extObjMock);
  47. showdown.resetExtensions();
  48. });
  49. });
  50. });