12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- // Copyright 2018 The Go Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style
- // license that can be found in the LICENSE file.
- package language
- import (
- "strings"
- "testing"
- )
- func parseBase(s string) Language {
- if s == "" {
- return 0
- }
- return MustParseBase(s)
- }
- func parseScript(s string) Script {
- if s == "" {
- return 0
- }
- return MustParseScript(s)
- }
- func parseRegion(s string) Region {
- if s == "" {
- return 0
- }
- return MustParseRegion(s)
- }
- func TestBuilder(t *testing.T) {
- partChecks(t, func(t *testing.T, tt *parseTest) (id Tag, skip bool) {
- tag := Make(tt.in)
- b := Builder{}
- b.SetTag(Tag{
- LangID: parseBase(tt.lang),
- ScriptID: parseScript(tt.script),
- RegionID: parseRegion(tt.region),
- })
- if tt.variants != "" {
- b.AddVariant(strings.Split(tt.variants, "-")...)
- }
- for _, e := range tag.Extensions() {
- b.AddExt(e)
- }
- got := b.Make()
- if got != tag {
- t.Errorf("%s: got %v; want %v", tt.in, got, tag)
- }
- return got, false
- })
- }
- func TestSetTag(t *testing.T) {
- partChecks(t, func(t *testing.T, tt *parseTest) (id Tag, skip bool) {
- tag := Make(tt.in)
- b := Builder{}
- b.SetTag(tag)
- got := b.Make()
- if got != tag {
- t.Errorf("%s: got %v; want %v", tt.in, got, tag)
- }
- return got, false
- })
- }
|