8
0
Mgsy 7 лет назад
Родитель
Сommit
84bd76d413
1 измененных файлов с 81 добавлено и 2 удалено
  1. 81 2
      packages/ckeditor5-engine/tests/model/operation/transform/wrap.js

+ 81 - 2
packages/ckeditor5-engine/tests/model/operation/transform/wrap.js

@@ -43,7 +43,7 @@ describe( 'transform', () => {
 				expectClients( '<blockQuote><paragraph>Foo</paragraph></blockQuote>' );
 			} );
 
-			it( 'intersecting wrap', () => {
+			it( 'intersecting wrap #1', () => {
 				john.setData( '[<paragraph>Foo</paragraph><paragraph>Bar</paragraph>]<paragraph>Abc</paragraph>' );
 				kate.setData( '<paragraph>Foo</paragraph>[<paragraph>Bar</paragraph><paragraph>Abc</paragraph>]' );
 
@@ -62,6 +62,68 @@ describe( 'transform', () => {
 					'</div>'
 				);
 			} );
+
+			it.skip( 'intersecting wrap #2', () => {
+				john.setData( '<paragraph>[Foo]</paragraph>' );
+				kate.setData( '<paragraph>F[o]o</paragraph>' );
+
+				john.wrap( 'div' );
+				kate.wrap( 'div' );
+
+				syncClients();
+
+				expectClients( '<paragraph><div>Foo</div></pragraph>');
+			} );
+
+			it.skip( 'intersecting wrap, then undo #1', () => {
+				john.setData( '[<paragraph>Foo</paragraph><paragraph>Bar</paragraph>]<paragraph>Abc</paragraph>' );
+				kate.setData( '<paragraph>Foo</paragraph>[<paragraph>Bar</paragraph><paragraph>Abc</paragraph>]' );
+
+				john.wrap( 'blockQuote' );
+				kate.wrap( 'div' );
+
+				syncClients();
+
+				john.undo();
+				kate.undo();
+
+				syncClients();
+
+				expectClients(
+					'<paragraph>Foo</paragraph>' +
+					'<paragraph>Bar</paragraph>' +
+					'<paragraph>Abc</paragraph>'
+				);
+			} );
+
+			it.skip( 'intersecting wrap, then undo #2', () => {
+				john.setData( '<paragraph>[Foo]</paragraph>' );
+				kate.setData( '<paragraph>F[o]o</paragraph>' );
+
+				john.wrap( 'div' );
+				kate.wrap( 'div' );
+
+				syncClients();
+
+				john.undo();
+				kate.undo();
+
+				syncClients();
+
+				expectClients( '<paragraph><div>Foo</div></pragraph>');
+			} );
+
+			it( 'element and text', () => {
+				john.setData( '[<paragraph>Foo</paragraph>]' );
+				kate.setData( '<paragraph>[Foo]</paragraph>' );
+
+				john.wrap( 'blockQuote' );
+				kate.wrap( 'div' );
+
+				syncClients();
+
+				expectClients( '<blockQuote><paragraph><div>Foo</div></paragraph></blockQuote>' );
+			} );
 		} );
 
 		describe( 'by unwrap', () => {
@@ -128,7 +190,7 @@ describe( 'transform', () => {
 		} );
 
 		describe( 'by merge', () => {
-			it( 'element into paragraph', () => {
+			it( 'element into paragraph #1', () => {
 				john.setData( '[<paragraph>Foo</paragraph>]<paragraph>Bar</paragraph>' );
 				kate.setData( '<paragraph>Foo</paragraph>[]<paragraph>Bar</paragraph>' );
 
@@ -140,6 +202,23 @@ describe( 'transform', () => {
 				expectClients( '<blockQuote><paragraph>FooBar</paragraph></blockQuote>' );
 			} );
 
+			it( 'element into paragraph #2', () => {
+				john.setData( '<paragraph>[Foo]</paragraph><paragraph>Bar</paragraph>' );
+				kate.setData( '<paragraph>Foo</paragraph>[]<paragraph>Bar</paragraph>' );
+
+				john.wrap( 'div' );
+				kate.merge();
+
+				syncClients();
+
+				john.undo();
+				kate.undo();
+
+				syncClients();
+
+				expectClients( '<paragraph>Foo</paragraph><paragraph>Bar</paragraph>' );
+			} );
+
 			it.skip( 'element into paragraph, then undo', () => {
 				john.setData( '<paragraph>Foo</paragraph>[<paragraph>Bar</paragraph>]' );
 				kate.setData( '<paragraph>Foo</paragraph>[]<paragraph>Bar</paragraph>' );