1 package club.wpia.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.junit.Assume;
10 import org.junit.Test;
12 import club.wpia.gigi.dbObjects.User;
13 import club.wpia.gigi.localisation.Language;
14 import club.wpia.gigi.testUtils.IOUtils;
15 import club.wpia.gigi.testUtils.ManagedTest;
17 public class TestLanguage extends ManagedTest {
20 public void testSignupNoLanguage() {
21 User u = User.getById(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD));
22 assertEquals(Locale.ENGLISH, u.getPreferredLocale());
26 public void testSignupDE() {
27 setAcceptLanguage("de");
28 User u = User.getById(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 = User.getById(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 = User.getById(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 = User.getById(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(get("cook", "/"));
56 assertThat(content, containsString("Language"));
60 public void testSelectGerman() throws IOException {
61 String content = IOUtils.readURL(get("", "/?lang=de"));
62 assertThat(content, containsString(Language.getInstance(Locale.GERMAN).getTranslation("Language")));
66 public void testLanguageAfterLogin() throws IOException {
67 setAcceptLanguage("de,en");
68 User u = User.getById(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD));
69 String cookie = login(u.getEmail(), TEST_PASSWORD);
70 String content = IOUtils.readURL(get(cookie, "/"));
71 assertThat(content, containsString(Language.getInstance(Locale.GERMAN).getTranslation("Language")));
75 public void testOtherLanguageAfterLogin() throws IOException {
76 Assume.assumeNotNull(Language.getInstance(Locale.FRENCH));
77 setAcceptLanguage("fr,de,en");
78 User u = User.getById(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD));
79 String cookie = login(u.getEmail(), TEST_PASSWORD);
80 String content = IOUtils.readURL(get(cookie, "/"));
81 assertThat(content, containsString(Language.getInstance(Locale.FRENCH).getTranslation("Language")));