/** * VisualEditor content editable ContentBranchNode tests. * * @copyright 2011-2012 VisualEditor Team and others; see AUTHORS.txt * @license The MIT License (MIT); see LICENSE.txt */ QUnit.module( 've.ce.ContentBranchNode' ); /* Tests */ QUnit.test( 'renderContents', function ( assert ) { var i, len, $rendered, cases = [ { 'data': [ { 'type': 'paragraph' }, 'a', 'b', 'c', { 'type': '/paragraph' } ], 'html': 'abc' }, { 'data': [ { 'type': 'paragraph' }, ['a', [ { 'type': 'textStyle/bold' } ]], ['b', [ { 'type': 'textStyle/bold' } ]], ['c', [ { 'type': 'textStyle/bold' } ]], { 'type': '/paragraph' } ], 'html': 'abc' }, { 'data': [ { 'type': 'paragraph' }, ['a', [ { 'type': 'textStyle/bold' } ]], 'b', ['c', [ { 'type': 'textStyle/italic' } ]], { 'type': '/paragraph' } ], 'html': 'abc' }, { 'data': [ { 'type': 'paragraph' }, ['a', [ { 'type': 'textStyle/bold' }, { 'type': 'textStyle/italic' }, { 'type': 'textStyle/underline' } ]], ['b', [ { 'type': 'textStyle/bold' }, { 'type': 'textStyle/italic' }, { 'type': 'textStyle/underline' } ]], ['c', [ { 'type': 'textStyle/bold' }, { 'type': 'textStyle/italic' }, { 'type': 'textStyle/underline' } ]], { 'type': '/paragraph' } ], 'html': 'abc' }, { 'data': [ { 'type': 'paragraph' }, ['a', [ { 'type': 'textStyle/bold' }, { 'type': 'textStyle/italic' }, { 'type': 'textStyle/underline' } ]], ['b', [ { 'type': 'textStyle/italic' }, { 'type': 'textStyle/underline' }, { 'type': 'textStyle/bold' } ]], ['c', [ { 'type': 'textStyle/underline' }, { 'type': 'textStyle/bold' }, { 'type': 'textStyle/italic' } ]], { 'type': '/paragraph' } ], 'html': 'abc' }, { 'data': [ { 'type': 'paragraph' }, ['a', [ { 'type': 'textStyle/bold' }, { 'type': 'textStyle/italic' }, { 'type': 'textStyle/underline' } ]], 'b', ['c', [ { 'type': 'textStyle/underline' }, { 'type': 'textStyle/bold' }, { 'type': 'textStyle/italic' } ]], { 'type': '/paragraph' } ], 'html': 'abc' }, { 'data': [ { 'type': 'paragraph' }, 'a', 'b', 'c', ['d', [ { 'type': 'textStyle/bold' }, { 'type': 'textStyle/italic' }, { 'type': 'textStyle/underline' } ]], ['e', [ { 'type': 'textStyle/italic' }, { 'type': 'textStyle/underline' }, { 'type': 'textStyle/bold' } ]], ['f', [ { 'type': 'textStyle/underline' }, { 'type': 'textStyle/bold' }, { 'type': 'textStyle/italic' } ]], 'g', 'h', 'i', { 'type': '/paragraph' } ], 'html': 'abcdefghi' }, { 'data': [ { 'type': 'paragraph' }, 'a', 'b', 'c', ['d', [ { 'type': 'textStyle/bold' }, { 'type': 'textStyle/italic' }, { 'type': 'textStyle/underline' } ]], ['e', [ { 'type': 'textStyle/italic' }, { 'type': 'textStyle/underline' } ]], ['f', [ { 'type': 'textStyle/underline' }, { 'type': 'textStyle/bold' }, { 'type': 'textStyle/italic' } ]], 'g', 'h', 'i', { 'type': '/paragraph' } ], 'html': 'abcdefghi' }, { 'data': [ { 'type': 'paragraph' }, 'a', 'b', 'c', ['d', [ { 'type': 'textStyle/italic' }, { 'type': 'textStyle/underline' }, { 'type': 'textStyle/bold' } ]], ['e', [ { 'type': 'textStyle/italic' }, { 'type': 'textStyle/underline' } ]], ['f', [ { 'type': 'textStyle/underline' }, { 'type': 'textStyle/bold' }, { 'type': 'textStyle/italic' } ]], 'g', 'h', 'i', { 'type': '/paragraph' } ], 'html': 'abcdefghi' }, { 'data': [ { 'type': 'paragraph' }, 'a', 'b', 'c', ['d', [ { 'type': 'textStyle/italic' }, { 'type': 'textStyle/underline' }, { 'type': 'textStyle/bold' } ]], ['e', [ { 'type': 'textStyle/bold' }, { 'type': 'textStyle/underline' } ]], ['f', [ { 'type': 'textStyle/underline' }, { 'type': 'textStyle/bold' } ]], 'g', 'h', 'i', { 'type': '/paragraph' } ], 'html': 'abcdefghi' }, { 'data': [ { 'type': 'paragraph' }, 'a', ['b', [ { 'type': 'textStyle/bold' } ]], { 'type': 'MWentity', 'attributes': { 'character': 'c', 'html/typeof': 'mw:Entity' }, 'annotations': [ { 'type': 'textStyle/bold' } ] }, { 'type': '/MWentity' }, ['d', [ { 'type': 'textStyle/bold' } ]], { 'type': 'alienInline', 'attributes': { 'html': 'e' }, 'annotations': [ { 'type': 'textStyle/bold' } ] }, { 'type': '/alienInline' }, { 'type': '/paragraph' } ], 'html': 'abcd
e
' } ]; QUnit.expect( cases.length ); for ( i = 0, len = cases.length; i < len; i++ ) { ve.dm.example.preprocessAnnotations( cases[i].data ); $rendered = ( new ve.ce.ParagraphNode( ( new ve.dm.Document( cases[i].data ) ) .documentNode.getChildren()[0] ) ).renderContents(); assert.deepEqual( $( '
' ).append( $rendered ).html(), cases[i].html ); } } );