internal/play: fix share registration guard for golang.google.cn
CL 366056 added support for multiple play backends, but did not update
the pattern matching for golang.google.cn accordingly.
Change-Id: Ie992f86bb6879bb283db5a23870602ea1266d9ab
Reviewed-on: https://go-review.googlesource.com/c/website/+/556095
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Robert Findley <rfindley@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
diff --git a/cmd/golangorg/testdata/godev.txt b/cmd/golangorg/testdata/godev.txt
index 0cf694e..9d0ce4d 100644
--- a/cmd/golangorg/testdata/godev.txt
+++ b/cmd/golangorg/testdata/godev.txt
@@ -49,6 +49,12 @@
body !contains The Go Playground
body !contains About the Playground
+POST https://golang.google.cn/_/share
+code == 404
+
+GET https://golang.google.cn/_/share?id=asdfasdf
+code == 404
+
GET https://golang.google.cn/play/p/asdfasdf.go
code == 500
body contains Sorry, but shared playground snippets are not visible in China.
diff --git a/internal/play/proxy.go b/internal/play/proxy.go
index f896ef9..1b3e24d 100644
--- a/internal/play/proxy.go
+++ b/internal/play/proxy.go
@@ -46,12 +46,12 @@
func RegisterHandlers(mux *http.ServeMux, godevSite, chinaSite *web.Site) {
mux.Handle("/play/", playHandler(godevSite))
mux.Handle("golang.google.cn/play/", playHandler(chinaSite))
- for _, host := range []string{"golang.org", "go.dev/_", "golang.google.cn/_"} {
- mux.HandleFunc(host+"/compile", compile)
- if host != "golang.google.cn" {
- mux.HandleFunc(host+"/share", share)
+ for _, pattern := range []string{"golang.org", "go.dev/_", "golang.google.cn/_"} {
+ mux.HandleFunc(pattern+"/compile", compile)
+ if pattern != "golang.google.cn/_" {
+ mux.HandleFunc(pattern+"/share", share)
}
- mux.HandleFunc(host+"/fmt", fmtHandler)
+ mux.HandleFunc(pattern+"/fmt", fmtHandler)
}
}