@@ -876,5 +876,32 @@ def util_format text
876
876
@to . end_accepting
877
877
end
878
878
879
+ def test_accept_table
880
+ header = %w[ Col1 Col2 Col3 ]
881
+ body = [
882
+ %w[ cell1_1 cell1_2 cell1_3 ] ,
883
+ %w[ cell2_1 cell2_2 cell2_3 ] ,
884
+ [ '<script>alert("foo");</script>' , ] ,
885
+ %w[ +code+ _em_ **strong** ] ,
886
+ ]
887
+ aligns = [ :left , :right , nil ]
888
+ @to . start_accepting
889
+ @to . accept_table ( header , body , aligns )
890
+ res = @to . end_accepting
891
+ assert_include ( res [ %r<<th[^<>]*>Col1</th>> ] , 'align="left"' )
892
+ assert_include ( res [ %r<<th[^<>]*>Col2</th>> ] , 'align="right"' )
893
+ assert_not_include ( res [ %r<<th[^<>]*>Col3</th>> ] , 'align=' )
894
+ assert_include ( res [ %r<<td[^<>]*>cell1_1</td>> ] , 'align="left"' )
895
+ assert_include ( res [ %r<<td[^<>]*>cell1_2</td>> ] , 'align="right"' )
896
+ assert_not_include ( res [ %r<<td[^<>]*>cell1_3</td>> ] , 'align=' )
897
+ assert_include ( res [ %r<<td[^<>]*>cell2_1</td>> ] , 'align="left"' )
898
+ assert_include ( res [ %r<<td[^<>]*>cell2_2</td>> ] , 'align="right"' )
899
+ assert_not_include ( res [ %r<<td[^<>]*>cell2_3</td>> ] , 'align=' )
900
+ assert_not_include ( res , '<script>' )
901
+ assert_include ( res [ %r<<td[^<>]*>.*script.*</td>> ] , '<script>' )
902
+ assert_include ( res [ %r<<td[^<>]*>.*code.*</td>> ] , '<code>code</code>' )
903
+ assert_include ( res [ %r<<td[^<>]*>.*em.*</td>> ] , '<em>em</em>' )
904
+ assert_include ( res [ %r<<td[^<>]*>.*strong.*</td>> ] , '<strong>strong</strong>' )
905
+ end
879
906
end
880
907
0 commit comments