1 package org.cacert.gigi;
3 import static org.hamcrest.CoreMatchers.*;
4 import static org.junit.Assert.*;
6 import java.io.IOException;
8 import java.util.Locale;
10 import org.cacert.gigi.dbObjects.User;
11 import org.cacert.gigi.localisation.Language;
12 import org.cacert.gigi.testUtils.IOUtils;
13 import org.cacert.gigi.testUtils.ManagedTest;
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(new URL("https://" + getServerName() + "/").openConnection());
55 assertThat(content, containsString("Translations"));
59 public void testSelectGerman() throws IOException {
60 String content = IOUtils.readURL(new URL("https://" + getServerName() + "/?lang=de").openConnection());
61 assertThat(content, containsString(Language.getInstance(Locale.GERMAN).getTranslation("Translations")));
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(cookie(new URL("https://" + getServerName() + "/").openConnection(), cookie));
70 assertThat(content, containsString(Language.getInstance(Locale.GERMAN).getTranslation("Translations")));
74 public void testOtherLanguageAfterLogin() throws IOException {
75 setAcceptLanguage("fr,de,en");
76 User u = User.getById(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD));
77 String cookie = login(u.getEmail(), TEST_PASSWORD);
78 String content = IOUtils.readURL(cookie(new URL("https://" + getServerName() + "/").openConnection(), cookie));
79 assertThat(content, containsString(Language.getInstance(Locale.FRENCH).getTranslation("Translations")));