1 package org.cacert.gigi;
3 import static org.hamcrest.CoreMatchers.*;
4 import static org.junit.Assert.*;
6 import java.io.IOException;
7 import java.util.Locale;
9 import org.cacert.gigi.dbObjects.User;
10 import org.cacert.gigi.localisation.Language;
11 import org.cacert.gigi.testUtils.IOUtils;
12 import org.cacert.gigi.testUtils.ManagedTest;
13 import org.junit.Test;
15 public class TestLanguage extends ManagedTest {
18 public void testSignupNoLanguage() {
19 User u = User.getById(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD));
20 assertEquals(Locale.ENGLISH, u.getPreferredLocale());
24 public void testSignupDE() {
25 setAcceptLanguage("de");
26 User u = User.getById(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD));
27 assertEquals(Locale.GERMAN, u.getPreferredLocale());
31 public void testSignupMulti() {
32 setAcceptLanguage("de,en");
33 User u = User.getById(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD));
34 assertEquals(Locale.GERMAN, u.getPreferredLocale());
38 public void testSignupFallback() {
39 setAcceptLanguage("ma,de");
40 User u = User.getById(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD));
41 assertEquals(Locale.GERMAN, u.getPreferredLocale());
45 public void testSignupProjection() {
46 setAcceptLanguage("de-de,en");
47 User u = User.getById(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD));
48 assertEquals(Locale.GERMAN, u.getPreferredLocale());
52 public void testSelectStandard() throws IOException {
53 String content = IOUtils.readURL(get("cook", "/"));
54 assertThat(content, containsString("Translations"));
58 public void testSelectGerman() throws IOException {
59 String content = IOUtils.readURL(get("", "/?lang=de"));
60 assertThat(content, containsString(Language.getInstance(Locale.GERMAN).getTranslation("Translations")));
64 public void testLanguageAfterLogin() throws IOException {
65 setAcceptLanguage("de,en");
66 User u = User.getById(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD));
67 String cookie = login(u.getEmail(), TEST_PASSWORD);
68 String content = IOUtils.readURL(get(cookie, "/"));
69 assertThat(content, containsString(Language.getInstance(Locale.GERMAN).getTranslation("Translations")));
73 public void testOtherLanguageAfterLogin() throws IOException {
74 setAcceptLanguage("fr,de,en");
75 User u = User.getById(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD));
76 String cookie = login(u.getEmail(), TEST_PASSWORD);
77 String content = IOUtils.readURL(get(cookie, "/"));
78 assertThat(content, containsString(Language.getInstance(Locale.FRENCH).getTranslation("Translations")));