loading up the forgejo repo on tangled to test page performance
at forgejo 1.1 kB view raw
1// Copyright 2021 The Gitea Authors. All rights reserved. 2// SPDX-License-Identifier: MIT 3 4package validation 5 6import ( 7 "regexp" 8 "testing" 9 10 "code.forgejo.org/go-chi/binding" 11) 12 13func getRegexPatternErrorString(pattern string) string { 14 if _, err := regexp.Compile(pattern); err != nil { 15 return err.Error() 16 } 17 return "" 18} 19 20var regexValidationTestCases = []validationTestCase{ 21 { 22 description: "Empty regex pattern", 23 data: TestForm{ 24 RegexPattern: "", 25 }, 26 expectedErrors: binding.Errors{}, 27 }, 28 { 29 description: "Valid regex", 30 data: TestForm{ 31 RegexPattern: `(\d{1,3})+`, 32 }, 33 expectedErrors: binding.Errors{}, 34 }, 35 36 { 37 description: "Invalid regex", 38 data: TestForm{ 39 RegexPattern: "[a-", 40 }, 41 expectedErrors: binding.Errors{ 42 binding.Error{ 43 FieldNames: []string{"RegexPattern"}, 44 Classification: ErrRegexPattern, 45 Message: getRegexPatternErrorString("[a-"), 46 }, 47 }, 48 }, 49} 50 51func Test_RegexPatternValidation(t *testing.T) { 52 AddBindingRules() 53 54 for _, testCase := range regexValidationTestCases { 55 t.Run(testCase.description, func(t *testing.T) { 56 performValidationTest(t, testCase) 57 }) 58 } 59}