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