mirror of https://github.com/ethereum/go-ethereum
parent
b0190189a3
commit
c5b8569707
@ -0,0 +1,40 @@ |
|||||||
|
package rpc |
||||||
|
|
||||||
|
import ( |
||||||
|
"net/http" |
||||||
|
"net/http/httptest" |
||||||
|
"strings" |
||||||
|
"testing" |
||||||
|
) |
||||||
|
|
||||||
|
func TestHTTPErrorResponseWithDelete(t *testing.T) { |
||||||
|
httpErrorResponseTest(t, "DELETE", contentType, "", http.StatusMethodNotAllowed) |
||||||
|
} |
||||||
|
|
||||||
|
func TestHTTPErrorResponseWithPut(t *testing.T) { |
||||||
|
httpErrorResponseTest(t, "PUT", contentType, "", http.StatusMethodNotAllowed) |
||||||
|
} |
||||||
|
|
||||||
|
func TestHTTPErrorResponseWithMaxContentLength(t *testing.T) { |
||||||
|
body := make([]rune, maxHTTPRequestContentLength+1, maxHTTPRequestContentLength+1) |
||||||
|
httpErrorResponseTest(t, |
||||||
|
"POST", contentType, string(body), http.StatusRequestEntityTooLarge) |
||||||
|
} |
||||||
|
|
||||||
|
func TestHTTPErrorResponseWithEmptyContentType(t *testing.T) { |
||||||
|
httpErrorResponseTest(t, "POST", "", "", http.StatusUnsupportedMediaType) |
||||||
|
} |
||||||
|
|
||||||
|
func TestHTTPErrorResponseWithValidRequest(t *testing.T) { |
||||||
|
httpErrorResponseTest(t, "POST", contentType, "", 0) |
||||||
|
} |
||||||
|
|
||||||
|
func httpErrorResponseTest(t *testing.T, |
||||||
|
method, contentType, body string, expectedResponse int) { |
||||||
|
|
||||||
|
request := httptest.NewRequest(method, "http://url.com", strings.NewReader(body)) |
||||||
|
request.Header.Set("content-type", contentType) |
||||||
|
if response, _ := httpErrorResponse(request); response != expectedResponse { |
||||||
|
t.Fatalf("response code should be %d not %d", expectedResponse, response) |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue