Codebase list golang-github-yuin-goldmark-highlighting / c85215d
Fix tests to cope with chroma changes Signed-off-by: Andrew Thornton <art27@cantab.net> Andrew Thornton 2 years ago
1 changed file(s) with 56 addition(s) and 47 deletion(s). Raw diff Collapse all Expand all
6767
6868 if strings.TrimSpace(buffer.String()) != strings.TrimSpace(`
6969 <h1>Title</h1>
70 <div class="highlight"><pre class="chroma"><span class="ln">1</span><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
71 <span class="ln">2</span> <span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">&#34;ok&#34;</span><span class="p">)</span>
72 <span class="ln">3</span><span class="p">}</span>
73 </pre></div>
70 <div class="highlight"><pre tabindex="0" class="chroma"><code><span class="line"><span class="ln">1</span><span class="cl"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
71 </span></span><span class="line"><span class="ln">2</span><span class="cl"> <span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">&#34;ok&#34;</span><span class="p">)</span>
72 </span></span><span class="line"><span class="ln">3</span><span class="cl"><span class="p">}</span>
73 </span></span></code></pre></div>
7474 `) {
75 t.Error("failed to render HTML")
76 }
77
78 expected := strings.TrimSpace(`/* Background */ .chroma { color: #f8f8f2; background-color: #272822 }
75 t.Error("failed to render HTML\n")
76 }
77
78 expected := strings.TrimSpace(`/* Background */ .bg { color: #f8f8f2; background-color: #272822 }
79 /* PreWrapper */ .chroma { color: #f8f8f2; background-color: #272822; }
7980 /* LineNumbers targeted by URL anchor */ .chroma .ln:target { color: #f8f8f2; background-color: #3c3d38 }
8081 /* LineNumbersTable targeted by URL anchor */ .chroma .lnt:target { color: #f8f8f2; background-color: #3c3d38 }
8182 /* Error */ .chroma .err { color: #960050; background-color: #1e0010 }
8283 /* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
83 /* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; width: auto; overflow: auto; display: block; }
84 /* LineHighlight */ .chroma .hl { display: block; width: 100%;background-color: #3c3d38 }
85 /* LineNumbersTable */ .chroma .lnt { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
86 /* LineNumbers */ .chroma .ln { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
84 /* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; }
85 /* LineHighlight */ .chroma .hl { background-color: #3c3d38 }
86 /* LineNumbersTable */ .chroma .lnt { white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
87 /* LineNumbers */ .chroma .ln { white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
88 /* Line */ .chroma .line { display: flex; }
8789 /* Keyword */ .chroma .k { color: #66d9ef }
8890 /* KeywordConstant */ .chroma .kc { color: #66d9ef }
8991 /* KeywordDeclaration */ .chroma .kd { color: #66d9ef }
197199 }
198200 if strings.TrimSpace(buffer.String()) != strings.TrimSpace(`
199201 <h1>Title</h1>
200 <pre style="background-color:#fff"><span style="display:block;width:100%;background-color:#e5e5e5"><span style="color:#999;font-weight:bold;font-style:italic">#include</span> <span style="color:#999;font-weight:bold;font-style:italic">&lt;iostream&gt;</span><span style="color:#999;font-weight:bold;font-style:italic">
201 </span></span><span style="display:block;width:100%;background-color:#e5e5e5"><span style="color:#999;font-weight:bold;font-style:italic"></span><span style="color:#458;font-weight:bold">int</span> <span style="color:#900;font-weight:bold">main</span>() {
202 </span> std<span style="color:#000;font-weight:bold">::</span>cout<span style="color:#000;font-weight:bold">&lt;&lt;</span> <span style="color:#d14">&#34;hello&#34;</span> <span style="color:#000;font-weight:bold">&lt;&lt;</span> std<span style="color:#000;font-weight:bold">::</span>endl;
203 }
204 </pre>
202 <pre tabindex="0" style="background-color:#fff;display:grid;"><code><span style="display:flex; background-color:#e5e5e5"><span><span style="color:#999;font-weight:bold;font-style:italic">#include</span> <span style="color:#999;font-weight:bold;font-style:italic">&lt;iostream&gt;</span><span style="color:#999;font-weight:bold;font-style:italic">
203 </span></span></span><span style="display:flex; background-color:#e5e5e5"><span><span style="color:#999;font-weight:bold;font-style:italic"></span><span style="color:#458;font-weight:bold">int</span> <span style="color:#900;font-weight:bold">main</span>() {
204 </span></span><span style="display:flex;"><span> std<span style="color:#000;font-weight:bold">::</span>cout<span style="color:#000;font-weight:bold">&lt;&lt;</span> <span style="color:#d14">&#34;hello&#34;</span> <span style="color:#000;font-weight:bold">&lt;&lt;</span> std<span style="color:#000;font-weight:bold">::</span>endl;
205 </span></span><span style="display:flex;"><span>}
206 </span></span></code></pre>
205207 `) {
206208 t.Error("failed to render HTML")
207209 }
295297
296298 if strings.TrimSpace(buffer.String()) != strings.TrimSpace(`
297299 <h1>Title</h1>
298 <div class="highlight"><pre class="chroma"><span class="ln">1</span><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
299 <span class="ln">2</span> <span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">&#34;ok&#34;</span><span class="p">)</span>
300 <span class="ln">3</span><span class="p">}</span>
301 </pre></div>
300 <div class="highlight"><pre tabindex="0" class="chroma"><code><span class="line"><span class="ln">1</span><span class="cl"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
301 </span></span><span class="line"><span class="ln">2</span><span class="cl"> <span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">&#34;ok&#34;</span><span class="p">)</span>
302 </span></span><span class="line"><span class="ln">3</span><span class="cl"><span class="p">}</span>
303 </span></span></code></pre></div>
302304 `) {
303 t.Error("failed to render HTML")
304 }
305
306 expected := strings.TrimSpace(`/* Background */ .chroma { color: #cccccc; background-color: #1d1d1d }
305 t.Error("failed to render HTML", buffer.String())
306 }
307
308 expected := strings.TrimSpace(`/* Background */ .bg { color: #cccccc; background-color: #1d1d1d }
309 /* PreWrapper */ .chroma { color: #cccccc; background-color: #1d1d1d; }
307310 /* LineNumbers targeted by URL anchor */ .chroma .ln:target { color: #cccccc; background-color: #333333 }
308311 /* LineNumbersTable targeted by URL anchor */ .chroma .lnt:target { color: #cccccc; background-color: #333333 }
309312 /* Error */ .chroma .err { }
310313 /* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
311 /* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; width: auto; overflow: auto; display: block; }
312 /* LineHighlight */ .chroma .hl { display: block; width: 100%;background-color: #333333 }
313 /* LineNumbersTable */ .chroma .lnt { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #666666 }
314 /* LineNumbers */ .chroma .ln { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #666666 }
314 /* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; }
315 /* LineHighlight */ .chroma .hl { background-color: #333333 }
316 /* LineNumbersTable */ .chroma .lnt { white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #666666 }
317 /* LineNumbers */ .chroma .ln { white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #666666 }
318 /* Line */ .chroma .line { display: flex; }
315319 /* Keyword */ .chroma .k { color: #cc99cd }
316320 /* KeywordConstant */ .chroma .kc { color: #cc99cd }
317321 /* KeywordDeclaration */ .chroma .kd { color: #cc99cd }
413417 }
414418
415419 for _, line := range test.expect {
416 expectStr := fmt.Sprintf("<span class=\"hl\">LINE%d\n</span>", line)
420 expectStr := fmt.Sprintf("<span class=\"line hl\"><span class=\"cl\">LINE%d\n</span></span>", line)
417421 if !strings.Contains(buffer.String(), expectStr) {
418422 t.Fatal("got\n", buffer.String(), "\nexpected\n", expectStr)
419423 }
428432 <span class="lnt">1
429433 </span></td>
430434 <td class="lntd">
431 LINE1
432 </td></tr></table>
435 <span class="line"><span class="cl">LINE1
436 </span></span></td></tr></table>
433437 </div>`
434438
435439 for i, test := range []struct {
438442 lineNumbersInTable bool
439443 expect string
440444 }{
441 {`linenos=true`, false, false, `<span class="ln">1</span>LINE1`},
442 {`linenos=false`, false, false, `LINE1`},
443 {``, true, false, `<span class="ln">1</span>LINE1`},
445 {`linenos=true`, false, false, `<span class="line"><span class="ln">1</span><span class="cl">LINE1
446 </span></span>`},
447 {`linenos=false`, false, false, `<span class="line"><span class="cl">LINE1
448 </span></span>`},
449 {``, true, false, `<span class="line"><span class="ln">1</span><span class="cl">LINE1
450 </span></span>`},
444451 {``, true, true, outputLineNumbersInTable},
445 {`linenos=inline`, true, true, `<span class="ln">1</span>LINE1`},
446 {`linenos=foo`, false, false, `<span class="ln">1</span>LINE1`},
452 {`linenos=inline`, true, true, `<span class="line"><span class="ln">1</span><span class="cl">LINE1
453 </span></span>`},
454 {`linenos=foo`, false, false, `<span class="line"><span class="ln">1</span><span class="cl">LINE1
455 </span></span>`},
447456 {`linenos=table`, false, false, outputLineNumbersInTable},
448457 } {
449458 t.Run(fmt.Sprint(i), func(t *testing.T) {
499508 t.Fatal(err)
500509 }
501510 if strings.TrimSpace(buffer.String()) != strings.TrimSpace(`
502 <pre class="chroma"><span class="ln">1</span>LINE
503 </pre>
511 <pre tabindex="0" class="chroma"><code><span class="line"><span class="ln">1</span><span class="cl">LINE
512 </span></span></code></pre>
504513 `) {
505514 t.Errorf("render mismatch, got\n%s", buffer.String())
506515 }
531540 t.Fatal(err)
532541 }
533542 if strings.TrimSpace(buffer.String()) != strings.TrimSpace(`
534 <pre class="chroma"><span class="ln">1</span><span class="nf">GET</span> <span class="nn">/foo</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
535 <span class="ln">2</span><span class="n">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
536 <span class="ln">3</span><span class="n">User-Agent</span><span class="o">:</span> <span class="l">foo</span>
537 <span class="ln">4</span>
538 <span class="ln">5</span><span class="p">{</span>
539 <span class="ln">6</span> <span class="nt">&#34;hello&#34;</span><span class="p">:</span> <span class="s2">&#34;world&#34;</span>
540 <span class="ln">7</span><span class="p">}</span>
541 </pre>
543 <pre tabindex="0" class="chroma"><code><span class="line"><span class="ln">1</span><span class="cl"><span class="nf">GET</span> <span class="nn">/foo</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
544 </span></span><span class="line"><span class="ln">2</span><span class="cl"><span class="n">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
545 </span></span><span class="line"><span class="ln">3</span><span class="cl"><span class="n">User-Agent</span><span class="o">:</span> <span class="l">foo</span>
546 </span></span><span class="line"><span class="ln">4</span><span class="cl">
547 </span></span><span class="line"><span class="ln">5</span><span class="cl"><span class="p">{</span>
548 </span></span><span class="line"><span class="ln">6</span><span class="cl"> <span class="nt">&#34;hello&#34;</span><span class="p">:</span> <span class="s2">&#34;world&#34;</span>
549 </span></span><span class="line"><span class="ln">7</span><span class="cl"><span class="p">}</span>
550 </span></span></code></pre>
542551 `) {
543552 t.Errorf("render mismatch, got\n%s", buffer.String())
544553 }