@@ -523,4 +523,57 @@ describe('vaadin-upload-file-list', () => {
523523 expect ( getUploadFiles ( ) . length ) . to . equal ( 3 ) ;
524524 } ) ;
525525 } ) ;
526+
527+ describe ( 'theme propagation' , ( ) => {
528+ it ( 'should propagate theme to upload-file elements' , async ( ) => {
529+ fileList . setAttribute ( 'theme' , 'thumbnails' ) ;
530+ manager . addFiles ( [ createFile ( 100 , 'text/plain' ) ] ) ;
531+ fileList . manager = manager ;
532+ await nextFrame ( ) ;
533+
534+ const uploadFile = getUploadFile ( ) ;
535+ expect ( uploadFile . getAttribute ( 'theme' ) ) . to . equal ( 'thumbnails' ) ;
536+ } ) ;
537+
538+ it ( 'should propagate theme to multiple upload-file elements' , async ( ) => {
539+ fileList . setAttribute ( 'theme' , 'thumbnails' ) ;
540+ manager . addFiles ( createFiles ( 3 , 100 , 'text/plain' ) ) ;
541+ fileList . manager = manager ;
542+ await nextFrame ( ) ;
543+
544+ const uploadFiles = getUploadFiles ( ) ;
545+ uploadFiles . forEach ( ( file ) => {
546+ expect ( file . getAttribute ( 'theme' ) ) . to . equal ( 'thumbnails' ) ;
547+ } ) ;
548+ } ) ;
549+
550+ it ( 'should update upload-file elements when theme changes' , async ( ) => {
551+ manager . addFiles ( [ createFile ( 100 , 'text/plain' ) ] ) ;
552+ fileList . manager = manager ;
553+ await nextFrame ( ) ;
554+
555+ const uploadFile = getUploadFile ( ) ;
556+ expect ( uploadFile . getAttribute ( 'theme' ) ) . to . be . null ;
557+
558+ fileList . setAttribute ( 'theme' , 'thumbnails' ) ;
559+ await nextFrame ( ) ;
560+
561+ expect ( uploadFile . getAttribute ( 'theme' ) ) . to . equal ( 'thumbnails' ) ;
562+ } ) ;
563+
564+ it ( 'should remove theme from upload-file elements when theme is removed' , async ( ) => {
565+ fileList . setAttribute ( 'theme' , 'thumbnails' ) ;
566+ manager . addFiles ( [ createFile ( 100 , 'text/plain' ) ] ) ;
567+ fileList . manager = manager ;
568+ await nextFrame ( ) ;
569+
570+ const uploadFile = getUploadFile ( ) ;
571+ expect ( uploadFile . getAttribute ( 'theme' ) ) . to . equal ( 'thumbnails' ) ;
572+
573+ fileList . removeAttribute ( 'theme' ) ;
574+ await nextFrame ( ) ;
575+
576+ expect ( uploadFile . getAttribute ( 'theme' ) ) . to . be . null ;
577+ } ) ;
578+ } ) ;
526579} ) ;
0 commit comments