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.localisation.Language;
10 import org.cacert.gigi.testUtils.IOUtils;
11 import org.cacert.gigi.testUtils.ManagedTest;
13 import static org.hamcrest.CoreMatchers.*;
15 import org.junit.Test;
17 public class TestLanguage extends ManagedTest {
20 public void testSignupNoLanguage() {
21 User u = new User(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD));
22 assertEquals(Locale.ENGLISH, u.getPreferredLocale());
26 public void testSignupDE() {
27 setAcceptLanguage("de");
28 User u = new User(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD));
29 assertEquals(Locale.GERMAN, u.getPreferredLocale());
33 public void testSignupMulti() {
34 setAcceptLanguage("de,en");
35 User u = new User(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD));
36 assertEquals(Locale.GERMAN, u.getPreferredLocale());
40 public void testSignupFallback() {
41 setAcceptLanguage("ma,de");
42 User u = new User(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD));
43 assertEquals(Locale.GERMAN, u.getPreferredLocale());
47 public void testSignupProjection() {
48 setAcceptLanguage("de-de,en");
49 User u = new User(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD));
50 assertEquals(Locale.GERMAN, u.getPreferredLocale());
54 public void testSelectStandard() throws IOException {
55 String content = IOUtils.readURL(new URL("https://" + getServerName() + "/").openConnection());
56 assertThat(content, containsString("Translations"));
60 public void testSelectGerman() throws IOException {
61 String content = IOUtils.readURL(new URL("https://" + getServerName() + "/?lang=de").openConnection());
62 assertThat(content, containsString(Language.getInstance(Locale.GERMAN).getTranslation("Translations")));
66 public void testLanguageAfterLogin() throws IOException {
67 setAcceptLanguage("de,en");
68 User u = new User(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD));
69 String cookie = login(u.getEmail(), TEST_PASSWORD);
70 String content = IOUtils.readURL(cookie(new URL("https://" + getServerName() + "/").openConnection(), cookie));
71 assertThat(content, containsString(Language.getInstance(Locale.GERMAN).getTranslation("Translations")));
75 public void testOtherLanguageAfterLogin() throws IOException {
76 setAcceptLanguage("fr,de,en");
77 User u = new User(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD));
78 String cookie = login(u.getEmail(), TEST_PASSWORD);
79 String content = IOUtils.readURL(cookie(new URL("https://" + getServerName() + "/").openConnection(), cookie));
80 assertThat(content, containsString(Language.getInstance(Locale.FRENCH).getTranslation("Translations")));