@@ -348,6 +348,7 @@ describe('drag and drop', () => {
348348 it ( 'should auto generate data transfer text data' , ( ) => {
349349 grid . selectedItems = grid . items ;
350350 fireDragStart ( ) ;
351+ fireDragOver ( ) ;
351352 fireDrop ( ) ;
352353 const event = dropSpy . getCall ( 0 ) . args [ 0 ] ;
353354 const textData = event . detail . dragData . find ( ( d ) => d . type === 'text' ) . data ;
@@ -361,6 +362,7 @@ describe('drag and drop', () => {
361362 await aTimeout ( 0 ) ;
362363 flushGrid ( grid ) ;
363364 fireDragStart ( ) ;
365+ fireDragOver ( ) ;
364366 fireDrop ( ) ;
365367 const event = dropSpy . getCall ( 0 ) . args [ 0 ] ;
366368 const textData = event . detail . dragData . find ( ( d ) => d . type === 'text' ) . data ;
@@ -372,6 +374,7 @@ describe('drag and drop', () => {
372374 const columns = grid . querySelectorAll ( 'vaadin-grid-column' ) ;
373375 grid . _swapColumnOrders ( columns [ 0 ] , columns [ 1 ] ) ;
374376 fireDragStart ( ) ;
377+ fireDragOver ( ) ;
375378 fireDrop ( ) ;
376379 const event = dropSpy . getCall ( 0 ) . args [ 0 ] ;
377380 const textData = event . detail . dragData . find ( ( d ) => d . type === 'text' ) . data ;
@@ -385,6 +388,7 @@ describe('drag and drop', () => {
385388 e . detail . setDragData ( 'text/plain' , e . detail . draggedItems . map ( ( item ) => item . last ) . join ( ',' ) ) ;
386389 } ) ;
387390 fireDragStart ( ) ;
391+ fireDragOver ( ) ;
388392 fireDrop ( ) ;
389393 const event = dropSpy . getCall ( 0 ) . args [ 0 ] ;
390394 const dragData = event . detail . dragData . find ( ( d ) => d . type === 'text/plain' ) ;
@@ -734,11 +738,13 @@ describe('drag and drop', () => {
734738 it ( 'should stop the native event' , ( ) => {
735739 const spy = sinon . spy ( ) ;
736740 listenOnce ( grid , 'drop' , spy ) ;
741+ fireDragOver ( ) ;
737742 fireDrop ( ) ;
738743 expect ( spy . called ) . to . be . false ;
739744 } ) ;
740745
741746 it ( 'should cancel the native event' , ( ) => {
747+ fireDragOver ( ) ;
742748 const event = fireDrop ( ) ;
743749 expect ( event . defaultPrevented ) . to . be . true ;
744750 } ) ;
@@ -784,11 +790,13 @@ describe('drag and drop', () => {
784790 } ) ;
785791
786792 it ( 'should dispatch a grid specific event' , ( ) => {
793+ fireDragOver ( ) ;
787794 fireDrop ( ) ;
788795 expect ( dropSpy . calledOnce ) . to . be . true ;
789796 } ) ;
790797
791798 it ( 'should bubble and be cancelable' , ( ) => {
799+ fireDragOver ( ) ;
792800 fireDrop ( ) ;
793801 const event = dropSpy . getCall ( 0 ) . args [ 0 ] ;
794802 expect ( event . bubbles ) . to . be . true ;
@@ -823,10 +831,45 @@ describe('drag and drop', () => {
823831 } ) ;
824832
825833 it ( 'should have the original event' , ( ) => {
834+ fireDragOver ( ) ;
826835 const originalEvent = fireDrop ( ) ;
827836 const event = dropSpy . getCall ( 0 ) . args [ 0 ] ;
828837 expect ( event . originalEvent ) . to . equal ( originalEvent ) ;
829838 } ) ;
839+
840+ it ( 'should not dispatch grid-drop event on dropping row on input in header' , ( ) => {
841+ const column = grid . querySelector ( 'vaadin-grid-column' ) ;
842+ column . headerRenderer = ( root ) => {
843+ if ( root . firstChild ) {
844+ return ;
845+ }
846+ const input = document . createElement ( 'input' ) ;
847+ root . appendChild ( input ) ;
848+ } ;
849+ flushGrid ( grid ) ;
850+ grid . dropMode = 'between' ;
851+ fireDragStart ( ) ;
852+ fireDragOver ( grid . $ . header . children [ 0 ] ) ;
853+ fireDrop ( grid . $ . header . children [ 0 ] ) ;
854+ expect ( dropSpy . called ) . to . be . false ;
855+ } ) ;
856+
857+ it ( 'should not dispatch grid-drop event on dropping row on input in footer' , ( ) => {
858+ const column = grid . querySelector ( 'vaadin-grid-column' ) ;
859+ column . footerRenderer = ( root ) => {
860+ if ( root . firstChild ) {
861+ return ;
862+ }
863+ const input = document . createElement ( 'input' ) ;
864+ root . appendChild ( input ) ;
865+ } ;
866+ flushGrid ( grid ) ;
867+ grid . dropMode = 'between' ;
868+ fireDragStart ( ) ;
869+ fireDragOver ( grid . $ . footer . children [ 0 ] ) ;
870+ fireDrop ( grid . $ . footer . children [ 0 ] ) ;
871+ expect ( dropSpy . called ) . to . be . false ;
872+ } ) ;
830873 } ) ;
831874 } ) ;
832875
@@ -987,6 +1030,7 @@ describe('drag and drop', () => {
9871030 it ( 'should emit a grid-drop event for non drop disabled row' , ( ) => {
9881031 const spy = sinon . spy ( ) ;
9891032 listenOnce ( grid , 'grid-drop' , spy ) ;
1033+ fireDragOver ( grid . $ . items . children [ 1 ] ) ;
9901034 fireDrop ( grid . $ . items . children [ 1 ] ) ;
9911035 expect ( spy . called ) . to . be . true ;
9921036 } ) ;
0 commit comments