1 package org.cacert.gigi;
3 import static org.junit.Assert.*;
5 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;
14 import static org.hamcrest.CoreMatchers.*;
16 import org.junit.Test;
18 public class TestLanguage extends ManagedTest {
21 public void testSignupNoLanguage() {
22 User u = new User(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD));
23 assertEquals(Locale.ENGLISH, u.getPreferredLocale());
27 public void testSignupDE() {
28 setAcceptLanguage("de");
29 User u = new User(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD));
30 assertEquals(Locale.GERMAN, u.getPreferredLocale());
34 public void testSignupMulti() {
35 setAcceptLanguage("de,en");
36 User u = new User(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD));
37 assertEquals(Locale.GERMAN, u.getPreferredLocale());
41 public void testSignupFallback() {
42 setAcceptLanguage("ma,de");
43 User u = new User(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD));
44 assertEquals(Locale.GERMAN, u.getPreferredLocale());
48 public void testSignupProjection() {
49 setAcceptLanguage("de-de,en");
50 User u = new User(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD));
51 assertEquals(Locale.GERMAN, u.getPreferredLocale());
55 public void testSelectStandard() throws IOException {
56 String content = IOUtils.readURL(new URL("https://" + getServerName() + "/").openConnection());
57 assertThat(content, containsString("Translations"));
61 public void testSelectGerman() throws IOException {
62 String content = IOUtils.readURL(new URL("https://" + getServerName() + "/?lang=de").openConnection());
63 assertThat(content, containsString(Language.getInstance(Locale.GERMAN).getTranslation("Translations")));
67 public void testLanguageAfterLogin() throws IOException {
68 setAcceptLanguage("de,en");
69 User u = new User(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD));
70 String cookie = login(u.getEmail(), TEST_PASSWORD);
71 String content = IOUtils.readURL(cookie(new URL("https://" + getServerName() + "/").openConnection(), cookie));
72 assertThat(content, containsString(Language.getInstance(Locale.GERMAN).getTranslation("Translations")));
76 public void testOtherLanguageAfterLogin() throws IOException {
77 setAcceptLanguage("fr,de,en");
78 User u = new User(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD));
79 String cookie = login(u.getEmail(), TEST_PASSWORD);
80 String content = IOUtils.readURL(cookie(new URL("https://" + getServerName() + "/").openConnection(), cookie));
81 assertThat(content, containsString(Language.getInstance(Locale.FRENCH).getTranslation("Translations")));