MCPcopy Index your code
hub / github.com/google/go-cloud / TestMiddleware

Function TestMiddleware

server/server_test.go:80–127  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

78}
79
80func TestMiddleware(t *testing.T) {
81 onLogCalled := 0
82
83 tl := &testLogger{
84 onLog: func(ent *requestlog.Entry) {
85 onLogCalled++
86 if ent.TraceID.String() == "" {
87 t.Error("TraceID is empty")
88 }
89 if ent.SpanID.String() == "" {
90 t.Error("SpanID is empty")
91 }
92 },
93 }
94
95 td := new(testDriver)
96 s := New(http.NotFoundHandler(), &Options{Driver: td, RequestLogger: tl})
97 err := s.ListenAndServe(":8080")
98 if err != nil {
99 t.Fatal(err)
100 }
101
102 req, err := http.NewRequest("GET", "/", nil)
103 if err != nil {
104 t.Fatal(err)
105 }
106
107 rr := httptest.NewRecorder()
108 td.handler.ServeHTTP(rr, req)
109 if onLogCalled != 1 {
110 t.Fatal("logging middleware was not called")
111 }
112
113 // Repeat with TLS.
114 err = s.ListenAndServeTLS(":8081", certFile, keyFile)
115 if err != nil {
116 t.Fatal(err)
117 }
118
119 req, err = http.NewRequest("GET", "/", nil)
120 if err != nil {
121 t.Fatal(err)
122 }
123 td.handler.ServeHTTP(rr, req)
124 if onLogCalled != 2 {
125 t.Fatal("logging middleware was not called for TLS")
126 }
127}
128
129type testDriverNoTLS string
130

Callers

nothing calls this directly

Calls 6

NewFunction · 0.70
StringMethod · 0.65
ListenAndServeMethod · 0.65
ListenAndServeTLSMethod · 0.65
ErrorMethod · 0.45
ServeHTTPMethod · 0.45

Tested by

no test coverage detected