瀏覽代碼

Proxify empty URL should not crash

Frédéric Guillot 3 年之前
父節點
當前提交
abe568b5b3
共有 2 個文件被更改,包括 27 次插入1 次删除
  1. 23 0
      proxy/image_proxy_test.go
  2. 4 1
      proxy/proxy.go

+ 23 - 0
proxy/image_proxy_test.go

@@ -220,6 +220,29 @@ func TestProxyFilterWithSrcset(t *testing.T) {
 	}
 }
 
+func TestProxyFilterWithEmptySrcset(t *testing.T) {
+	os.Clearenv()
+	os.Setenv("PROXY_IMAGES", "all")
+
+	var err error
+	parser := config.NewParser()
+	config.Opts, err = parser.ParseEnvironmentVariables()
+	if err != nil {
+		t.Fatalf(`Parsing failure: %v`, err)
+	}
+
+	r := mux.NewRouter()
+	r.HandleFunc("/proxy/{encodedURL}", func(w http.ResponseWriter, r *http.Request) {}).Name("proxy")
+
+	input := `<p><img src="http://website/folder/image.png" srcset="" alt="test"></p>`
+	expected := `<p><img src="/proxy/aHR0cDovL3dlYnNpdGUvZm9sZGVyL2ltYWdlLnBuZw==" srcset="" alt="test"/></p>`
+	output := ImageProxyRewriter(r, input)
+
+	if expected != output {
+		t.Errorf(`Not expected output: got %s`, output)
+	}
+}
+
 func TestProxyFilterWithPictureSource(t *testing.T) {
 	os.Clearenv()
 	os.Setenv("PROXY_IMAGES", "all")

+ 4 - 1
proxy/proxy.go

@@ -14,5 +14,8 @@ import (
 
 // ProxifyURL generates an URL for a proxified resource.
 func ProxifyURL(router *mux.Router, link string) string {
-	return route.Path(router, "proxy", "encodedURL", base64.URLEncoding.EncodeToString([]byte(link)))
+	if link != "" {
+		return route.Path(router, "proxy", "encodedURL", base64.URLEncoding.EncodeToString([]byte(link)))
+	}
+	return ""
 }