Fix tests to cope with chroma changes
Signed-off-by: Andrew Thornton <art27@cantab.net>
Andrew Thornton
2 years ago
67 | 67 | |
68 | 68 | if strings.TrimSpace(buffer.String()) != strings.TrimSpace(` |
69 | 69 | <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">"ok"</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">"ok"</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> | |
74 | 74 | `) { |
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; } | |
79 | 80 | /* LineNumbers targeted by URL anchor */ .chroma .ln:target { color: #f8f8f2; background-color: #3c3d38 } |
80 | 81 | /* LineNumbersTable targeted by URL anchor */ .chroma .lnt:target { color: #f8f8f2; background-color: #3c3d38 } |
81 | 82 | /* Error */ .chroma .err { color: #960050; background-color: #1e0010 } |
82 | 83 | /* 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; } | |
87 | 89 | /* Keyword */ .chroma .k { color: #66d9ef } |
88 | 90 | /* KeywordConstant */ .chroma .kc { color: #66d9ef } |
89 | 91 | /* KeywordDeclaration */ .chroma .kd { color: #66d9ef } |
197 | 199 | } |
198 | 200 | if strings.TrimSpace(buffer.String()) != strings.TrimSpace(` |
199 | 201 | <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"><iostream></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"><<</span> <span style="color:#d14">"hello"</span> <span style="color:#000;font-weight:bold"><<</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"><iostream></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"><<</span> <span style="color:#d14">"hello"</span> <span style="color:#000;font-weight:bold"><<</span> std<span style="color:#000;font-weight:bold">::</span>endl; | |
205 | </span></span><span style="display:flex;"><span>} | |
206 | </span></span></code></pre> | |
205 | 207 | `) { |
206 | 208 | t.Error("failed to render HTML") |
207 | 209 | } |
295 | 297 | |
296 | 298 | if strings.TrimSpace(buffer.String()) != strings.TrimSpace(` |
297 | 299 | <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">"ok"</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">"ok"</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> | |
302 | 304 | `) { |
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; } | |
307 | 310 | /* LineNumbers targeted by URL anchor */ .chroma .ln:target { color: #cccccc; background-color: #333333 } |
308 | 311 | /* LineNumbersTable targeted by URL anchor */ .chroma .lnt:target { color: #cccccc; background-color: #333333 } |
309 | 312 | /* Error */ .chroma .err { } |
310 | 313 | /* 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; } | |
315 | 319 | /* Keyword */ .chroma .k { color: #cc99cd } |
316 | 320 | /* KeywordConstant */ .chroma .kc { color: #cc99cd } |
317 | 321 | /* KeywordDeclaration */ .chroma .kd { color: #cc99cd } |
413 | 417 | } |
414 | 418 | |
415 | 419 | 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) | |
417 | 421 | if !strings.Contains(buffer.String(), expectStr) { |
418 | 422 | t.Fatal("got\n", buffer.String(), "\nexpected\n", expectStr) |
419 | 423 | } |
428 | 432 | <span class="lnt">1 |
429 | 433 | </span></td> |
430 | 434 | <td class="lntd"> |
431 | LINE1 | |
432 | </td></tr></table> | |
435 | <span class="line"><span class="cl">LINE1 | |
436 | </span></span></td></tr></table> | |
433 | 437 | </div>` |
434 | 438 | |
435 | 439 | for i, test := range []struct { |
438 | 442 | lineNumbersInTable bool |
439 | 443 | expect string |
440 | 444 | }{ |
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>`}, | |
444 | 451 | {``, 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>`}, | |
447 | 456 | {`linenos=table`, false, false, outputLineNumbersInTable}, |
448 | 457 | } { |
449 | 458 | t.Run(fmt.Sprint(i), func(t *testing.T) { |
499 | 508 | t.Fatal(err) |
500 | 509 | } |
501 | 510 | 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> | |
504 | 513 | `) { |
505 | 514 | t.Errorf("render mismatch, got\n%s", buffer.String()) |
506 | 515 | } |
531 | 540 | t.Fatal(err) |
532 | 541 | } |
533 | 542 | 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">"hello"</span><span class="p">:</span> <span class="s2">"world"</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">"hello"</span><span class="p">:</span> <span class="s2">"world"</span> | |
549 | </span></span><span class="line"><span class="ln">7</span><span class="cl"><span class="p">}</span> | |
550 | </span></span></code></pre> | |
542 | 551 | `) { |
543 | 552 | t.Errorf("render mismatch, got\n%s", buffer.String()) |
544 | 553 | } |