|
- package service
-
- import (
- "testing"
-
- "github.com/stretchr/testify/require"
- )
-
- func TestDecodeBase64FileDataPreservesDeclaredMimeType(t *testing.T) {
- mimeType, payload, err := DecodeBase64FileData("data:application/pdf;base64,SGVsbG8=")
-
- require.NoError(t, err)
- require.Equal(t, "application/pdf", mimeType)
- require.Equal(t, "SGVsbG8=", payload)
- }
-
- func TestDecodeBase64ImageDataRejectsEmptyAndMalformedData(t *testing.T) {
- _, _, _, err := DecodeBase64ImageData("")
- require.Error(t, err)
-
- _, _, _, err = DecodeBase64ImageData("data:image/png;base64,not-base64")
- require.Error(t, err)
- }
-
- func TestDecodeBase64ImageDataParsesPNGDataURL(t *testing.T) {
- const pngBase64 = "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQIHWP4z8DwHwAFgAI/ScLxZQAAAABJRU5ErkJggg=="
-
- config, format, payload, err := DecodeBase64ImageData("data:image/png;base64," + pngBase64)
-
- require.NoError(t, err)
- require.Equal(t, 1, config.Width)
- require.Equal(t, 1, config.Height)
- require.Equal(t, "png", format)
- require.Equal(t, pngBase64, payload)
-
- mimeType, inferredPayload, err := DecodeBase64FileData(pngBase64)
- require.NoError(t, err)
- require.Equal(t, "image/png", mimeType)
- require.Equal(t, pngBase64, inferredPayload)
- }
-
- func TestDecodeBase64FileDataFallsBackToImageDetectionForBareData(t *testing.T) {
- _, _, err := DecodeBase64FileData("not-base64")
- require.Error(t, err)
- }
|