blockquotes.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. /**
  2. * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  3. * For licensing, see LICENSE.md.
  4. */
  5. import { testDataProcessor as test } from 'ckeditor5-markdown-gfm/tests/_utils/utils';
  6. describe( 'GFMDataProcessor', () => {
  7. describe( 'blockquotes', () => {
  8. it( 'should process single blockquotes', () => {
  9. test(
  10. '> foo bar',
  11. // GitHub is rendering as:
  12. //
  13. // <blockquote>
  14. // <p>foo bar</p>
  15. // </blockquote>
  16. '<blockquote><p>foo bar</p></blockquote>'
  17. );
  18. } );
  19. it( 'should process nested blockquotes', () => {
  20. test(
  21. '> foo\n' +
  22. '> \n' +
  23. '> > bar\n' +
  24. '> \n' +
  25. '> foo',
  26. // GitHub is rendering as:
  27. // <blockquote>
  28. // <p>foo</p>
  29. //
  30. // <blockquote>
  31. // <p>bar</p>
  32. // </blockquote>
  33. //
  34. // <p>foo</p>
  35. // </blockquote>
  36. '<blockquote>' +
  37. '<p>foo</p>' +
  38. '<blockquote>' +
  39. '<p>bar</p>' +
  40. '</blockquote>' +
  41. '<p>foo</p>' +
  42. '</blockquote>'
  43. );
  44. } );
  45. it( 'should process list within a blockquote', () => {
  46. test(
  47. '> A list within a blockquote:\n' +
  48. '> \n' +
  49. '> * asterisk 1\n' +
  50. '> * asterisk 2\n' +
  51. '> * asterisk 3',
  52. // GitHub is rendering as:
  53. // <blockquote>
  54. // <p>A list within a blockquote:</p>
  55. //
  56. // <ul>
  57. // <li>asterisk 1</li>
  58. // <li>asterisk 2</li>
  59. // <li>asterisk 3</li>
  60. // </ul>
  61. // </blockquote>
  62. '<blockquote>' +
  63. '<p>A list within a blockquote:</p>' +
  64. '<ul>' +
  65. '<li>asterisk 1</li>' +
  66. '<li>asterisk 2</li>' +
  67. '<li>asterisk 3</li>' +
  68. '</ul>' +
  69. '</blockquote>'
  70. );
  71. } );
  72. it( 'should process blockquotes with code inside with ```', () => {
  73. test(
  74. '> Example 1:\n' +
  75. '> \n' +
  76. '> ```\n' +
  77. '> code 1\n' +
  78. '> ```\n' +
  79. '> \n' +
  80. '> Example 2:\n' +
  81. '> \n' +
  82. '> ```\n' +
  83. '> code 2\n' +
  84. '> ```',
  85. // GitHub is rendering as:
  86. // <blockquote>
  87. // <p>Example 1:</p>
  88. //
  89. // <pre><code>code 1
  90. // </code></pre>
  91. //
  92. // <p>Example 2:</p>
  93. //
  94. // <pre><code>code 2
  95. // </code></pre>
  96. // </blockquote>
  97. '<blockquote>' +
  98. '<p>Example 1:</p>' +
  99. '<pre>' +
  100. '<code>' +
  101. 'code 1' +
  102. '</code>' +
  103. '</pre>' +
  104. '<p>Example 2:</p>' +
  105. '<pre>' +
  106. '<code>' +
  107. 'code 2' +
  108. '</code>' +
  109. '</pre>' +
  110. '</blockquote>'
  111. );
  112. } );
  113. it( 'should process blockquotes with code inside with tabs', () => {
  114. test(
  115. '> Example 1:\n' +
  116. '>\n' +
  117. '> code 1\n' +
  118. '>\n' +
  119. '> Example 2:\n' +
  120. '>\n' +
  121. '> code 2\n',
  122. // GitHub is rendering as:
  123. // <blockquote>
  124. // <p>Example 1:</p>
  125. //
  126. // <pre><code>code 1
  127. // </code></pre>
  128. //
  129. // <p>Example 2:</p>
  130. //
  131. // <pre><code>code 2
  132. // </code></pre>
  133. // </blockquote>
  134. '<blockquote>' +
  135. '<p>Example 1:</p>' +
  136. '<pre>' +
  137. '<code>' +
  138. 'code 1' +
  139. '</code>' +
  140. '</pre>' +
  141. '<p>Example 2:</p>' +
  142. '<pre>' +
  143. '<code>' +
  144. 'code 2' +
  145. '</code>' +
  146. '</pre>' +
  147. '</blockquote>',
  148. // When converting back to data, DataProcessor will normalize tabs to ```.
  149. '> Example 1:\n' +
  150. '> \n' +
  151. '> ```\n' +
  152. '> code 1\n' +
  153. '> ```\n' +
  154. '> \n' +
  155. '> Example 2:\n' +
  156. '> \n' +
  157. '> ```\n' +
  158. '> code 2\n' +
  159. '> ```'
  160. );
  161. } );
  162. } );
  163. } );