2016-01-24 15:48:38 -05:00
|
|
|
package scenarios
|
|
|
|
|
|
|
|
import (
|
|
|
|
"io/ioutil"
|
|
|
|
"net/http"
|
|
|
|
"net/url"
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
v2net "github.com/v2ray/v2ray-core/common/net"
|
|
|
|
"github.com/v2ray/v2ray-core/testing/assert"
|
|
|
|
v2http "github.com/v2ray/v2ray-core/testing/servers/http"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestHttpProxy(t *testing.T) {
|
2016-05-24 15:55:46 -04:00
|
|
|
assert := assert.On(t)
|
2016-01-24 15:48:38 -05:00
|
|
|
|
|
|
|
httpServer := &v2http.Server{
|
|
|
|
Port: v2net.Port(50042),
|
|
|
|
PathHandler: make(map[string]http.HandlerFunc),
|
|
|
|
}
|
|
|
|
_, err := httpServer.Start()
|
|
|
|
assert.Error(err).IsNil()
|
|
|
|
defer httpServer.Close()
|
|
|
|
|
|
|
|
assert.Error(InitializeServerSetOnce("test_5")).IsNil()
|
|
|
|
|
|
|
|
transport := &http.Transport{
|
|
|
|
Proxy: func(req *http.Request) (*url.URL, error) {
|
|
|
|
return url.Parse("http://127.0.0.1:50040/")
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
client := &http.Client{
|
|
|
|
Transport: transport,
|
|
|
|
}
|
|
|
|
|
|
|
|
resp, err := client.Get("http://127.0.0.1:50042/")
|
|
|
|
assert.Error(err).IsNil()
|
|
|
|
assert.Int(resp.StatusCode).Equals(200)
|
|
|
|
|
|
|
|
content, err := ioutil.ReadAll(resp.Body)
|
|
|
|
assert.Error(err).IsNil()
|
2016-05-24 15:55:46 -04:00
|
|
|
assert.String(string(content)).Equals("Home")
|
2016-01-24 15:48:38 -05:00
|
|
|
|
|
|
|
CloseAllServers()
|
|
|
|
}
|
2016-06-10 17:01:17 -04:00
|
|
|
|
|
|
|
func TestBlockHTTP(t *testing.T) {
|
|
|
|
assert := assert.On(t)
|
|
|
|
|
|
|
|
httpServer := &v2http.Server{
|
|
|
|
Port: v2net.Port(50042),
|
|
|
|
PathHandler: make(map[string]http.HandlerFunc),
|
|
|
|
}
|
|
|
|
_, err := httpServer.Start()
|
|
|
|
assert.Error(err).IsNil()
|
|
|
|
defer httpServer.Close()
|
|
|
|
|
|
|
|
assert.Error(InitializeServerSetOnce("test_5")).IsNil()
|
|
|
|
|
|
|
|
transport := &http.Transport{
|
|
|
|
Proxy: func(req *http.Request) (*url.URL, error) {
|
|
|
|
return url.Parse("http://127.0.0.1:50040/")
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
client := &http.Client{
|
|
|
|
Transport: transport,
|
|
|
|
}
|
|
|
|
|
|
|
|
resp, err := client.Get("http://127.0.0.1:50049/")
|
|
|
|
assert.Error(err).IsNil()
|
|
|
|
assert.Int(resp.StatusCode).Equals(403)
|
|
|
|
|
|
|
|
CloseAllServers()
|
|
|
|
}
|