Esanders has uploaded a new change for review. https://gerrit.wikimedia.org/r/109255
Change subject: Tests for RDFa attribute preservation ...................................................................... Tests for RDFa attribute preservation Probably should've written these first... Change-Id: Id75c58b3db5b6b6f3c3ff6bea9c96976d44eeeff --- M modules/ve/test/ce/ve.ce.Surface.test.js M modules/ve/test/dm/ve.dm.example.js 2 files changed, 68 insertions(+), 4 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/VisualEditor/VisualEditor refs/changes/55/109255/1 diff --git a/modules/ve/test/ce/ve.ce.Surface.test.js b/modules/ve/test/ce/ve.ce.Surface.test.js index af2395b..8ce93ed 100644 --- a/modules/ve/test/ce/ve.ce.Surface.test.js +++ b/modules/ve/test/ce/ve.ce.Surface.test.js @@ -495,16 +495,32 @@ ], 'expectedOriginalRange': new ve.Range( 1, 6 ), 'expectedBalancedRange': new ve.Range( 1, 6 ), + 'expectedHtml': '<ol><li><p>g</p></li></ol>', 'msg': 'Copy list item' + }, + { + 'doc': 'RDFa', + 'range': new ve.Range( 0, 5 ), + 'expectedData': ve.dm.example.RDFa, + 'expectedOriginalRange': new ve.Range( 0, 5 ), + 'expectedBalancedRange': new ve.Range( 0, 5 ), + 'expectedHtml': + '<p about="a" content="b" datatype="c" property="d" rel="e" resource="f" rev="g" typeof="h" class="i" ' + + 'data-ve-attributes="{"typeof":"h","rev":"g",' + + '"resource":"f","rel":"e","property":"d",' + + '"datatype":"c","content":"b","about":"a"}">' + + 'Foo' + + '</p>', + 'msg': 'RDFa encoded in data-ve-attributes' } ]; - QUnit.expect( cases.length * 4 ); + QUnit.expect( cases.length * 5 ); - function testRunner( doc, range, expectedData, expectedOriginalRange, expectedBalancedRange, msg ) { + function testRunner( doc, range, expectedData, expectedOriginalRange, expectedBalancedRange, expectedHtml, msg ) { var clipboardKey, parts, clipboardIndex, slice, surface = ve.test.utils.createSurfaceFromDocument( - doc || ve.dm.example.createExampleDocument() + ve.dm.example.createExampleDocument( doc ) ), view = surface.getView(), model = surface.getModel(); @@ -525,6 +541,7 @@ assert.deepEqual( slice.data.data, expectedData, msg + ': data' ); assert.deepEqual( slice.originalRange, expectedOriginalRange, msg + ': originalRange' ); assert.deepEqual( slice.balancedRange, expectedBalancedRange, msg + ': balancedRange' ); + assert.deepEqual( view.$pasteTarget.html(), expectedHtml, msg + ': balancedRange' ); surface.destroy(); } @@ -532,7 +549,8 @@ for ( i = 0; i < cases.length; i++ ) { testRunner( cases[i].doc, cases[i].range, cases[i].expectedData, - cases[i].expectedOriginalRange, cases[i].expectedBalancedRange, cases[i].msg + cases[i].expectedOriginalRange, cases[i].expectedBalancedRange, + cases[i].expectedHtml, cases[i].msg ); } @@ -802,6 +820,28 @@ ] ], 'msg': 'Span not empty after style attribute removed is kept' + }, + { + 'range': new ve.Range( 0 ), + 'pasteHtml': + '<p about="ignored" class="i" ' + + 'data-ve-attributes="{"typeof":"h","rev":"g",' + + '"resource":"f","rel":"e","property":"d",' + + '"datatype":"c","content":"b","about":"a"}">' + + 'Foo' + + '</p>', + 'expectedRange': new ve.Range( 5 ), + 'expectedOps': [ + [ + { + 'type': 'replace', + 'insert': ve.dm.example.RDFa.slice( 0, 5 ), + 'remove': [] + }, + { 'type': 'retain', 'length': 9 } + ] + ], + 'msg': 'Preserved RDFa attributes' } ]; diff --git a/modules/ve/test/dm/ve.dm.example.js b/modules/ve/test/dm/ve.dm.example.js index 3e89978..10ee014 100644 --- a/modules/ve/test/dm/ve.dm.example.js +++ b/modules/ve/test/dm/ve.dm.example.js @@ -2875,6 +2875,30 @@ // 246 ]; +ve.dm.example.RDFa = [ + { + 'type': 'paragraph', + 'htmlAttributes': [ { + 'values': { + 'about': 'a', + 'content': 'b', + 'datatype': 'c', + 'property': 'd', + 'rel': 'e', + 'resource': 'f', + 'rev': 'g', + 'typeof': 'h', + // Non-RDFa attribute + 'class': 'i' + } + } ] + }, + 'F', 'o', 'o', + { 'type': '/paragraph' }, + { 'type': 'internalList' }, + { 'type': '/internalList' } +]; + ve.dm.example.UnboldableNode = function ( lenght, element ) { // Parent constructor ve.dm.LeafNode.call( this, 0, element ); -- To view, visit https://gerrit.wikimedia.org/r/109255 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Id75c58b3db5b6b6f3c3ff6bea9c96976d44eeeff Gerrit-PatchSet: 1 Gerrit-Project: VisualEditor/VisualEditor Gerrit-Branch: master Gerrit-Owner: Esanders <esand...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits