]> WPIA git - gigi.git/commitdiff
fix: allow assurance in +12 hours (due to date/timezone issues)
authorFelix Dörre <felix@dogcraft.de>
Tue, 10 Nov 2015 23:30:03 +0000 (00:30 +0100)
committerFelix Dörre <felix@dogcraft.de>
Tue, 10 Nov 2015 23:30:03 +0000 (00:30 +0100)
src/org/cacert/gigi/util/Notary.java
tests/org/cacert/gigi/pages/wot/TestAssurance.java

index a2dfe0f865953a83bc19956fd1d13028327b37be..3823cf7d008c6b390c846cb2d779765720df799a 100644 (file)
@@ -1,7 +1,9 @@
 package org.cacert.gigi.util;
 
 import java.text.ParseException;
+import java.util.Calendar;
 import java.util.Date;
+import java.util.GregorianCalendar;
 
 import org.cacert.gigi.GigiApiException;
 import org.cacert.gigi.database.DatabaseConnection;
@@ -85,7 +87,10 @@ public class Notary {
         } else {
             try {
                 Date d = DateSelector.getDateFormat().parse(date);
-                if (d.getTime() > System.currentTimeMillis()) {
+                Calendar gc = GregorianCalendar.getInstance();
+                gc.setTimeInMillis(System.currentTimeMillis());
+                gc.add(Calendar.HOUR_OF_DAY, 12);
+                if (d.getTime() > gc.getTimeInMillis()) {
                     gae.mergeInto(new GigiApiException("You must not enter a date in the future."));
                 }
             } catch (ParseException e) {
index 134f7427faaf6dd826a4546a6bba0266ee9b5aab..b6396a17c900d188239f509ce01b0e1b8fd1643b 100644 (file)
@@ -12,6 +12,7 @@ import java.net.URLConnection;
 import java.net.URLEncoder;
 import java.sql.SQLException;
 import java.text.SimpleDateFormat;
+import java.util.Calendar;
 import java.util.Date;
 import java.util.regex.Pattern;
 
@@ -140,6 +141,17 @@ public class TestAssurance extends ManagedTest {
         assertTrue(error, !error.startsWith("</div>"));
     }
 
+    @Test
+    public void testAssureFormFutureOK() throws IOException {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        Calendar c = Calendar.getInstance();
+        c.setTimeInMillis(System.currentTimeMillis());
+        c.add(Calendar.HOUR_OF_DAY, 12);
+
+        String error = getError("date=" + sdf.format(new Date(c.getTimeInMillis())) + "&location=testcase&certify=1&rules=1&CCAAgreed=1&assertion=1&points=10");
+        assertNull(error);
+    }
+
     @Test
     public void testAssureFormNoLoc() throws IOException {
         String error = getError("date=2000-01-01&location=a&certify=1&rules=1&CCAAgreed=1&assertion=1&points=10");