1
2
3
4
5 package gettext
6
7 import (
8 "reflect"
9 "testing"
10 )
11
12 var testDataDir = "./testdata/"
13
14 var testPoMoFiles = []struct {
15 poFile string
16 moFile string
17 }{
18 {"gettext-3-1.po", "gettext-3-1.mo"},
19 {"gettext-4.po", "gettext-4.mo"},
20 {"gettext-5.po", "gettext-5.mo"},
21 {"gettext-6-1.po", "gettext-6-1.mo"},
22 {"gettext-6-2.po", "gettext-6-2.mo"},
23 {"gettext-7.po", "gettext-7.mo"},
24 {"gettextpo-1.de.po", "gettextpo-1.de.mo"},
25 {"mm-ko-comp.euc-kr.po", "mm-ko-comp.euc-kr.mo"},
26 {"mm-ko.euc-kr.po", "mm-ko.euc-kr.mo"},
27 {"mm-viet.comp.po", "mm-viet.comp.mo"},
28 {"poedit-1.5.7-zh_CN.po", "poedit-1.5.7-zh_CN.mo"},
29 {"qttest2_de.po", "qttest2_de.mo"},
30 {"qttest_pl.po", "qttest_pl.mo"},
31 {"test.po", "test.mo"},
32 }
33
34 func TestPoMoFiles(t *testing.T) {
35 for i := 0; i < len(testPoMoFiles); i++ {
36 poName := testPoMoFiles[i].poFile
37 moName := testPoMoFiles[i].moFile
38 po, err := newPoTranslator(testDataDir+poName, nil)
39 if err != nil {
40 t.Fatalf("%s: %v", poName, err)
41 }
42 mo, err := newMoTranslator(testDataDir+moName, nil)
43 if err != nil {
44 t.Fatalf("%s: %v", poName, err)
45 }
46
47
48 if a, b := len(po.MessageMap), len(mo.MessageMap); a != b {
49 t.Logf("%s: %v, %d != %d", poName, "size not equal", a, b)
50 }
51 for k, v0 := range po.MessageMap {
52 v1, ok := mo.MessageMap[k]
53 if !ok {
54 t.Logf("%s: %q: missing", poName, v0.MsgId)
55 continue
56 }
57 if !reflect.DeepEqual(&v0, &v1) {
58 t.Fatalf("%s: %q: expect = %v, got = %v", poName, v0.MsgId, v0, v1)
59 }
60 }
61 }
62 }
63
View as plain text