diff --git a/transport_test.go b/transport_test.go
index 4bee1da..f3de64f 100644
--- a/transport_test.go
+++ b/transport_test.go
@@ -7,8 +7,10 @@
 
 import (
 	"flag"
+	"io"
 	"net/http"
 	"os"
+	"reflect"
 	"testing"
 )
 
@@ -32,3 +34,40 @@
 	}
 	res.Write(os.Stdout)
 }
+
+func TestTransport(t *testing.T) {
+	condSkipFailingTest(t)
+
+	VerboseLogs = true
+	st := newServerTester(t, func(w http.ResponseWriter, r *http.Request) {
+		println("in handler")
+		io.WriteString(w, "sup")
+	})
+	defer st.Close()
+
+	tr := &Transport{
+		InsecureTLSDial: true,
+	}
+	cl := &http.Client{Transport: tr}
+	res, err := cl.Get(st.ts.URL)
+	if err != nil {
+		t.Fatal(err)
+	}
+	defer res.Body.Close()
+
+	t.Logf("Got res: %+v", res)
+	if g, w := res.StatusCode, 200; g != w {
+		t.Errorf("StatusCode = %v; want %v", g, w)
+	}
+	if g, w := res.Status, "200 OK"; g != w {
+		t.Errorf("Status = %q; want %q", g, w)
+	}
+	wantHeader := http.Header{
+		"Content-Length": []string{"3"},
+		"Content-Type":   []string{"text/plain; charset=utf-8"},
+	}
+	if !reflect.DeepEqual(res.Header, wantHeader) {
+		t.Errorf("res Header = %v; want %v", res.Header, wantHeader)
+	}
+
+}
