| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
- * For licensing, see LICENSE.md.
- */
- import MarkdownDataProcessor from '/ckeditor5/markdown-gfm/gfmdataprocessor.js';
- import { stringify, parse } from '/tests/engine/_utils/view.js';
- describe( 'GFMDataProcessor', () => {
- let dataProcessor;
- beforeEach( () => {
- dataProcessor = new MarkdownDataProcessor();
- } );
- describe( 'blockquotes', () => {
- describe( 'toView', () => {
- it( 'should process single blockquotes', () => {
- const viewFragment = dataProcessor.toView( '> foo bar' );
- expect( stringify( viewFragment ) ).to.equal( '<blockquote><p>foo bar</p></blockquote>' );
- } );
- it( 'should process nested blockquotes', () => {
- const viewFragment = dataProcessor.toView( '> foo\n>\n> > bar\n>\n> foo\n' );
- expect( stringify( viewFragment ) ).to.equal( '<blockquote><p>foo</p><blockquote><p>bar</p></blockquote><p>foo</p></blockquote>' );
- } );
- it( 'should process list within a blockquote', () => {
- const viewFragment = dataProcessor.toView(
- '> A list within a blockquote:\n' +
- '> \n' +
- '> * asterisk 1\n' +
- '> * asterisk 2\n' +
- '> * asterisk 3\n'
- );
- expect( stringify( viewFragment ) ).to.equal(
- '<blockquote>' +
- '<p>A list within a blockquote:</p>' +
- '<ul>' +
- '<li>asterisk 1</li>' +
- '<li>asterisk 2</li>' +
- '<li>asterisk 3</li>' +
- '</ul>' +
- '</blockquote>'
- );
- } );
- it( 'should process blockquotes with code inside', () => {
- const viewFragment = dataProcessor.toView(
- '> Example 1:\n' +
- '>\n' +
- '> sub status {\n' +
- '> print "working";\n' +
- '> }\n' +
- '>\n' +
- '> Example 2:\n' +
- '>\n' +
- '> sub status {\n' +
- '> return "working";\n' +
- '> }\n'
- );
- expect( stringify( viewFragment ) ).to.equal(
- '<blockquote>' +
- '<p>Example 1:</p>' +
- '<pre>' +
- '<code>' +
- 'sub status {\n' +
- ' print "working";\n' +
- '}' +
- '</code>' +
- '</pre>' +
- '<p>Example 2:</p>' +
- '<pre>' +
- '<code>' +
- 'sub status {\n' +
- ' return "working";\n' +
- '}' +
- '</code>' +
- '</pre>' +
- '</blockquote>'
- );
- } );
- } );
- describe( 'toData', () => {
- it( 'should process single blockquotes', () => {
- const viewFragment = parse( '<blockquote><p>foo bar</p></blockquote>' );
- expect( dataProcessor.toData( viewFragment ) ).to.equal( '> foo bar' );
- } );
- it( 'should process nested blockquotes', () => {
- const viewFragment = parse(
- '<blockquote>' +
- '<p>foo</p>' +
- '<blockquote>' +
- '<p>bar</p>' +
- '</blockquote>' +
- '<p>foo</p>' +
- '</blockquote>'
- );
- expect( dataProcessor.toData( viewFragment ) ).to.equal(
- '> foo\n' +
- '> \n' +
- '> > bar\n' +
- '> \n' +
- '> foo'
- );
- } );
- it( 'should process list within a blockquote', () => {
- const viewFragment = parse(
- '<blockquote>' +
- '<p>A list within a blockquote:</p>' +
- '<ul>' +
- '<li>asterisk 1</li>' +
- '<li>asterisk 2</li>' +
- '<li>asterisk 3</li>' +
- '</ul>' +
- '</blockquote>'
- );
- expect( dataProcessor.toData( viewFragment ) ).to.equal(
- '> A list within a blockquote:\n' +
- '> \n' +
- '> * asterisk 1\n' +
- '> * asterisk 2\n' +
- '> * asterisk 3'
- );
- } );
- it( 'should process blockquotes with code inside', () => {
- const viewFragment = parse(
- '<blockquote>' +
- '<p>Example 1:</p>' +
- '<pre>' +
- '<code>' +
- 'code' +
- '</code>' +
- '</pre>' +
- '<p>Example 2:</p>' +
- '<pre>' +
- '<code>' +
- 'code' +
- '</code>' +
- '</pre>' +
- '</blockquote>',
- { sameSelectionCharacters: true }
- );
- expect( dataProcessor.toData( viewFragment ) ).to.equal(
- '> Example 1:\n' +
- '> \n' +
- '> ```\n' +
- '> code\n' +
- '> ```\n' +
- '> \n' +
- '> Example 2:\n' +
- '> \n' +
- '> ```\n' +
- '> code\n' +
- '> ```'
- );
- } );
- } );
- } );
- } );
|