|
|
@@ -211,6 +211,102 @@ describe( 'transform', () => {
|
|
|
} );
|
|
|
} );
|
|
|
|
|
|
+ describe( 'by remove', () => {
|
|
|
+ it( 'remove the only wrapped element', () => {
|
|
|
+ john.setData( '[<paragraph>Foo</paragraph>]<paragraph>Bar</paragraph>' );
|
|
|
+ kate.setData( '[<paragraph>Foo</paragraph>]<paragraph>Bar</paragraph>' );
|
|
|
+
|
|
|
+ john.wrap( 'blockQuote' );
|
|
|
+ kate.remove();
|
|
|
+
|
|
|
+ syncClients();
|
|
|
+
|
|
|
+ expectClients( '<paragraph>Bar</paragraph>' );
|
|
|
+ } );
|
|
|
+
|
|
|
+ it( 'remove one of two wrapped elements', () => {
|
|
|
+ john.setData( '[<paragraph>Foo</paragraph><paragraph>Bar</paragraph>]' );
|
|
|
+ kate.setData( '[<paragraph>Foo</paragraph>]<paragraph>Bar</paragraph>' );
|
|
|
+
|
|
|
+ john.wrap( 'blockQuote' );
|
|
|
+ kate.remove();
|
|
|
+
|
|
|
+ syncClients();
|
|
|
+
|
|
|
+ expectClients( '<blockQuote><paragraph>Bar</paragraph></blockQuote>' );
|
|
|
+ } );
|
|
|
+
|
|
|
+ it( 'remove all wrapped elements', () => {
|
|
|
+ john.setData( '[<paragraph>Foo</paragraph><paragraph>Bar</paragraph>]<paragraph>Xyz</paragraph>' );
|
|
|
+ kate.setData( '[<paragraph>Foo</paragraph>]<paragraph>Bar</paragraph><paragraph>Xyz</paragraph>' );
|
|
|
+
|
|
|
+ john.wrap( 'blockQuote' );
|
|
|
+
|
|
|
+ kate.remove();
|
|
|
+ kate.setSelection( [ 0 ], [ 1 ] );
|
|
|
+ kate.remove();
|
|
|
+
|
|
|
+ syncClients();
|
|
|
+
|
|
|
+ expectClients( '<paragraph>Xyz</paragraph>' );
|
|
|
+ } );
|
|
|
+
|
|
|
+ it( 'remove the only wrapped element with undo', () => {
|
|
|
+ john.setData( '[<paragraph>Foo</paragraph>]<paragraph>Bar</paragraph>' );
|
|
|
+ kate.setData( '[<paragraph>Foo</paragraph>]<paragraph>Bar</paragraph>' );
|
|
|
+
|
|
|
+ john.wrap( 'blockQuote' );
|
|
|
+ kate.remove();
|
|
|
+
|
|
|
+ syncClients();
|
|
|
+ expectClients( '<paragraph>Bar</paragraph>' );
|
|
|
+
|
|
|
+ john.undo();
|
|
|
+ kate.undo();
|
|
|
+
|
|
|
+ syncClients();
|
|
|
+ expectClients( '<paragraph>Foo</paragraph><paragraph>Bar</paragraph>' );
|
|
|
+ } );
|
|
|
+
|
|
|
+ it( 'remove one of two wrapped elements with undo', () => {
|
|
|
+ john.setData( '[<paragraph>Foo</paragraph><paragraph>Bar</paragraph>]' );
|
|
|
+ kate.setData( '[<paragraph>Foo</paragraph>]<paragraph>Bar</paragraph>' );
|
|
|
+
|
|
|
+ john.wrap( 'blockQuote' );
|
|
|
+ kate.remove();
|
|
|
+
|
|
|
+ syncClients();
|
|
|
+ expectClients( '<blockQuote><paragraph>Bar</paragraph></blockQuote>' );
|
|
|
+
|
|
|
+ john.undo();
|
|
|
+ kate.undo();
|
|
|
+
|
|
|
+ syncClients();
|
|
|
+ expectClients( '<paragraph>Foo</paragraph><paragraph>Bar</paragraph>' );
|
|
|
+ } );
|
|
|
+
|
|
|
+ it( 'remove all wrapped elements with undo', () => {
|
|
|
+ john.setData( '[<paragraph>Foo</paragraph><paragraph>Bar</paragraph>]<paragraph>Xyz</paragraph>' );
|
|
|
+ kate.setData( '[<paragraph>Foo</paragraph>]<paragraph>Bar</paragraph><paragraph>Xyz</paragraph>' );
|
|
|
+
|
|
|
+ john.wrap( 'blockQuote' );
|
|
|
+
|
|
|
+ kate.remove();
|
|
|
+ kate.setSelection( [ 0 ], [ 1 ] );
|
|
|
+ kate.remove();
|
|
|
+
|
|
|
+ syncClients();
|
|
|
+ expectClients( '<paragraph>Xyz</paragraph>' );
|
|
|
+
|
|
|
+ john.undo();
|
|
|
+ kate.undo();
|
|
|
+ kate.undo();
|
|
|
+
|
|
|
+ syncClients();
|
|
|
+ expectClients( '<paragraph>Foo</paragraph><paragraph>Bar</paragraph><paragraph>Xyz</paragraph>' );
|
|
|
+ } );
|
|
|
+ } );
|
|
|
+
|
|
|
describe( 'by merge', () => {
|
|
|
it( 'element into paragraph #1', () => {
|
|
|
john.setData( '[<paragraph>Foo</paragraph>]<paragraph>Bar</paragraph>' );
|