|
Packit Service |
ca3877 |
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
|
|
Packit Service |
ca3877 |
/*
|
|
Packit Service |
ca3877 |
* Copyright (C) 2005 Novell, Inc.
|
|
Packit Service |
ca3877 |
*/
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
#include "test-utils.h"
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
static void check_ok (gconstpointer data);
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
static SoupDate *
|
|
Packit Service |
ca3877 |
make_date (const char *strdate)
|
|
Packit Service |
ca3877 |
{
|
|
Packit Service |
ca3877 |
char *dup;
|
|
Packit Service |
ca3877 |
SoupDate *date;
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
/* We do it this way so that if soup_date_new_from_string()
|
|
Packit Service |
ca3877 |
* reads off the end of the string, it will trigger an error
|
|
Packit Service |
ca3877 |
* when valgrinding, rather than just reading the start of the
|
|
Packit Service |
ca3877 |
* next const string.
|
|
Packit Service |
ca3877 |
*/
|
|
Packit Service |
ca3877 |
dup = g_strdup (strdate);
|
|
Packit Service |
ca3877 |
date = soup_date_new_from_string (dup);
|
|
Packit Service |
ca3877 |
g_free (dup);
|
|
Packit Service |
ca3877 |
return date;
|
|
Packit Service |
ca3877 |
}
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
static SoupDate *
|
|
Packit Service |
ca3877 |
check_correct_date (const char *strdate)
|
|
Packit Service |
ca3877 |
{
|
|
Packit Service |
ca3877 |
SoupDate *date;
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
date = make_date (strdate);
|
|
Packit Service |
ca3877 |
if (!date) {
|
|
Packit Service |
ca3877 |
g_assert_nonnull (date);
|
|
Packit Service |
ca3877 |
return NULL;
|
|
Packit Service |
ca3877 |
}
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
g_assert_cmpint (date->year, ==, 2004);
|
|
Packit Service |
ca3877 |
g_assert_cmpint (date->month, ==, 11);
|
|
Packit Service |
ca3877 |
g_assert_cmpint (date->day, ==, 6);
|
|
Packit Service |
ca3877 |
g_assert_cmpint (date->hour, ==, 8);
|
|
Packit Service |
ca3877 |
g_assert_cmpint (date->minute, ==, 9);
|
|
Packit Service |
ca3877 |
g_assert_cmpint (date->second, ==, 7);
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
return date;
|
|
Packit Service |
ca3877 |
}
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
typedef struct {
|
|
Packit Service |
ca3877 |
SoupDateFormat format;
|
|
Packit Service |
ca3877 |
const char *date;
|
|
Packit Service |
ca3877 |
const char *bugref;
|
|
Packit Service |
ca3877 |
} GoodDate;
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
static const GoodDate good_dates[] = {
|
|
Packit Service |
ca3877 |
{ SOUP_DATE_HTTP, "Sat, 06 Nov 2004 08:09:07 GMT", NULL },
|
|
Packit Service |
ca3877 |
{ SOUP_DATE_COOKIE, "Sat, 06-Nov-2004 08:09:07 GMT", NULL },
|
|
Packit Service |
ca3877 |
{ SOUP_DATE_RFC2822, "Sat, 6 Nov 2004 08:09:07 -0430", "579055" },
|
|
Packit Service |
ca3877 |
{ SOUP_DATE_ISO8601_COMPACT, "20041106T080907", NULL },
|
|
Packit Service |
ca3877 |
{ SOUP_DATE_ISO8601_FULL, "2004-11-06T08:09:07", NULL },
|
|
Packit Service |
ca3877 |
{ SOUP_DATE_ISO8601_XMLRPC, "20041106T08:09:07", NULL }
|
|
Packit Service |
ca3877 |
};
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
static void
|
|
Packit Service |
ca3877 |
check_good (gconstpointer data)
|
|
Packit Service |
ca3877 |
{
|
|
Packit Service |
ca3877 |
GoodDate *good = (GoodDate *)data;
|
|
Packit Service |
ca3877 |
SoupDate *date;
|
|
Packit Service |
ca3877 |
char *strdate2;
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
if (good->bugref)
|
|
Packit Service |
ca3877 |
g_test_bug (good->bugref);
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
date = check_correct_date (good->date);
|
|
Packit Service |
ca3877 |
if (!date)
|
|
Packit Service |
ca3877 |
return;
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
strdate2 = soup_date_to_string (date, good->format);
|
|
Packit Service |
ca3877 |
soup_date_free (date);
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
soup_test_assert (strcmp (good->date, strdate2) == 0,
|
|
Packit Service |
ca3877 |
"restringification failed: '%s' -> '%s'\n",
|
|
Packit Service |
ca3877 |
good->date, strdate2);
|
|
Packit Service |
ca3877 |
g_free (strdate2);
|
|
Packit Service |
ca3877 |
}
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
typedef struct {
|
|
Packit Service |
ca3877 |
const char *date;
|
|
Packit Service |
ca3877 |
const char *bugref;
|
|
Packit Service |
ca3877 |
} OkDate;
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
static const OkDate ok_dates[] = {
|
|
Packit Service |
ca3877 |
/* rfc1123-date, and broken variants */
|
|
Packit Service |
ca3877 |
{ "Sat, 06 Nov 2004 08:09:07 GMT", NULL },
|
|
Packit Service |
ca3877 |
{ "Sat, 6 Nov 2004 08:09:07 GMT", NULL },
|
|
Packit Service |
ca3877 |
{ "Sat, 6 Nov 2004 08:09:07 GMT", NULL },
|
|
Packit Service |
ca3877 |
{ "Sat, 06 Nov 2004 08:09:07", NULL },
|
|
Packit Service |
ca3877 |
{ "06 Nov 2004 08:09:07 GMT", NULL },
|
|
Packit Service |
ca3877 |
{ "SAT, 06 NOV 2004 08:09:07 +1000", "644048" },
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
/* rfc850-date, and broken variants */
|
|
Packit Service |
ca3877 |
{ "Saturday, 06-Nov-04 08:09:07 GMT", NULL },
|
|
Packit Service |
ca3877 |
{ "Saturday, 6-Nov-04 08:09:07 GMT", NULL },
|
|
Packit Service |
ca3877 |
{ "Saturday, 6-Nov-04 08:09:07 GMT", NULL },
|
|
Packit Service |
ca3877 |
{ "Saturday, 06-Nov-104 08:09:07 GMT", NULL },
|
|
Packit Service |
ca3877 |
{ "Saturday, 06-Nov-2004 08:09:07 GMT", NULL },
|
|
Packit Service |
ca3877 |
{ "Saturday, 6-Nov-2004 08:09:07 GMT", NULL },
|
|
Packit Service |
ca3877 |
{ "Saturday, 6-Nov-2004 08:09:07 GMT", NULL },
|
|
Packit Service |
ca3877 |
{ "Saturday, 06-Nov-04 08:09:07", NULL },
|
|
Packit Service |
ca3877 |
{ "06-Nov-04 08:09:07 GMT", NULL },
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
/* asctime-date, and broken variants */
|
|
Packit Service |
ca3877 |
{ "Sat Nov 6 08:09:07 2004", NULL },
|
|
Packit Service |
ca3877 |
{ "Sat Nov 06 08:09:07 2004", NULL },
|
|
Packit Service |
ca3877 |
{ "Sat Nov 6 08:09:07 2004", NULL },
|
|
Packit Service |
ca3877 |
{ "Sat Nov 6 08:09:07 2004 GMT", NULL },
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
/* ISO 8601 */
|
|
Packit Service |
ca3877 |
{ "2004-11-06T08:09:07Z", NULL },
|
|
Packit Service |
ca3877 |
{ "20041106T08:09:07Z", NULL },
|
|
Packit Service |
ca3877 |
{ "20041106T08:09:07+00:00", NULL },
|
|
Packit Service |
ca3877 |
{ "20041106T080907+00:00", NULL },
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
/* Netscape cookie spec date, and broken variants */
|
|
Packit Service |
ca3877 |
{ "Sat, 06-Nov-2004 08:09:07 GMT", NULL },
|
|
Packit Service |
ca3877 |
{ "Sat, 6-Nov-2004 08:09:07 GMT", NULL },
|
|
Packit Service |
ca3877 |
{ "Sat, 6-Nov-2004 08:09:07 GMT", NULL },
|
|
Packit Service |
ca3877 |
{ "Sat, 06-Nov-2004 08:09:07", NULL },
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
/* Original version of Netscape cookie spec, and broken variants */
|
|
Packit Service |
ca3877 |
{ "Sat, 06-Nov-04 08:09:07 GMT", NULL },
|
|
Packit Service |
ca3877 |
{ "Sat, 6-Nov-04 08:09:07 GMT", NULL },
|
|
Packit Service |
ca3877 |
{ "Sat, 6-Nov-04 08:09:07 GMT", NULL },
|
|
Packit Service |
ca3877 |
{ "Sat, 06-Nov-104 08:09:07 GMT", NULL },
|
|
Packit Service |
ca3877 |
{ "Sat, 06-Nov-04 08:09:07", NULL },
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
/* Miscellaneous broken formats seen on the web */
|
|
Packit Service |
ca3877 |
{ "Sat 06-Nov-2004 08:9:07", NULL },
|
|
Packit Service |
ca3877 |
{ "Saturday, 06-Nov-04 8:9:07 GMT", NULL },
|
|
Packit Service |
ca3877 |
{ "Sat, 06 Nov 2004 08:09:7 GMT", NULL }
|
|
Packit Service |
ca3877 |
};
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
static void
|
|
Packit Service |
ca3877 |
check_ok (gconstpointer data)
|
|
Packit Service |
ca3877 |
{
|
|
Packit Service |
ca3877 |
OkDate *ok = (OkDate *)data;
|
|
Packit Service |
ca3877 |
SoupDate *date;
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
if (ok->bugref)
|
|
Packit Service |
ca3877 |
g_test_bug (ok->bugref);
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
date = check_correct_date (ok->date);
|
|
Packit Service |
ca3877 |
if (!date)
|
|
Packit Service |
ca3877 |
return;
|
|
Packit Service |
ca3877 |
soup_date_free (date);
|
|
Packit Service |
ca3877 |
}
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
#define TIME_T 1099728547L
|
|
Packit Service |
ca3877 |
#define TIME_T_STRING "1099728547"
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
static void
|
|
Packit Service |
ca3877 |
check_ok_time_t (void)
|
|
Packit Service |
ca3877 |
{
|
|
Packit Service |
ca3877 |
SoupDate *date;
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
date = soup_date_new_from_time_t (TIME_T);
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
g_assert_cmpint (date->year, ==, 2004);
|
|
Packit Service |
ca3877 |
g_assert_cmpint (date->month, ==, 11);
|
|
Packit Service |
ca3877 |
g_assert_cmpint (date->day, ==, 6);
|
|
Packit Service |
ca3877 |
g_assert_cmpint (date->hour, ==, 8);
|
|
Packit Service |
ca3877 |
g_assert_cmpint (date->minute, ==, 9);
|
|
Packit Service |
ca3877 |
g_assert_cmpint (date->second, ==, 7);
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
soup_date_free (date);
|
|
Packit Service |
ca3877 |
}
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
typedef struct {
|
|
Packit Service |
ca3877 |
const char *date;
|
|
Packit Service |
ca3877 |
const char *bugref;
|
|
Packit Service |
ca3877 |
} BadDate;
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
static const BadDate bad_dates[] = {
|
|
Packit Service |
ca3877 |
/* broken rfc1123-date */
|
|
Packit Service |
ca3877 |
{ ", 06 Nov 2004 08:09:07 GMT", NULL },
|
|
Packit Service |
ca3877 |
{ "Sat, Nov 2004 08:09:07 GMT", NULL },
|
|
Packit Service |
ca3877 |
{ "Sat, 06 2004 08:09:07 GMT", NULL },
|
|
Packit Service |
ca3877 |
{ "Sat, 06 Nov 08:09:07 GMT", NULL },
|
|
Packit Service |
ca3877 |
{ "Sat, 06 Nov 2004 :09:07 GMT", NULL },
|
|
Packit Service |
ca3877 |
{ "Sat, 06 Nov 2004 09:07 GMT", NULL },
|
|
Packit Service |
ca3877 |
{ "Sat, 06 Nov 2004 08::07 GMT", NULL },
|
|
Packit Service |
ca3877 |
{ "Sat, 06 Nov 2004 08:09: GMT", NULL },
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
/* broken rfc850-date */
|
|
Packit Service |
ca3877 |
{ ", 06-Nov-04 08:09:07 GMT", NULL },
|
|
Packit Service |
ca3877 |
{ "Saturday, -Nov-04 08:09:07 GMT", NULL },
|
|
Packit Service |
ca3877 |
{ "Saturday, Nov-04 08:09:07 GMT", NULL },
|
|
Packit Service |
ca3877 |
{ "Saturday, 06-04 08:09:07 GMT", NULL },
|
|
Packit Service |
ca3877 |
{ "Saturday, 06--04 08:09:07 GMT", NULL },
|
|
Packit Service |
ca3877 |
{ "Saturday, 06-Nov- 08:09:07 GMT", NULL },
|
|
Packit Service |
ca3877 |
{ "Saturday, 06-Nov 08:09:07 GMT", NULL },
|
|
Packit Service |
ca3877 |
{ "Saturday, 06-Nov-04 :09:07 GMT", NULL },
|
|
Packit Service |
ca3877 |
{ "Saturday, 06-Nov-04 09:07 GMT", NULL },
|
|
Packit Service |
ca3877 |
{ "Saturday, 06-Nov-04 08::07 GMT", NULL },
|
|
Packit Service |
ca3877 |
{ "Saturday, 06-Nov-04 08:09: GMT", NULL },
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
/* broken asctime-date */
|
|
Packit Service |
ca3877 |
{ "Nov 6 08:09:07 2004", NULL },
|
|
Packit Service |
ca3877 |
{ "Sat 6 08:09:07 2004", NULL },
|
|
Packit Service |
ca3877 |
{ "Sat Nov 08:09:07 2004", NULL },
|
|
Packit Service |
ca3877 |
{ "Sat Nov 6 :09:07 2004", NULL },
|
|
Packit Service |
ca3877 |
{ "Sat Nov 6 09:07 2004", NULL },
|
|
Packit Service |
ca3877 |
{ "Sat Nov 6 08::07 2004", NULL },
|
|
Packit Service |
ca3877 |
{ "Sat Nov 6 08:09: 2004", NULL },
|
|
Packit Service |
ca3877 |
{ "Sat Nov 6 08:09:07", NULL },
|
|
Packit Service |
ca3877 |
{ "Sat Nov 6 08:09:07 GMT 2004", NULL }
|
|
Packit Service |
ca3877 |
};
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
static void
|
|
Packit Service |
ca3877 |
check_bad (gconstpointer data)
|
|
Packit Service |
ca3877 |
{
|
|
Packit Service |
ca3877 |
BadDate *bad = (BadDate *)data;
|
|
Packit Service |
ca3877 |
SoupDate *date;
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
if (bad->bugref)
|
|
Packit Service |
ca3877 |
g_test_bug (bad->bugref);
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
date = make_date (bad->date);
|
|
Packit Service |
ca3877 |
soup_test_assert (date == NULL,
|
|
Packit Service |
ca3877 |
"date parsing succeeded for '%s': %d %d %d - %d %d %d",
|
|
Packit Service |
ca3877 |
bad->date,
|
|
Packit Service |
ca3877 |
date->year, date->month, date->day,
|
|
Packit Service |
ca3877 |
date->hour, date->minute, date->second);
|
|
Packit Service |
ca3877 |
g_clear_pointer (&date, soup_date_free);
|
|
Packit Service |
ca3877 |
}
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
typedef struct {
|
|
Packit Service |
ca3877 |
const char *source;
|
|
Packit Service |
ca3877 |
const char *http, *cookie, *rfc2822, *compact, *full, *xmlrpc;
|
|
Packit Service |
ca3877 |
} DateConversion;
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
static const DateConversion conversions[] = {
|
|
Packit Service |
ca3877 |
/* SOUP_DATE_HTTP */
|
|
Packit Service |
ca3877 |
{ "Sat, 06 Nov 2004 08:09:07 GMT",
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
"Sat, 06 Nov 2004 08:09:07 GMT",
|
|
Packit Service |
ca3877 |
"Sat, 06-Nov-2004 08:09:07 GMT",
|
|
Packit Service |
ca3877 |
"Sat, 6 Nov 2004 08:09:07 +0000",
|
|
Packit Service |
ca3877 |
"20041106T080907Z",
|
|
Packit Service |
ca3877 |
"2004-11-06T08:09:07Z",
|
|
Packit Service |
ca3877 |
"20041106T08:09:07" },
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
/* RFC2822 GMT */
|
|
Packit Service |
ca3877 |
{ "Sat, 6 Nov 2004 08:09:07 +0000",
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
"Sat, 06 Nov 2004 08:09:07 GMT",
|
|
Packit Service |
ca3877 |
"Sat, 06-Nov-2004 08:09:07 GMT",
|
|
Packit Service |
ca3877 |
"Sat, 6 Nov 2004 08:09:07 +0000",
|
|
Packit Service |
ca3877 |
"20041106T080907Z",
|
|
Packit Service |
ca3877 |
"2004-11-06T08:09:07Z",
|
|
Packit Service |
ca3877 |
"20041106T08:09:07" },
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
/* RFC2822 with positive offset */
|
|
Packit Service |
ca3877 |
{ "Sat, 6 Nov 2004 08:09:07 +0430",
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
"Sat, 06 Nov 2004 04:39:07 GMT",
|
|
Packit Service |
ca3877 |
"Sat, 06-Nov-2004 04:39:07 GMT",
|
|
Packit Service |
ca3877 |
"Sat, 6 Nov 2004 08:09:07 +0430",
|
|
Packit Service |
ca3877 |
"20041106T080907+0430",
|
|
Packit Service |
ca3877 |
"2004-11-06T08:09:07+04:30",
|
|
Packit Service |
ca3877 |
"20041106T08:09:07" },
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
/* RFC2822 with negative offset */
|
|
Packit Service |
ca3877 |
{ "Sat, 6 Nov 2004 08:09:07 -0430",
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
"Sat, 06 Nov 2004 12:39:07 GMT",
|
|
Packit Service |
ca3877 |
"Sat, 06-Nov-2004 12:39:07 GMT",
|
|
Packit Service |
ca3877 |
"Sat, 6 Nov 2004 08:09:07 -0430",
|
|
Packit Service |
ca3877 |
"20041106T080907-0430",
|
|
Packit Service |
ca3877 |
"2004-11-06T08:09:07-04:30",
|
|
Packit Service |
ca3877 |
"20041106T08:09:07" },
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
/* RFC2822 floating */
|
|
Packit Service |
ca3877 |
{ "Sat, 6 Nov 2004 08:09:07 -0000",
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
"Sat, 06 Nov 2004 08:09:07 GMT",
|
|
Packit Service |
ca3877 |
"Sat, 06-Nov-2004 08:09:07 GMT",
|
|
Packit Service |
ca3877 |
"Sat, 6 Nov 2004 08:09:07 -0000",
|
|
Packit Service |
ca3877 |
"20041106T080907",
|
|
Packit Service |
ca3877 |
"2004-11-06T08:09:07",
|
|
Packit Service |
ca3877 |
"20041106T08:09:07" },
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
/* ISO GMT */
|
|
Packit Service |
ca3877 |
{ "2004-11-06T08:09:07Z",
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
"Sat, 06 Nov 2004 08:09:07 GMT",
|
|
Packit Service |
ca3877 |
"Sat, 06-Nov-2004 08:09:07 GMT",
|
|
Packit Service |
ca3877 |
"Sat, 6 Nov 2004 08:09:07 +0000",
|
|
Packit Service |
ca3877 |
"20041106T080907Z",
|
|
Packit Service |
ca3877 |
"2004-11-06T08:09:07Z",
|
|
Packit Service |
ca3877 |
"20041106T08:09:07" },
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
/* ISO with positive offset */
|
|
Packit Service |
ca3877 |
{ "2004-11-06T08:09:07+04:30",
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
"Sat, 06 Nov 2004 04:39:07 GMT",
|
|
Packit Service |
ca3877 |
"Sat, 06-Nov-2004 04:39:07 GMT",
|
|
Packit Service |
ca3877 |
"Sat, 6 Nov 2004 08:09:07 +0430",
|
|
Packit Service |
ca3877 |
"20041106T080907+0430",
|
|
Packit Service |
ca3877 |
"2004-11-06T08:09:07+04:30",
|
|
Packit Service |
ca3877 |
"20041106T08:09:07" },
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
/* ISO with negative offset */
|
|
Packit Service |
ca3877 |
{ "2004-11-06T08:09:07-04:30",
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
"Sat, 06 Nov 2004 12:39:07 GMT",
|
|
Packit Service |
ca3877 |
"Sat, 06-Nov-2004 12:39:07 GMT",
|
|
Packit Service |
ca3877 |
"Sat, 6 Nov 2004 08:09:07 -0430",
|
|
Packit Service |
ca3877 |
"20041106T080907-0430",
|
|
Packit Service |
ca3877 |
"2004-11-06T08:09:07-04:30",
|
|
Packit Service |
ca3877 |
"20041106T08:09:07" },
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
/* ISO floating */
|
|
Packit Service |
ca3877 |
{ "2004-11-06T08:09:07",
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
"Sat, 06 Nov 2004 08:09:07 GMT",
|
|
Packit Service |
ca3877 |
"Sat, 06-Nov-2004 08:09:07 GMT",
|
|
Packit Service |
ca3877 |
"Sat, 6 Nov 2004 08:09:07 -0000",
|
|
Packit Service |
ca3877 |
"20041106T080907",
|
|
Packit Service |
ca3877 |
"2004-11-06T08:09:07",
|
|
Packit Service |
ca3877 |
"20041106T08:09:07" }
|
|
Packit Service |
ca3877 |
};
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
static void
|
|
Packit Service |
ca3877 |
check_conversion (gconstpointer data)
|
|
Packit Service |
ca3877 |
{
|
|
Packit Service |
ca3877 |
const DateConversion *conv = data;
|
|
Packit Service |
ca3877 |
SoupDate *date;
|
|
Packit Service |
ca3877 |
char *str;
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
date = make_date (conv->source);
|
|
Packit Service |
ca3877 |
if (!date) {
|
|
Packit Service |
ca3877 |
soup_test_assert (FALSE, "date parsing failed for '%s'.", conv->source);
|
|
Packit Service |
ca3877 |
return;
|
|
Packit Service |
ca3877 |
}
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
str = soup_date_to_string (date, SOUP_DATE_HTTP);
|
|
Packit Service |
ca3877 |
g_assert_cmpstr (str, ==, conv->http);
|
|
Packit Service |
ca3877 |
g_free (str);
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
str = soup_date_to_string (date, SOUP_DATE_COOKIE);
|
|
Packit Service |
ca3877 |
g_assert_cmpstr (str, ==, conv->cookie);
|
|
Packit Service |
ca3877 |
g_free (str);
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
str = soup_date_to_string (date, SOUP_DATE_RFC2822);
|
|
Packit Service |
ca3877 |
g_assert_cmpstr (str, ==, conv->rfc2822);
|
|
Packit Service |
ca3877 |
g_free (str);
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
str = soup_date_to_string (date, SOUP_DATE_ISO8601_COMPACT);
|
|
Packit Service |
ca3877 |
g_assert_cmpstr (str, ==, conv->compact);
|
|
Packit Service |
ca3877 |
g_free (str);
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
str = soup_date_to_string (date, SOUP_DATE_ISO8601_FULL);
|
|
Packit Service |
ca3877 |
g_assert_cmpstr (str, ==, conv->full);
|
|
Packit Service |
ca3877 |
g_free (str);
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
str = soup_date_to_string (date, SOUP_DATE_ISO8601_XMLRPC);
|
|
Packit Service |
ca3877 |
g_assert_cmpstr (str, ==, conv->xmlrpc);
|
|
Packit Service |
ca3877 |
g_free (str);
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
soup_date_free (date);
|
|
Packit Service |
ca3877 |
}
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
int
|
|
Packit Service |
ca3877 |
main (int argc, char **argv)
|
|
Packit Service |
ca3877 |
{
|
|
Packit Service |
ca3877 |
int i, ret;
|
|
Packit Service |
ca3877 |
char *path;
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
test_init (argc, argv, NULL);
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
for (i = 0; i < G_N_ELEMENTS (good_dates); i++) {
|
|
Packit Service |
ca3877 |
path = g_strdup_printf ("/date/good/%s", good_dates[i].date);
|
|
Packit Service |
ca3877 |
g_test_add_data_func (path, &good_dates[i], check_good);
|
|
Packit Service |
ca3877 |
g_free (path);
|
|
Packit Service |
ca3877 |
}
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
for (i = 0; i < G_N_ELEMENTS (ok_dates); i++) {
|
|
Packit Service |
ca3877 |
path = g_strdup_printf ("/date/ok/%s", ok_dates[i].date);
|
|
Packit Service |
ca3877 |
g_test_add_data_func (path, &ok_dates[i], check_ok);
|
|
Packit Service |
ca3877 |
g_free (path);
|
|
Packit Service |
ca3877 |
}
|
|
Packit Service |
ca3877 |
g_test_add_func ("/date/ok/" TIME_T_STRING, check_ok_time_t);
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
for (i = 0; i < G_N_ELEMENTS (bad_dates); i++) {
|
|
Packit Service |
ca3877 |
path = g_strdup_printf ("/date/bad/%s", bad_dates[i].date);
|
|
Packit Service |
ca3877 |
g_test_add_data_func (path, &bad_dates[i], check_bad);
|
|
Packit Service |
ca3877 |
g_free (path);
|
|
Packit Service |
ca3877 |
}
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
for (i = 0; i < G_N_ELEMENTS (conversions); i++) {
|
|
Packit Service |
ca3877 |
path = g_strdup_printf ("/date/conversions/%s", conversions[i].source);
|
|
Packit Service |
ca3877 |
g_test_add_data_func (path, &conversions[i], check_conversion);
|
|
Packit Service |
ca3877 |
g_free (path);
|
|
Packit Service |
ca3877 |
}
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
ret = g_test_run ();
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
test_cleanup ();
|
|
Packit Service |
ca3877 |
return ret;
|
|
Packit Service |
ca3877 |
}
|