aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2021-11-09 23:00:06 -0500
committerRuss Cox <rsc@golang.org>2021-11-17 17:48:38 +0000
commit7008ea24bd9b9f2483af110851f71fb8d2a9b06e (patch)
tree9e5c0f499fea8d208cd120b4ae22febaaf3d1f49
parent9d9bbfb1e70f925bf1809caa2d8ba56e3639d5a5 (diff)
downloadgo-x-website-7008ea24bd9b9f2483af110851f71fb8d2a9b06e.tar.xz
cmd/golangorg: refactor go.dev setup to make golang.org merge easier
No semantic changes here, just replacing the godevHandler function with the same site setup that golang.org already uses. Change-Id: Id25cf3ce98cc8bea7da4e2b367a05b648a270522 Reviewed-on: https://go-review.googlesource.com/c/website/+/362955 Trust: Russ Cox <rsc@golang.org> Reviewed-by: Jamal Carvalho <jamal@golang.org>
-rw-r--r--cmd/golangorg/godev.go21
-rw-r--r--cmd/golangorg/godev_test.go48
-rw-r--r--cmd/golangorg/server.go14
-rw-r--r--cmd/golangorg/testdata/godev.txt7
4 files changed, 18 insertions, 72 deletions
diff --git a/cmd/golangorg/godev.go b/cmd/golangorg/godev.go
index 135cd755..4bb06d5e 100644
--- a/cmd/golangorg/godev.go
+++ b/cmd/golangorg/godev.go
@@ -5,34 +5,13 @@
package main
import (
- "io/fs"
- "net/http"
"sort"
"strings"
"time"
- "golang.org/x/website/internal/backport/html/template"
- "golang.org/x/website/internal/blog"
"golang.org/x/website/internal/web"
)
-func godevHandler(fsys fs.FS) (http.Handler, error) {
- godev := web.NewSite(fsys)
- godev.Funcs(template.FuncMap{
- "newest": newest,
- "section": section,
- })
- mux := http.NewServeMux()
- mux.Handle("/", addCSP(godev))
- mux.Handle("/explore/", http.StripPrefix("/explore/", redirectPrefix("https://pkg.go.dev/")))
-
- if err := blog.RegisterFeeds(mux, "", godev); err != nil {
- return nil, err
- }
-
- return mux, nil
-}
-
// newest returns the pages sorted newest first,
// breaking ties by .linkTitle or else .title.
func newest(pages []web.Page) []web.Page {
diff --git a/cmd/golangorg/godev_test.go b/cmd/golangorg/godev_test.go
deleted file mode 100644
index 913d444c..00000000
--- a/cmd/golangorg/godev_test.go
+++ /dev/null
@@ -1,48 +0,0 @@
-// Copyright 2019 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 main
-
-import (
- "bytes"
- "net/http/httptest"
- "strings"
- "testing"
-
- "golang.org/x/website"
-)
-
-var siteTests = []struct {
- target string
- want []string
-}{
- {"/", []string{"Go is an open source programming language supported by Google"}},
- {"/solutions/", []string{"Using Go at Google"}},
- {"/solutions/dropbox", []string{"About Dropbox"}},
-}
-
-func TestSite(t *testing.T) {
- h, err := godevHandler(website.Godev)
- if err != nil {
- t.Fatal(err)
- }
-
- for _, tt := range siteTests {
- t.Run(tt.target, func(t *testing.T) {
- r := httptest.NewRequest("GET", tt.target, nil)
- resp := httptest.NewRecorder()
- resp.Body = new(bytes.Buffer)
- h.ServeHTTP(resp, r)
- if resp.Code != 200 {
- t.Fatalf("Code = %d, want 200", resp.Code)
- }
- body := resp.Body.String()
- for _, str := range tt.want {
- if !strings.Contains(body, str) {
- t.Fatalf("Body does not contain %q:\n%s", str, body)
- }
- }
- })
- }
-}
diff --git a/cmd/golangorg/server.go b/cmd/golangorg/server.go
index e79e9db8..5dfe069b 100644
--- a/cmd/golangorg/server.go
+++ b/cmd/golangorg/server.go
@@ -34,6 +34,7 @@ import (
"golang.org/x/tools/playground"
"golang.org/x/website"
"golang.org/x/website/internal/backport/html/template"
+ "golang.org/x/website/internal/blog"
"golang.org/x/website/internal/codewalk"
"golang.org/x/website/internal/dl"
"golang.org/x/website/internal/gitfs"
@@ -197,11 +198,16 @@ func NewHandler(contentDir, goroot string) http.Handler {
// (golang.org/dl and golang.google.cn/dl are registered separately.)
mux.Handle("tip.golang.org/dl/", http.RedirectHandler("https://golang.org/dl/", http.StatusFound))
- godev, err := godevHandler(godevFS)
+ godevMux := http.NewServeMux()
+ godevSite, err := newSite(godevMux, "go.dev", godevFS, gorootFS)
if err != nil {
- log.Fatalf("godevHandler: %v", err)
+ log.Fatalf("newSite go.dev: %v", err)
}
- mux.Handle("go.dev/", godev)
+ godevMux.Handle("/explore/", http.StripPrefix("/explore/", redirectPrefix("https://pkg.go.dev/")))
+ if err := blog.RegisterFeeds(godevMux, "", godevSite); err != nil {
+ log.Fatalf("blog: %v", err)
+ }
+ mux.Handle("go.dev/", addCSP(godevMux))
mux.Handle("blog.golang.org/", redirectPrefix("https://go.dev/blog/"))
mux.Handle("learn.go.dev/", redirectPrefix("https://go.dev/learn/"))
@@ -227,7 +233,9 @@ func newSite(mux *http.ServeMux, host string, content, goroot fs.FS) (*web.Site,
site.Funcs(template.FuncMap{
"googleAnalytics": func() string { return googleAnalytics },
"googleCN": func() bool { return host == "golang.google.cn" },
+ "newest": newest,
"releases": func() []*history.Major { return history.Majors },
+ "section": section,
"version": func() string { return runtime.Version() },
})
docs, err := pkgdoc.NewServer(fsys, site, googleCN)
diff --git a/cmd/golangorg/testdata/godev.txt b/cmd/golangorg/testdata/godev.txt
index d220c2cd..651abfd9 100644
--- a/cmd/golangorg/testdata/godev.txt
+++ b/cmd/golangorg/testdata/godev.txt
@@ -1,6 +1,13 @@
GET https://go.dev/
+body contains Go is an open source programming language supported by Google
body contains <h2 class="WhoUses-headerH2">Companies using Go</h2>
+GET https://go.dev/solutions/
+body contains Using Go at Google
+
+GET https://go.dev/solutions/dropbox
+body contains About Dropbox
+
GET https://go.dev/solutions/google/
body ~ it\s+has\s+powered\s+many\s+projects\s+at\s+Google.