Ensure the instrumentedResponseWriter correctly sets the http
status in the context. Signed-off-by: Richard Scothern <richard.scothern@gmail.com>master
							parent
							
								
									dd58ffe6ed
								
							
						
					
					
						commit
						70f853e787
					
				|  | @ -322,9 +322,7 @@ func (irw *instrumentedResponseWriter) Value(key interface{}) interface{} { | |||
| 		case "written": | ||||
| 			return irw.written | ||||
| 		case "status": | ||||
| 			if irw.status != 0 { | ||||
| 				return irw.status | ||||
| 			} | ||||
| 			return irw.status | ||||
| 		case "contenttype": | ||||
| 			contentType := irw.Header().Get("Content-Type") | ||||
| 			if contentType != "" { | ||||
|  |  | |||
|  | @ -145,6 +145,10 @@ func TestWithResponseWriter(t *testing.T) { | |||
| 		t.Fatalf("unexpected response writer returned: %#v != %#v", grw, rw) | ||||
| 	} | ||||
| 
 | ||||
| 	if ctx.Value("http.response.status") != 0 { | ||||
| 		t.Fatalf("response status should always be a number and should be zero here: %v != 0", ctx.Value("http.response.status")) | ||||
| 	} | ||||
| 
 | ||||
| 	if n, err := rw.Write(make([]byte, 1024)); err != nil { | ||||
| 		t.Fatalf("unexpected error writing: %v", err) | ||||
| 	} else if n != 1024 { | ||||
|  |  | |||
|  | @ -93,7 +93,7 @@ func TestURLPrefix(t *testing.T) { | |||
| 
 | ||||
| } | ||||
| 
 | ||||
| // TestLayerAPI conducts a full of the of the layer api.
 | ||||
| // TestLayerAPI conducts a full test of the of the layer api.
 | ||||
| func TestLayerAPI(t *testing.T) { | ||||
| 	// TODO(stevvooe): This test code is complete junk but it should cover the
 | ||||
| 	// complete flow. This must be broken down and checked against the
 | ||||
|  | @ -246,6 +246,16 @@ func TestLayerAPI(t *testing.T) { | |||
| 		t.Fatalf("response body did not pass verification") | ||||
| 	} | ||||
| 
 | ||||
| 	// ----------------
 | ||||
| 	// Fetch the layer with an invalid digest
 | ||||
| 	badURL := strings.Replace(layerURL, "tarsum", "trsum", 1) | ||||
| 	resp, err = http.Get(badURL) | ||||
| 	if err != nil { | ||||
| 		t.Fatalf("unexpected error fetching layer: %v", err) | ||||
| 	} | ||||
| 
 | ||||
| 	checkResponse(t, "fetching layer bad digest", resp, http.StatusBadRequest) | ||||
| 
 | ||||
| 	// Missing tests:
 | ||||
| 	// 	- Upload the same tarsum file under and different repository and
 | ||||
| 	//       ensure the content remains uncorrupted.
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue