mirror of
https://github.com/unidoc/unioffice.git
synced 2025-04-27 13:48:54 +08:00
89 lines
2.0 KiB
Go
89 lines
2.0 KiB
Go
package document
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestParseMergeField(t *testing.T) {
|
|
td := []struct {
|
|
instruction string
|
|
exp mergeFieldInfo
|
|
}{
|
|
{
|
|
`MERGEFIELD FirstName \f " "`,
|
|
mergeFieldInfo{
|
|
fieldName: "FirstName",
|
|
followText: " ",
|
|
},
|
|
},
|
|
{
|
|
`MERGEFIELD FirstName`,
|
|
mergeFieldInfo{
|
|
fieldName: "FirstName",
|
|
},
|
|
},
|
|
{
|
|
`MERGEFIELD FirstName \f "after" \b "before"`,
|
|
mergeFieldInfo{
|
|
fieldName: "FirstName",
|
|
followText: "after",
|
|
beforeText: "before",
|
|
},
|
|
},
|
|
{
|
|
`MERGEFIELD FirstName \* Upper`,
|
|
mergeFieldInfo{
|
|
fieldName: "FirstName",
|
|
upper: true,
|
|
},
|
|
},
|
|
{
|
|
`MERGEFIELD FirstName \* Lower`,
|
|
mergeFieldInfo{
|
|
fieldName: "FirstName",
|
|
lower: true,
|
|
},
|
|
},
|
|
{
|
|
`MERGEFIELD FirstName \* Caps`,
|
|
mergeFieldInfo{
|
|
fieldName: "FirstName",
|
|
caps: true,
|
|
},
|
|
},
|
|
{
|
|
`MERGEFIELD FirstName \* FirstCap`,
|
|
mergeFieldInfo{
|
|
fieldName: "FirstName",
|
|
firstCap: true,
|
|
},
|
|
},
|
|
}
|
|
for _, tc := range td {
|
|
t.Run(tc.instruction, func(t *testing.T) {
|
|
parsed := parseField(tc.instruction)
|
|
if parsed.fieldName != tc.exp.fieldName {
|
|
t.Errorf("expected fieldName = %s, got %s", tc.exp.fieldName, parsed.fieldName)
|
|
}
|
|
if parsed.followText != tc.exp.followText {
|
|
t.Errorf("expected followText = %s, got %s", tc.exp.followText, parsed.followText)
|
|
}
|
|
if parsed.beforeText != tc.exp.beforeText {
|
|
t.Errorf("expected beforeText = %s, got %s", tc.exp.beforeText, parsed.beforeText)
|
|
}
|
|
if parsed.upper != tc.exp.upper {
|
|
t.Errorf("expected upper = %v, got %v", tc.exp.upper, parsed.upper)
|
|
}
|
|
if parsed.lower != tc.exp.lower {
|
|
t.Errorf("expected lower = %v, got %v", tc.exp.lower, parsed.lower)
|
|
}
|
|
if parsed.caps != tc.exp.caps {
|
|
t.Errorf("expected caps = %v, got %v", tc.exp.caps, parsed.caps)
|
|
}
|
|
if parsed.firstCap != tc.exp.firstCap {
|
|
t.Errorf("expected firstCap = %v, got %v", tc.exp.firstCap, parsed.firstCap)
|
|
}
|
|
})
|
|
}
|
|
}
|