diff --git a/modules/ve/test/ce/ve.ce.Surface.test.js b/modules/ve/test/ce/ve.ce.Surface.test.js index eff0e02272..fef4f6e110 100644 --- a/modules/ve/test/ce/ve.ce.Surface.test.js +++ b/modules/ve/test/ce/ve.ce.Surface.test.js @@ -116,6 +116,51 @@ QUnit.test( 'handleDelete', function ( assert ) { QUnit.test( 'onContentChange', function ( assert ) { var i, cases = [ + { + 'prevHtml': '
', + 'prevRange': new ve.Range( 1 ), + 'nextHtml': 'A
', + 'nextRange': new ve.Range( 2 ), + 'expectedOps': [ + [ + { 'type': 'retain', 'length': 1 }, + { + 'type': 'replace', + 'insert': [ 'A' ], + 'remove': [] + }, + { 'type': 'retain', 'length': 3 } + ] + ], + 'msg': 'Simple insertion into empty paragraph' + }, + { + 'prevHtml': 'A
', + 'prevRange': new ve.Range( 1, 2 ), + 'nextHtml': 'B
', + 'nextRange': new ve.Range( 2 ), + 'expectedOps': [ + [ + { 'type': 'retain', 'length': 1 }, + { + 'type': 'replace', + 'insert': [ 'B' ], + 'remove': [] + }, + { 'type': 'retain', 'length': 4 } + ], + [ + { 'type': 'retain', 'length': 2 }, + { + 'type': 'replace', + 'insert': [], + 'remove': [ 'A' ] + }, + { 'type': 'retain', 'length': 3 } + ] + ], + 'msg': 'Simple replace' + }, { 'prevHtml': '', 'prevRange': new ve.Range( 5, 6 ),