Test request logging
This commit is contained in:
		
							parent
							
								
									69550cbb23
								
							
						
					
					
						commit
						1cefc96311
					
				|  | @ -0,0 +1,42 @@ | ||||||
|  | package main | ||||||
|  | 
 | ||||||
|  | import ( | ||||||
|  | 	"bytes" | ||||||
|  | 	"fmt" | ||||||
|  | 	"net/http" | ||||||
|  | 	"net/http/httptest" | ||||||
|  | 	"testing" | ||||||
|  | 	"time" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | func TestLoggingHandler_ServeHTTP(t *testing.T) { | ||||||
|  | 	ts := time.Now() | ||||||
|  | 
 | ||||||
|  | 	tests := []struct { | ||||||
|  | 		Format, | ||||||
|  | 		ExpectedLogMessage string | ||||||
|  | 	}{ | ||||||
|  | 		{defaultRequestLoggingFormat, fmt.Sprintf("127.0.0.1 - - [%s] test-server GET - \"/foo/bar\" HTTP/1.1 \"\" 200 4 0.000\n", ts.Format("02/Jan/2006:15:04:05 -0700"))}, | ||||||
|  | 		{"{{.RequestMethod}}", "GET\n"}, | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	for _, test := range tests { | ||||||
|  | 		buf := bytes.NewBuffer(nil) | ||||||
|  | 		handler := func(w http.ResponseWriter, req *http.Request) { | ||||||
|  | 			w.Write([]byte("test")) | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		h := LoggingHandler(buf, http.HandlerFunc(handler), true, test.Format) | ||||||
|  | 
 | ||||||
|  | 		r, _ := http.NewRequest("GET", "/foo/bar", nil) | ||||||
|  | 		r.RemoteAddr = "127.0.0.1" | ||||||
|  | 		r.Host = "test-server" | ||||||
|  | 
 | ||||||
|  | 		h.ServeHTTP(httptest.NewRecorder(), r) | ||||||
|  | 
 | ||||||
|  | 		actual := buf.String() | ||||||
|  | 		if actual != test.ExpectedLogMessage { | ||||||
|  | 			t.Errorf("Log message was\n%s\ninstead of expected \n%s", actual, test.ExpectedLogMessage) | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | } | ||||||
		Loading…
	
		Reference in New Issue