Skip to content
Snippets Groups Projects
Commit eed42b2f authored by Pavel Antonov's avatar Pavel Antonov :asterisk:
Browse files

Merge branch 'feature/PRXS-1267-CyrillicNameFix' into 'master'

Исправлено некорректное определение длины названия при использовании кириллицы

See merge request perxis/perxis-go!68
parents dc778298 0f7c5d67
No related branches found
No related tags found
No related merge requests found
...@@ -45,7 +45,7 @@ func ValidateName(name string) (string, error) { ...@@ -45,7 +45,7 @@ func ValidateName(name string) (string, error) {
if trimmedName == "" { if trimmedName == "" {
return trimmedName, ErrEmptyName return trimmedName, ErrEmptyName
} }
if len(trimmedName) > MaxLengthName { if len([]rune(trimmedName)) > MaxLengthName {
return trimmedName, ErrLongName return trimmedName, ErrLongName
} }
return trimmedName, nil return trimmedName, nil
......
...@@ -104,6 +104,18 @@ func TestValidateName(t *testing.T) { ...@@ -104,6 +104,18 @@ func TestValidateName(t *testing.T) {
"test_1-2", "test_1-2",
false, false,
}, },
{
"Cyrillic name #1",
"1ывлдаывоаждывоажыовалывоалджыварщшуджлкцталиамтвалытм тывжалдыжлдвттлвтмыдытфджтмфвмт",
"1ывлдаывоаждывоажыовалывоалджыварщшуджлкцталиамтвалытм тывжалдыжлдвттлвтмыдытфджтмфвмт",
false,
},
{
"Cyrillic name #2",
"Римский император Константин I Великий по достоинству оценил выгодное местоположение приморского Византия, расположенного на стыке Евро",
"Римский император Константин I Великий по достоинству оценил выгодное местоположение приморского Византия, расположенного на стыке Евро",
false,
},
{ {
"Trimmed name #1", "Trimmed name #1",
" test_1-3 ", " test_1-3 ",
...@@ -117,11 +129,17 @@ func TestValidateName(t *testing.T) { ...@@ -117,11 +129,17 @@ func TestValidateName(t *testing.T) {
false, false,
}, },
{ {
"Fail, name to long", "Fail, name to long #1",
"ChKRLdvWi0wYYPazuBXrIRtNFy96qGrhBDkuKQNd6N2DPV86IGdXVkeTjWj7qezKreIFUp9IUn03A8WJTTORHkgXAvkPuDVM8tVMcnHbR2hznooJ3gGUsXpn4uXo2QhsviHPyUKmE10GnkCOv9FgAMILNoFVHnIiSHI3cjWlGJglpS9YAMXFB1phOIRF5yol3jmPE7EeU1uZPUw9C2PChuksGsOuJQov07Zom0b13r6wOJv8PZVa4IKmjDDLGKlq1", "ChKRLdvWi0wYYPazuBXrIRtNFy96qGrhBDkuKQNd6N2DPV86IGdXVkeTjWj7qezKreIFUp9IUn03A8WJTTORHkgXAvkPuDVM8tVMcnHbR2hznooJ3gGUsXpn4uXo2QhsviHPyUKmE10GnkCOv9FgAMILNoFVHnIiSHI3cjWlGJglpS9YAMXFB1phOIRF5yol3jmPE7EeU1uZPUw9C2PChuksGsOuJQov07Zom0b13r6wOJv8PZVa4IKmjDDLGKlq1",
"ChKRLdvWi0wYYPazuBXrIRtNFy96qGrhBDkuKQNd6N2DPV86IGdXVkeTjWj7qezKreIFUp9IUn03A8WJTTORHkgXAvkPuDVM8tVMcnHbR2hznooJ3gGUsXpn4uXo2QhsviHPyUKmE10GnkCOv9FgAMILNoFVHnIiSHI3cjWlGJglpS9YAMXFB1phOIRF5yol3jmPE7EeU1uZPUw9C2PChuksGsOuJQov07Zom0b13r6wOJv8PZVa4IKmjDDLGKlq1", "ChKRLdvWi0wYYPazuBXrIRtNFy96qGrhBDkuKQNd6N2DPV86IGdXVkeTjWj7qezKreIFUp9IUn03A8WJTTORHkgXAvkPuDVM8tVMcnHbR2hznooJ3gGUsXpn4uXo2QhsviHPyUKmE10GnkCOv9FgAMILNoFVHnIiSHI3cjWlGJglpS9YAMXFB1phOIRF5yol3jmPE7EeU1uZPUw9C2PChuksGsOuJQov07Zom0b13r6wOJv8PZVa4IKmjDDLGKlq1",
true, true,
}, },
{
"Fail, name to long #2",
"Идентификаторы, различающиеся только регистром букв, являются различными. В языке существует ряд соглашений об использовании заглавных и строчных букв. В частности, в именах пакетов используются только строчные буквы. Все ключевые слова Go пишутся в нижнем регистре. Переменные, начинающиеся с заглавных букв, являются экспортируемыми (public), а начинающиеся со строчных букв — неэкспортируемыми (private).",
"Идентификаторы, различающиеся только регистром букв, являются различными. В языке существует ряд соглашений об использовании заглавных и строчных букв. В частности, в именах пакетов используются только строчные буквы. Все ключевые слова Go пишутся в нижнем регистре. Переменные, начинающиеся с заглавных букв, являются экспортируемыми (public), а начинающиеся со строчных букв — неэкспортируемыми (private).",
true,
},
} }
for _, tt := range tests { for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment