@@ -10,42 +10,60 @@ global.OC = {
1010
1111describe ( 'Image View src attribute based on markdown' , ( ) => {
1212
13- const factory = attrs => {
13+ const factory = ( attrs , options = { } ) => {
1414 const propsData = {
15- extension : { options : { currentDirectory : '/current' } } ,
16- node : { attrs}
15+ extension : { options : { currentDirectory : '/current' } } ,
16+ editor : { isEditable : options . isEditable ?? true } ,
17+ node : { attrs } ,
18+ deleteNode : options . deleteNode ?? function ( ) { } ,
1719 }
1820 const data = ( ) => ( {
1921 imageLoaded : true ,
2022 loaded : true ,
2123 failed : false ,
24+ showIcons : true ,
2225 } )
2326 return shallowMount ( ImageView , { propsData, data} )
2427 }
2528
2629 test ( 'old style is used as is' , ( ) => {
2730 const src = '/core/preview?fileId=123#mimetype=image%2Fjpeg'
28- const wrapper = factory ( { src} )
31+ const wrapper = factory ( { src } )
2932 expect ( wrapper . find ( '.image__main' ) . attributes ( 'src' ) ) . toBe ( src )
3033 } )
3134
35+ test ( 'has button to remove image' , ( ) => {
36+ const deleteNode = jest . fn ( )
37+ const src = '/core/preview?fileId=123#mimetype=image%2Fjpeg'
38+ const wrapper = factory ( { src } , { deleteNode } )
39+ wrapper . find ( '.image .trash-icon' ) . trigger ( 'click' )
40+ expect ( deleteNode ) . toHaveBeenCalled ( )
41+ } )
42+
43+ test ( 'no button to remove image when not editable' , ( ) => {
44+ const src = '/core/preview?fileId=123#mimetype=image%2Fjpeg'
45+ const wrapper = factory ( { src } , { isEditable : false } )
46+ expect ( wrapper . find ( '.image__main' ) . attributes ( 'src' ) ) . toBe ( src )
47+ expect ( wrapper . find ( '.image .trash-icon' ) . exists ( ) ) . toBeFalsy ( )
48+ } )
49+
3250 test ( 'old style with index.php is used as is' , ( ) => {
3351 const src = '/index.php/core/preview?fileId=9&x=1024&y=1024&a=true#mimetype=image%2Fjpeg&hasPreview=true&fileId=9'
34- const wrapper = factory ( { src} )
52+ const wrapper = factory ( { src } )
3553 expect ( wrapper . find ( '.image__main' ) . attributes ( 'src' ) ) . toBe ( src )
3654 } )
3755
3856 test ( 'fileId is used for preview url' , ( ) => {
3957 const src = '/Media/photo.jpeg?fileId=7#mimetype=image%2Fjpeg&hasPreview=true'
40- const wrapper = factory ( { src} )
58+ const wrapper = factory ( { src } )
4159 expect ( wrapper . vm . fileId ) . toBe ( '7' )
4260 expect ( wrapper . find ( '.image__main' ) . attributes ( 'src' ) )
4361 . toContain ( '/core/preview?fileId=7' )
4462 } )
4563
4664 test ( 'use dav paths for gifs so they are animated' , ( ) => {
4765 const src = '/Media/giffy.gif?fileId=7#mimetype=image%2Fgif&hasPreview=true'
48- const wrapper = factory ( { src} )
66+ const wrapper = factory ( { src } )
4967 expect ( wrapper . vm . extension . options . currentDirectory ) . toBe ( '/current' )
5068 expect ( wrapper . find ( '.image__main' ) . attributes ( 'src' ) )
5169 . toContain ( "remote.php/dav/files/user1/current/Media/giffy.gif" )
@@ -67,7 +85,7 @@ describe('Image View src attribute based on markdown', () => {
6785
6886 test ( 'data urls are used as is' , ( ) => {
6987 const src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAACnej3aAAAAAXRSTlMAQObYZgAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII='
70- const wrapper = factory ( { src} )
88+ const wrapper = factory ( { src } )
7189 expect ( wrapper . find ( '.image__main' ) . attributes ( 'src' ) ) . toBe ( src )
7290 } )
7391
0 commit comments