@@ -41,10 +41,11 @@ public void CreateGlobalTableOfContent_ShouldReturnTOCandMultipleHeaderLines()
41
41
{
42
42
// Arrange
43
43
var wikiPDFExporter = new WikiPDFExporter ( new Options ( ) ) ;
44
- var mdContent1 = "\n # SomeHeader\n "
45
- + "SomeText" ;
46
- var mdContent2 = " ## SomeOtherHeader \n "
47
- + " []() #Some very interesting text in wrong header format #" ;
44
+ var mdContent1 = @"
45
+ # SomeHeader
46
+ SomeText" ;
47
+ var mdContent2 = @" ## SomeOtherHeader
48
+ []() #Some very interesting text in wrong header format #" ;
48
49
49
50
// Act
50
51
var result = wikiPDFExporter . CreateGlobalTableOfContent ( new List < string > { mdContent1 , mdContent2 } ) ;
@@ -54,6 +55,81 @@ public void CreateGlobalTableOfContent_ShouldReturnTOCandMultipleHeaderLines()
54
55
Assert . Equal ( "## SomeOtherHeader" , result [ 2 ] ) ;
55
56
}
56
57
58
+ [ Fact ]
59
+ public void CreateGlobalTableOfContent_ShouldIgnoreCodeSectionsSingle ( )
60
+ {
61
+ // Arrange
62
+ var wikiPDFExporter = new WikiPDFExporter ( new Options ( ) ) ;
63
+ var mdContent1 = @"
64
+ ``` code section
65
+ # SomeHeader
66
+ ```" ;
67
+
68
+ // Act
69
+ var result = wikiPDFExporter . CreateGlobalTableOfContent ( new List < string > { mdContent1 } ) ;
70
+
71
+ Assert . False ( result . Any ( ) ) ;
72
+ }
73
+
74
+ [ Fact ]
75
+ public void CreateGlobalTableOfContent_ShouldIgnoreCodeSectionsMultiple ( )
76
+ {
77
+ // Arrange
78
+ var wikiPDFExporter = new WikiPDFExporter ( new Options ( ) ) ;
79
+ var mdContent1 = @"
80
+ ``` code section
81
+ ## SomeHeader
82
+ Some other text
83
+ ```
84
+ ```
85
+ ## Another header ```
86
+ # A valid header" ;
87
+
88
+ // Act
89
+ var result = wikiPDFExporter . CreateGlobalTableOfContent ( new List < string > { mdContent1 } ) ;
90
+
91
+ Assert . Equal ( 2 , result . Count ) ;
92
+ Assert . Equal ( "[TOC]" , result [ 0 ] ) ;
93
+ Assert . Equal ( "# A valid header" , result [ 1 ] ) ;
94
+ }
95
+
96
+ [ Fact ]
97
+ public void CreateGlobalTableOfContent_ShouldNotIgnoreInvalidCodeSections ( )
98
+ {
99
+ // Arrange
100
+ var wikiPDFExporter = new WikiPDFExporter ( new Options ( ) ) ;
101
+ var mdContent1 = @"
102
+ Not at the beginning ```
103
+ # A valid header
104
+ ```
105
+ " ;
106
+
107
+ // Act
108
+ var result = wikiPDFExporter . CreateGlobalTableOfContent ( new List < string > { mdContent1 } ) ;
109
+
110
+ Assert . Equal ( 2 , result . Count ) ;
111
+ Assert . Equal ( "[TOC]" , result [ 0 ] ) ;
112
+ Assert . Equal ( "# A valid header" , result [ 1 ] ) ;
113
+ }
114
+
115
+ [ Fact ]
116
+ public void CreateGlobalTableOfContent_ShouldNotIgnoreUnclosedCodeSections ( )
117
+ {
118
+ // Arrange
119
+ var wikiPDFExporter = new WikiPDFExporter ( new Options ( ) ) ;
120
+ var mdContent1 = @"
121
+ ``` unclosed comment
122
+ # A valid header
123
+ " ;
124
+
125
+ // Act
126
+ var result = wikiPDFExporter . CreateGlobalTableOfContent ( new List < string > { mdContent1 } ) ;
127
+
128
+ Assert . Equal ( 2 , result . Count ) ;
129
+ Assert . Equal ( "[TOC]" , result [ 0 ] ) ;
130
+ Assert . Equal ( "# A valid header" , result [ 1 ] ) ;
131
+ }
132
+
57
133
[ Fact ]
58
134
public void RemoveDuplicatedHeadersFromGlobalTOC ( )
59
135
{
0 commit comments