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
}