Files
bl/common/serialize/log/html_test.go
昔念 ffc39f5462 refactor(common): 重构 bitset 和 log 包
- 移除了 github.com/scylladb/termtables 依赖
- 修改了 bitset 包,移除了未使用的代码和测试
- 修改了 log 包,移除了未使用的代码和测试
- 更新了 go.work 文件,添加了 bitset 和 log 包
2025-07-02 22:31:54 +08:00

223 lines
5.6 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Copyright 2013 Apcera Inc. All rights reserved.
package termtables
import (
"testing"
)
func TestCreateTableHTML(t *testing.T) {
expected := "<table class=\"termtable\">\n" +
"<thead>\n" +
"<tr><th>Name</th><th>Value</th></tr>\n" +
"</thead>\n" +
"<tbody>\n" +
"<tr><td>hey</td><td>you</td></tr>\n" +
"<tr><td>ken</td><td>1234</td></tr>\n" +
"<tr><td>derek</td><td>3.14</td></tr>\n" +
"<tr><td>derek too</td><td>3.15</td></tr>\n" +
"</tbody>\n" +
"</table>\n"
table := CreateTable()
table.SetModeHTML()
table.AddHeaders("Name", "Value")
table.AddRow("hey", "you")
table.AddRow("ken", 1234)
table.AddRow("derek", 3.14)
table.AddRow("derek too", 3.1456788)
output := table.Render()
if output != expected {
t.Fatal(DisplayFailedOutput(output, expected))
}
}
func TestTableWithHeaderHTML(t *testing.T) {
expected := "<table class=\"termtable\">\n" +
"<thead>\n" +
"<caption>Example</caption>\n" +
"<tr><th>Name</th><th>Value</th></tr>\n" +
"</thead>\n" +
"<tbody>\n" +
"<tr><td>hey</td><td>you</td></tr>\n" +
"<tr><td>ken</td><td>1234</td></tr>\n" +
"<tr><td>derek</td><td>3.14</td></tr>\n" +
"<tr><td>derek too</td><td>3.15</td></tr>\n" +
"</tbody>\n" +
"</table>\n"
table := CreateTable()
table.SetModeHTML()
table.AddTitle("Example")
table.AddHeaders("Name", "Value")
table.AddRow("hey", "you")
table.AddRow("ken", 1234)
table.AddRow("derek", 3.14)
table.AddRow("derek too", 3.1456788)
output := table.Render()
if output != expected {
t.Fatal(DisplayFailedOutput(output, expected))
}
}
func TestTableTitleWidthAdjustsHTML(t *testing.T) {
expected := "<table class=\"termtable\">\n" +
"<thead>\n" +
"<caption>Example My Foo Bar&#39;d Test</caption>\n" +
"<tr><th>Name</th><th>Value</th></tr>\n" +
"</thead>\n" +
"<tbody>\n" +
"<tr><td>hey</td><td>you</td></tr>\n" +
"<tr><td>ken</td><td>1234</td></tr>\n" +
"<tr><td>derek</td><td>3.14</td></tr>\n" +
"<tr><td>derek too</td><td>3.15</td></tr>\n" +
"</tbody>\n" +
"</table>\n"
table := CreateTable()
table.SetModeHTML()
table.AddTitle("Example My Foo Bar'd Test")
table.AddHeaders("Name", "Value")
table.AddRow("hey", "you")
table.AddRow("ken", 1234)
table.AddRow("derek", 3.14)
table.AddRow("derek too", 3.1456788)
output := table.Render()
if output != expected {
t.Fatal(DisplayFailedOutput(output, expected))
}
}
func TestTableWithNoHeadersHTML(t *testing.T) {
expected := "<table class=\"termtable\">\n" +
"<tbody>\n" +
"<tr><td>hey</td><td>you</td></tr>\n" +
"<tr><td>ken</td><td>1234</td></tr>\n" +
"<tr><td>derek</td><td>3.14</td></tr>\n" +
"<tr><td>derek too</td><td>3.15</td></tr>\n" +
"</tbody>\n" +
"</table>\n"
table := CreateTable()
table.SetModeHTML()
table.AddRow("hey", "you")
table.AddRow("ken", 1234)
table.AddRow("derek", 3.14)
table.AddRow("derek too", 3.1456788)
output := table.Render()
if output != expected {
t.Fatal(DisplayFailedOutput(output, expected))
}
}
func TestTableUnicodeWidthsHTML(t *testing.T) {
expected := "<table class=\"termtable\">\n" +
"<thead>\n" +
"<tr><th>Name</th><th>Cost</th></tr>\n" +
"</thead>\n" +
"<tbody>\n" +
"<tr><td>Currency</td><td>¤10</td></tr>\n" +
"<tr><td>US Dollar</td><td>$30</td></tr>\n" +
"<tr><td>Euro</td><td>€27</td></tr>\n" +
"<tr><td>Thai</td><td>฿70</td></tr>\n" +
"</tbody>\n" +
"</table>\n"
table := CreateTable()
table.SetModeHTML()
table.AddHeaders("Name", "Cost")
table.AddRow("Currency", "¤10")
table.AddRow("US Dollar", "$30")
table.AddRow("Euro", "€27")
table.AddRow("Thai", "฿70")
output := table.Render()
if output != expected {
t.Fatal(DisplayFailedOutput(output, expected))
}
}
func TestTableWithAlignment(t *testing.T) {
expected := "<table class=\"termtable\">\n" +
"<thead>\n" +
"<tr><th>Foo</th><th>Bar</th></tr>\n" +
"</thead>\n" +
"<tbody>\n" +
"<tr><td>humpty</td><td>dumpty</td></tr>\n" +
"<tr><td align='right'>r</td><td>&lt;- on right</td></tr>\n" +
"</tbody>\n" +
"</table>\n"
table := CreateTable()
table.SetModeHTML()
table.AddHeaders("Foo", "Bar")
table.AddRow("humpty", "dumpty")
table.AddRow(CreateCell("r", &CellStyle{Alignment: AlignRight}), "<- on right")
output := table.Render()
if output != expected {
t.Fatal(DisplayFailedOutput(output, expected))
}
}
func TestTableAfterSetAlign(t *testing.T) {
expected := "<table class=\"termtable\">\n" +
"<thead>\n" +
"<tr><th>Alphabetical</th><th>Num</th></tr>\n" +
"</thead>\n" +
"<tbody>\n" +
"<tr><td align='right'>alfa</td><td>1</td></tr>\n" +
"<tr><td align='right'>bravo</td><td>2</td></tr>\n" +
"<tr><td align='right'>charlie</td><td>3</td></tr>\n" +
"</tbody>\n" +
"</table>\n"
table := CreateTable()
table.SetModeHTML()
table.AddHeaders("Alphabetical", "Num")
table.AddRow("alfa", 1)
table.AddRow("bravo", 2)
table.AddRow("charlie", 3)
table.SetAlign(AlignRight, 1)
output := table.Render()
if output != expected {
t.Fatal(DisplayFailedOutput(output, expected))
}
}
func TestTableWithAltTitleStyle(t *testing.T) {
expected := "" +
"<table class=\"termtable\">\n" +
"<thead>\n" +
"<tr><th style=\"text-align: center\" colspan=\"3\">Metasyntactic</th></tr>\n" +
"<tr><th>Foo</th><th>Bar</th><th>Baz</th></tr>\n" +
"</thead>\n" +
"<tbody>\n" +
"<tr><td>a</td><td>b</td><td>c</td></tr>\n" +
"<tr><td>α</td><td>β</td><td>γ</td></tr>\n" +
"</tbody>\n" +
"</table>\n"
table := CreateTable()
table.SetModeHTML()
table.SetHTMLStyleTitle(TitleAsThSpan)
table.AddTitle("Metasyntactic")
table.AddHeaders("Foo", "Bar", "Baz")
table.AddRow("a", "b", "c")
table.AddRow("α", "β", "γ")
output := table.Render()
if output != expected {
t.Fatal(DisplayFailedOutput(output, expected))
}
}