From cd1bc497d77506c27f446b0246cd570c76c43718 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Felix=20D=C3=B6rre?= Date: Sun, 31 Aug 2014 16:08:07 +0200 Subject: [PATCH] ADD: testcases for that language stuff. --- tests/org/cacert/gigi/TestLanguage.java | 82 +++++++++++++++++++ .../cacert/gigi/testUtils/ManagedTest.java | 15 ++++ 2 files changed, 97 insertions(+) create mode 100644 tests/org/cacert/gigi/TestLanguage.java diff --git a/tests/org/cacert/gigi/TestLanguage.java b/tests/org/cacert/gigi/TestLanguage.java new file mode 100644 index 00000000..f53b0ff9 --- /dev/null +++ b/tests/org/cacert/gigi/TestLanguage.java @@ -0,0 +1,82 @@ +package org.cacert.gigi; + +import static org.junit.Assert.*; + +import java.io.IOException; +import java.net.URL; +import java.util.Locale; + +import org.cacert.gigi.localisation.Language; +import org.cacert.gigi.testUtils.IOUtils; +import org.cacert.gigi.testUtils.ManagedTest; + +import static org.hamcrest.CoreMatchers.*; + +import org.junit.Test; + +public class TestLanguage extends ManagedTest { + + @Test + public void testSignupNoLanguage() { + User u = new User(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD)); + assertEquals(Locale.ENGLISH, u.getPreferredLocale()); + } + + @Test + public void testSignupDE() { + setAcceptLanguage("de"); + User u = new User(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD)); + assertEquals(Locale.GERMAN, u.getPreferredLocale()); + } + + @Test + public void testSignupMulti() { + setAcceptLanguage("de,en"); + User u = new User(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD)); + assertEquals(Locale.GERMAN, u.getPreferredLocale()); + } + + @Test + public void testSignupFallback() { + setAcceptLanguage("ma,de"); + User u = new User(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD)); + assertEquals(Locale.GERMAN, u.getPreferredLocale()); + } + + @Test + public void testSignupProjection() { + setAcceptLanguage("de-de,en"); + User u = new User(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD)); + assertEquals(Locale.GERMAN, u.getPreferredLocale()); + } + + @Test + public void testSelectStandard() throws IOException { + String content = IOUtils.readURL(new URL("https://" + getServerName() + "/").openConnection()); + assertThat(content, containsString("Translations")); + } + + @Test + public void testSelectGerman() throws IOException { + String content = IOUtils.readURL(new URL("https://" + getServerName() + "/?lang=de").openConnection()); + assertThat(content, containsString(Language.getInstance(Locale.GERMAN).getTranslation("Translations"))); + } + + @Test + public void testLanguageAfterLogin() throws IOException { + setAcceptLanguage("de,en"); + User u = new User(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD)); + String cookie = login(u.getEmail(), TEST_PASSWORD); + String content = IOUtils.readURL(cookie(new URL("https://" + getServerName() + "/").openConnection(), cookie)); + assertThat(content, containsString(Language.getInstance(Locale.GERMAN).getTranslation("Translations"))); + } + + @Test + public void testOtherLanguageAfterLogin() throws IOException { + setAcceptLanguage("fr,de,en"); + User u = new User(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD)); + String cookie = login(u.getEmail(), TEST_PASSWORD); + String content = IOUtils.readURL(cookie(new URL("https://" + getServerName() + "/").openConnection(), cookie)); + assertThat(content, containsString(Language.getInstance(Locale.FRENCH).getTranslation("Translations"))); + } +} diff --git a/tests/org/cacert/gigi/testUtils/ManagedTest.java b/tests/org/cacert/gigi/testUtils/ManagedTest.java index da1aca39..ae62beb5 100644 --- a/tests/org/cacert/gigi/testUtils/ManagedTest.java +++ b/tests/org/cacert/gigi/testUtils/ManagedTest.java @@ -78,6 +78,12 @@ public class ManagedTest { private static String url = "localhost:4443"; + private static String acceptLanguage = null; + + public static void setAcceptLanguage(String acceptLanguage) { + ManagedTest.acceptLanguage = acceptLanguage; + } + public static String getServerName() { return url; } @@ -207,6 +213,11 @@ public class ManagedTest { ter.reset(); } + @After + public void clearAcceptLanguage() { + acceptLanguage = null; + } + public TestMail waitForMail() { try { return ter.recieve(); @@ -223,6 +234,10 @@ public class ManagedTest { URL regist = new URL("https://" + getServerName() + RegisterPage.PATH); HttpURLConnection uc = (HttpURLConnection) regist.openConnection(); HttpURLConnection csrfConn = (HttpURLConnection) regist.openConnection(); + if (acceptLanguage != null) { + csrfConn.setRequestProperty("Accept-Language", acceptLanguage); + uc.setRequestProperty("Accept-Language", acceptLanguage); + } String headerField = csrfConn.getHeaderField("Set-Cookie"); headerField = stripCookie(headerField); -- 2.39.2