diff options
| author | Russ Cox <rsc@golang.org> | 2021-11-09 23:00:06 -0500 |
|---|---|---|
| committer | Russ Cox <rsc@golang.org> | 2021-11-17 17:48:38 +0000 |
| commit | 7008ea24bd9b9f2483af110851f71fb8d2a9b06e (patch) | |
| tree | 9e5c0f499fea8d208cd120b4ae22febaaf3d1f49 | |
| parent | 9d9bbfb1e70f925bf1809caa2d8ba56e3639d5a5 (diff) | |
| download | go-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.go | 21 | ||||
| -rw-r--r-- | cmd/golangorg/godev_test.go | 48 | ||||
| -rw-r--r-- | cmd/golangorg/server.go | 14 | ||||
| -rw-r--r-- | cmd/golangorg/testdata/godev.txt | 7 |
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. |
