@@ -145,16 +145,68 @@ describe( 'Input', () => {
145145 it ( 'should preventDefault() the original beforeinput event if target ranges match fake selection' , ( ) => {
146146 setModelData ( editor . model , '[<widget></widget>]' ) ;
147147
148- const spy = sinon . spy ( ) ;
148+ const eventData = {
149+ preventDefault : sinon . spy ( ) ,
150+ selection : viewDocument . selection ,
151+ text : 'bar'
152+ } ;
149153
150- viewDocument . fire ( 'insertText' , {
151- preventDefault : spy ,
154+ eventData . domEvent = {
155+ get defaultPrevented ( ) {
156+ return eventData . preventDefault . called ;
157+ }
158+ } ;
159+
160+ viewDocument . fire ( 'insertText' , eventData ) ;
161+
162+ sinon . assert . calledOnce ( eventData . preventDefault ) ;
163+ sinon . assert . calledOnce ( insertTextCommandSpy ) ;
164+ } ) ;
165+
166+ it ( 'should preventDefault() the original beforeinput event if target ranges span across different blocks' , ( ) => {
167+ setModelData ( editor . model ,
168+ '<paragraph>[foo</paragraph>' +
169+ '<paragraph>]bar</paragraph>'
170+ ) ;
171+
172+ const eventData = {
173+ preventDefault : sinon . spy ( ) ,
152174 selection : viewDocument . selection ,
153- text : 'bar ' ,
175+ text : 'abc ' ,
154176 domEvent : { }
155- } ) ;
177+ } ;
156178
157- sinon . assert . calledOnce ( spy ) ;
179+ eventData . domEvent = {
180+ get defaultPrevented ( ) {
181+ return eventData . preventDefault . called ;
182+ }
183+ } ;
184+
185+ viewDocument . fire ( 'insertText' , eventData ) ;
186+
187+ sinon . assert . calledOnce ( eventData . preventDefault ) ;
188+ sinon . assert . calledOnce ( insertTextCommandSpy ) ;
189+ } ) ;
190+
191+ it ( 'should not preventDefault() the original beforeinput event if target ranges span a single block' , ( ) => {
192+ setModelData ( editor . model , '<paragraph>[foo]</paragraph>' ) ;
193+
194+ const eventData = {
195+ preventDefault : sinon . spy ( ) ,
196+ selection : viewDocument . selection ,
197+ text : 'abc' ,
198+ domEvent : { }
199+ } ;
200+
201+ eventData . domEvent = {
202+ get defaultPrevented ( ) {
203+ return eventData . preventDefault . called ;
204+ }
205+ } ;
206+
207+ viewDocument . fire ( 'insertText' , eventData ) ;
208+
209+ sinon . assert . notCalled ( eventData . preventDefault ) ;
158210 sinon . assert . notCalled ( insertTextCommandSpy ) ;
159211 } ) ;
160212
0 commit comments