OSDN Git Service

new repo
[bytom/vapor.git] / vendor / github.com / johngb / langreg / langreg_test.go
1 package langreg
2
3 import (
4         "testing"
5
6         . "github.com/smartystreets/goconvey/convey"
7 )
8
9 type langRegTestInfo struct {
10         code            string
11         expectedIsValid bool
12         testDescription string
13 }
14
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"},
25 }
26
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)
31                 })
32         }
33 }
34
35 func BenchmarkIsValidLangRegCode(b *testing.B) {
36         for n := 0; n < b.N; n++ {
37                 isValid := IsValidLangRegCode("zu_ZW")
38                 if !isValid {
39                         b.Error("invalid language code")
40                 }
41         }
42 }