github.com/blend/go-sdk@v1.20220411.3/webutil/get_proto_test.go (about)

     1  /*
     2  
     3  Copyright (c) 2022 - Present. Blend Labs, Inc. All rights reserved
     4  Use of this source code is governed by a MIT license that can be found in the LICENSE file.
     5  
     6  */
     7  
     8  package webutil
     9  
    10  import (
    11  	"net/http"
    12  	"testing"
    13  
    14  	"github.com/blend/go-sdk/assert"
    15  )
    16  
    17  func TestGetProto(t *testing.T) {
    18  	assert := assert.New(t)
    19  
    20  	headers := http.Header{}
    21  	headers.Set(HeaderXForwardedProto, SchemeHTTPS)
    22  	r := http.Request{
    23  		Proto:  SchemeHTTP + "/1.0",
    24  		Header: headers,
    25  	}
    26  	assert.Equal(SchemeHTTPS, GetProto(&r))
    27  
    28  	headers = http.Header{}
    29  	headers.Set(HeaderXForwardedProto, SchemeSPDY+","+SchemeHTTPS)
    30  	r = http.Request{
    31  		Proto:  SchemeHTTP + "/1.0",
    32  		Header: headers,
    33  	}
    34  	assert.Equal(SchemeHTTPS, GetProto(&r))
    35  
    36  	headers = http.Header{}
    37  	r = http.Request{
    38  		Header: headers,
    39  	}
    40  	assert.Empty(GetProto(&r))
    41  }