git-lfs/tools/str_tools_test.go
2017-02-18 15:46:11 -07:00

53 lines
1.9 KiB
Go

package tools
import (
"testing"
"github.com/stretchr/testify/assert"
)
type QuotedFieldsTestCase struct {
Desc string
Given string
Expected []string
}
func (c *QuotedFieldsTestCase) Assert(t *testing.T) {
actual := QuotedFields(c.Given)
assert.Equal(t, c.Expected, actual,
"tools: expected QuotedFields(%q) to equal %#v (was %#v)",
c.Given, c.Expected, actual,
)
}
func TestQuotedFields(t *testing.T) {
for _, c := range []QuotedFieldsTestCase{
{"simple", "foo bar", []string{"foo", "bar"}},
{"simple trailing", "foo bar ", []string{"foo", "bar"}},
{"simple leading", " foo bar", []string{"foo", "bar"}},
{"single quotes", "foo 'bar baz'", []string{"foo", "'bar baz'"}},
{"single quotes trailing", "foo 'bar baz' ", []string{"foo", "'bar baz'"}},
{"single quotes leading", " foo 'bar baz'", []string{"foo", "'bar baz'"}},
{"double quotes", "foo \"bar baz\"", []string{"foo", "\"bar baz\""}},
{"double quotes trailing", "foo \"bar baz\" ", []string{"foo", "\"bar baz\""}},
{"double quotes leading", " foo \"bar baz\"", []string{"foo", "\"bar baz\""}},
{"nested single quotes", "foo 'bar 'baz''", []string{"foo", "'bar 'baz''"}},
{"nested single quotes trailing", "foo 'bar 'baz'' ", []string{"foo", "'bar 'baz''"}},
{"nested single quotes leading", " foo 'bar 'baz''", []string{"foo", "'bar 'baz''"}},
{"nested double quotes", "foo \"bar \"baz\"\"", []string{"foo", "\"bar \"baz\"\""}},
{"nested double quotes trailing", "foo \"bar \"baz\"\" ", []string{"foo", "\"bar \"baz\"\""}},
{"nested double quotes leading", " foo \"bar \"baz\"\"", []string{"foo", "\"bar \"baz\"\""}},
{"mixed quotes", "foo 'bar \"baz\"'", []string{"foo", "'bar \"baz\"'"}},
{"mixed quotes trailing", "foo 'bar \"baz\"' ", []string{"foo", "'bar \"baz\"'"}},
{"mixed quotes leading", " foo 'bar \"baz\"'", []string{"foo", "'bar \"baz\"'"}},
} {
t.Run(c.Desc, c.Assert)
}
}