...

Source file src/github.com/chai2010/gettext-go/testdata_test.go

Documentation: github.com/chai2010/gettext-go

     1  // Copyright 2013 ChaiShushan <chaishushan{AT}gmail.com>. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     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  		// if no translate, the mo will drop the message.
    47  		// so len(mo) may less than len(po).
    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