@@ -89,4 +89,40 @@ context('Extra Settings', () => {
8989 . invoke ( 'html' )
9090 . should ( 'contain' , '<a href="http://foo">foo</a>' ) ; // Renders
9191 } ) ;
92+
93+ it ( 'Escapes WordPress audio and video shortcodes with attributes' , ( ) => {
94+ cy . openSideBarPanel ( 'Extra Settings' ) ;
95+
96+ cy . setLanguage ( 'plaintext' ) ;
97+ cy . addCode ( '[audio src="fake.mp3"]\n[video src="fake.mp4"]' ) ;
98+ cy . findBlock ( 'code-block-pro' , '> div > div > pre' )
99+ . invoke ( 'html' )
100+ . should ( 'contain' , '[audio src="fake.mp3"]' )
101+ . and ( 'contain' , '[video src="fake.mp4"]' ) ;
102+
103+ cy . previewCurrentPage ( ) ;
104+ cy . get ( '.wp-block-kevinbatdorf-code-block-pro pre.shiki' )
105+ . should ( 'exist' )
106+ . invoke ( 'html' )
107+ . should ( 'contain' , '[audio src="fake.mp3"]' )
108+ . and ( 'contain' , '[video src="fake.mp4"]' ) ;
109+
110+ cy . go ( 'back' ) ;
111+ cy . focusBlock ( 'code-block-pro' ) ;
112+ cy . openSideBarPanel ( 'Extra Settings' ) ;
113+ cy . get ( '[data-cy="use-escape-shortcodes"]' ) . uncheck ( ) ;
114+ cy . findBlock ( 'code-block-pro' , '> div > div > pre' )
115+ . invoke ( 'html' )
116+ . should ( 'contain' , '[audio src="fake.mp3"]' )
117+ . and ( 'contain' , '[video src="fake.mp4"]' )
118+ . and ( 'not.contain' , 'wp-embedded-audio' )
119+ . and ( 'not.contain' , 'wp-embedded-video' ) ;
120+
121+ cy . previewCurrentPage ( ) ;
122+ cy . get ( '.wp-block-kevinbatdorf-code-block-pro pre.shiki' )
123+ . should ( 'exist' )
124+ . invoke ( 'html' )
125+ . should ( 'contain' , 'wp-embedded-audio' )
126+ . and ( 'contain' , 'wp-embedded-video' ) ;
127+ } ) ;
92128} ) ;
0 commit comments