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 }