blob: feb3df1773b325833dc3d491b6f2ae6fac2c346b [file] [log] [blame]
// Copyright 2016 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package icons
import (
"image"
"image/draw"
"image/png"
"os"
"path/filepath"
"testing"
"golang.org/x/exp/shiny/iconvg"
)
func encodePNG(dstFilename string, src image.Image) error {
f, err := os.Create(dstFilename)
if err != nil {
return err
}
encErr := png.Encode(f, src)
closeErr := f.Close()
if encErr != nil {
return encErr
}
return closeErr
}
func TestManualInspection(t *testing.T) {
// Set this to a non-empty string such as "/tmp/mdicons" to manually
// inspect the icons.
const tmpDir = ""
if tmpDir == "" {
t.Skip("no tmpDir specified")
}
t.Errorf("tmpDir %q is a non-empty string; do not commit code changes", tmpDir)
dst := image.NewAlpha(image.Rect(0, 0, 256, 256))
z := &iconvg.Rasterizer{}
z.SetDstImage(dst, dst.Bounds(), draw.Src)
for _, v := range list {
if err := iconvg.Decode(z, v.data, nil); err != nil {
t.Errorf("%q: %v", v.name, err)
continue
}
filename := filepath.Join(tmpDir, v.name+".png")
if err := encodePNG(filename, dst); err != nil {
t.Error(err)
}
t.Logf("wrote %s", filename)
}
}
func TestDecodeAll(t *testing.T) {
for _, v := range list {
if err := iconvg.Decode(nil, v.data, nil); err != nil {
t.Errorf("%q: %v", v.name, err)
continue
}
}
}