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  }