diff --git a/lib/imgbundler/imgbundler_test.go b/lib/imgbundler/imgbundler_test.go index 4625a4f85..49acdb7d3 100644 --- a/lib/imgbundler/imgbundler_test.go +++ b/lib/imgbundler/imgbundler_test.go @@ -294,3 +294,83 @@ width="328" height="587" viewBox="-100 -131 328 587">ab +`, url1, url2) + + ms := &xmain.State{ + Name: "test", + + Stdin: os.Stdin, + Stdout: os.Stdout, + Stderr: os.Stderr, + + Env: xos.NewEnv(os.Environ()), + } + ms.Log = cmdlog.NewTB(ms.Env, t) + + count := 0 + + httpClient.Transport = roundTripFunc(func(req *http.Request) *http.Response { + count++ + respRecorder := httptest.NewRecorder() + respRecorder.WriteString(`\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n`) + respRecorder.WriteHeader(200) + return respRecorder.Result() + }) + + // Using a cache, imgs are not refetched on multiple runs + ms.Env.Setenv("IMG_CACHE", "1") + _, err := BundleRemote(ctx, ms, []byte(sampleSVG)) + if err != nil { + t.Fatal(err) + } + _, err = BundleRemote(ctx, ms, []byte(sampleSVG)) + if err != nil { + t.Fatal(err) + } + tassert.Equal(t, 1, count) + + // With cache disabled, it refetches + ms.Env.Setenv("IMG_CACHE", "0") + count = 0 + _, err = BundleRemote(ctx, ms, []byte(sampleSVG)) + if err != nil { + t.Fatal(err) + } + _, err = BundleRemote(ctx, ms, []byte(sampleSVG)) + if err != nil { + t.Fatal(err) + } + tassert.Equal(t, 2, count) +}