github.com/demonoid81/moby@v0.0.0-20200517203328-62dd8e17c460/daemon/info_test.go (about) 1 package daemon 2 3 import ( 4 "testing" 5 6 "gotest.tools/v3/assert" 7 ) 8 9 func TestMaskURLCredentials(t *testing.T) { 10 tests := []struct { 11 rawURL string 12 maskedURL string 13 }{ 14 { 15 rawURL: "", 16 maskedURL: "", 17 }, { 18 rawURL: "invalidURL", 19 maskedURL: "invalidURL", 20 }, { 21 rawURL: "http://proxy.example.com:80/", 22 maskedURL: "http://proxy.example.com:80/", 23 }, { 24 rawURL: "http://USER:PASSWORD@proxy.example.com:80/", 25 maskedURL: "http://xxxxx:xxxxx@proxy.example.com:80/", 26 }, { 27 rawURL: "http://PASSWORD:PASSWORD@proxy.example.com:80/", 28 maskedURL: "http://xxxxx:xxxxx@proxy.example.com:80/", 29 }, { 30 rawURL: "http://USER:@proxy.example.com:80/", 31 maskedURL: "http://xxxxx:xxxxx@proxy.example.com:80/", 32 }, { 33 rawURL: "http://:PASSWORD@proxy.example.com:80/", 34 maskedURL: "http://xxxxx:xxxxx@proxy.example.com:80/", 35 }, { 36 rawURL: "http://USER@docker:password@proxy.example.com:80/", 37 maskedURL: "http://xxxxx:xxxxx@proxy.example.com:80/", 38 }, { 39 rawURL: "http://USER%40docker:password@proxy.example.com:80/", 40 maskedURL: "http://xxxxx:xxxxx@proxy.example.com:80/", 41 }, { 42 rawURL: "http://USER%40docker:pa%3Fsword@proxy.example.com:80/", 43 maskedURL: "http://xxxxx:xxxxx@proxy.example.com:80/", 44 }, { 45 rawURL: "http://USER%40docker:pa%3Fsword@proxy.example.com:80/hello%20world", 46 maskedURL: "http://xxxxx:xxxxx@proxy.example.com:80/hello%20world", 47 }, 48 } 49 for _, test := range tests { 50 maskedURL := maskCredentials(test.rawURL) 51 assert.Equal(t, maskedURL, test.maskedURL) 52 } 53 }