forked from TrueCloudLab/frostfs-http-gw
271451dc32
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
46 lines
1,006 B
Go
46 lines
1,006 B
Go
package downloader
|
|
|
|
import (
|
|
"io"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestDetector(t *testing.T) {
|
|
txtContentType := "text/plain; charset=utf-8"
|
|
sb := strings.Builder{}
|
|
for i := 0; i < 10; i++ {
|
|
sb.WriteString("Some txt content. Content-Type must be detected properly by detector.")
|
|
}
|
|
|
|
for _, tc := range []struct {
|
|
Name string
|
|
ContentType string
|
|
Expected string
|
|
}{
|
|
{
|
|
Name: "less than 512b",
|
|
ContentType: txtContentType,
|
|
Expected: sb.String()[:256],
|
|
},
|
|
{
|
|
Name: "more than 512b",
|
|
ContentType: txtContentType,
|
|
Expected: sb.String(),
|
|
},
|
|
} {
|
|
t.Run(tc.Name, func(t *testing.T) {
|
|
contentType, data, err := readContentType(uint64(len(tc.Expected)),
|
|
func(sz uint64) (io.Reader, error) {
|
|
return strings.NewReader(tc.Expected), nil
|
|
},
|
|
)
|
|
|
|
require.NoError(t, err)
|
|
require.Equal(t, tc.ContentType, contentType)
|
|
require.True(t, strings.HasPrefix(tc.Expected, string(data)))
|
|
})
|
|
}
|
|
}
|