|
@@ -12,6 +12,7 @@ import ViewText from '@ckeditor/ckeditor5-engine/src/view/text';
|
|
|
|
|
|
|
|
import Widget from '../../src/widget';
|
|
import Widget from '../../src/widget';
|
|
|
import WidgetTypeAround from '../../src/widgettypearound/widgettypearound';
|
|
import WidgetTypeAround from '../../src/widgettypearound/widgettypearound';
|
|
|
|
|
+import { TYPE_AROUND_SELECTION_ATTRIBUTE } from '../../src/widgettypearound/utils';
|
|
|
import { toWidget } from '../../src/utils';
|
|
import { toWidget } from '../../src/utils';
|
|
|
|
|
|
|
|
import { setData as setModelData, getData as getModelData } from '@ckeditor/ckeditor5-engine/src/dev-utils/model';
|
|
import { setData as setModelData, getData as getModelData } from '@ckeditor/ckeditor5-engine/src/dev-utils/model';
|
|
@@ -70,14 +71,14 @@ describe( 'WidgetTypeAround', () => {
|
|
|
setModelData( editor.model, '<blockWidget></blockWidget>' );
|
|
setModelData( editor.model, '<blockWidget></blockWidget>' );
|
|
|
|
|
|
|
|
editor.model.change( writer => {
|
|
editor.model.change( writer => {
|
|
|
- writer.setSelectionAttribute( 'widget-type-around', 'foo' );
|
|
|
|
|
|
|
+ writer.setSelectionAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE, 'foo' );
|
|
|
} );
|
|
} );
|
|
|
|
|
|
|
|
- expect( editor.model.document.selection.getAttribute( 'widget-type-around' ) ).to.equal( 'foo' );
|
|
|
|
|
|
|
+ expect( editor.model.document.selection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'foo' );
|
|
|
|
|
|
|
|
editor.plugins.get( WidgetTypeAround ).isEnabled = false;
|
|
editor.plugins.get( WidgetTypeAround ).isEnabled = false;
|
|
|
|
|
|
|
|
- expect( editor.model.document.selection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( editor.model.document.selection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
} );
|
|
} );
|
|
|
} );
|
|
} );
|
|
|
} );
|
|
} );
|
|
@@ -323,7 +324,7 @@ describe( 'WidgetTypeAround', () => {
|
|
|
fireKeyboardEvent( 'arrowright' );
|
|
fireKeyboardEvent( 'arrowright' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo</paragraph>[<blockWidget></blockWidget>]' );
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo</paragraph>[<blockWidget></blockWidget>]' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'before' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'before' );
|
|
|
|
|
|
|
|
const viewWidget = viewRoot.getChild( 1 );
|
|
const viewWidget = viewRoot.getChild( 1 );
|
|
|
|
|
|
|
@@ -340,7 +341,7 @@ describe( 'WidgetTypeAround', () => {
|
|
|
fireKeyboardEvent( 'arrowleft' );
|
|
fireKeyboardEvent( 'arrowleft' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]<paragraph>foo</paragraph>' );
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]<paragraph>foo</paragraph>' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'after' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'after' );
|
|
|
|
|
|
|
|
const viewWidget = viewRoot.getChild( 0 );
|
|
const viewWidget = viewRoot.getChild( 0 );
|
|
|
|
|
|
|
@@ -357,7 +358,7 @@ describe( 'WidgetTypeAround', () => {
|
|
|
fireKeyboardEvent( 'arrowright' );
|
|
fireKeyboardEvent( 'arrowright' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'after' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'after' );
|
|
|
|
|
|
|
|
const viewWidget = viewRoot.getChild( 0 );
|
|
const viewWidget = viewRoot.getChild( 0 );
|
|
|
|
|
|
|
@@ -374,7 +375,7 @@ describe( 'WidgetTypeAround', () => {
|
|
|
fireKeyboardEvent( 'arrowleft' );
|
|
fireKeyboardEvent( 'arrowleft' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'before' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'before' );
|
|
|
|
|
|
|
|
const viewWidget = viewRoot.getChild( 0 );
|
|
const viewWidget = viewRoot.getChild( 0 );
|
|
|
|
|
|
|
@@ -391,7 +392,7 @@ describe( 'WidgetTypeAround', () => {
|
|
|
fireKeyboardEvent( 'arrowright', { shiftKey: true } );
|
|
fireKeyboardEvent( 'arrowright', { shiftKey: true } );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo</paragraph>[<blockWidget></blockWidget>]' );
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo</paragraph>[<blockWidget></blockWidget>]' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'before' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'before' );
|
|
|
|
|
|
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
@@ -403,7 +404,7 @@ describe( 'WidgetTypeAround', () => {
|
|
|
fireKeyboardEvent( 'a' );
|
|
fireKeyboardEvent( 'a' );
|
|
|
fireMutation( 'a' );
|
|
fireMutation( 'a' );
|
|
|
|
|
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>fooa[]</paragraph><blockWidget></blockWidget>' );
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>fooa[]</paragraph><blockWidget></blockWidget>' );
|
|
|
|
|
|
|
|
const viewWidget = viewRoot.getChild( 1 );
|
|
const viewWidget = viewRoot.getChild( 1 );
|
|
@@ -420,7 +421,7 @@ describe( 'WidgetTypeAround', () => {
|
|
|
|
|
|
|
|
fireKeyboardEvent( 'arrowright' );
|
|
fireKeyboardEvent( 'arrowright' );
|
|
|
|
|
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
|
|
|
|
|
const viewWidget = viewRoot.getChild( 1 );
|
|
const viewWidget = viewRoot.getChild( 1 );
|
|
|
|
|
|
|
@@ -436,7 +437,7 @@ describe( 'WidgetTypeAround', () => {
|
|
|
|
|
|
|
|
fireKeyboardEvent( 'arrowleft' );
|
|
fireKeyboardEvent( 'arrowleft' );
|
|
|
|
|
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
|
|
|
|
|
const viewWidget = viewRoot.getChild( 0 );
|
|
const viewWidget = viewRoot.getChild( 0 );
|
|
|
|
|
|
|
@@ -452,7 +453,7 @@ describe( 'WidgetTypeAround', () => {
|
|
|
|
|
|
|
|
fireKeyboardEvent( 'arrowright' );
|
|
fireKeyboardEvent( 'arrowright' );
|
|
|
|
|
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
|
|
|
|
|
const viewWidget = viewRoot.getChild( 1 );
|
|
const viewWidget = viewRoot.getChild( 1 );
|
|
|
|
|
|
|
@@ -468,7 +469,7 @@ describe( 'WidgetTypeAround', () => {
|
|
|
|
|
|
|
|
fireKeyboardEvent( 'arrowleft' );
|
|
fireKeyboardEvent( 'arrowleft' );
|
|
|
|
|
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
|
|
|
|
|
const viewWidget = viewRoot.getChild( 0 );
|
|
const viewWidget = viewRoot.getChild( 0 );
|
|
|
|
|
|
|
@@ -504,7 +505,7 @@ describe( 'WidgetTypeAround', () => {
|
|
|
fireKeyboardEvent( 'arrowleft' );
|
|
fireKeyboardEvent( 'arrowleft' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo</paragraph>[<blockWidget></blockWidget>]' );
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo</paragraph>[<blockWidget></blockWidget>]' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'before' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'before' );
|
|
|
|
|
|
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
@@ -512,7 +513,7 @@ describe( 'WidgetTypeAround', () => {
|
|
|
fireKeyboardEvent( 'arrowleft' );
|
|
fireKeyboardEvent( 'arrowleft' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo[]</paragraph><blockWidget></blockWidget>' );
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo[]</paragraph><blockWidget></blockWidget>' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
|
|
|
|
|
const viewWidget = viewRoot.getChild( 1 );
|
|
const viewWidget = viewRoot.getChild( 1 );
|
|
|
|
|
|
|
@@ -529,7 +530,7 @@ describe( 'WidgetTypeAround', () => {
|
|
|
fireKeyboardEvent( 'arrowright' );
|
|
fireKeyboardEvent( 'arrowright' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]<paragraph>foo</paragraph>' );
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]<paragraph>foo</paragraph>' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'after' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'after' );
|
|
|
|
|
|
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
@@ -537,7 +538,7 @@ describe( 'WidgetTypeAround', () => {
|
|
|
fireKeyboardEvent( 'arrowright' );
|
|
fireKeyboardEvent( 'arrowright' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '<blockWidget></blockWidget><paragraph>[]foo</paragraph>' );
|
|
expect( getModelData( model ) ).to.equal( '<blockWidget></blockWidget><paragraph>[]foo</paragraph>' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
|
|
|
|
|
const viewWidget = viewRoot.getChild( 0 );
|
|
const viewWidget = viewRoot.getChild( 0 );
|
|
|
|
|
|
|
@@ -554,7 +555,7 @@ describe( 'WidgetTypeAround', () => {
|
|
|
fireKeyboardEvent( 'arrowleft', { shiftKey: true } );
|
|
fireKeyboardEvent( 'arrowleft', { shiftKey: true } );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo</paragraph>[<blockWidget></blockWidget>]' );
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo</paragraph>[<blockWidget></blockWidget>]' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'before' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'before' );
|
|
|
|
|
|
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
@@ -562,7 +563,7 @@ describe( 'WidgetTypeAround', () => {
|
|
|
fireKeyboardEvent( 'arrowleft', { shiftKey: true } );
|
|
fireKeyboardEvent( 'arrowleft', { shiftKey: true } );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo[]</paragraph><blockWidget></blockWidget>' );
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo[]</paragraph><blockWidget></blockWidget>' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
|
|
|
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
@@ -574,7 +575,7 @@ describe( 'WidgetTypeAround', () => {
|
|
|
fireKeyboardEvent( 'arrowleft' );
|
|
fireKeyboardEvent( 'arrowleft' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'before' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'before' );
|
|
|
|
|
|
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
@@ -582,7 +583,7 @@ describe( 'WidgetTypeAround', () => {
|
|
|
fireKeyboardEvent( 'arrowleft' );
|
|
fireKeyboardEvent( 'arrowleft' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'before' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'before' );
|
|
|
|
|
|
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
@@ -602,7 +603,7 @@ describe( 'WidgetTypeAround', () => {
|
|
|
fireKeyboardEvent( 'arrowright' );
|
|
fireKeyboardEvent( 'arrowright' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'after' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'after' );
|
|
|
|
|
|
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
@@ -610,7 +611,7 @@ describe( 'WidgetTypeAround', () => {
|
|
|
fireKeyboardEvent( 'arrowright' );
|
|
fireKeyboardEvent( 'arrowright' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'after' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'after' );
|
|
|
|
|
|
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
@@ -630,7 +631,7 @@ describe( 'WidgetTypeAround', () => {
|
|
|
fireKeyboardEvent( 'arrowleft' );
|
|
fireKeyboardEvent( 'arrowleft' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'before' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'before' );
|
|
|
|
|
|
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
@@ -638,7 +639,7 @@ describe( 'WidgetTypeAround', () => {
|
|
|
fireKeyboardEvent( 'arrowright' );
|
|
fireKeyboardEvent( 'arrowright' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
|
|
|
|
|
const viewWidget = viewRoot.getChild( 0 );
|
|
const viewWidget = viewRoot.getChild( 0 );
|
|
|
|
|
|
|
@@ -655,7 +656,7 @@ describe( 'WidgetTypeAround', () => {
|
|
|
fireKeyboardEvent( 'arrowright' );
|
|
fireKeyboardEvent( 'arrowright' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'after' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'after' );
|
|
|
|
|
|
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
@@ -663,7 +664,7 @@ describe( 'WidgetTypeAround', () => {
|
|
|
fireKeyboardEvent( 'arrowleft' );
|
|
fireKeyboardEvent( 'arrowleft' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
|
|
|
|
|
const viewWidget = viewRoot.getChild( 0 );
|
|
const viewWidget = viewRoot.getChild( 0 );
|
|
|
|
|
|
|
@@ -683,12 +684,12 @@ describe( 'WidgetTypeAround', () => {
|
|
|
fireKeyboardEvent( 'arrowright' );
|
|
fireKeyboardEvent( 'arrowright' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo</paragraph>[<blockWidget></blockWidget>]<paragraph>bar</paragraph>' );
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo</paragraph>[<blockWidget></blockWidget>]<paragraph>bar</paragraph>' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
|
|
|
|
|
fireKeyboardEvent( 'arrowdown' );
|
|
fireKeyboardEvent( 'arrowdown' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo</paragraph><blockWidget></blockWidget><paragraph>[]bar</paragraph>' );
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo</paragraph><blockWidget></blockWidget><paragraph>[]bar</paragraph>' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
} );
|
|
} );
|
|
|
|
|
|
|
|
it( 'should activate and deactivate the "fake caret" using all 4 arrow keys', () => {
|
|
it( 'should activate and deactivate the "fake caret" using all 4 arrow keys', () => {
|
|
@@ -697,22 +698,22 @@ describe( 'WidgetTypeAround', () => {
|
|
|
fireKeyboardEvent( 'arrowright' );
|
|
fireKeyboardEvent( 'arrowright' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo</paragraph>[<blockWidget></blockWidget>]' );
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo</paragraph>[<blockWidget></blockWidget>]' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'before' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'before' );
|
|
|
|
|
|
|
|
fireKeyboardEvent( 'arrowdown' );
|
|
fireKeyboardEvent( 'arrowdown' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo</paragraph>[<blockWidget></blockWidget>]' );
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo</paragraph>[<blockWidget></blockWidget>]' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
|
|
|
|
|
fireKeyboardEvent( 'arrowup' );
|
|
fireKeyboardEvent( 'arrowup' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo</paragraph>[<blockWidget></blockWidget>]' );
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo</paragraph>[<blockWidget></blockWidget>]' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'before' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'before' );
|
|
|
|
|
|
|
|
fireKeyboardEvent( 'arrowleft' );
|
|
fireKeyboardEvent( 'arrowleft' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo[]</paragraph><blockWidget></blockWidget>' );
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo[]</paragraph><blockWidget></blockWidget>' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
} );
|
|
} );
|
|
|
|
|
|
|
|
it( 'should quit the "fake caret" mode when the editor loses focus', () => {
|
|
it( 'should quit the "fake caret" mode when the editor loses focus', () => {
|
|
@@ -723,13 +724,13 @@ describe( 'WidgetTypeAround', () => {
|
|
|
fireKeyboardEvent( 'arrowright' );
|
|
fireKeyboardEvent( 'arrowright' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo</paragraph>[<blockWidget></blockWidget>]' );
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo</paragraph>[<blockWidget></blockWidget>]' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'before' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'before' );
|
|
|
|
|
|
|
|
editor.ui.focusTracker.isFocused = false;
|
|
editor.ui.focusTracker.isFocused = false;
|
|
|
|
|
|
|
|
const viewWidget = viewRoot.getChild( 1 );
|
|
const viewWidget = viewRoot.getChild( 1 );
|
|
|
|
|
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
expect( viewWidget.hasClass( 'ck-widget_type-around_show-fake-caret_before' ) ).to.be.false;
|
|
expect( viewWidget.hasClass( 'ck-widget_type-around_show-fake-caret_before' ) ).to.be.false;
|
|
|
expect( viewWidget.hasClass( 'ck-widget_type-around_show-fake-caret_after' ) ).to.be.false;
|
|
expect( viewWidget.hasClass( 'ck-widget_type-around_show-fake-caret_after' ) ).to.be.false;
|
|
|
} );
|
|
} );
|
|
@@ -740,7 +741,7 @@ describe( 'WidgetTypeAround', () => {
|
|
|
fireKeyboardEvent( 'arrowright' );
|
|
fireKeyboardEvent( 'arrowright' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo</paragraph>[<blockWidget></blockWidget>]' );
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo</paragraph>[<blockWidget></blockWidget>]' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'before' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'before' );
|
|
|
|
|
|
|
|
model.change( writer => {
|
|
model.change( writer => {
|
|
|
writer.setSelection( model.document.getRoot().getChild( 0 ), 'in' );
|
|
writer.setSelection( model.document.getRoot().getChild( 0 ), 'in' );
|
|
@@ -748,7 +749,7 @@ describe( 'WidgetTypeAround', () => {
|
|
|
|
|
|
|
|
const viewWidget = viewRoot.getChild( 1 );
|
|
const viewWidget = viewRoot.getChild( 1 );
|
|
|
|
|
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
expect( viewWidget.hasClass( 'ck-widget_type-around_show-fake-caret_before' ) ).to.be.false;
|
|
expect( viewWidget.hasClass( 'ck-widget_type-around_show-fake-caret_before' ) ).to.be.false;
|
|
|
expect( viewWidget.hasClass( 'ck-widget_type-around_show-fake-caret_after' ) ).to.be.false;
|
|
expect( viewWidget.hasClass( 'ck-widget_type-around_show-fake-caret_after' ) ).to.be.false;
|
|
|
} );
|
|
} );
|
|
@@ -759,14 +760,14 @@ describe( 'WidgetTypeAround', () => {
|
|
|
fireKeyboardEvent( 'arrowright' );
|
|
fireKeyboardEvent( 'arrowright' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo</paragraph>[<blockWidget></blockWidget>]' );
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo</paragraph>[<blockWidget></blockWidget>]' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'before' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'before' );
|
|
|
|
|
|
|
|
// This could happen in collaboration.
|
|
// This could happen in collaboration.
|
|
|
model.document.selection.fire( 'change:range', {
|
|
model.document.selection.fire( 'change:range', {
|
|
|
directChange: false
|
|
directChange: false
|
|
|
} );
|
|
} );
|
|
|
|
|
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'before' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'before' );
|
|
|
|
|
|
|
|
const viewWidget = viewRoot.getChild( 1 );
|
|
const viewWidget = viewRoot.getChild( 1 );
|
|
|
|
|
|
|
@@ -780,14 +781,14 @@ describe( 'WidgetTypeAround', () => {
|
|
|
const selection = model.createSelection( modelSelection );
|
|
const selection = model.createSelection( modelSelection );
|
|
|
|
|
|
|
|
model.change( writer => {
|
|
model.change( writer => {
|
|
|
- writer.setSelectionAttribute( 'widget-type-around', 'before' );
|
|
|
|
|
|
|
+ writer.setSelectionAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE, 'before' );
|
|
|
model.deleteContent( selection );
|
|
model.deleteContent( selection );
|
|
|
} );
|
|
} );
|
|
|
|
|
|
|
|
const viewWidget = viewRoot.getChild( 1 );
|
|
const viewWidget = viewRoot.getChild( 1 );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo[]</paragraph><paragraph></paragraph><paragraph>baz</paragraph>' );
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo[]</paragraph><paragraph></paragraph><paragraph>baz</paragraph>' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
expect( viewWidget.hasClass( 'ck-widget_type-around_show-fake-caret_before' ) ).to.be.false;
|
|
expect( viewWidget.hasClass( 'ck-widget_type-around_show-fake-caret_before' ) ).to.be.false;
|
|
|
expect( viewWidget.hasClass( 'ck-widget_type-around_show-fake-caret_after' ) ).to.be.false;
|
|
expect( viewWidget.hasClass( 'ck-widget_type-around_show-fake-caret_after' ) ).to.be.false;
|
|
|
} );
|
|
} );
|
|
@@ -796,12 +797,12 @@ describe( 'WidgetTypeAround', () => {
|
|
|
setModelData( editor.model, '<paragraph>foo</paragraph>[<blockWidget></blockWidget>]<paragraph>baz</paragraph>' );
|
|
setModelData( editor.model, '<paragraph>foo</paragraph>[<blockWidget></blockWidget>]<paragraph>baz</paragraph>' );
|
|
|
|
|
|
|
|
model.change( writer => {
|
|
model.change( writer => {
|
|
|
- writer.setSelectionAttribute( 'widget-type-around', 'before' );
|
|
|
|
|
|
|
+ writer.setSelectionAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE, 'before' );
|
|
|
writer.remove( editor.model.document.getRoot().getChild( 1 ) );
|
|
writer.remove( editor.model.document.getRoot().getChild( 1 ) );
|
|
|
} );
|
|
} );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo[]</paragraph><paragraph>baz</paragraph>' );
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo[]</paragraph><paragraph>baz</paragraph>' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
} );
|
|
} );
|
|
|
|
|
|
|
|
describe( 'inserting a new paragraph', () => {
|
|
describe( 'inserting a new paragraph', () => {
|
|
@@ -810,7 +811,7 @@ describe( 'WidgetTypeAround', () => {
|
|
|
setModelData( editor.model, '[<blockWidget></blockWidget>]' );
|
|
setModelData( editor.model, '[<blockWidget></blockWidget>]' );
|
|
|
|
|
|
|
|
fireKeyboardEvent( 'arrowleft' );
|
|
fireKeyboardEvent( 'arrowleft' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'before' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'before' );
|
|
|
|
|
|
|
|
fireKeyboardEvent( 'enter' );
|
|
fireKeyboardEvent( 'enter' );
|
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>[]</paragraph><blockWidget></blockWidget>' );
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>[]</paragraph><blockWidget></blockWidget>' );
|
|
@@ -820,7 +821,7 @@ describe( 'WidgetTypeAround', () => {
|
|
|
setModelData( editor.model, '[<blockWidget></blockWidget>]' );
|
|
setModelData( editor.model, '[<blockWidget></blockWidget>]' );
|
|
|
|
|
|
|
|
fireKeyboardEvent( 'arrowright' );
|
|
fireKeyboardEvent( 'arrowright' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'after' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'after' );
|
|
|
|
|
|
|
|
fireKeyboardEvent( 'enter' );
|
|
fireKeyboardEvent( 'enter' );
|
|
|
expect( getModelData( model ) ).to.equal( '<blockWidget></blockWidget><paragraph>[]</paragraph>' );
|
|
expect( getModelData( model ) ).to.equal( '<blockWidget></blockWidget><paragraph>[]</paragraph>' );
|
|
@@ -837,49 +838,49 @@ describe( 'WidgetTypeAround', () => {
|
|
|
editor.execute( 'undo' );
|
|
editor.execute( 'undo' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
} );
|
|
} );
|
|
|
} );
|
|
} );
|
|
|
|
|
|
|
|
describe( 'on Enter key press when the widget is selected (no "fake caret", though)', () => {
|
|
describe( 'on Enter key press when the widget is selected (no "fake caret", though)', () => {
|
|
|
it( 'should insert a new paragraph after the widget if Enter was pressed', () => {
|
|
it( 'should insert a new paragraph after the widget if Enter was pressed', () => {
|
|
|
setModelData( editor.model, '[<blockWidget></blockWidget>]' );
|
|
setModelData( editor.model, '[<blockWidget></blockWidget>]' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
|
|
|
|
|
fireKeyboardEvent( 'enter' );
|
|
fireKeyboardEvent( 'enter' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '<blockWidget></blockWidget><paragraph>[]</paragraph>' );
|
|
expect( getModelData( model ) ).to.equal( '<blockWidget></blockWidget><paragraph>[]</paragraph>' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
} );
|
|
} );
|
|
|
|
|
|
|
|
it( 'should insert a new paragraph before the widget if Shift+Enter was pressed', () => {
|
|
it( 'should insert a new paragraph before the widget if Shift+Enter was pressed', () => {
|
|
|
setModelData( editor.model, '[<blockWidget></blockWidget>]' );
|
|
setModelData( editor.model, '[<blockWidget></blockWidget>]' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
|
|
|
|
|
fireKeyboardEvent( 'enter', { shiftKey: true } );
|
|
fireKeyboardEvent( 'enter', { shiftKey: true } );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>[]</paragraph><blockWidget></blockWidget>' );
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>[]</paragraph><blockWidget></blockWidget>' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
} );
|
|
} );
|
|
|
|
|
|
|
|
it( 'should insert a new paragraph only if an entire widget is selected (selected nested editable content)', () => {
|
|
it( 'should insert a new paragraph only if an entire widget is selected (selected nested editable content)', () => {
|
|
|
setModelData( editor.model, '<blockWidget><nested>[foo] bar</nested></blockWidget>' );
|
|
setModelData( editor.model, '<blockWidget><nested>[foo] bar</nested></blockWidget>' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
|
|
|
|
|
fireKeyboardEvent( 'enter' );
|
|
fireKeyboardEvent( 'enter' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '<blockWidget><nested>[] bar</nested></blockWidget>' );
|
|
expect( getModelData( model ) ).to.equal( '<blockWidget><nested>[] bar</nested></blockWidget>' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
} );
|
|
} );
|
|
|
|
|
|
|
|
it( 'should insert a new paragraph only if an entire widget is selected (selected widget siblings)', () => {
|
|
it( 'should insert a new paragraph only if an entire widget is selected (selected widget siblings)', () => {
|
|
|
setModelData( editor.model, '<paragraph>f[oo</paragraph><blockWidget></blockWidget><paragraph>o]o</paragraph>' );
|
|
setModelData( editor.model, '<paragraph>f[oo</paragraph><blockWidget></blockWidget><paragraph>o]o</paragraph>' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
|
|
|
|
|
fireKeyboardEvent( 'enter' );
|
|
fireKeyboardEvent( 'enter' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>f</paragraph><paragraph>[]o</paragraph>' );
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>f</paragraph><paragraph>[]o</paragraph>' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
} );
|
|
} );
|
|
|
|
|
|
|
|
it( 'should split ancestors to find a place that allows a widget', () => {
|
|
it( 'should split ancestors to find a place that allows a widget', () => {
|
|
@@ -919,27 +920,27 @@ describe( 'WidgetTypeAround', () => {
|
|
|
|
|
|
|
|
it( 'should integrate with the undo feature', () => {
|
|
it( 'should integrate with the undo feature', () => {
|
|
|
setModelData( editor.model, '[<blockWidget></blockWidget>]' );
|
|
setModelData( editor.model, '[<blockWidget></blockWidget>]' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
|
|
|
|
|
fireKeyboardEvent( 'enter' );
|
|
fireKeyboardEvent( 'enter' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '<blockWidget></blockWidget><paragraph>[]</paragraph>' );
|
|
expect( getModelData( model ) ).to.equal( '<blockWidget></blockWidget><paragraph>[]</paragraph>' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
|
|
|
|
|
editor.execute( 'undo' );
|
|
editor.execute( 'undo' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
} );
|
|
} );
|
|
|
|
|
|
|
|
it( 'should do nothing if a non-type-around-friendly content is selected', () => {
|
|
it( 'should do nothing if a non-type-around-friendly content is selected', () => {
|
|
|
setModelData( editor.model, '<paragraph>foo[<inlineWidget></inlineWidget>]</paragraph>' );
|
|
setModelData( editor.model, '<paragraph>foo[<inlineWidget></inlineWidget>]</paragraph>' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
|
|
|
|
|
fireKeyboardEvent( 'enter' );
|
|
fireKeyboardEvent( 'enter' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo</paragraph><paragraph>[]</paragraph>' );
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo</paragraph><paragraph>[]</paragraph>' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
} );
|
|
} );
|
|
|
} );
|
|
} );
|
|
|
|
|
|
|
@@ -948,40 +949,40 @@ describe( 'WidgetTypeAround', () => {
|
|
|
setModelData( editor.model, '[<blockWidget></blockWidget>]' );
|
|
setModelData( editor.model, '[<blockWidget></blockWidget>]' );
|
|
|
|
|
|
|
|
fireKeyboardEvent( 'arrowleft' );
|
|
fireKeyboardEvent( 'arrowleft' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'before' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'before' );
|
|
|
|
|
|
|
|
fireKeyboardEvent( 'a' );
|
|
fireKeyboardEvent( 'a' );
|
|
|
fireMutation( 'a' );
|
|
fireMutation( 'a' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>a[]</paragraph><blockWidget></blockWidget>' );
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>a[]</paragraph><blockWidget></blockWidget>' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
} );
|
|
} );
|
|
|
|
|
|
|
|
it( 'should insert a character inside a new paragraph after a widget if the caret was "after" it', () => {
|
|
it( 'should insert a character inside a new paragraph after a widget if the caret was "after" it', () => {
|
|
|
setModelData( editor.model, '[<blockWidget></blockWidget>]' );
|
|
setModelData( editor.model, '[<blockWidget></blockWidget>]' );
|
|
|
|
|
|
|
|
fireKeyboardEvent( 'arrowright' );
|
|
fireKeyboardEvent( 'arrowright' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'after' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'after' );
|
|
|
|
|
|
|
|
fireKeyboardEvent( 'a' );
|
|
fireKeyboardEvent( 'a' );
|
|
|
fireMutation( 'a' );
|
|
fireMutation( 'a' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '<blockWidget></blockWidget><paragraph>a[]</paragraph>' );
|
|
expect( getModelData( model ) ).to.equal( '<blockWidget></blockWidget><paragraph>a[]</paragraph>' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
} );
|
|
} );
|
|
|
|
|
|
|
|
it( 'should do nothing if a "safe" keystroke was pressed', () => {
|
|
it( 'should do nothing if a "safe" keystroke was pressed', () => {
|
|
|
setModelData( editor.model, '[<blockWidget></blockWidget>]' );
|
|
setModelData( editor.model, '[<blockWidget></blockWidget>]' );
|
|
|
|
|
|
|
|
fireKeyboardEvent( 'arrowright' );
|
|
fireKeyboardEvent( 'arrowright' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'after' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'after' );
|
|
|
|
|
|
|
|
fireKeyboardEvent( 'esc' );
|
|
fireKeyboardEvent( 'esc' );
|
|
|
fireKeyboardEvent( 'tab' );
|
|
fireKeyboardEvent( 'tab' );
|
|
|
fireKeyboardEvent( 'd', { ctrlKey: true } );
|
|
fireKeyboardEvent( 'd', { ctrlKey: true } );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'after' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'after' );
|
|
|
} );
|
|
} );
|
|
|
|
|
|
|
|
it( 'should integrate with the undo feature', () => {
|
|
it( 'should integrate with the undo feature', () => {
|
|
@@ -995,11 +996,11 @@ describe( 'WidgetTypeAround', () => {
|
|
|
|
|
|
|
|
editor.execute( 'undo' );
|
|
editor.execute( 'undo' );
|
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>[]</paragraph><blockWidget></blockWidget>' );
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>[]</paragraph><blockWidget></blockWidget>' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
|
|
|
|
|
editor.execute( 'undo' );
|
|
editor.execute( 'undo' );
|
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
} );
|
|
} );
|
|
|
} );
|
|
} );
|
|
|
|
|
|
|
@@ -1024,11 +1025,11 @@ describe( 'WidgetTypeAround', () => {
|
|
|
fireKeyboardEvent( 'arrowleft' );
|
|
fireKeyboardEvent( 'arrowleft' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo</paragraph>[<blockWidget></blockWidget>]' );
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo</paragraph>[<blockWidget></blockWidget>]' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'before' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'before' );
|
|
|
|
|
|
|
|
fireDeleteEvent();
|
|
fireDeleteEvent();
|
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>fo[]</paragraph><blockWidget></blockWidget>' );
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>fo[]</paragraph><blockWidget></blockWidget>' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
|
|
|
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
@@ -1040,11 +1041,11 @@ describe( 'WidgetTypeAround', () => {
|
|
|
fireKeyboardEvent( 'arrowleft' );
|
|
fireKeyboardEvent( 'arrowleft' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '<paragraph></paragraph>[<blockWidget></blockWidget>]' );
|
|
expect( getModelData( model ) ).to.equal( '<paragraph></paragraph>[<blockWidget></blockWidget>]' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'before' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'before' );
|
|
|
|
|
|
|
|
fireDeleteEvent();
|
|
fireDeleteEvent();
|
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'before' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'before' );
|
|
|
|
|
|
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
@@ -1061,11 +1062,11 @@ describe( 'WidgetTypeAround', () => {
|
|
|
'</blockQuote>' +
|
|
'</blockQuote>' +
|
|
|
'[<blockWidget></blockWidget>]'
|
|
'[<blockWidget></blockWidget>]'
|
|
|
);
|
|
);
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'before' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'before' );
|
|
|
|
|
|
|
|
fireDeleteEvent();
|
|
fireDeleteEvent();
|
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'before' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'before' );
|
|
|
|
|
|
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
@@ -1091,7 +1092,7 @@ describe( 'WidgetTypeAround', () => {
|
|
|
'</blockQuote>' +
|
|
'</blockQuote>' +
|
|
|
'[<blockWidget></blockWidget>]'
|
|
'[<blockWidget></blockWidget>]'
|
|
|
);
|
|
);
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'before' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'before' );
|
|
|
|
|
|
|
|
// Assert that the paragraph is merged rather than deleted because
|
|
// Assert that the paragraph is merged rather than deleted because
|
|
|
// it is safer for collaboration.
|
|
// it is safer for collaboration.
|
|
@@ -1106,7 +1107,7 @@ describe( 'WidgetTypeAround', () => {
|
|
|
'</blockQuote>' +
|
|
'</blockQuote>' +
|
|
|
'<blockWidget></blockWidget>'
|
|
'<blockWidget></blockWidget>'
|
|
|
);
|
|
);
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
expect( operationType ).to.equal( 'merge' );
|
|
expect( operationType ).to.equal( 'merge' );
|
|
|
|
|
|
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
@@ -1119,11 +1120,11 @@ describe( 'WidgetTypeAround', () => {
|
|
|
fireKeyboardEvent( 'arrowleft' );
|
|
fireKeyboardEvent( 'arrowleft' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'before' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'before' );
|
|
|
|
|
|
|
|
fireDeleteEvent();
|
|
fireDeleteEvent();
|
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'before' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'before' );
|
|
|
|
|
|
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
@@ -1135,11 +1136,11 @@ describe( 'WidgetTypeAround', () => {
|
|
|
fireKeyboardEvent( 'arrowright' );
|
|
fireKeyboardEvent( 'arrowright' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'after' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'after' );
|
|
|
|
|
|
|
|
fireDeleteEvent();
|
|
fireDeleteEvent();
|
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>[]</paragraph>' );
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>[]</paragraph>' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
|
|
|
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
@@ -1151,11 +1152,11 @@ describe( 'WidgetTypeAround', () => {
|
|
|
fireKeyboardEvent( 'arrowright' );
|
|
fireKeyboardEvent( 'arrowright' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]<paragraph>foo</paragraph>' );
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]<paragraph>foo</paragraph>' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'after' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'after' );
|
|
|
|
|
|
|
|
fireDeleteEvent();
|
|
fireDeleteEvent();
|
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>[]</paragraph><paragraph>foo</paragraph>' );
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>[]</paragraph><paragraph>foo</paragraph>' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
|
|
|
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
@@ -1170,11 +1171,11 @@ describe( 'WidgetTypeAround', () => {
|
|
|
'<blockWidget><nested>foo</nested></blockWidget>' +
|
|
'<blockWidget><nested>foo</nested></blockWidget>' +
|
|
|
'[<blockWidget></blockWidget>]'
|
|
'[<blockWidget></blockWidget>]'
|
|
|
);
|
|
);
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'before' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'before' );
|
|
|
|
|
|
|
|
fireDeleteEvent();
|
|
fireDeleteEvent();
|
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>[]</paragraph><blockWidget></blockWidget>' );
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>[]</paragraph><blockWidget></blockWidget>' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
|
|
|
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
@@ -1188,11 +1189,11 @@ describe( 'WidgetTypeAround', () => {
|
|
|
fireKeyboardEvent( 'arrowright' );
|
|
fireKeyboardEvent( 'arrowright' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]<paragraph>foo</paragraph>' );
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]<paragraph>foo</paragraph>' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'after' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'after' );
|
|
|
|
|
|
|
|
fireDeleteEvent( true );
|
|
fireDeleteEvent( true );
|
|
|
expect( getModelData( model ) ).to.equal( '<blockWidget></blockWidget><paragraph>[]oo</paragraph>' );
|
|
expect( getModelData( model ) ).to.equal( '<blockWidget></blockWidget><paragraph>[]oo</paragraph>' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
|
|
|
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
@@ -1204,11 +1205,11 @@ describe( 'WidgetTypeAround', () => {
|
|
|
fireKeyboardEvent( 'arrowright' );
|
|
fireKeyboardEvent( 'arrowright' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]<paragraph></paragraph>' );
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]<paragraph></paragraph>' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'after' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'after' );
|
|
|
|
|
|
|
|
fireDeleteEvent( true );
|
|
fireDeleteEvent( true );
|
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'after' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'after' );
|
|
|
|
|
|
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
@@ -1223,11 +1224,11 @@ describe( 'WidgetTypeAround', () => {
|
|
|
'[<blockWidget></blockWidget>]' +
|
|
'[<blockWidget></blockWidget>]' +
|
|
|
'<blockQuote><paragraph></paragraph></blockQuote>'
|
|
'<blockQuote><paragraph></paragraph></blockQuote>'
|
|
|
);
|
|
);
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'after' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'after' );
|
|
|
|
|
|
|
|
fireDeleteEvent( true );
|
|
fireDeleteEvent( true );
|
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'after' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'after' );
|
|
|
|
|
|
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
@@ -1253,7 +1254,7 @@ describe( 'WidgetTypeAround', () => {
|
|
|
'<paragraph>foo</paragraph>' +
|
|
'<paragraph>foo</paragraph>' +
|
|
|
'</blockQuote>'
|
|
'</blockQuote>'
|
|
|
);
|
|
);
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'after' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'after' );
|
|
|
|
|
|
|
|
// Assert that the paragraph is merged rather than deleted because
|
|
// Assert that the paragraph is merged rather than deleted because
|
|
|
// it is safer for collaboration.
|
|
// it is safer for collaboration.
|
|
@@ -1268,7 +1269,7 @@ describe( 'WidgetTypeAround', () => {
|
|
|
'<paragraph>[]foo</paragraph>' +
|
|
'<paragraph>[]foo</paragraph>' +
|
|
|
'</blockQuote>'
|
|
'</blockQuote>'
|
|
|
);
|
|
);
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
expect( operationType ).to.equal( 'merge' );
|
|
expect( operationType ).to.equal( 'merge' );
|
|
|
|
|
|
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
@@ -1281,11 +1282,11 @@ describe( 'WidgetTypeAround', () => {
|
|
|
fireKeyboardEvent( 'arrowright' );
|
|
fireKeyboardEvent( 'arrowright' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'after' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'after' );
|
|
|
|
|
|
|
|
fireDeleteEvent( true );
|
|
fireDeleteEvent( true );
|
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'after' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'after' );
|
|
|
|
|
|
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
@@ -1297,11 +1298,11 @@ describe( 'WidgetTypeAround', () => {
|
|
|
fireKeyboardEvent( 'arrowleft' );
|
|
fireKeyboardEvent( 'arrowleft' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
expect( getModelData( model ) ).to.equal( '[<blockWidget></blockWidget>]' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'before' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'before' );
|
|
|
|
|
|
|
|
fireDeleteEvent( true );
|
|
fireDeleteEvent( true );
|
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>[]</paragraph>' );
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>[]</paragraph>' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
|
|
|
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
@@ -1313,11 +1314,11 @@ describe( 'WidgetTypeAround', () => {
|
|
|
fireKeyboardEvent( 'arrowleft' );
|
|
fireKeyboardEvent( 'arrowleft' );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo</paragraph>[<blockWidget></blockWidget>]' );
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo</paragraph>[<blockWidget></blockWidget>]' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'before' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'before' );
|
|
|
|
|
|
|
|
fireDeleteEvent( true );
|
|
fireDeleteEvent( true );
|
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo</paragraph><paragraph>[]</paragraph>' );
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo</paragraph><paragraph>[]</paragraph>' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
|
|
|
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
@@ -1332,11 +1333,11 @@ describe( 'WidgetTypeAround', () => {
|
|
|
'[<blockWidget></blockWidget>]' +
|
|
'[<blockWidget></blockWidget>]' +
|
|
|
'<blockWidget><nested>foo</nested></blockWidget>'
|
|
'<blockWidget><nested>foo</nested></blockWidget>'
|
|
|
);
|
|
);
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.equal( 'after' );
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.equal( 'after' );
|
|
|
|
|
|
|
|
fireDeleteEvent( true );
|
|
fireDeleteEvent( true );
|
|
|
expect( getModelData( model ) ).to.equal( '<blockWidget></blockWidget><paragraph>[]</paragraph>' );
|
|
expect( getModelData( model ) ).to.equal( '<blockWidget></blockWidget><paragraph>[]</paragraph>' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
|
|
|
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
sinon.assert.calledOnce( eventInfoStub.stop );
|
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
sinon.assert.calledOnce( domEventDataStub.domEvent.preventDefault );
|
|
@@ -1412,7 +1413,7 @@ describe( 'WidgetTypeAround', () => {
|
|
|
const selection = model.createSelection( modelSelection );
|
|
const selection = model.createSelection( modelSelection );
|
|
|
|
|
|
|
|
model.change( writer => {
|
|
model.change( writer => {
|
|
|
- writer.setSelectionAttribute( 'widget-type-around', 'before' );
|
|
|
|
|
|
|
+ writer.setSelectionAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE, 'before' );
|
|
|
model.insertContent( createParagraph( 'bar' ), selection );
|
|
model.insertContent( createParagraph( 'bar' ), selection );
|
|
|
} );
|
|
} );
|
|
|
|
|
|
|
@@ -1425,12 +1426,12 @@ describe( 'WidgetTypeAround', () => {
|
|
|
|
|
|
|
|
const batchSet = setupBatchWatch();
|
|
const batchSet = setupBatchWatch();
|
|
|
|
|
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
|
|
|
|
|
model.insertContent( createParagraph( 'bar' ) );
|
|
model.insertContent( createParagraph( 'bar' ) );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo</paragraph><paragraph>bar[]</paragraph><paragraph>baz</paragraph>' );
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo</paragraph><paragraph>bar[]</paragraph><paragraph>baz</paragraph>' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
expect( batchSet.size ).to.be.equal( 1 );
|
|
expect( batchSet.size ).to.be.equal( 1 );
|
|
|
} );
|
|
} );
|
|
|
|
|
|
|
@@ -1440,13 +1441,13 @@ describe( 'WidgetTypeAround', () => {
|
|
|
const batchSet = setupBatchWatch();
|
|
const batchSet = setupBatchWatch();
|
|
|
|
|
|
|
|
model.change( writer => {
|
|
model.change( writer => {
|
|
|
- writer.setSelectionAttribute( 'widget-type-around', 'before' );
|
|
|
|
|
|
|
+ writer.setSelectionAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE, 'before' );
|
|
|
} );
|
|
} );
|
|
|
|
|
|
|
|
model.insertContent( createParagraph( 'bar' ) );
|
|
model.insertContent( createParagraph( 'bar' ) );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>bar[]</paragraph><blockWidget></blockWidget>' );
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>bar[]</paragraph><blockWidget></blockWidget>' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
expect( batchSet.size ).to.be.equal( 1 );
|
|
expect( batchSet.size ).to.be.equal( 1 );
|
|
|
} );
|
|
} );
|
|
|
|
|
|
|
@@ -1456,13 +1457,13 @@ describe( 'WidgetTypeAround', () => {
|
|
|
const batchSet = setupBatchWatch();
|
|
const batchSet = setupBatchWatch();
|
|
|
|
|
|
|
|
model.change( writer => {
|
|
model.change( writer => {
|
|
|
- writer.setSelectionAttribute( 'widget-type-around', 'after' );
|
|
|
|
|
|
|
+ writer.setSelectionAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE, 'after' );
|
|
|
} );
|
|
} );
|
|
|
|
|
|
|
|
model.insertContent( createParagraph( 'bar' ) );
|
|
model.insertContent( createParagraph( 'bar' ) );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '<blockWidget></blockWidget><paragraph>bar[]</paragraph>' );
|
|
expect( getModelData( model ) ).to.equal( '<blockWidget></blockWidget><paragraph>bar[]</paragraph>' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
expect( batchSet.size ).to.be.equal( 1 );
|
|
expect( batchSet.size ).to.be.equal( 1 );
|
|
|
} );
|
|
} );
|
|
|
|
|
|
|
@@ -1472,13 +1473,13 @@ describe( 'WidgetTypeAround', () => {
|
|
|
const batchSet = setupBatchWatch();
|
|
const batchSet = setupBatchWatch();
|
|
|
|
|
|
|
|
model.change( writer => {
|
|
model.change( writer => {
|
|
|
- writer.setSelectionAttribute( 'widget-type-around', 'before' );
|
|
|
|
|
|
|
+ writer.setSelectionAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE, 'before' );
|
|
|
} );
|
|
} );
|
|
|
|
|
|
|
|
model.insertContent( createParagraph( 'bar' ) );
|
|
model.insertContent( createParagraph( 'bar' ) );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo</paragraph><paragraph>bar[]</paragraph><blockWidget></blockWidget>' );
|
|
expect( getModelData( model ) ).to.equal( '<paragraph>foo</paragraph><paragraph>bar[]</paragraph><blockWidget></blockWidget>' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
expect( batchSet.size ).to.be.equal( 1 );
|
|
expect( batchSet.size ).to.be.equal( 1 );
|
|
|
} );
|
|
} );
|
|
|
|
|
|
|
@@ -1488,13 +1489,13 @@ describe( 'WidgetTypeAround', () => {
|
|
|
const batchSet = setupBatchWatch();
|
|
const batchSet = setupBatchWatch();
|
|
|
|
|
|
|
|
model.change( writer => {
|
|
model.change( writer => {
|
|
|
- writer.setSelectionAttribute( 'widget-type-around', 'after' );
|
|
|
|
|
|
|
+ writer.setSelectionAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE, 'after' );
|
|
|
} );
|
|
} );
|
|
|
|
|
|
|
|
model.insertContent( createParagraph( 'bar' ) );
|
|
model.insertContent( createParagraph( 'bar' ) );
|
|
|
|
|
|
|
|
expect( getModelData( model ) ).to.equal( '<blockWidget></blockWidget><paragraph>bar[]</paragraph><paragraph>foo</paragraph>' );
|
|
expect( getModelData( model ) ).to.equal( '<blockWidget></blockWidget><paragraph>bar[]</paragraph><paragraph>foo</paragraph>' );
|
|
|
- expect( modelSelection.getAttribute( 'widget-type-around' ) ).to.be.undefined;
|
|
|
|
|
|
|
+ expect( modelSelection.getAttribute( TYPE_AROUND_SELECTION_ATTRIBUTE ) ).to.be.undefined;
|
|
|
expect( batchSet.size ).to.be.equal( 1 );
|
|
expect( batchSet.size ).to.be.equal( 1 );
|
|
|
} );
|
|
} );
|
|
|
|
|
|