trpc.group/trpc-go/trpc-go@v1.0.3/restful/pattern_test.go (about) 1 // 2 // 3 // Tencent is pleased to support the open source community by making tRPC available. 4 // 5 // Copyright (C) 2023 THL A29 Limited, a Tencent company. 6 // All rights reserved. 7 // 8 // If you have downloaded a copy of the tRPC source code from Tencent, 9 // please note that tRPC source code is licensed under the Apache 2.0 License, 10 // A copy of the Apache 2.0 License is included in this file. 11 // 12 // 13 14 package restful_test 15 16 import ( 17 "testing" 18 19 "github.com/stretchr/testify/require" 20 "trpc.group/trpc-go/trpc-go/restful" 21 ) 22 23 func TestPattern(t *testing.T) { 24 for _, test := range []struct { 25 input string 26 wantErr bool 27 desc string 28 }{ 29 { 30 input: "/", 31 wantErr: true, 32 desc: "test blank url path", 33 }, 34 { 35 input: "!@#$%^&", 36 wantErr: true, 37 desc: "test invalid url path", 38 }, 39 { 40 input: "/foobar/foo/{bar}", 41 wantErr: false, 42 desc: "test valid url path", 43 }, 44 } { 45 _, err := restful.Parse(test.input) 46 require.Equal(t, test.wantErr, err != nil, test.desc) 47 if test.wantErr { 48 require.Panics(t, func() { restful.Enforce(test.input) }, test.desc) 49 } else { 50 require.NotPanics(t, func() { restful.Enforce(test.input) }, test.desc) 51 } 52 } 53 }