blob: 11babac83e49d60680b0ccecd57d01e215316730 [file] [log] [blame]
package scrap
import (
"bytes"
"testing"
"github.com/stretchr/testify/require"
"go.skia.org/infra/go/testutils/unittest"
)
func TestTemplateExpand_SVGToCPP_Success(t *testing.T) {
unittest.SmallTest(t)
tmplMap, err := loadTemplates()
require.NoError(t, err)
var b bytes.Buffer
body := ScrapBody{
Type: SVG,
Body: "<svg> \n</svg>",
}
err = tmplMap[CPP][SVG].Execute(&b, body)
require.NoError(t, err)
expected := `void draw(SkCanvas* canvas) {
const char * svg =
"<svg> \n"
"</svg>";
sk_sp<SkData> data(SkData::MakeWithoutCopy(svg, strlen(svg)));
if (!data) {
SkDebugf("Failed to load SVG.");
return;
}
SkMemoryStream stream(std::move(data));
sk_sp<SkSVGDOM> svgDom = SkSVGDOM::MakeFromStream(stream);
if (!svgDom) {
SkDebugf("Failed to parse SVG.");
return;
}
// Use the intrinsic SVG size if available, otherwise fall back to a default value.
static const SkSize kDefaultContainerSize = SkSize::Make(128, 128);
if (svgDom->containerSize().isEmpty()) {
svgDom->setContainerSize(kDefaultContainerSize);
}
svgDom->render(canvas);
}`
require.Equal(t, expected, b.String())
}