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="{&quot;typeof&quot;:&quot;h&quot;,&quot;rev&quot;:&quot;g&quot;,'
 +
+                                               
'&quot;resource&quot;:&quot;f&quot;,&quot;rel&quot;:&quot;e&quot;,&quot;property&quot;:&quot;d&quot;,'
 +
+                                               
'&quot;datatype&quot;:&quot;c&quot;,&quot;content&quot;:&quot;b&quot;,&quot;about&quot;:&quot;a&quot;}">'
 +
+                                               '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="{&quot;typeof&quot;:&quot;h&quot;,&quot;rev&quot;:&quot;g&quot;,'
 +
+                                               
'&quot;resource&quot;:&quot;f&quot;,&quot;rel&quot;:&quot;e&quot;,&quot;property&quot;:&quot;d&quot;,'
 +
+                                               
'&quot;datatype&quot;:&quot;c&quot;,&quot;content&quot;:&quot;b&quot;,&quot;about&quot;:&quot;a&quot;}">'
 +
+                                               '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

Reply via email to