Statistics
| Revision:

root / branches / v2_0_0_prep / libraries / libInternationalization / src-test / org / gvsig / i18n / TestMessages.java @ 27216

History | View | Annotate | Download (3.73 KB)

1
/**
2
 * 
3
 */
4
package org.gvsig.i18n;
5

    
6
import java.io.File;
7
import java.net.MalformedURLException;
8
import java.util.ArrayList;
9
import java.util.Locale;
10

    
11
import junit.framework.TestCase;
12

    
13
/**
14
 * @author cesar
15
 *
16
 */
17
public class TestMessages extends TestCase {
18

    
19
        /*
20
         * @see TestCase#setUp()
21
         */
22
        protected void setUp() throws Exception {
23
                super.setUp();
24
        }
25

    
26
        /*
27
         * @see TestCase#tearDown()
28
         */
29
        protected void tearDown() throws Exception {
30
                super.tearDown();
31
        }
32
        
33
        public void testSetPreferredLocales() {
34
                setPreferredLocales();
35
                removeLocales();
36
        }
37
        
38
        private void setPreferredLocales() {
39
                ArrayList preferred = new ArrayList();
40
                preferred.add(new Locale("en"));
41
                preferred.add(new Locale("es"));
42
                Messages.setPreferredLocales(preferred);
43
                ArrayList resultPref = Messages.getPreferredLocales();
44
                
45
                TestCase.assertEquals(resultPref.size(), 2);
46
                
47
                Locale lang1 = (Locale) resultPref.get(0);                
48
                TestCase.assertEquals(lang1.getLanguage(), "en");
49
                Locale lang2 = (Locale) resultPref.get(1);                
50
                TestCase.assertEquals(lang2.getLanguage(), "es");
51
        }
52

    
53
        private void removeLocales() {        
54
                Locale lang1 = new Locale("en");
55
                Locale lang2 = new Locale("es");        
56
                ArrayList resultPref = Messages.getPreferredLocales();
57
                Messages.removeLocale(lang1);
58
                TestCase.assertEquals(resultPref.size(), 1);
59
                Messages.removeLocale(lang2);                
60
                TestCase.assertEquals(resultPref.size(), 0);
61
        }
62
        
63
        public void testAddResourceFamily() {
64
                setPreferredLocales();
65
                //this.getClass().getClassLoader().getResource("text_en.properties");
66

    
67
                try {
68
                        Messages.addResourceFamily("text", new File("src-test/org/gvsig/i18n/dataset1/"));
69
                } catch (MalformedURLException e) {
70
                        TestCase.fail("Fichero de recursos no encontrado");
71
                }
72
                TestCase.assertEquals(5, Messages.size(new Locale("en")));
73
                TestCase.assertEquals(4,Messages.size(new Locale("es")));
74
                TestCase.assertEquals(0,Messages.size(new Locale("fr")));
75
                
76
                TestCase.assertEquals("OK", Messages.getText("aceptar"));
77
                TestCase.assertEquals("Cancel", Messages.getText("cancelar"));
78
                TestCase.assertEquals("Cascade", Messages.getText("Cascada"));
79
                TestCase.assertEquals("Window", Messages.getText("ventana"));
80
                TestCase.assertEquals("Debe haber al menos una ventana abierta", Messages.getText("cascada_enable"));
81
                TestCase.assertEquals("Configurar", Messages.getText("Configurar"));
82
                TestCase.assertEquals(null, Messages.getText("Configurar", false));
83

    
84
                // load another file now
85
                try {
86
                        Messages.addResourceFamily("text", new File(
87
                    "src-test/org/gvsig/i18n/dataset2/"));
88
                } catch (MalformedURLException e) {
89
                        TestCase.fail("Fichero de recursos no encontrado");
90
                }
91
                // check that the right amount of translations was loaded
92
                TestCase.assertEquals(7, Messages.size(new Locale("en")));
93
                TestCase.assertEquals(6, Messages.size(new Locale("es")));
94
                TestCase.assertEquals(0, Messages.size(new Locale("fr")));
95

    
96
                // test that keys didn't get overwritten by the new files
97
                // (only new keys should have been added for each language)
98
                TestCase.assertEquals("OK", Messages.getText("aceptar"));
99
                TestCase.assertEquals("Cancel", Messages.getText("cancelar"));
100
                TestCase.assertEquals("Cascade", Messages.getText("Cascada"));
101
                // check the new keys
102
                TestCase.assertEquals("At least one window should be open", Messages.getText("cascada_enable"));
103
                TestCase.assertEquals("Insert first corner point", Messages.getText("insert_first_point_corner"));
104
                TestCase.assertEquals("Capa exportada", Messages.getText("capa_exportada"));
105
                TestCase.assertEquals("Circunscrito", Messages.getText("circumscribed"));
106
                
107
                Messages.removeResources();
108
                TestCase.assertEquals(0, Messages.size(new Locale("en")));
109
                TestCase.assertEquals(0, Messages.size(new Locale("es")));
110
                TestCase.assertEquals(0, Messages.size(new Locale("fr")));
111
                
112
                removeLocales();
113
        }
114
}