@@ -55,6 +55,11 @@ describe( 'Widget', () => {
55
55
model . schema . register ( 'editable' , {
56
56
allowIn : [ 'widget' , '$root' ]
57
57
} ) ;
58
+ model . schema . register ( 'inline-widget' , {
59
+ allowWhere : '$text' ,
60
+ isObject : true ,
61
+ isInline : true
62
+ } ) ;
58
63
59
64
// Image feature.
60
65
model . schema . register ( 'image' , {
@@ -90,6 +95,14 @@ describe( 'Widget', () => {
90
95
return toWidget ( div , viewWriter , { label : 'element label' } ) ;
91
96
}
92
97
} )
98
+ . elementToElement ( {
99
+ model : 'inline-widget' ,
100
+ view : ( modelItem , viewWriter ) => {
101
+ const span = viewWriter . createContainerElement ( 'span' ) ;
102
+
103
+ return toWidget ( span , viewWriter ) ;
104
+ }
105
+ } )
93
106
. elementToElement ( {
94
107
model : 'nested' ,
95
108
view : ( modelItem , viewWriter ) => viewWriter . createEditableElement ( 'figcaption' , { contenteditable : true } )
@@ -761,6 +774,27 @@ describe( 'Widget', () => {
761
774
'<allowP><disallowP><widget></widget></disallowP><paragraph>[]</paragraph><disallowP></disallowP></allowP>'
762
775
) ;
763
776
} ) ;
777
+
778
+ test (
779
+ 'should do nothing if selected is inline object' ,
780
+ '<paragraph>foo[<inline-widget></inline-widget>]bar</paragraph>' ,
781
+ keyCodes . enter ,
782
+ '<paragraph>foo[]bar</paragraph>'
783
+ ) ;
784
+
785
+ test (
786
+ 'should insert a paragraph after the selected widget inside an element that is not a block upon Enter' ,
787
+ '<blockQuote>[<widget></widget>]</blockQuote>' ,
788
+ keyCodes . enter ,
789
+ '<blockQuote><widget></widget><paragraph>[]</paragraph></blockQuote>'
790
+ ) ;
791
+
792
+ test (
793
+ 'should insert a paragraph before the selected widget inside an element that is not a block upon Shift+Enter' ,
794
+ '<blockQuote>[<widget></widget>]</blockQuote>' ,
795
+ { keyCode : keyCodes . enter , shiftKey : true } ,
796
+ '<blockQuote><paragraph>[]</paragraph><widget></widget></blockQuote>'
797
+ ) ;
764
798
} ) ;
765
799
766
800
function test ( name , data , keyCodeOrMock , expected , expectedView ) {
0 commit comments