@@ -38,4 +38,67 @@ describe('setup', function() {
3838 expect ( resumable . uploadNextChunk ( ) ) . toBe ( false ) ;
3939 } ) ;
4040
41+ describe ( 'assignBrowse' , function ( ) {
42+ it ( 'assign to input' , function ( ) {
43+ var input = document . createElement ( 'input' ) ;
44+ var addFiles = jasmine . createSpy ( 'addFiles' ) ;
45+ resumable . addFiles = addFiles ;
46+ input . type = 'file' ;
47+ resumable . assignBrowse ( input ) ;
48+ expect ( input . hasAttribute ( 'multiple' ) ) . toBeTruthy ( ) ;
49+ expect ( addFiles ) . not . toHaveBeenCalled ( ) ;
50+ var event = document . createEvent ( 'MouseEvents' ) ;
51+ event . initEvent ( 'change' , true , true ) ;
52+ input . dispatchEvent ( event ) ;
53+ expect ( addFiles ) . toHaveBeenCalled ( ) ;
54+ } ) ;
55+
56+ it ( 'assign to div' , function ( ) {
57+ var div = document . createElement ( 'div' ) ;
58+ var addFiles = jasmine . createSpy ( 'addFiles' ) ;
59+ resumable . addFiles = addFiles ;
60+ resumable . assignBrowse ( div ) ;
61+ expect ( div . children . length ) . toBe ( 1 ) ;
62+ var input = div . children [ 0 ] ;
63+ expect ( addFiles ) . not . toHaveBeenCalled ( ) ;
64+ var event = document . createEvent ( 'MouseEvents' ) ;
65+ event . initEvent ( 'change' , true , true ) ;
66+ input . dispatchEvent ( event ) ;
67+ expect ( addFiles ) . toHaveBeenCalled ( ) ;
68+ } ) ;
69+
70+ it ( 'single file' , function ( ) {
71+ var input = document . createElement ( 'input' ) ;
72+ input . type = 'file' ;
73+ resumable . assignBrowse ( input , false , true ) ;
74+ expect ( input . hasAttribute ( 'multiple' ) ) . toBeFalsy ( ) ;
75+ } ) ;
76+
77+ it ( 'directory' , function ( ) {
78+ var input = document . createElement ( 'input' ) ;
79+ input . type = 'file' ;
80+ resumable . assignBrowse ( input , true ) ;
81+ expect ( input . hasAttribute ( 'webkitdirectory' ) ) . toBeTruthy ( ) ;
82+ } ) ;
83+ } ) ;
84+
85+ describe ( 'assignDrop' , function ( ) {
86+ it ( 'assign to div' , function ( ) {
87+ var div = document . createElement ( 'div' ) ;
88+ var onDrop = jasmine . createSpy ( 'onDrop' ) ;
89+ resumable . onDrop = onDrop ;
90+ resumable . assignDrop ( div ) ;
91+ var event = document . createEvent ( 'MouseEvents' ) ;
92+ event . initEvent ( 'drop' , true , true ) ;
93+ event . dataTransfer = { files : [ ] } ;
94+ div . dispatchEvent ( event ) ;
95+ expect ( onDrop ) . toHaveBeenCalled ( ) ;
96+ expect ( onDrop . callCount ) . toBe ( 1 ) ;
97+
98+ resumable . unAssignDrop ( div ) ;
99+ div . dispatchEvent ( event ) ;
100+ expect ( onDrop . callCount ) . toBe ( 1 ) ;
101+ } ) ;
102+ } ) ;
103+
41104} ) ;
0 commit comments