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. AUTHORS
  2. CONTRIBUTING.md
  3. CONTRIBUTORS
  4. Dockerfile
  5. LICENSE
  6. Makefile
  7. PATENTS
  8. README.md
  9. app.yaml
  10. cache.go
  11. client.go
  12. codereview.cfg
  13. edit.go
  14. edit.html
  15. enable-fake-time.patch
  16. fake_fs.lst
  17. fmt.go
  18. logger.go
  19. main.go
  20. play.go
  21. play_test.go
  22. sandbox.go
  23. server.go
  24. server_test.go
  25. share.go
  26. static/
  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.