@cryptotaxi247 / kubo / commits / 9956630e0

add more p2p http proxy tests

License: MIT Signed-off-by: Ian Preston <ianopolous@protonmail.com>

Dr Ian Preston committed Nov 15, 2018 at 22:13 UTC 9956630e0c4ca6620ceb74fc7b76d4dc5b0f3834
1 file changed +36 -15
core/corehttp/proxy_test.go
+36 -15
@@ -6,29 +6,50 @@ import (
6 "testing"
7
8 "github.com/ipfs/go-ipfs/thirdparty/assert"
9 +
10 + protocol "gx/ipfs/QmZNkThpqfVXs9GNbexPrfBbXSLNYeKrE7jwFM2oqHbyqN/go-libp2p-protocol"
11 )
12
13 +type TestCase struct {
14 + urlprefix string
15 + target string
16 + name string
17 + path string
18 +}
19 +
20 +var validtestCases = []TestCase{
21 + {"http://localhost:5001", "QmT8JtU54XSmC38xSb1XHFSMm775VuTeajg7LWWWTAwzxT", "/http", "path/to/index.txt"},
22 + {"http://localhost:5001", "QmT8JtU54XSmC38xSb1XHFSMm775VuTeajg7LWWWTAwzxT", "/x/custom/http", "path/to/index.txt"},
23 + {"http://localhost:5001", "QmT8JtU54XSmC38xSb1XHFSMm775VuTeajg7LWWWTAwzxT", "/x/custom/http", "http/path/to/index.txt"},
24 +}
25 +
26 func TestParseRequest(t *testing.T) {
12 - url := "http://localhost:5001/p2p/QmT8JtU54XSmC38xSb1XHFSMm775VuTeajg7LWWWTAwzxT/http/path/to/index.txt"
13 - req, _ := http.NewRequest("GET", url, strings.NewReader(""))
27 + for _, tc := range validtestCases {
28 + url := tc.urlprefix + "/p2p/" + tc.target + tc.name + "/" + tc.path
29 + req, _ := http.NewRequest("GET", url, strings.NewReader(""))
30
15 - parsed, err := parseRequest(req)
16 - if err != nil {
17 - t.Fatal(err)
31 + parsed, err := parseRequest(req)
32 + if err != nil {
33 + t.Fatal(err)
34 + }
35 + assert.True(parsed.httpPath == tc.path, t, "proxy request path")
36 + assert.True(parsed.name == protocol.ID(tc.name), t, "proxy request name")
37 + assert.True(parsed.target == tc.target, t, "proxy request peer-id")
38 }
19 - assert.True(parsed.httpPath == "path/to/index.txt", t, "proxy request path")
20 - assert.True(parsed.name == "/http", t, "proxy request name")
21 - assert.True(parsed.target == "QmT8JtU54XSmC38xSb1XHFSMm775VuTeajg7LWWWTAwzxT", t, "proxy request peer-id")
39 +}
40 +
41 +var invalidtestCases = []string{
42 + "http://localhost:5001/p2p/http/foobar",
43 }
44
45 func TestParseRequestInvalidPath(t *testing.T) {
25 - url := "http://localhost:5001/p2p/http/foobar"
26 - req, _ := http.NewRequest("GET", url, strings.NewReader(""))
46 + for _, tc := range invalidtestCases {
47 + url := tc
48 + req, _ := http.NewRequest("GET", url, strings.NewReader(""))
49
28 - _, err := parseRequest(req)
29 - if err == nil {
30 - t.Fail()
50 + _, err := parseRequest(req)
51 + if err == nil {
52 + t.Fail()
53 + }
54 }
32 -
33 - assert.True(err.Error() == "Invalid request path '/p2p/http/foobar'", t, "fails with invalid path")
55 }