// 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 }) }