From: Dave Cheney Date: Tue, 12 Mar 2013 00:18:18 +0000 (+1100) Subject: net/http: add tests for ParseHTTPVersion X-Git-Tag: go1.1rc2~571 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=2f2271db7a1cb434845f6bbfbc5d4aa732f2aef5;p=gostls13.git net/http: add tests for ParseHTTPVersion R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/7739043 --- diff --git a/src/pkg/net/http/request_test.go b/src/pkg/net/http/request_test.go index 46d622992f..692485c49d 100644 --- a/src/pkg/net/http/request_test.go +++ b/src/pkg/net/http/request_test.go @@ -267,6 +267,38 @@ func TestNewRequestContentLength(t *testing.T) { } } +var parseHTTPVersionTests = []struct { + vers string + major, minor int + ok bool +}{ + {"HTTP/0.9", 0, 9, true}, + {"HTTP/1.0", 1, 0, true}, + {"HTTP/1.1", 1, 1, true}, + {"HTTP/3.14", 3, 14, true}, + + {"HTTP", 0, 0, false}, + {"HTTP/one.one", 0, 0, false}, + {"HTTP/1.1/", 0, 0, false}, + {"HTTP/-1,0", 0, 0, false}, + {"HTTP/0,-1", 0, 0, false}, + {"HTTP/", 0, 0, false}, + {"HTTP/1,1", 0, 0, false}, +} + +func TestParseHTTPVersion(t *testing.T) { + for _, tt := range parseHTTPVersionTests { + major, minor, ok := ParseHTTPVersion(tt.vers) + if ok != tt.ok || major != tt.major || minor != tt.minor { + type version struct { + major, minor int + ok bool + } + t.Errorf("failed to parse %q, expected: %#v, got %#v", tt.vers, version{tt.major, tt.minor, tt.ok}, version{major, minor, ok}) + } + } +} + type logWrites struct { t *testing.T dst *[]string