func translate(tr charset.Translator, in string) (string, error) { var buf bytes.Buffer r := charset.NewTranslatingReader(strings.NewReader(in), tr) _, err := io.Copy(&buf, r) if err != nil { return "", err } return string(buf.Bytes()), nil }
func testTranslatingReader(t *testing.T, tr charset.Translator, inReader, outReader func(io.Reader) io.Reader) { data := make([]byte, 128) for i := range data { data[i] = byte(i) } inr := inReader(bytes.NewBuffer(data)) r := charset.NewTranslatingReader(inr, tr) outr := outReader(r) r = outr var outbuf bytes.Buffer _, err := io.Copy(&outbuf, r) if err != nil { t.Fatalf("translator %T, readers %T, %T, copy failed: %v", tr, inr, outr, err) } err = checkTranslation(data, outbuf.Bytes()) if err != nil { t.Fatalf("translator %T, readers %T, %T, %v\n", err) } }