6 . "github.com/smartystreets/goconvey/convey"
9 type langRegTestInfo struct {
12 testDescription string
15 var langRegTests = []langRegTestInfo{
16 {"en_GB", true, "valid code en_GB"},
17 {"en_ZA", true, "valid code en_ZA"},
18 {"zz_GB", false, "invalid language, valid region"},
19 {"en_UK", false, "valid language, invalid region"},
20 {"EN_GB", false, "uppercase language"},
21 {"en_gb", false, "lowercase region"},
22 {"en-GB", false, "no underscore separator"},
23 {"en_GBB", false, "too long"},
24 {"en_G", false, "too short"},
27 func TestIsValidLangRegCode(t *testing.T) {
28 for _, tt := range langRegTests {
29 Convey("Given a "+tt.testDescription, t, func() {
30 So(IsValidLangRegCode(tt.code), ShouldEqual, tt.expectedIsValid)
35 func BenchmarkIsValidLangRegCode(b *testing.B) {
36 for n := 0; n < b.N; n++ {
37 isValid := IsValidLangRegCode("zu_ZW")
39 b.Error("invalid language code")