]> WPIA git - gigi.git/commitdiff
ADD: testcases for that language stuff.
authorFelix Dörre <felix@dogcraft.de>
Sun, 31 Aug 2014 14:08:07 +0000 (16:08 +0200)
committerFelix Dörre <felix@dogcraft.de>
Sun, 31 Aug 2014 15:21:56 +0000 (17:21 +0200)
tests/org/cacert/gigi/TestLanguage.java [new file with mode: 0644]
tests/org/cacert/gigi/testUtils/ManagedTest.java

diff --git a/tests/org/cacert/gigi/TestLanguage.java b/tests/org/cacert/gigi/TestLanguage.java
new file mode 100644 (file)
index 0000000..f53b0ff
--- /dev/null
@@ -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")));
+    }
+}
index da1aca399418d92e99b2105228a5c0a7bd2d0a1c..ae62beb565b2e300b92e4a3f4df691b375c8a5bc 100644 (file)
@@ -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);