|
|
@@ -1,14 +1,22 @@
|
|
|
-package http
|
|
|
+package http_test
|
|
|
|
|
|
import (
|
|
|
"bufio"
|
|
|
- "github.com/v2ray/v2ray-core/testing/assert"
|
|
|
"net/http"
|
|
|
"strings"
|
|
|
"testing"
|
|
|
+
|
|
|
+ testdispatcher "github.com/v2ray/v2ray-core/app/dispatcher/testing"
|
|
|
+ v2nettesting "github.com/v2ray/v2ray-core/common/net/testing"
|
|
|
+ netassert "github.com/v2ray/v2ray-core/common/net/testing/assert"
|
|
|
+ . "github.com/v2ray/v2ray-core/proxy/http"
|
|
|
+ v2testing "github.com/v2ray/v2ray-core/testing"
|
|
|
+ "github.com/v2ray/v2ray-core/testing/assert"
|
|
|
)
|
|
|
|
|
|
func TestHopByHopHeadersStrip(t *testing.T) {
|
|
|
+ v2testing.Current(t)
|
|
|
+
|
|
|
rawRequest := `GET /pkg/net/http/ HTTP/1.1
|
|
|
Host: golang.org
|
|
|
Connection: keep-alive,Foo, Bar
|
|
|
@@ -32,10 +40,29 @@ Accept-Language: de,en;q=0.7,en-us;q=0.3
|
|
|
assert.StringLiteral(req.Header.Get("Proxy-Connection")).Equals("keep-alive")
|
|
|
assert.StringLiteral(req.Header.Get("Proxy-Authenticate")).Equals("abc")
|
|
|
|
|
|
- stripHopByHopHeaders(req)
|
|
|
+ StripHopByHopHeaders(req)
|
|
|
assert.StringLiteral(req.Header.Get("Connection")).Equals("close")
|
|
|
assert.StringLiteral(req.Header.Get("Foo")).Equals("")
|
|
|
assert.StringLiteral(req.Header.Get("Bar")).Equals("")
|
|
|
assert.StringLiteral(req.Header.Get("Proxy-Connection")).Equals("")
|
|
|
assert.StringLiteral(req.Header.Get("Proxy-Authenticate")).Equals("")
|
|
|
}
|
|
|
+
|
|
|
+func TestNormalGetRequest(t *testing.T) {
|
|
|
+ v2testing.Current(t)
|
|
|
+
|
|
|
+ testPacketDispatcher := testdispatcher.NewTestPacketDispatcher(nil)
|
|
|
+
|
|
|
+ httpProxy := NewHttpProxyServer(&Config{}, testPacketDispatcher)
|
|
|
+ defer httpProxy.Close()
|
|
|
+
|
|
|
+ port := v2nettesting.PickPort()
|
|
|
+ err := httpProxy.Listen(port)
|
|
|
+ assert.Error(err).IsNil()
|
|
|
+ netassert.Port(port).Equals(httpProxy.Port())
|
|
|
+
|
|
|
+ httpClient := &http.Client{}
|
|
|
+ resp, err := httpClient.Get("http://127.0.0.1:" + port.String() + "/")
|
|
|
+ assert.Error(err).IsNil()
|
|
|
+ assert.Int(resp.StatusCode).Equals(400)
|
|
|
+}
|