playground: serve 404 for non-existent pages

The server.handleEdit handler is being registered to handle the "/"
pattern. Its code checks if the request URL path has a "/p/" prefix,
and otherwise assumes it's the index page. There's no check if it's
some other unsupported URL. As a result, any URL that isn't handled
elsewhere serves the index page. For example:

	https://play.golang.org/foobarbaz

This change fixes that so non-existent pages return a 404 Not Found
error instead.

Also use context.Background() instead of a nil context in a test,
per the context package instructions.

Change-Id: I4c43492397a6f71bffc1e6a657ff2a523a245f94
Reviewed-on: https://go-review.googlesource.com/129795
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2 files changed
tree: d22387d7e4a61e40ac5eb70b5173df8b10d5a96c
  1. static/
  2. app.yaml
  3. AUTHORS
  4. cache.go
  5. client.go
  6. codereview.cfg
  7. CONTRIBUTING.md
  8. CONTRIBUTORS
  9. Dockerfile
  10. edit.go
  11. edit.html
  12. enable-fake-time.patch
  13. fake_fs.lst
  14. fmt.go
  15. LICENSE
  16. logger.go
  17. main.go
  18. Makefile
  19. PATENTS
  20. play.go
  21. play_test.go
  22. README.md
  23. sandbox.go
  24. server.go
  25. server_test.go
  26. share.go
  27. store.go
  28. strict-time.patch
  29. vet.go
README.md

playground

This subrepository holds the source for the Go playground: https://play.golang.org/

Building

# build the image
docker build -t playground .

Running

docker run --name=play --rm -d -p 8080:8080 playground
# run some Go code
cat /path/to/code.go | go run client.go | curl -s --upload-file - localhost:8080/compile

Deployment

gcloud --project=golang-org --account=person@example.com app deploy app.yaml

Contributing

To submit changes to this repository, see https://golang.org/doc/contribute.html.