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.Assume;
14 import org.junit.Test;
16 public class TestLanguage extends ManagedTest {
19 public void testSignupNoLanguage() {
20 User u = User.getById(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD));
21 assertEquals(Locale.ENGLISH, u.getPreferredLocale());
25 public void testSignupDE() {
26 setAcceptLanguage("de");
27 User u = User.getById(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD));
28 assertEquals(Locale.GERMAN, u.getPreferredLocale());
32 public void testSignupMulti() {
33 setAcceptLanguage("de,en");
34 User u = User.getById(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD));
35 assertEquals(Locale.GERMAN, u.getPreferredLocale());
39 public void testSignupFallback() {
40 setAcceptLanguage("ma,de");
41 User u = User.getById(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD));
42 assertEquals(Locale.GERMAN, u.getPreferredLocale());
46 public void testSignupProjection() {
47 setAcceptLanguage("de-de,en");
48 User u = User.getById(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD));
49 assertEquals(Locale.GERMAN, u.getPreferredLocale());
53 public void testSelectStandard() throws IOException {
54 String content = IOUtils.readURL(get("cook", "/"));
55 assertThat(content, containsString("Language"));
59 public void testSelectGerman() throws IOException {
60 String content = IOUtils.readURL(get("", "/?lang=de"));
61 assertThat(content, containsString(Language.getInstance(Locale.GERMAN).getTranslation("Language")));
65 public void testLanguageAfterLogin() throws IOException {
66 setAcceptLanguage("de,en");
67 User u = User.getById(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD));
68 String cookie = login(u.getEmail(), TEST_PASSWORD);
69 String content = IOUtils.readURL(get(cookie, "/"));
70 assertThat(content, containsString(Language.getInstance(Locale.GERMAN).getTranslation("Language")));
74 public void testOtherLanguageAfterLogin() throws IOException {
75 Assume.assumeNotNull(Language.getInstance(Locale.FRENCH));
76 setAcceptLanguage("fr,de,en");
77 User u = User.getById(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD));
78 String cookie = login(u.getEmail(), TEST_PASSWORD);
79 String content = IOUtils.readURL(get(cookie, "/"));
80 assertThat(content, containsString(Language.getInstance(Locale.FRENCH).getTranslation("Language")));