github.com/vmware/transport-go@v1.3.4/plank/utils/uri_test.go (about)

     1  // Copyright 2019-2021 VMware, Inc.
     2  // SPDX-License-Identifier: BSD-2-Clause
     3  
     4  package utils
     5  
     6  import (
     7  	"github.com/stretchr/testify/assert"
     8  	"testing"
     9  )
    10  
    11  func TestSanitizeUrl_Empty(t *testing.T) {
    12  	// arrange / act
    13  	url := SanitizeUrl("", true)
    14  
    15  	// assert
    16  	assert.Empty(t, url)
    17  }
    18  
    19  func TestSanitizeUrl_JustSlash(t *testing.T) {
    20  	// arrange
    21  	url := "/"
    22  
    23  	// act
    24  	url = SanitizeUrl(url, true)
    25  
    26  	// assert
    27  	assert.Equal(t, "/", url)
    28  }
    29  
    30  func TestSanitizeUrl_MissingTrailingForwardSlash(t *testing.T) {
    31  	// arrange
    32  	url := "http://dumb.net"
    33  
    34  	// act
    35  	url = SanitizeUrl(url, true)
    36  
    37  	// assert
    38  	assert.Equal(t, "http://dumb.net/", url)
    39  }
    40  
    41  func TestSanitizeUrl_ExcessTrailingSlashes(t *testing.T) {
    42  	// arrange
    43  	url := "http://dumb.net///"
    44  
    45  	// act
    46  	url = SanitizeUrl(url, true)
    47  
    48  	// assert
    49  	assert.Equal(t, "http://dumb.net/", url)
    50  }
    51  
    52  func TestSanitizeUrl_ExcessSlashesInBetween(t *testing.T) {
    53  	// arrange
    54  	url := "https://why//would///you///do///this"
    55  
    56  	// act
    57  	url = SanitizeUrl(url, true)
    58  
    59  	// assert
    60  	assert.Equal(t, "https://why/would/you/do/this/", url)
    61  }
    62  
    63  func TestSanitizeUrl_RemoveTrailingSlash(t *testing.T) {
    64  	// arrange
    65  	url := "http://dumb.net/"
    66  
    67  	// act
    68  	url = SanitizeUrl(url, false)
    69  
    70  	// assert
    71  	assert.Equal(t, "http://dumb.net", url)
    72  }
    73  
    74  func TestSanitizeUrl_RemoveTrailingSlash_JustSlash(t *testing.T) {
    75  	// arrange
    76  	url := "/"
    77  
    78  	// act
    79  	url = SanitizeUrl(url, false)
    80  
    81  	// assert
    82  	assert.Equal(t, "", url)
    83  }