Esanders has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/203164

Change subject: Test SurfaceFragment#expandLinearSelection( 'annotation' ...
......................................................................

Test SurfaceFragment#expandLinearSelection( 'annotation' ...

Change-Id: Ibd2352b02ed57107c52a207a405cd5b4032340b4
---
M tests/dm/ve.dm.SurfaceFragment.test.js
1 file changed, 65 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/VisualEditor/VisualEditor 
refs/changes/64/203164/1

diff --git a/tests/dm/ve.dm.SurfaceFragment.test.js 
b/tests/dm/ve.dm.SurfaceFragment.test.js
index 3adcd6d..d976430 100644
--- a/tests/dm/ve.dm.SurfaceFragment.test.js
+++ b/tests/dm/ve.dm.SurfaceFragment.test.js
@@ -95,6 +95,71 @@
        assert.equalRange( collapsedFragment.getSelection().getRange(), new 
ve.Range( 21 ), 'range is at end when collapseToEnd is set' );
 } );
 
+QUnit.test( 'expandLinearSelection (annotation)', function ( assert ) {
+       var i, fragment,
+               doc = ve.dm.example.createExampleDocumentFromData( [
+                       { type: 'paragraph' },
+                       'F', 'o', 'o',
+                       ['b', [ ve.dm.example.bold ]],
+                       ['a', [ ve.dm.example.bold ]],
+                       ['r', [ ve.dm.example.bold ]],
+                       ['b', [ ve.dm.example.bold, ve.dm.example.italic ]],
+                       ['a', [ ve.dm.example.bold, ve.dm.example.italic ]],
+                       ['z', [ ve.dm.example.bold, ve.dm.example.italic ]],
+                       { type: '/paragraph' },
+                       { type: 'internalList' },
+                       { type: '/internalList' }
+               ] ),
+               surface = new ve.dm.Surface( doc ),
+               cases = [
+                       {
+                               msg: 'expands to bold annotation',
+                               annotation: ve.dm.example.bold,
+                               range: new ve.Range( 5, 6 ),
+                               expected: new ve.Range( 4, 10 )
+                       },
+                       {
+                               msg: 'direction preserved',
+                               annotation: ve.dm.example.bold,
+                               range: new ve.Range( 6, 5 ),
+                               expected: new ve.Range( 10, 4 )
+                       },
+                       {
+                               msg: 'overlaps existing selection',
+                               annotation: ve.dm.example.bold,
+                               range: new ve.Range( 2, 7 ),
+                               expected: new ve.Range( 2, 10 )
+                       },
+                       {
+                               msg: 'no change when annotation not present',
+                               annotation: ve.dm.example.italic,
+                               range: new ve.Range( 5, 6 ),
+                               expected: new ve.Range( 5, 6 )
+                       },
+                       {
+                               msg: 'no change when no annotations present',
+                               annotation: ve.dm.example.bold,
+                               range: new ve.Range( 1, 2 ),
+                               expected: new ve.Range( 1, 2 )
+                       },
+                       {
+                               msg: 'matches nested annotation',
+                               annotation: ve.dm.example.italic,
+                               range: new ve.Range( 9, 10 ),
+                               expected: new ve.Range( 7, 10 )
+                       }
+               ];
+
+       QUnit.expect( cases.length );
+       for ( i = 0; i < cases.length; i++ ) {
+               fragment = surface.getLinearFragment( cases[i].range 
).expandLinearSelection(
+                       'annotation',
+                       ve.dm.example.createAnnotation( cases[i].annotation )
+               );
+               assert.equalHash( fragment.getSelection().getRange(), 
cases[i].expected, cases[i].msg );
+       }
+} );
+
 QUnit.test( 'expandLinearSelection (closest)', function ( assert ) {
        var i, fragment, surface,
                doc = ve.dm.example.createExampleDocument(),

-- 
To view, visit https://gerrit.wikimedia.org/r/203164
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ibd2352b02ed57107c52a207a405cd5b4032340b4
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