module( 've.dm.Converter' ); /* Tests */ test( 'getDataElementFromDomElement', function() { for ( var msg in ve.dm.example.conversions ) { var conversion = ve.dm.example.conversions[msg]; deepEqual( ve.dm.converter.getDataElementFromDomElement( conversion.domElement ), conversion.dataElement, msg ); } } ); test( 'getDomElementFromDataElement', function() { for ( var msg in ve.dm.example.conversions ) { var conversion = ve.dm.example.conversions[msg]; deepEqual( ve.example.getDomElementSummary( ve.dm.converter.getDomElementFromDataElement( conversion.dataElement ) ), ve.example.getDomElementSummary( conversion.domElement ), msg ); } } ); test( 'getDataFromDom', function() { var cases = { 'paragraph with plain text': { 'html': '

abc

', 'data': [ { 'type': 'paragraph' }, 'a', 'b', 'c', { 'type': '/paragraph' } ] }, 'annotated text with bold, italic, underline formatting': { 'html': '

abc

', 'data': [ { 'type': 'paragraph' }, ['a', { '{"type":"textStyle/bold"}': { 'type': 'textStyle/bold' } }], ['b', { '{"type":"textStyle/italic"}': { 'type': 'textStyle/italic' } }], ['c', { '{"type":"textStyle/underline"}': { 'type': 'textStyle/underline' } }], { 'type': '/paragraph' } ] }, 'image': { 'html': '', 'data': [ { 'type': 'image', 'attributes' : { 'html/src' : 'image.png' } }, { 'type' : '/image' } ] }, 'paragraph with alienInline inside': { 'html': '

abc

', 'data': [ { 'type': 'paragraph' }, 'a', { 'type': 'alienInline', 'attributes': { 'html': 'b' } }, { 'type': '/alienInline' }, 'c', { 'type': '/paragraph' } ] }, 'paragraphs with an alienBlock between them': { 'html': '

abc

abc

def

', 'data': [ { 'type': 'paragraph' }, 'a', 'b', 'c', { 'type': '/paragraph' }, { 'type': 'alienBlock', 'attributes': { 'html': '

abc

' } }, { 'type': '/alienBlock' }, { 'type': 'paragraph' }, 'd', 'e', 'f', { 'type': '/paragraph' } ] } }; for ( var msg in cases ) { deepEqual( ve.dm.converter.getDataFromDom( $( '
' ).html( cases[msg].html )[0] ), cases[msg].data, msg ); } } );