Esanders has uploaded a new change for review.

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


Change subject: ve.ce.Surface.handleEnter tests
......................................................................

ve.ce.Surface.handleEnter tests

Change-Id: Ic30cd4e116029be85822f73dcb84938e641bc4b9
---
M modules/ve/test/ce/ve.ce.Surface.test.js
1 file changed, 124 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor 
refs/changes/29/98529/1

diff --git a/modules/ve/test/ce/ve.ce.Surface.test.js 
b/modules/ve/test/ce/ve.ce.Surface.test.js
index 4eeb46d..6e404b3 100644
--- a/modules/ve/test/ce/ve.ce.Surface.test.js
+++ b/modules/ve/test/ce/ve.ce.Surface.test.js
@@ -16,7 +16,9 @@
                        'backspace': [ 'handleDelete', {}, true ],
                        'delete': [ 'handleDelete', {}, false ],
                        'modifiedBackspace': [ 'handleDelete', { 'ctrlKey': 
true }, true ],
-                       'modifiedDelete': [ 'handleDelete', { 'ctrlKey': true 
}, false ]
+                       'modifiedDelete': [ 'handleDelete', { 'ctrlKey': true 
}, false ],
+                       'enter': [ 'handleEnter', {}, true ],
+                       'modifiedEnter': [ 'handleEnter', { 'shiftKey': true }, 
false ]
                },
                surface = ve.test.utils.createSurfaceFromHtml( html || 
ve.dm.example.html ),
                view = surface.getView(),
@@ -132,6 +134,127 @@
                                },
                                'expectedRange': new ve.Range( 39 ),
                                'msg': 'Focusable node deleted if selected 
first'
+                       }
+               ];
+
+       QUnit.expect( cases.length * 2 );
+
+       for ( i = 0; i < cases.length; i++ ) {
+               ve.test.utils.runSurfaceHandleSpecialKeyTest(
+                       assert, cases[i].html, cases[i].range, 
cases[i].operations,
+                       cases[i].expectedData, cases[i].expectedRange, 
cases[i].msg
+               );
+       }
+} );
+
+QUnit.test( 'handleEnter', function ( assert ) {
+       var i,
+               cases = [
+                       {
+                               'range': new ve.Range( 57 ),
+                               'operations': ['enter'],
+                               'expectedData': function ( data ) {
+                                       data.splice(
+                                               57, 0,
+                                               { 'type': '/paragraph' },
+                                               { 'type': 'paragraph' }
+                                       );
+                               },
+                               'expectedRange': new ve.Range( 59 ),
+                               'msg': 'End of paragraph split by enter'
+                       },
+                       {
+                               'range': new ve.Range( 57 ),
+                               'operations': ['modifiedEnter'],
+                               'expectedData': function ( data ) {
+                                       data.splice(
+                                               57, 0,
+                                               { 'type': '/paragraph' },
+                                               { 'type': 'paragraph' }
+                                       );
+                               },
+                               'expectedRange': new ve.Range( 59 ),
+                               'msg': 'End of paragraph split by modified 
enter'
+                       },
+                       {
+                               'range': new ve.Range( 56 ),
+                               'operations': ['enter'],
+                               'expectedData': function ( data ) {
+                                       data.splice(
+                                               56, 0,
+                                               { 'type': '/paragraph' },
+                                               { 'type': 'paragraph' }
+                                       );
+                               },
+                               'expectedRange': new ve.Range( 58 ),
+                               'msg': 'Start of paragraph split by enter'
+                       },
+                       {
+                               'range': new ve.Range( 3 ),
+                               'operations': ['enter'],
+                               'expectedData': function ( data ) {
+                                       data.splice(
+                                               3, 0,
+                                               { 'type': '/heading' },
+                                               { 'type': 'heading', 
'attributes': { 'level': 1 } }
+                                       );
+                               },
+                               'expectedRange': new ve.Range( 5 ),
+                               'msg': 'Heading split by enter'
+                       },
+                       {
+                               'range': new ve.Range( 1 ),
+                               'operations': ['enter'],
+                               'expectedData': function ( data ) {
+                                       data.splice(
+                                               0, 0,
+                                               { 'type': 'paragraph' },
+                                               { 'type': '/paragraph' }
+                                       );
+                               },
+                               'expectedRange': new ve.Range( 3 ),
+                               'msg': 'Start of heading split into a plain 
paragraph'
+                       },
+                       {
+                               'range': new ve.Range( 4 ),
+                               'operations': ['enter'],
+                               'expectedData': function ( data ) {
+                                       data.splice(
+                                               5, 0,
+                                               { 'type': 'paragraph' },
+                                               { 'type': '/paragraph' }
+                                       );
+                               },
+                               'expectedRange': new ve.Range( 6 ),
+                               'msg': 'End of heading split into a plain 
paragraph'
+                       },
+                       {
+                               'range': new ve.Range( 16 ),
+                               'operations': ['enter'],
+                               'expectedData': function ( data ) {
+                                       data.splice(
+                                               16, 0,
+                                               { 'type': '/paragraph' },
+                                               { 'type': '/listItem' },
+                                               { 'type': 'listItem' },
+                                               { 'type': 'paragraph' }
+                                       );
+                               },
+                               'expectedRange': new ve.Range( 20 ),
+                               'msg': 'List item split by enter'
+                       },
+                       {
+                               'range': new ve.Range( 16 ),
+                               'operations': ['modifiedEnter'],
+                               'expectedData': function ( data ) {
+                                       data.splice(
+                                               16, 0,
+                                               { 'type': '/paragraph' },
+                                               { 'type': 'paragraph' }
+                                       );
+                               },
+                               'expectedRange': new ve.Range( 18 ),
+                               'msg': 'List item not split by modified enter'
                        }
                ];
 
@@ -604,7 +727,6 @@
 // TODO: ve.ce.Surface#handleLeftOrRightArrowKey
 // TODO: ve.ce.Surface#handleUpOrDownArrowKey
 // TODO: ve.ce.Surface#handleInsertion
-// TODO: ve.ce.Surface#handleEnter
 // TODO: ve.ce.Surface#showSelection
 // TODO: ve.ce.Surface#replacePhantoms
 // TODO: ve.ce.Surface#replaceHighlight

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic30cd4e116029be85822f73dcb84938e641bc4b9
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/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