mirror of
https://github.com/Luzifer/cloudkeys-go.git
synced 2024-11-15 09:22:19 +00:00
44 lines
1.2 KiB
Go
44 lines
1.2 KiB
Go
|
// Copyright 2015 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 websocket
|
||
|
|
||
|
import (
|
||
|
"crypto/tls"
|
||
|
"fmt"
|
||
|
"log"
|
||
|
"net"
|
||
|
"net/http/httptest"
|
||
|
"testing"
|
||
|
"time"
|
||
|
)
|
||
|
|
||
|
// This test depend on Go 1.3+ because in earlier versions the Dialer won't be
|
||
|
// used in TLS connections and a timeout won't be triggered.
|
||
|
func TestDialConfigTLSWithDialer(t *testing.T) {
|
||
|
tlsServer := httptest.NewTLSServer(nil)
|
||
|
tlsServerAddr := tlsServer.Listener.Addr().String()
|
||
|
log.Print("Test TLS WebSocket server listening on ", tlsServerAddr)
|
||
|
defer tlsServer.Close()
|
||
|
config, _ := NewConfig(fmt.Sprintf("wss://%s/echo", tlsServerAddr), "http://localhost")
|
||
|
config.Dialer = &net.Dialer{
|
||
|
Deadline: time.Now().Add(-time.Minute),
|
||
|
}
|
||
|
config.TlsConfig = &tls.Config{
|
||
|
InsecureSkipVerify: true,
|
||
|
}
|
||
|
_, err := DialConfig(config)
|
||
|
dialerr, ok := err.(*DialError)
|
||
|
if !ok {
|
||
|
t.Fatalf("DialError expected, got %#v", err)
|
||
|
}
|
||
|
neterr, ok := dialerr.Err.(*net.OpError)
|
||
|
if !ok {
|
||
|
t.Fatalf("net.OpError error expected, got %#v", dialerr.Err)
|
||
|
}
|
||
|
if !neterr.Timeout() {
|
||
|
t.Fatalf("expected timeout error, got %#v", neterr)
|
||
|
}
|
||
|
}
|