github.com/status-im/status-go@v1.1.0/images/main_test.go (about) 1 package images 2 3 import ( 4 "image" 5 "image/png" 6 "os" 7 "testing" 8 9 "github.com/stretchr/testify/require" 10 ) 11 12 func TestGenerateBannerImage_NoScaleUp(t *testing.T) { 13 // Test image 256x256 14 testImage := path + "status.png" 15 identityImage, err := GenerateBannerImage(testImage, 50, 50, 150, 100) 16 17 require.NoError(t, err) 18 require.Exactly(t, identityImage.Name, BannerIdentityName) 19 require.Positive(t, len(identityImage.Payload)) 20 // Ensure we don't scale it up. That will be done inefficiently in backend instead of frontend 21 require.Exactly(t, identityImage.Width, 100) 22 require.Exactly(t, identityImage.Height, 50) 23 require.Exactly(t, identityImage.FileSize, len(identityImage.Payload)) 24 require.Exactly(t, identityImage.ResizeTarget, int(BannerDim)) 25 } 26 27 func TestGenerateBannerImage_ShrinkOnly(t *testing.T) { 28 // Generate test image bigger than BannerDim 29 testImage := image.NewRGBA(image.Rect(0, 0, int(BannerDim)+10, int(BannerDim)+20)) 30 31 tmpTestFilePath := t.TempDir() + "/test.png" 32 file, err := os.Create(tmpTestFilePath) 33 require.NoError(t, err) 34 defer file.Close() 35 36 err = png.Encode(file, testImage) 37 require.NoError(t, err) 38 39 identityImage, error := GenerateBannerImage(tmpTestFilePath, 0, 0, int(BannerDim)+5, int(BannerDim)+10) 40 41 require.NoError(t, error) 42 require.Positive(t, len(identityImage.Payload)) 43 // Ensure we scale it down by the small side 44 require.Exactly(t, identityImage.Width, int(BannerDim)) 45 require.Exactly(t, identityImage.Height, 805) 46 }