status-go/images/identity_test.go

72 lines
1.4 KiB
Go

package images
import (
"encoding/json"
"errors"
"testing"
"github.com/stretchr/testify/require"
)
func TestIdentityImage_GetDataURI(t *testing.T) {
cs := []struct {
II IdentityImage
URI string
Error error
}{
{
IdentityImage{Payload: testJpegBytes},
"data:image/jpeg;base64,/9j/2wCEAFA3PEY8MlA=",
nil,
},
{
IdentityImage{Payload: testPngBytes},
"data:image/png;base64,iVBORw0KGgoAAAANSUg=",
nil,
},
{
IdentityImage{Payload: testGifBytes},
"data:image/gif;base64,R0lGODlhAAEAAYQfAP8=",
nil,
},
{
IdentityImage{Payload: testWebpBytes},
"data:image/webp;base64,UklGRpBJAABXRUJQVlA=",
nil,
},
{
IdentityImage{Payload: testAacBytes},
"",
errors.New("image format not supported"),
},
}
for _, c := range cs {
u, err := c.II.GetDataURI()
if c.Error == nil {
require.NoError(t, err)
} else {
require.EqualError(t, err, c.Error.Error())
}
require.Exactly(t, c.URI, u)
}
}
func TestIdentityImage_MarshalJSON(t *testing.T) {
ii := IdentityImage{
Name: "thumbnail",
Payload: testJpegBytes,
Width: 80,
Height: 80,
FileSize: 256,
ResizeTarget: 80,
}
expected := `{"keyUid":"","type":"thumbnail","uri":"data:image/jpeg;base64,/9j/2wCEAFA3PEY8MlA=","width":80,"height":80,"fileSize":256,"resizeTarget":80,"clock":0}`
js, err := json.Marshal(ii)
require.NoError(t, err)
require.Exactly(t, expected, string(js))
}