@@ -13,6 +13,7 @@ import (
1313 "errors"
1414 "io"
1515 "net/http"
16+ "net/http/httptest"
1617 "net/url"
1718 "os"
1819 "path/filepath"
@@ -1974,6 +1975,34 @@ func TestTraceInfoOnTimeoutWithSetTimeout(t *testing.T) {
19741975 assertEqual (t , true , tr .TotalTime > 0 )
19751976 assertEqual (t , true , tr .TotalTime == resp .Duration ())
19761977 })
1978+
1979+ t .Run ("HTTPS request with TLS handshake" , func (t * testing.T ) {
1980+ ts := httptest .NewTLSServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
1981+ w .WriteHeader (http .StatusOK )
1982+ _ , _ = w .Write ([]byte ("OK" ))
1983+ }))
1984+ defer ts .Close ()
1985+
1986+ client := New ().
1987+ SetTimeout (5 * time .Second ).
1988+ SetTLSClientConfig (& tls.Config {InsecureSkipVerify : true }).
1989+ EnableTrace ()
1990+
1991+ resp , err := client .R ().Get (ts .URL )
1992+ assertNil (t , err )
1993+ assertNotNil (t , resp )
1994+
1995+ tr := resp .Request .TraceInfo ()
1996+
1997+ assertEqual (t , true , tr .TLSHandshake > 0 )
1998+ assertEqual (t , true , tr .DNSLookup >= 0 )
1999+ assertEqual (t , true , tr .ConnTime >= 0 )
2000+ assertEqual (t , true , tr .TCPConnTime >= 0 )
2001+ assertEqual (t , true , tr .ServerTime >= 0 )
2002+ assertEqual (t , true , tr .ResponseTime >= 0 )
2003+ assertEqual (t , true , tr .TotalTime > 0 )
2004+ assertEqual (t , true , tr .TotalTime == resp .Duration ())
2005+ })
19772006}
19782007
19792008func TestDebugLoggerRequestBodyTooLarge (t * testing.T ) {
0 commit comments