-
Notifications
You must be signed in to change notification settings - Fork 0
/
table_parser_test.go
95 lines (88 loc) · 1.71 KB
/
table_parser_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
// SPDX-FileCopyrightText: 2020 M. Shulhan <[email protected]>
// SPDX-License-Identifier: GPL-3.0-or-later
package asciidoctor
import (
"testing"
"git.sr.ht/~shulhan/pakakeh.go/lib/test"
)
func TestTableParser_new(t *testing.T) {
type testCase struct {
desc string
content string
exp []*tableCell
}
var cases = []testCase{{
desc: `empty content`,
content: ``,
exp: nil,
}, {
desc: `first cell without |`,
content: `A1|B1`,
exp: []*tableCell{{
content: []byte(`A1`),
}, {
content: []byte(`B1`),
}},
}, {
desc: `first cell without |`,
content: "A1\nb|B1",
exp: []*tableCell{{
content: []byte("A1\nb"),
}, {
content: []byte(`B1`),
}},
}, {
desc: `single row`,
content: `|A1|B1`,
exp: []*tableCell{{
content: []byte(`A1`),
}, {
content: []byte(`B1`),
}},
}, {
desc: `two rows, empty header`,
content: "\n|A1",
exp: []*tableCell{nil, {
content: []byte(`A1`),
}},
}, {
desc: `three rows, empty header`,
content: "\n|A1 |\n\nb\n\n|A2",
exp: []*tableCell{nil, {
content: []byte(`A1 `),
}, {
content: []byte("\n\nb"),
}, nil, {
content: []byte(`A2`),
}},
}, {
desc: `with cell formatting`,
content: "3*|DUP\n^|A2\n3*x|B2\n>|C2",
exp: []*tableCell{{
content: []byte("DUP\n"),
format: cellFormat{
ndupCol: 3,
},
}, {
content: []byte("A2\n3*x"),
format: cellFormat{
alignHor: colAlignMiddle,
},
}, {
content: []byte("B2\n"),
}, {
content: []byte(`C2`),
format: cellFormat{
alignHor: colAlignBottom,
},
}},
}}
var (
c testCase
pt *tableParser
)
for _, c = range cases {
pt = newTableParser([]byte(c.content))
test.Assert(t, c.desc, c.exp, pt.cells)
}
}