github.com/artisanhe/tools@v1.0.1-0.20210607022958-19a8fef2eb04/validate/validatetpl/url_test.go (about) 1 package validatetpl 2 3 import ( 4 "testing" 5 ) 6 7 func TestValidateUrl(t *testing.T) { 8 too_long_url := "" 9 for i := 0; i < MAX_URL_LEN+1; i++ { 10 too_long_url += "1" 11 } 12 13 type args struct { 14 v interface{} 15 } 16 tests := []struct { 17 name string 18 args args 19 want bool 20 want1 string 21 }{ 22 { 23 name: "normal", 24 args: args{ 25 v: "http://user:passwd@127.0.0.1:8080/abdf?q=a&dks", 26 }, 27 want: true, 28 want1: "", 29 }, 30 { 31 name: "normal1", 32 args: args{ 33 v: "https://user:passwd@127.0.0.1:8080/abdf?q=a&dks", 34 }, 35 want: true, 36 want1: "", 37 }, 38 { 39 name: "error", 40 args: args{ 41 v: "//userpasswd@127.0.0.1:8080/abdf?q=a&dks", 42 }, 43 want: false, 44 want1: HTTP_URL_SCHEME_ERROR, 45 }, 46 { 47 name: "too long", 48 args: args{ 49 v: too_long_url, 50 }, 51 want: false, 52 want1: HTTP_URL_TOO_LONG, 53 }, 54 } 55 for _, tt := range tests { 56 got, got1 := ValidateHttpUrl(tt.args.v) 57 if got != tt.want { 58 t.Errorf("%q. ValidateUrl() got = %v, want %v", tt.name, got, tt.want) 59 } 60 61 if got1 != tt.want1 { 62 t.Errorf("%q. ValidateUrl() got = %v, want %v", tt.name, got1, tt.want1) 63 } 64 } 65 } 66 67 func TestValidateHttpUrlOrEmpty(t *testing.T) { 68 type args struct { 69 v interface{} 70 } 71 tests := []struct { 72 name string 73 args args 74 want bool 75 want1 string 76 }{ 77 { 78 name: "normal", 79 args: args{ 80 v: "http://user:passwd@127.0.0.1:8080/abdf?q=a&dks", 81 }, 82 want: true, 83 want1: "", 84 }, 85 { 86 name: "emptyNormal", 87 args: args{ 88 v: "", 89 }, 90 want: true, 91 want1: "", 92 }, 93 { 94 name: "error", 95 args: args{ 96 v: "//userpasswd@127.0.0.1:8080/abdf?q=a&dks", 97 }, 98 want: false, 99 want1: HTTP_URL_SCHEME_ERROR, 100 }, 101 } 102 for _, tt := range tests { 103 got, got1 := ValidateHttpUrlOrEmpty(tt.args.v) 104 if got != tt.want { 105 t.Errorf("%q. ValidateHttpUrlOrEmpty() got = %v, want %v", tt.name, got, tt.want) 106 } 107 if got1 != tt.want1 { 108 t.Errorf("%q. ValidateHttpUrlOrEmpty() got1 = %v, want %v", tt.name, got1, tt.want1) 109 } 110 } 111 }