github.com/hxx258456/ccgo@v0.0.5-0.20230213014102-48b35f46f66f/grpc/credentials/oauth/oauth_test.go (about) 1 /* 2 * 3 * Copyright 2021 gRPC authors. 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 * 17 */ 18 19 package oauth 20 21 import ( 22 "strings" 23 "testing" 24 ) 25 26 func checkErrorMsg(err error, msg string) bool { 27 if err == nil && msg == "" { 28 return true 29 } else if err != nil { 30 return strings.Contains(err.Error(), msg) 31 } 32 return false 33 } 34 35 func TestRemoveServiceNameFromJWTURI(t *testing.T) { 36 tests := []struct { 37 name string 38 uri string 39 wantedURI string 40 wantedErrMsg string 41 }{ 42 { 43 name: "invalid URI", 44 uri: "ht tp://foo.com", 45 wantedErrMsg: "first path segment in URL cannot contain colon", 46 }, 47 { 48 name: "valid URI", 49 uri: "https://foo.com/go/", 50 wantedURI: "https://foo.com/", 51 }, 52 } 53 for _, tt := range tests { 54 t.Run(tt.name, func(t *testing.T) { 55 if got, err := removeServiceNameFromJWTURI(tt.uri); got != tt.wantedURI || !checkErrorMsg(err, tt.wantedErrMsg) { 56 t.Errorf("RemoveServiceNameFromJWTURI() = %s, %v, want %s, %v", got, err, tt.wantedURI, tt.wantedErrMsg) 57 } 58 }) 59 } 60 }