]> granicus.if.org Git - neomutt/commitdiff
test: improve test_mutt_date_parse_imap()
authorRichard Russon <rich@flatcap.org>
Thu, 30 May 2019 09:34:25 +0000 (10:34 +0100)
committerRichard Russon <rich@flatcap.org>
Thu, 30 May 2019 10:08:48 +0000 (11:08 +0100)
test/date/mutt_date_parse_imap.c

index 1bf1880dc83603c2584147ebee12435570a21318..3110cba6e3cc8fbb97b2d1519bee2cef52aefb98 100644 (file)
 #include "config.h"
 #include "mutt/mutt.h"
 
+struct ParseImapTest
+{
+  const char *str;
+  time_t expected;
+};
+
 void test_mutt_date_parse_imap(void)
 {
   // time_t mutt_date_parse_imap(const char *s);
@@ -32,4 +38,29 @@ void test_mutt_date_parse_imap(void)
   {
     TEST_CHECK(mutt_date_parse_imap(NULL) == 0);
   }
+
+  // clang-format off
+  static struct ParseImapTest imap_tests[] = {
+    // DD-MMM-YYYY HH:MM:SS +ZZzz
+    { "12-Jan-1999 12:34:56 +0100", 916140896 },
+    { " 2-Jan-1999 12:34:56 +0100", 915276896 },
+    { "02-Jan-1999 12:34:56 +0100", 915276896 },
+    { "12 Jan-1999 12:34:56 +0100", 0         },
+    { "12-Jan 1999 12:34:56 +0100", 0         },
+    { "12-Jan-1999-12:34:56 +0100", 0         },
+    { "12-Jan-1999 12.34:56 +0100", 0         },
+    { "12-Jan-1999 12:34.56 +0100", 0         },
+    { "12-Jan-1999 12:34:56-+0100", 0         },
+  };
+  // clang-format on
+
+  {
+    for (size_t i = 0; i < mutt_array_size(imap_tests); i++)
+    {
+      TEST_CASE(imap_tests[i]);
+      time_t result = mutt_date_parse_imap(imap_tests[i].str);
+      if (!TEST_CHECK(result == imap_tests[i].expected))
+        TEST_MSG("Expected: %ld, Got: %ld", imap_tests[i].expected, result);
+    }
+  }
 }