Statistics
| Revision:

svn-gvsig-desktop / branches / v2_0_0_prep / libraries / libInternationalization / src-test / org / gvsig / i18n / TestMessages.java @ 27063

History | View | Annotate | Download (3.71 KB)

1 4585 cesar
/**
2
 *
3
 */
4
package org.gvsig.i18n;
5
6
import java.io.File;
7
import java.net.MalformedURLException;
8 5765 cesar
import java.util.ArrayList;
9 4585 cesar
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 5765 cesar
                ArrayList preferred = new ArrayList();
40 4585 cesar
                preferred.add(new Locale("en"));
41
                preferred.add(new Locale("es"));
42
                Messages.setPreferredLocales(preferred);
43 5765 cesar
                ArrayList resultPref = Messages.getPreferredLocales();
44 4585 cesar
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 5765 cesar
                ArrayList resultPref = Messages.getPreferredLocales();
57 4585 cesar
                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 5765 cesar
                //this.getClass().getClassLoader().getResource("text_en.properties");
66 4585 cesar
67
                try {
68 27063 csanchez
                        Messages.addResourceFamily("text", new File("src-test/org/gvsig/i18n/dataset1/"));
69 4585 cesar
                } catch (MalformedURLException e) {
70
                        TestCase.fail("Fichero de recursos no encontrado");
71
                }
72 5765 cesar
                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 4585 cesar
76 5765 cesar
                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("bin-test/org/gvsig/i18n/dataset2/"));
87
                } catch (MalformedURLException e) {
88
                        TestCase.fail("Fichero de recursos no encontrado");
89
                }
90
                // check that the right amount of translations was loaded
91
                TestCase.assertEquals(7, Messages.size(new Locale("en")));
92
                TestCase.assertEquals(6, Messages.size(new Locale("es")));
93
                TestCase.assertEquals(0, Messages.size(new Locale("fr")));
94
95
                // test that keys didn't get overwritten by the new files
96
                // (only new keys should have been added for each language)
97
                TestCase.assertEquals("OK", Messages.getText("aceptar"));
98
                TestCase.assertEquals("Cancel", Messages.getText("cancelar"));
99
                TestCase.assertEquals("Cascade", Messages.getText("Cascada"));
100
                // check the new keys
101
                TestCase.assertEquals("At least one window should be open", Messages.getText("cascada_enable"));
102
                TestCase.assertEquals("Insert first corner point", Messages.getText("insert_first_point_corner"));
103
                TestCase.assertEquals("Capa exportada", Messages.getText("capa_exportada"));
104
                TestCase.assertEquals("Circunscrito", Messages.getText("circumscribed"));
105 4585 cesar
106 4588 cesar
                Messages.removeResources();
107 5765 cesar
                TestCase.assertEquals(0, Messages.size(new Locale("en")));
108
                TestCase.assertEquals(0, Messages.size(new Locale("es")));
109
                TestCase.assertEquals(0, Messages.size(new Locale("fr")));
110 4585 cesar
111
                removeLocales();
112
        }
113
}