Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-pages.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfeistel <6742251-feistel@users.noreply.gitlab.com>2021-12-31 05:16:27 +0300
committerfeistel <6742251-feistel@users.noreply.gitlab.com>2022-01-24 15:23:10 +0300
commitd36080a959f3f13238ee5f853f4a66a699363965 (patch)
tree2b0a54e367572c1e387590a4dba159c8c8ff33f8 /internal/request
parent88656e8f55e74ea5d7adf703e36dac23726a139b (diff)
test: expand request package tests and migrate to table-driven tests
Diffstat (limited to 'internal/request')
-rw-r--r--internal/request/request_test.go98
1 files changed, 71 insertions, 27 deletions
diff --git a/internal/request/request_test.go b/internal/request/request_test.go
index 0455fc55..9e71db37 100644
--- a/internal/request/request_test.go
+++ b/internal/request/request_test.go
@@ -9,37 +9,81 @@ import (
)
func TestIsHTTPS(t *testing.T) {
- t.Run("when scheme is http", func(t *testing.T) {
- httpRequest, err := http.NewRequest("GET", "/", nil)
- require.NoError(t, err)
- httpRequest.URL.Scheme = SchemeHTTP
- require.False(t, IsHTTPS(httpRequest))
- })
-
- t.Run("when scheme is https", func(t *testing.T) {
- httpsRequest, err := http.NewRequest("GET", "/", nil)
- require.NoError(t, err)
- httpsRequest.URL.Scheme = SchemeHTTPS
- require.True(t, IsHTTPS(httpsRequest))
- })
+ tests := map[string]struct {
+ u string
+ scheme string
+ }{
+ "when scheme is http": {
+ u: "/",
+ scheme: SchemeHTTP,
+ },
+ "when scheme is https": {
+ u: "/",
+ scheme: SchemeHTTPS,
+ },
+ }
+ for name, test := range tests {
+ t.Run(name, func(t *testing.T) {
+ req := httptest.NewRequest(http.MethodGet, test.u, nil)
+ req.URL.Scheme = test.scheme
+
+ require.Equal(t, test.scheme == SchemeHTTPS, IsHTTPS(req))
+ })
+ }
}
func TestGetHostWithoutPort(t *testing.T) {
- t.Run("when port component is provided", func(t *testing.T) {
- request := httptest.NewRequest("GET", "https://example.com:443", nil)
- request.Host = "my.example.com:8080"
-
- host := GetHostWithoutPort(request)
+ tests := map[string]struct {
+ u string
+ host string
+ expected string
+ }{
+ "when port component is provided": {
+ u: "https://example.com:443",
+ host: "my.example.com:8080",
+ expected: "my.example.com",
+ },
+ "when port component is not provided": {
+ u: "http://example.com",
+ host: "my.example.com",
+ expected: "my.example.com",
+ },
+ }
+ for name, test := range tests {
+ t.Run(name, func(t *testing.T) {
+ req := httptest.NewRequest(http.MethodGet, test.u, nil)
+ req.Host = test.host
- require.Equal(t, "my.example.com", host)
- })
-
- t.Run("when port component is not provided", func(t *testing.T) {
- request := httptest.NewRequest("GET", "http://example.com", nil)
- request.Host = "my.example.com"
+ host := GetHostWithoutPort(req)
+ require.Equal(t, test.expected, host)
+ })
+ }
+}
- host := GetHostWithoutPort(request)
+func TestGetRemoteAddrWithoutPort(t *testing.T) {
+ tests := map[string]struct {
+ u string
+ remoteAddr string
+ expected string
+ }{
+ "when port component is provided": {
+ u: "https://example.com:443",
+ remoteAddr: "127.0.0.1:1000",
+ expected: "127.0.0.1",
+ },
+ "when port component is not provided": {
+ u: "http://example.com",
+ remoteAddr: "127.0.0.1",
+ expected: "127.0.0.1",
+ },
+ }
+ for name, test := range tests {
+ t.Run(name, func(t *testing.T) {
+ req := httptest.NewRequest(http.MethodGet, test.u, nil)
+ req.RemoteAddr = test.remoteAddr
- require.Equal(t, "my.example.com", host)
- })
+ addr := GetRemoteAddrWithoutPort(req)
+ require.Equal(t, test.expected, addr)
+ })
+ }
}