jenkins-bot has submitted this change and it was merged.

Change subject: Table cursoring tests
......................................................................


Table cursoring tests

Change-Id: I1c20899eb4e7fb45fa386d3e7d260ff09400c6da
---
M tests/ce/ve.ce.Surface.test.js
1 file changed, 139 insertions(+), 2 deletions(-)

Approvals:
  Divec: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/tests/ce/ve.ce.Surface.test.js b/tests/ce/ve.ce.Surface.test.js
index d6be543..366912f 100644
--- a/tests/ce/ve.ce.Surface.test.js
+++ b/tests/ce/ve.ce.Surface.test.js
@@ -1133,6 +1133,145 @@
 
 } );
 
+QUnit.test( 'handleTableArrowKey', function ( assert ) {
+       var i, offsets, selection, table, view, model,
+               fn = function () {},
+               tables = {
+                       mergedCells: {
+                               view: 
ve.test.utils.createSurfaceViewFromDocument(
+                                       ve.dm.example.createExampleDocument( 
'mergedCells' )
+                               ),
+                               tableRange: new ve.Range( 0, 171 )
+                       },
+                       rtl: {
+                               view: ve.test.utils.createSurfaceViewFromHtml(
+                                       '<table style="direction: rtl;">' +
+                                               '<tr><td>1</td><td>2</td></tr>' 
+
+                                               '<tr><td>3</td><td>4</td></tr>' 
+
+                                       '</table>'
+                               ),
+                               tableRange: new ve.Range( 0, 28 )
+                       }
+               },
+               cases = [
+                       {
+                               msg: 'Simple move right',
+                               key: 'RIGHT',
+                               selectionOffsets: [ 0, 0 ],
+                               expectedSelectionOffsets: [ 1, 0, 1, 0 ]
+                       },
+                       {
+                               msg: 'Simple move end',
+                               key: 'END',
+                               selectionOffsets: [ 0, 0 ],
+                               expectedSelectionOffsets: [ 5, 0, 5, 0 ]
+                       },
+                       {
+                               msg: 'Simple move down',
+                               key: 'DOWN',
+                               selectionOffsets: [ 0, 0 ],
+                               expectedSelectionOffsets: [ 0, 1, 0, 1 ]
+                       },
+                       {
+                               msg: 'Simple move page down',
+                               key: 'PAGEDOWN',
+                               selectionOffsets: [ 0, 0 ],
+                               expectedSelectionOffsets: [ 0, 6, 0, 6 ]
+                       },
+                       {
+                               msg: 'Simple move left',
+                               key: 'LEFT',
+                               selectionOffsets: [ 5, 6 ],
+                               expectedSelectionOffsets: [ 4, 6, 4, 6 ]
+                       },
+                       {
+                               msg: 'Simple move home',
+                               key: 'HOME',
+                               selectionOffsets: [ 5, 6 ],
+                               expectedSelectionOffsets: [ 0, 6, 0, 6 ]
+                       },
+                       {
+                               msg: 'Simple move page up',
+                               key: 'PAGEUP',
+                               selectionOffsets: [ 5, 6 ],
+                               expectedSelectionOffsets: [ 5, 0, 5, 0 ]
+                       },
+                       {
+                               msg: 'Move left at start',
+                               key: 'LEFT',
+                               selectionOffsets: [ 0, 0 ],
+                               expectedSelectionOffsets: [ 0, 0, 0, 0 ]
+                       },
+                       {
+                               msg: 'Move up at start',
+                               key: 'UP',
+                               selectionOffsets: [ 0, 0 ],
+                               expectedSelectionOffsets: [ 0, 0, 0, 0 ]
+                       },
+                       {
+                               msg: 'Move right at end',
+                               key: 'RIGHT',
+                               selectionOffsets: [ 5, 6 ],
+                               expectedSelectionOffsets: [ 5, 6, 5, 6 ]
+                       },
+                       {
+                               msg: 'Move down at end',
+                               key: 'DOWN',
+                               selectionOffsets: [ 5, 6 ],
+                               expectedSelectionOffsets: [ 5, 6, 5, 6 ]
+                       },
+                       {
+                               msg: 'Move from merged cell to merged cell',
+                               key: 'RIGHT',
+                               selectionOffsets: [ 1, 1, 2, 1 ],
+                               expectedSelectionOffsets: [ 3, 0, 3, 2 ]
+                       },
+                       {
+                               msg: 'Shift-select through merged cells',
+                               key: 'PAGEDOWN',
+                               shiftKey: true,
+                               selectionOffsets: [ 1, 0, 1, 0 ],
+                               expectedSelectionOffsets: [ 1, 0, 3, 6 ]
+                       },
+                       {
+                               msg: 'Expanded selection collapses',
+                               key: 'DOWN',
+                               selectionOffsets: [ 0, 0, 2, 0 ],
+                               expectedSelectionOffsets: [ 0, 1, 0, 1 ]
+                       },
+                       {
+                               msg: 'Left in RTL table increments column',
+                               table: 'rtl',
+                               key: 'LEFT',
+                               selectionOffsets: [ 0, 0 ],
+                               expectedSelectionOffsets: [ 1, 0, 1, 0 ]
+                       }
+               ];
+
+       QUnit.expect( cases.length );
+
+       for ( i = 0; i < cases.length; i++ ) {
+               offsets = cases[i].selectionOffsets;
+               table = tables[cases[i].table || 'mergedCells'];
+               view = table.view;
+               model = view.getModel();
+               model.setSelection( new ve.dm.TableSelection(
+                       model.getDocument(), table.tableRange, offsets[0], 
offsets[1], offsets[2], offsets[3] )
+               );
+               view.handleTableArrowKey( {
+                       keyCode: OO.ui.Keys[cases[i].key],
+                       shiftKey: !!cases[i].shiftKey,
+                       preventDefault: fn
+               } );
+               selection = model.getSelection();
+               assert.deepEqual(
+                       [ selection.fromCol, selection.fromRow, 
selection.toCol, selection.toRow ],
+                       cases[i].expectedSelectionOffsets,
+                       cases[i].msg
+               );
+       }
+} );
+
 QUnit.test( 'onDocumentDragStart/onDocumentDrop', function ( assert ) {
 
        var i,
@@ -1417,7 +1556,6 @@
 } );
 
 /* Methods with return values */
-// TODO: ve.ce.Surface#needsPawn
 // TODO: ve.ce.Surface#getSurface
 // TODO: ve.ce.Surface#getModel
 // TODO: ve.ce.Surface#getDocument
@@ -1458,7 +1596,6 @@
 // TODO: ve.ce.Surface#handleInsertion
 // TODO: ve.ce.Surface#handleLinearLeftOrRightArrowKey
 // TODO: ve.ce.Surface#handleLinearUpOrDownArrowKey
-// TODO: ve.ce.Surface#handleTableArrowKey
 // TODO: ve.ce.Surface#handleTableDelete
 // TODO: ve.ce.Surface#handleTableEditingEscape
 // TODO: ve.ce.Surface#handleTableEnter

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I1c20899eb4e7fb45fa386d3e7d260ff09400c6da
Gerrit-PatchSet: 2
Gerrit-Project: VisualEditor/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Esanders <[email protected]>
Gerrit-Reviewer: Divec <[email protected]>
Gerrit-Reviewer: Jforrester <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to