mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/VisualEditor
synced 2024-09-27 20:26:46 +00:00
5b168bdbad
Using element.height was returning 0 if the attribute was empty when in fact what we mean to store is null (i.e. auto height). This takes care of the writing of attributes in CE as jQuery ignores an attribute-set command if the value is null. Also in this commit I've implemented a basic toDomElements that outputs the original HTML (code copied from AlienNode). This stops the code from throwing an exception but will eventually need to be rewritten to rebuild the HTML from the attributes stored in the DM. Bug: 56336 Change-Id: I297a1d0a07e9ebf9d0110fb1cdf266f8415f25b7
75 lines
1.9 KiB
JavaScript
75 lines
1.9 KiB
JavaScript
/*!
|
|
* VisualEditor DataModel Converter tests.
|
|
*
|
|
* @copyright 2011-2013 VisualEditor Team and others; see AUTHORS.txt
|
|
* @license The MIT License (MIT); see LICENSE.txt
|
|
*/
|
|
|
|
QUnit.module( 've.dm.Converter' );
|
|
|
|
/* Tests */
|
|
|
|
// TODO rewrite to test getDataElementOrAnnotationFromDomElement
|
|
/*
|
|
QUnit.test( 'getDataElementFromDomElement', 20, function ( assert ) {
|
|
var msg, conversion;
|
|
|
|
for ( msg in ve.dm.example.conversions ) {
|
|
conversion = ve.dm.example.conversions[msg];
|
|
assert.deepEqual(
|
|
ve.dm.converter.getDataElementFromDomElement( conversion.domElement ),
|
|
conversion.dataElement,
|
|
msg
|
|
);
|
|
}
|
|
} );
|
|
*/
|
|
|
|
QUnit.test( 'getDomElementsFromDataElement', 20, function ( assert ) {
|
|
var msg, conversion;
|
|
|
|
for ( msg in ve.dm.example.conversions ) {
|
|
conversion = ve.dm.example.conversions[msg];
|
|
assert.equalDomElement(
|
|
ve.dm.converter.getDomElementsFromDataElement( conversion.dataElement )[0],
|
|
conversion.domElement,
|
|
msg
|
|
);
|
|
}
|
|
} );
|
|
|
|
QUnit.test( 'getDataFromDom', 50, function ( assert ) {
|
|
var msg,
|
|
cases = ve.dm.example.domToDataCases;
|
|
|
|
// TODO: this is a hack to make normal heading/preformatted
|
|
// nodes the most recently registered, instead of the MW versions
|
|
ve.dm.modelRegistry.register( ve.dm.HeadingNode );
|
|
ve.dm.modelRegistry.register( ve.dm.PreformattedNode );
|
|
|
|
for ( msg in cases ) {
|
|
if ( cases[msg].html !== null ) {
|
|
ve.dm.example.preprocessAnnotations( cases[msg].data );
|
|
assert.deepEqual(
|
|
ve.dm.converter.getDataFromDom( ve.createDocumentFromHTML( cases[msg].html ) ),
|
|
cases[msg].data,
|
|
msg
|
|
);
|
|
}
|
|
}
|
|
} );
|
|
|
|
QUnit.test( 'getDomFromData', 54, function ( assert ) {
|
|
var msg,
|
|
cases = ve.dm.example.domToDataCases;
|
|
|
|
for ( msg in cases ) {
|
|
ve.dm.example.preprocessAnnotations( cases[msg].data );
|
|
assert.equalDomElement(
|
|
ve.dm.converter.getDomFromData( cases[msg].data ),
|
|
ve.createDocumentFromHTML( cases[msg].normalizedHtml || cases[msg].html ),
|
|
msg
|
|
);
|
|
}
|
|
} );
|