}
public String[] getTrainings() {
- try (GigiPreparedStatement prep = new GigiPreparedStatement("SELECT `pass_date`, `type_text` FROM `cats_passed` LEFT JOIN `cats_type` ON `cats_type`.`id`=`cats_passed`.`variant_id` WHERE `user_id`=? ORDER BY `pass_date` ASC")) {
+ try (GigiPreparedStatement prep = new GigiPreparedStatement("SELECT `pass_date`, `type_text`, `language`, `version` FROM `cats_passed` LEFT JOIN `cats_type` ON `cats_type`.`id`=`cats_passed`.`variant_id` WHERE `user_id`=? ORDER BY `pass_date` ASC")) {
prep.setInt(1, getId());
GigiResultSet res = prep.executeQuery();
List<String> entries = new LinkedList<String>();
while (res.next()) {
-
- entries.add(DateSelector.getDateFormat().format(res.getTimestamp(1)) + " (" + res.getString(2) + ")");
+ StringBuilder training = new StringBuilder();
+ training.append(DateSelector.getDateFormat().format(res.getTimestamp(1)));
+ training.append(" (");
+ training.append(res.getString(2));
+ if (res.getString(3).length() > 0) {
+ training.append(" ");
+ training.append(res.getString(3));
+ }
+ if (res.getString(4).length() > 0) {
+ training.append(", ");
+ training.append(res.getString(4));
+ }
+ training.append(")");
+ entries.add(training.toString());
}
return entries.toArray(new String[0]);
--- /dev/null
+package org.cacert.gigi.pages.account;
+
+import static org.hamcrest.CoreMatchers.*;
+import static org.hamcrest.MatcherAssert.*;
+
+import java.io.IOException;
+import java.security.GeneralSecurityException;
+import java.sql.Date;
+
+import org.cacert.gigi.dbObjects.CATS;
+import org.cacert.gigi.testUtils.ClientTest;
+import org.cacert.gigi.testUtils.IOUtils;
+import org.cacert.gigi.util.HTMLEncoder;
+import org.junit.Test;
+
+public class TestTrainings extends ClientTest {
+
+ public TestTrainings() throws GeneralSecurityException, IOException {}
+
+ @Test
+ public void testShow() throws IOException, GeneralSecurityException {
+ CATS.enterResult(u, CATS.ASSURER_CHALLENGE_NAME, new Date(System.currentTimeMillis()), "en_US", "1");
+ CATS.enterResult(u, "Special Case Test", new Date(System.currentTimeMillis()), "spLan", "v23");
+ String res = IOUtils.readURL(get(UserTrainings.PATH));
+ assertThat(res, containsString("Special Case Test"));
+ assertThat(res, containsString(HTMLEncoder.encodeHTML(CATS.ASSURER_CHALLENGE_NAME)));
+ assertThat(res, containsString("en_US, 1"));
+ assertThat(res, containsString("v23"));
+ assertThat(res, containsString("spLan"));
+ }
+}
}
public static void makeAssurer(int uid) {
- try (GigiPreparedStatement ps1 = new GigiPreparedStatement("INSERT INTO `cats_passed` SET `user_id`=?, `variant_id`=?")) {
+ try (GigiPreparedStatement ps1 = new GigiPreparedStatement("INSERT INTO cats_passed SET user_id=?, variant_id=?, language='en_EN', version=1")) {
ps1.setInt(1, uid);
ps1.setInt(2, CATS.ASSURER_CHALLENGE_ID);
ps1.execute();
}
private void passCATS(User u) {
- try (GigiPreparedStatement ps = new GigiPreparedStatement("INSERT INTO cats_passed SET user_id=?, variant_id=1")) {
+ try (GigiPreparedStatement ps = new GigiPreparedStatement("INSERT INTO cats_passed SET user_id=?, variant_id=1, language='en_EN', version=1")) {
ps.setInt(1, u.getId());
ps.execute();
}