mirror of
https://github.com/autc04/Retro68.git
synced 2024-12-02 18:53:22 +00:00
51 lines
1.1 KiB
Go
51 lines
1.1 KiB
Go
// Copyright 2011 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package proxy
|
|
|
|
import (
|
|
"net"
|
|
"net/url"
|
|
"testing"
|
|
)
|
|
|
|
type testDialer struct {
|
|
network, addr string
|
|
}
|
|
|
|
func (t *testDialer) Dial(network, addr string) (net.Conn, error) {
|
|
t.network = network
|
|
t.addr = addr
|
|
return nil, t
|
|
}
|
|
|
|
func (t *testDialer) Error() string {
|
|
return "testDialer " + t.network + " " + t.addr
|
|
}
|
|
|
|
func TestFromURL(t *testing.T) {
|
|
u, err := url.Parse("socks5://user:password@1.2.3.4:5678")
|
|
if err != nil {
|
|
t.Fatalf("failed to parse URL: %s", err)
|
|
}
|
|
|
|
tp := &testDialer{}
|
|
proxy, err := FromURL(u, tp)
|
|
if err != nil {
|
|
t.Fatalf("FromURL failed: %s", err)
|
|
}
|
|
|
|
conn, err := proxy.Dial("tcp", "example.com:80")
|
|
if conn != nil {
|
|
t.Error("Dial unexpected didn't return an error")
|
|
}
|
|
if tp, ok := err.(*testDialer); ok {
|
|
if tp.network != "tcp" || tp.addr != "1.2.3.4:5678" {
|
|
t.Errorf("Dialer connected to wrong host. Wanted 1.2.3.4:5678, got: %v", tp)
|
|
}
|
|
} else {
|
|
t.Errorf("Unexpected error from Dial: %s", err)
|
|
}
|
|
}
|