Adapt to QTimeZone replacing Qt::TimeSpec usage
In the process actually handle all time-spec cases in various places that only handled UTC or LocalTime, or at least note that they don't where that's not practical. Also tidy up header ordering and ensure QDateTime's header is included wherever it's used, while adding the include for QTimeZone where needed. Task-number: QTBUG-108199 Change-Id: Ic1a5cdf0aaf737bf1396aa8ac58ce2004cef7e19 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
This commit is contained in:
parent
8c8d6ff7b6
commit
2f440169c0
@ -6,14 +6,15 @@
|
||||
|
||||
#include <qatomic.h>
|
||||
#include <qbytearray.h>
|
||||
#include <qdatetime.h>
|
||||
#include <qline.h>
|
||||
#include <qlist.h>
|
||||
#include <qmap.h>
|
||||
#include <qstring.h>
|
||||
#include <qstringlist.h>
|
||||
#include <qvariant.h>
|
||||
#include <qdatetime.h>
|
||||
#include <qrect.h>
|
||||
#include <qline.h>
|
||||
#include <qtimezone.h>
|
||||
#include <qvariant.h>
|
||||
|
||||
#include "qdbusmetatype_p.h"
|
||||
#include "qdbusutil_p.h"
|
||||
@ -1169,12 +1170,33 @@ const QDBusArgument &operator>>(const QDBusArgument &a, QDateTime &dt)
|
||||
a >> date >> time >> timespec;
|
||||
a.endStructure();
|
||||
|
||||
dt = QDateTime(date, time, Qt::TimeSpec(timespec));
|
||||
switch (Qt::TimeSpec(timespec)) {
|
||||
case Qt::TimeZone:
|
||||
qWarning("Restoring zoned date-time without zone info");
|
||||
Q_FALLTHROUGH(); // Treat as local time.
|
||||
case Qt::LocalTime:
|
||||
dt = QDateTime(date, time);
|
||||
break;
|
||||
case Qt::OffsetFromUTC:
|
||||
qWarning("Restoring date-time without its offset");
|
||||
Q_FALLTHROUGH(); // Use zero offset
|
||||
case Qt::UTC:
|
||||
dt = QDateTime(date, time, QTimeZone::UTC);
|
||||
break;
|
||||
}
|
||||
return a;
|
||||
}
|
||||
|
||||
QDBusArgument &operator<<(QDBusArgument &a, const QDateTime &dt)
|
||||
{
|
||||
// TODO: Only viable for UTC and LocalTime
|
||||
if (Q_UNLIKELY(dt.timeSpec() != Qt::UTC && dt.timeSpec() != Qt::LocalTime)) {
|
||||
qWarning() << "Serializing a date-time with unsupported time-spec" << dt.timeSpec();
|
||||
// Coerce to a supported timespec. When a time-zone is the current
|
||||
// system zone, local time is suitable; so map all time-zones to local,
|
||||
// plain offsets to UTC.
|
||||
return a << (dt.timeSpec() == Qt::OffsetFromUTC ? dt.toUTC() : dt.toLocalTime());
|
||||
}
|
||||
a.beginStructure();
|
||||
a << dt.date() << dt.time() << int(dt.timeSpec());
|
||||
a.endStructure();
|
||||
|
@ -7,12 +7,14 @@
|
||||
#include "qnetworkrequest.h"
|
||||
#include "qnetworkreply.h"
|
||||
#include "QtCore/qbytearray.h"
|
||||
#include "QtCore/qdatetime.h"
|
||||
#include "QtCore/qdebug.h"
|
||||
#include "QtCore/qlist.h"
|
||||
#include "QtCore/qlocale.h"
|
||||
#include <QtCore/qregularexpression.h>
|
||||
#include "QtCore/qstring.h"
|
||||
#include "QtCore/qstringlist.h"
|
||||
#include "QtCore/qtimezone.h"
|
||||
#include "QtCore/qurl.h"
|
||||
#include "QtNetwork/qhostaddress.h"
|
||||
#include "private/qobject_p.h"
|
||||
@ -906,11 +908,11 @@ static QDateTime parseDateString(const QByteArray &dateString)
|
||||
if (!date.isValid())
|
||||
date = QDate(day + y2k, month, year);
|
||||
|
||||
QDateTime dateTime(date, time, Qt::UTC);
|
||||
QDateTime dateTime(date, time, QTimeZone::UTC);
|
||||
|
||||
if (zoneOffset != -1) {
|
||||
if (zoneOffset != -1)
|
||||
dateTime = dateTime.addSecs(zoneOffset);
|
||||
}
|
||||
|
||||
if (!dateTime.isValid())
|
||||
return QDateTime();
|
||||
return dateTime;
|
||||
|
@ -11,9 +11,11 @@
|
||||
#include "qhttp2configuration.h"
|
||||
#include "private/http2protocol_p.h"
|
||||
#endif
|
||||
#include "QtCore/qshareddata.h"
|
||||
#include "QtCore/qlocale.h"
|
||||
|
||||
#include "QtCore/qdatetime.h"
|
||||
#include "QtCore/qlocale.h"
|
||||
#include "QtCore/qshareddata.h"
|
||||
#include "QtCore/qtimezone.h"
|
||||
#include "QtCore/private/qtools_p.h"
|
||||
|
||||
#include <ctype.h>
|
||||
@ -1081,7 +1083,7 @@ static QByteArray headerValue(QNetworkRequest::KnownHeaders header, const QVaria
|
||||
switch (value.userType()) {
|
||||
// Generate RFC 1123/822 dates:
|
||||
case QMetaType::QDate:
|
||||
return QNetworkHeadersPrivate::toHttpDate(value.toDate().startOfDay(Qt::UTC));
|
||||
return QNetworkHeadersPrivate::toHttpDate(value.toDate().startOfDay(QTimeZone::UTC));
|
||||
case QMetaType::QDateTime:
|
||||
return QNetworkHeadersPrivate::toHttpDate(value.toDateTime());
|
||||
|
||||
@ -1522,7 +1524,7 @@ QDateTime QNetworkHeadersPrivate::fromHttpDate(const QByteArray &value)
|
||||
#endif // datestring
|
||||
|
||||
if (dt.isValid())
|
||||
dt.setTimeSpec(Qt::UTC);
|
||||
dt.setTimeZone(QTimeZone::UTC);
|
||||
return dt;
|
||||
}
|
||||
|
||||
|
@ -12,12 +12,13 @@
|
||||
#include <QtNetwork/qsslsocket.h>
|
||||
#include <QtNetwork/qhostaddress.h>
|
||||
|
||||
#include <QtCore/qvarlengtharray.h>
|
||||
#include <QtCore/qscopeguard.h>
|
||||
#include <QtCore/qdatetime.h>
|
||||
#include <QtCore/qiodevice.h>
|
||||
#include <QtCore/qendian.h>
|
||||
#include <QtCore/qdatetime.h>
|
||||
#include <QtCore/qhash.h>
|
||||
#include <QtCore/qiodevice.h>
|
||||
#include <QtCore/qscopeguard.h>
|
||||
#include <QtCore/qtimezone.h>
|
||||
#include <QtCore/qvarlengtharray.h>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
@ -77,7 +78,7 @@ QDateTime dateTimeFromASN1(const ASN1_TIME *aTime)
|
||||
if (q_ASN1_TIME_to_tm(aTime, &lTime)) {
|
||||
QDate resDate(lTime.tm_year + 1900, lTime.tm_mon + 1, lTime.tm_mday);
|
||||
QTime resTime(lTime.tm_hour, lTime.tm_min, lTime.tm_sec);
|
||||
result = QDateTime(resDate, resTime, Qt::UTC);
|
||||
result = QDateTime(resDate, resTime, QTimeZone::UTC);
|
||||
}
|
||||
|
||||
return result;
|
||||
|
@ -569,8 +569,8 @@ void tst_QDBusMarshall::sendComplex_data()
|
||||
QTest::newRow("empty-lldtmap") << QVariant::fromValue(lldtmap) << "a{x((iii)(iiii)i)}"
|
||||
<< "[Argument: a{x((iii)(iiii)i)} {}]";
|
||||
lldtmap[0] = QDateTime();
|
||||
lldtmap[1] = QDateTime(QDate(1970, 1, 1), QTime(0, 0, 1), Qt::UTC);
|
||||
lldtmap[1150629776] = QDateTime(QDate(2006, 6, 18), QTime(11, 22, 56), Qt::UTC);
|
||||
lldtmap[1] = QDateTime(QDate(1970, 1, 1), QTime(0, 0, 1), QTimeZone::UTC);
|
||||
lldtmap[1150629776] = QDateTime(QDate(2006, 6, 18), QTime(11, 22, 56), QTimeZone::UTC);
|
||||
QTest::newRow("lldtmap") << QVariant::fromValue(lldtmap) << "a{x((iii)(iiii)i)}"
|
||||
<< "[Argument: a{x((iii)(iiii)i)} {0 = [Argument: ((iii)(iiii)i) [Argument: (iii) 0, 0, 0], [Argument: (iiii) -1, -1, -1, -1], 0], 1 = [Argument: ((iii)(iiii)i) [Argument: (iii) 1970, 1, 1], [Argument: (iiii) 0, 0, 1, 0], 1], 1150629776 = [Argument: ((iii)(iiii)i) [Argument: (iii) 2006, 6, 18], [Argument: (iiii) 11, 22, 56, 0], 1]}]";
|
||||
|
||||
|
@ -3,9 +3,11 @@
|
||||
|
||||
|
||||
#include <QTest>
|
||||
#include <QtCore/QUrl>
|
||||
#include <QtNetwork/QNetworkCookie>
|
||||
|
||||
#include <QtCore/QDateTime>
|
||||
#include <QtCore/QTimeZone>
|
||||
#include <QtCore/QUrl>
|
||||
|
||||
class tst_QNetworkCookie: public QObject
|
||||
{
|
||||
@ -85,6 +87,12 @@ void tst_QNetworkCookie::parseSingleCookie_data()
|
||||
{
|
||||
QTest::addColumn<QString>("cookieString");
|
||||
QTest::addColumn<QNetworkCookie>("expectedCookie");
|
||||
const auto utc = [](int year, int month, int day,
|
||||
int hour = 0, int minute = 0, int second = 0, int millis = 0) {
|
||||
return QDateTime(QDate(year, month, day),
|
||||
QTime(hour, minute, second, millis),
|
||||
QTimeZone::UTC);
|
||||
};
|
||||
|
||||
QNetworkCookie cookie;
|
||||
cookie.setName("a");
|
||||
@ -229,140 +237,140 @@ void tst_QNetworkCookie::parseSingleCookie_data()
|
||||
cookie = QNetworkCookie();
|
||||
cookie.setName("a");
|
||||
cookie.setValue("b");
|
||||
cookie.setExpirationDate(QDateTime(QDate(2012, 1, 29), QTime(23, 59, 59), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(2012, 1, 29, 23, 59, 59));
|
||||
QTest::newRow("broken-expiration1") << "a=b; expires=Sun, 29-Jan-2012 23:59:59;" << cookie;
|
||||
|
||||
cookie.setExpirationDate(QDateTime(QDate(1999, 11, 9), QTime(23, 12, 40), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1999, 11, 9, 23, 12, 40));
|
||||
QTest::newRow("expiration1") << "a=b;expires=Wednesday, 09-Nov-1999 23:12:40 GMT" << cookie;
|
||||
QTest::newRow("expiration2") << "a=b;expires=Wed, 09-Nov-1999 23:12:40 GMT" << cookie;
|
||||
QTest::newRow("expiration3") << "a=b; expires=Wednesday, 09-Nov-1999 23:12:40 GMT " << cookie;
|
||||
QTest::newRow("expiration-utc") << "a=b;expires=Wednesday, 09-Nov-1999 23:12:40 UTC" << cookie;
|
||||
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 4, 14), QTime(3, 20, 0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 4, 14, 3, 20));
|
||||
QTest::newRow("time-0") << "a=b;expires=14 Apr 89 03:20" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 4, 14), QTime(3, 20, 12, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 4, 14, 3, 20, 12));
|
||||
QTest::newRow("time-1") << "a=b;expires=14 Apr 89 03:20:12" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 4, 14), QTime(3, 20, 12, 88), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 4, 14, 3, 20, 12, 88));
|
||||
QTest::newRow("time-2") << "a=b;expires=14 Apr 89 03:20:12.88" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 4, 14), QTime(3, 20, 12, 88), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 4, 14, 3, 20, 12, 88));
|
||||
QTest::newRow("time-3") << "a=b;expires=14 Apr 89 03:20:12.88am" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 4, 14), QTime(15, 20, 12, 88), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 4, 14, 15, 20, 12, 88));
|
||||
QTest::newRow("time-4") << "a=b;expires=14 Apr 89 03:20:12.88pm" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 4, 14), QTime(3, 20, 12, 88), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 4, 14, 3, 20, 12, 88));
|
||||
QTest::newRow("time-5") << "a=b;expires=14 Apr 89 03:20:12.88 Am" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 4, 14), QTime(15, 20, 12, 88), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 4, 14, 15, 20, 12, 88));
|
||||
QTest::newRow("time-6") << "a=b;expires=14 Apr 89 03:20:12.88 PM" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 4, 14), QTime(15, 20, 12, 88), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 4, 14, 15, 20, 12, 88));
|
||||
QTest::newRow("time-7") << "a=b;expires=14 Apr 89 3:20:12.88 PM" << cookie;
|
||||
|
||||
// normal months
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 1, 1), QTime(1, 1), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 1, 1, 1, 1));
|
||||
QTest::newRow("months-1") << "a=b;expires=Jan 1 89 1:1" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 2, 1), QTime(1, 1), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 2, 1, 1, 1));
|
||||
QTest::newRow("months-2") << "a=b;expires=Feb 1 89 1:1" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 3, 1), QTime(1, 1), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 3, 1, 1, 1));
|
||||
QTest::newRow("months-3") << "a=b;expires=mar 1 89 1:1" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 4, 1), QTime(1, 1), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 4, 1, 1, 1));
|
||||
QTest::newRow("months-4") << "a=b;expires=Apr 1 89 1:1" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 5, 1), QTime(1, 1), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 5, 1, 1, 1));
|
||||
QTest::newRow("months-5") << "a=b;expires=May 1 89 1:1" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 6, 1), QTime(1, 1), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 6, 1, 1, 1));
|
||||
QTest::newRow("months-6") << "a=b;expires=Jun 1 89 1:1" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 7, 1), QTime(1, 1), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 7, 1, 1, 1));
|
||||
QTest::newRow("months-7") << "a=b;expires=Jul 1 89 1:1" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 8, 1), QTime(1, 1), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 8, 1, 1, 1));
|
||||
QTest::newRow("months-8") << "a=b;expires=Aug 1 89 1:1" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 9, 1), QTime(1, 1), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 9, 1, 1, 1));
|
||||
QTest::newRow("months-9") << "a=b;expires=Sep 1 89 1:1" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 10, 1), QTime(1, 1), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 10, 1, 1, 1));
|
||||
QTest::newRow("months-10") << "a=b;expires=Oct 1 89 1:1" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 11, 1), QTime(1, 1), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 11, 1, 1, 1));
|
||||
QTest::newRow("months-11") << "a=b;expires=Nov 1 89 1:1" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 12, 1), QTime(1, 1), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 12, 1, 1, 1));
|
||||
QTest::newRow("months-12") << "a=b;expires=Dec 1 89 1:1" << cookie;
|
||||
|
||||
// extra months
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 12, 1), QTime(1, 1), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 12, 1, 1, 1));
|
||||
QTest::newRow("months-13") << "a=b;expires=December 1 89 1:1" << cookie;
|
||||
QTest::newRow("months-14") << "a=b;expires=1 89 1:1 Dec" << cookie;
|
||||
//cookie.setExpirationDate(QDateTime());
|
||||
//QTest::newRow("months-15") << "a=b;expires=1 89 1:1 De" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(2024, 2, 29), QTime(1, 1), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(2024, 2, 29, 1, 1));
|
||||
QTest::newRow("months-16") << "a=b;expires=2024 29 Feb 1:1" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(2024, 2, 29), QTime(1, 1), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(2024, 2, 29, 1, 1));
|
||||
QTest::newRow("months-17") << "a=b;expires=Fri, 29-Feb-2024 01:01:00 GMT" << cookie;
|
||||
QTest::newRow("months-18") << "a=b;expires=2024 29 Feb 1:1 GMT" << cookie;
|
||||
|
||||
// normal offsets
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 1, 1), QTime(0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 1, 1));
|
||||
QTest::newRow("zoneoffset-0") << "a=b;expires=Jan 1 89 8:0 PST" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 1, 1), QTime(0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 1, 1));
|
||||
QTest::newRow("zoneoffset-1") << "a=b;expires=Jan 1 89 8:0 PDT" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 1, 1), QTime(0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 1, 1));
|
||||
QTest::newRow("zoneoffset-2") << "a=b;expires=Jan 1 89 7:0 MST" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 1, 1), QTime(0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 1, 1));
|
||||
QTest::newRow("zoneoffset-3") << "a=b;expires=Jan 1 89 7:0 MDT" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 1, 1), QTime(0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 1, 1));
|
||||
QTest::newRow("zoneoffset-4") << "a=b;expires=Jan 1 89 6:0 CST" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 1, 1), QTime(0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 1, 1));
|
||||
QTest::newRow("zoneoffset-5") << "a=b;expires=Jan 1 89 6:0 CDT" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 1, 1), QTime(0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 1, 1));
|
||||
QTest::newRow("zoneoffset-6") << "a=b;expires=Jan 1 89 5:0 EST" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 1, 1), QTime(0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 1, 1));
|
||||
QTest::newRow("zoneoffset-7") << "a=b;expires=Jan 1 89 5:0 EDT" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 1, 1), QTime(0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 1, 1));
|
||||
QTest::newRow("zoneoffset-8") << "a=b;expires=Jan 1 89 4:0 AST" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 1, 1), QTime(0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 1, 1));
|
||||
QTest::newRow("zoneoffset-9") << "a=b;expires=Jan 1 89 3:0 NST" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 1, 1), QTime(0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 1, 1));
|
||||
QTest::newRow("zoneoffset-10") << "a=b;expires=Jan 1 89 0:0 GMT" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 1, 1), QTime(0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 1, 1));
|
||||
QTest::newRow("zoneoffset-11") << "a=b;expires=Jan 1 89 0:0 BST" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 1, 2), QTime(0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 1, 2));
|
||||
QTest::newRow("zoneoffset-12") << "a=b;expires=Jan 1 89 23:0 MET" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 1, 2), QTime(0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 1, 2));
|
||||
QTest::newRow("zoneoffset-13") << "a=b;expires=Jan 1 89 22:0 EET" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 1, 2), QTime(0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 1, 2));
|
||||
QTest::newRow("zoneoffset-14") << "a=b;expires=Jan 1 89 15:0 JST" << cookie;
|
||||
|
||||
// extra offsets
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 1, 2), QTime(0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 1, 2));
|
||||
QTest::newRow("zoneoffset-15") << "a=b;expires=Jan 1 89 15:0 JST+1" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 1, 1), QTime(1, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 1, 1, 1));
|
||||
QTest::newRow("zoneoffset-16") << "a=b;expires=Jan 1 89 0:0 GMT+1" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 1, 1), QTime(0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 1, 1));
|
||||
QTest::newRow("zoneoffset-17") << "a=b;expires=Jan 1 89 1:0 GMT-1" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 1, 1), QTime(1, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 1, 1, 1));
|
||||
QTest::newRow("zoneoffset-18") << "a=b;expires=Jan 1 89 0:0 GMT+01" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 1, 1), QTime(1, 5), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 1, 1, 1, 5));
|
||||
QTest::newRow("zoneoffset-19") << "a=b;expires=Jan 1 89 0:0 GMT+0105" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 1, 1), QTime(0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 1, 1));
|
||||
QTest::newRow("zoneoffset-20") << "a=b;expires=Jan 1 89 0:0 GMT+015" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 1, 1), QTime(0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 1, 1));
|
||||
QTest::newRow("zoneoffset-21") << "a=b;expires=Jan 1 89 0:0 GM" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 1, 1), QTime(0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 1, 1));
|
||||
QTest::newRow("zoneoffset-22") << "a=b;expires=Jan 1 89 0:0 GMT" << cookie;
|
||||
|
||||
// offsets from gmt
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 1, 1), QTime(1, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 1, 1, 1));
|
||||
QTest::newRow("zoneoffset-23") << "a=b;expires=Jan 1 89 0:0 +1" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 1, 1), QTime(1, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 1, 1, 1));
|
||||
QTest::newRow("zoneoffset-24") << "a=b;expires=Jan 1 89 0:0 +01" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 1, 1), QTime(1, 1), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 1, 1, 1, 1));
|
||||
QTest::newRow("zoneoffset-25") << "a=b;expires=Jan 1 89 0:0 +0101" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 1, 1), QTime(0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 1, 1));
|
||||
QTest::newRow("zoneoffset-26") << "a=b;expires=Jan 1 89 1:0 -1" << cookie;
|
||||
|
||||
// Y2k
|
||||
cookie.setExpirationDate(QDateTime(QDate(2000, 1, 1), QTime(0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(2000, 1, 1));
|
||||
QTest::newRow("year-0") << "a=b;expires=Jan 1 00 0:0" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1970, 1, 1), QTime(0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1970, 1, 1));
|
||||
QTest::newRow("year-1") << "a=b;expires=Jan 1 70 0:0" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1971, 1, 1), QTime(0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1971, 1, 1));
|
||||
QTest::newRow("year-2") << "a=b;expires=Jan 1 71 0:0" << cookie;
|
||||
|
||||
// Day, month, year
|
||||
cookie.setExpirationDate(QDateTime(QDate(2013, 1, 2), QTime(0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(2013, 1, 2));
|
||||
QTest::newRow("date-0") << "a=b;expires=Jan 2 13 0:0" << cookie;
|
||||
QTest::newRow("date-1") << "a=b;expires=1-2-13 0:0" << cookie;
|
||||
QTest::newRow("date-2") << "a=b;expires=1/2/13 0:0" << cookie;
|
||||
@ -372,141 +380,141 @@ void tst_QNetworkCookie::parseSingleCookie_data()
|
||||
QTest::newRow("date-6") << "a=b;expires=1/2/13 0:0" << cookie;
|
||||
|
||||
// Known Year, determine month and day
|
||||
cookie.setExpirationDate(QDateTime(QDate(1995, 1, 13), QTime(0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1995, 1, 13));
|
||||
QTest::newRow("knownyear-0") << "a=b;expires=13/1/95 0:0" << cookie;
|
||||
QTest::newRow("knownyear-1") << "a=b;expires=95/13/1 0:0" << cookie;
|
||||
QTest::newRow("knownyear-2") << "a=b;expires=1995/1/13 0:0" << cookie;
|
||||
QTest::newRow("knownyear-3") << "a=b;expires=1995/13/1 0:0" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1995, 1, 2), QTime(0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1995, 1, 2));
|
||||
QTest::newRow("knownyear-4") << "a=b;expires=1/2/95 0:0" << cookie;
|
||||
QTest::newRow("knownyear-5") << "a=b;expires=95/1/2 0:0" << cookie;
|
||||
|
||||
// Known Year, Known day, determining month
|
||||
cookie.setExpirationDate(QDateTime(QDate(1995, 1, 13), QTime(0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1995, 1, 13));
|
||||
QTest::newRow("knownYD-0") << "a=b;expires=13/1/95 0:0" << cookie;
|
||||
QTest::newRow("knownYD-1") << "a=b;expires=1/13/95 0:0" << cookie;
|
||||
QTest::newRow("knownYD-2") << "a=b;expires=95/13/1 0:0" << cookie;
|
||||
QTest::newRow("knownYD-3") << "a=b;expires=95/1/13 0:0" << cookie;
|
||||
|
||||
// Month comes before Year
|
||||
cookie.setExpirationDate(QDateTime(QDate(2021, 03, 26), QTime(0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(2021, 03, 26));
|
||||
QTest::newRow("month-0") << "a=b;expires=26/03/21 0:0" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(2015, 12, 30), QTime(16, 25, 0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(2015, 12, 30, 16, 25));
|
||||
QTest::newRow("month-1") << "a=b;expires=wed 16:25pm December 2015 30" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(2031, 11, 11), QTime(16, 25, 0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(2031, 11, 11, 16, 25));
|
||||
QTest::newRow("month-2") << "a=b;expires=16:25 11 31 11" << cookie;
|
||||
|
||||
// The very ambiguous cases
|
||||
// Matching Firefox's behavior of guessing month, day, year in those cases
|
||||
cookie.setExpirationDate(QDateTime(QDate(2013, 10, 2), QTime(0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(2013, 10, 2));
|
||||
QTest::newRow("ambiguousd-0") << "a=b;expires=10/2/13 0:0" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(2013, 2, 10), QTime(0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(2013, 2, 10));
|
||||
QTest::newRow("ambiguousd-1") << "a=b;expires=2/10/13 0:0" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(2010, 2, 3), QTime(0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(2010, 2, 3));
|
||||
QTest::newRow("ambiguousd-2") << "a=b;expires=2/3/10 0:0" << cookie;
|
||||
|
||||
// FYI If you try these in Firefox it won't set a cookie for the following two string
|
||||
// because 03 is turned into the year at which point it is expired
|
||||
cookie.setExpirationDate(QDateTime(QDate(2003, 2, 10), QTime(0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(2003, 2, 10));
|
||||
QTest::newRow("ambiguousd-3") << "a=b;expires=2/10/3 0:0" << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(2003, 10, 2), QTime(0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(2003, 10, 2));
|
||||
QTest::newRow("ambiguousd-4") << "a=b;expires=10/2/3 0:0" << cookie;
|
||||
|
||||
// These are the cookies that firefox's source says it can parse
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 4, 14), QTime(3, 20, 0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 4, 14, 3, 20));
|
||||
QTest::newRow("firefox-0") << "a=b;expires=14 Apr 89 03:20" << cookie;
|
||||
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 4, 14), QTime(3, 20, 0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 4, 14, 3, 20));
|
||||
QTest::newRow("firefox-1") << "a=b;expires=14 Apr 89 03:20 GMT" << cookie;
|
||||
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 3, 17), QTime(4, 1, 33, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 3, 17, 4, 1, 33));
|
||||
QTest::newRow("firefox-2") << "a=b;expires=Fri, 17 Mar 89 4:01:33" << cookie;
|
||||
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 3, 17), QTime(4, 1, 0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 3, 17, 4, 1));
|
||||
QTest::newRow("firefox-3") << "a=b;expires=Fri, 17 Mar 89 4:01 GMT" << cookie;
|
||||
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 1, 16), QTime(16-8, 12, 0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 1, 16, 16-8, 12));
|
||||
QTest::newRow("firefox-4") << "a=b;expires=Mon Jan 16 16:12 PDT 1989" << cookie;
|
||||
|
||||
cookie.setExpirationDate(QDateTime(QDate(1989, 1, 16), QTime(17, 42, 0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1989, 1, 16, 17, 42));
|
||||
QTest::newRow("firefox-5") << "a=b;expires=Mon Jan 16 16:12 +0130 1989" << cookie;
|
||||
|
||||
cookie.setExpirationDate(QDateTime(QDate(1992, 5, 6), QTime(16-9, 41, 0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1992, 5, 6, 16-9, 41));
|
||||
QTest::newRow("firefox-6") << "a=b;expires=6 May 1992 16:41-JST (Wednesday)" << cookie;
|
||||
|
||||
cookie.setExpirationDate(QDateTime(QDate(1993, 8, 22), QTime(10, 59, 12, 82), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1993, 8, 22, 10, 59, 12, 82));
|
||||
QTest::newRow("firefox-7") << "a=b;expires=22-AUG-1993 10:59:12.82" << cookie;
|
||||
|
||||
cookie.setExpirationDate(QDateTime(QDate(1993, 8, 22), QTime(22, 59, 0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1993, 8, 22, 22, 59));
|
||||
QTest::newRow("firefox-8") << "a=b;expires=22-AUG-1993 10:59pm" << cookie;
|
||||
|
||||
cookie.setExpirationDate(QDateTime(QDate(1993, 8, 22), QTime(12, 59, 0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1993, 8, 22, 12, 59));
|
||||
QTest::newRow("firefox-9") << "a=b;expires=22-AUG-1993 12:59am" << cookie;
|
||||
|
||||
cookie.setExpirationDate(QDateTime(QDate(1993, 8, 22), QTime(12, 59, 0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1993, 8, 22, 12, 59));
|
||||
QTest::newRow("firefox-10") << "a=b;expires=22-AUG-1993 12:59 PM" << cookie;
|
||||
|
||||
cookie.setExpirationDate(QDateTime(QDate(1995, 8, 4), QTime(15, 54, 0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1995, 8, 4, 15, 54));
|
||||
QTest::newRow("firefox-11") << "a=b;expires=Friday, August 04, 1995 3:54 PM" << cookie;
|
||||
|
||||
cookie.setExpirationDate(QDateTime(QDate(1995, 6, 21), QTime(16, 24, 34, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1995, 6, 21, 16, 24, 34));
|
||||
QTest::newRow("firefox-12") << "a=b;expires=06/21/95 04:24:34 PM" << cookie;
|
||||
|
||||
cookie.setExpirationDate(QDateTime(QDate(1995, 6, 20), QTime(21, 7, 0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1995, 6, 20, 21, 7));
|
||||
QTest::newRow("firefox-13") << "a=b;expires=20/06/95 21:07" << cookie;
|
||||
|
||||
cookie.setExpirationDate(QDateTime(QDate(1995, 6, 8), QTime(19-5, 32, 48, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1995, 6, 8, 19-5, 32, 48));
|
||||
QTest::newRow("firefox-14") << "a=b;expires=95-06-08 19:32:48 EDT" << cookie;
|
||||
|
||||
// Edge cases caught by fuzzing
|
||||
// These are about the default cause creates dates that don't exits
|
||||
cookie.setExpirationDate(QDateTime(QDate(2030, 2, 25), QTime(1, 1, 0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(2030, 2, 25, 1, 1));
|
||||
QTest::newRow("fuzz-0") << "a=b; expires=30 -000002 1:1 25;" << cookie;
|
||||
|
||||
cookie.setExpirationDate(QDateTime(QDate(2031, 11, 20), QTime(1, 1, 0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(2031, 11, 20, 1, 1));
|
||||
QTest::newRow("fuzz-1") << "a=b; expires=31 11 20 1:1;" << cookie;
|
||||
|
||||
// April only has 30 days
|
||||
cookie.setExpirationDate(QDateTime(QDate(2031, 4, 30), QTime(1, 1, 0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(2031, 4, 30, 1, 1));
|
||||
QTest::newRow("fuzz-2") << "a=b; expires=31 30 4 1:1" << cookie;
|
||||
|
||||
// 9 must be the month so 31 can't be the day
|
||||
cookie.setExpirationDate(QDateTime(QDate(2031, 9, 21), QTime(1, 1, 0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(2031, 9, 21, 1, 1));
|
||||
QTest::newRow("fuzz-3") << "a=b; expires=31 21 9 1:1" << cookie;
|
||||
|
||||
// Year is known, then fallback to defaults of filling in month and day
|
||||
cookie.setExpirationDate(QDateTime(QDate(2031, 11, 1), QTime(1, 1, 0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(2031, 11, 1, 1, 1));
|
||||
QTest::newRow("fuzz-4") << "a=b; expires=31 11 01 1:1" << cookie;
|
||||
|
||||
// 2 must be the month so 30 can't be the day
|
||||
cookie.setExpirationDate(QDateTime(QDate(2030, 2, 20), QTime(1, 1, 0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(2030, 2, 20, 1, 1));
|
||||
QTest::newRow("fuzz-5") << "a=b; expires=30 02 20 1:1" << cookie;
|
||||
|
||||
cookie.setExpirationDate(QDateTime(QDate(2021, 12, 22), QTime(1, 1, 0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(2021, 12, 22, 1, 1));
|
||||
QTest::newRow("fuzz-6") << "a=b; expires=2021 12 22 1:1" << cookie;
|
||||
|
||||
cookie.setExpirationDate(QDateTime(QDate(2029, 2, 23), QTime(1, 1, 0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(2029, 2, 23, 1, 1));
|
||||
QTest::newRow("fuzz-7") << "a=b; expires=29 23 Feb 1:1" << cookie;
|
||||
|
||||
// 11 and 6 don't have 31 days
|
||||
cookie.setExpirationDate(QDateTime(QDate(2031, 11, 06), QTime(1, 1, 0, 0), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(2031, 11, 06, 1, 1));
|
||||
QTest::newRow("fuzz-8") << "a=b; expires=31 11 06 1:1" << cookie;
|
||||
|
||||
// two-digit years:
|
||||
// from 70 until 99, we assume 20th century
|
||||
cookie.setExpirationDate(QDateTime(QDate(1999, 11, 9), QTime(23, 12, 40), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1999, 11, 9, 23, 12, 40));
|
||||
QTest::newRow("expiration-2digit1") << "a=b; expires=Wednesday, 09-Nov-99 23:12:40 GMT " << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(1970, 1, 1), QTime(23, 12, 40), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1970, 1, 1, 23, 12, 40));
|
||||
QTest::newRow("expiration-2digit2") << "a=b; expires=Thursday, 01-Jan-70 23:12:40 GMT " << cookie;
|
||||
// from 00 until 69, we assume 21st century
|
||||
cookie.setExpirationDate(QDateTime(QDate(2000, 1, 1), QTime(23, 12, 40), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(2000, 1, 1, 23, 12, 40));
|
||||
QTest::newRow("expiration-2digit3") << "a=b; expires=Saturday, 01-Jan-00 23:12:40 GMT " << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(2020, 1, 1), QTime(23, 12, 40), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(2020, 1, 1, 23, 12, 40));
|
||||
QTest::newRow("expiration-2digit4") << "a=b; expires=Wednesday, 01-Jan-20 23:12:40 GMT " << cookie;
|
||||
cookie.setExpirationDate(QDateTime(QDate(2069, 1, 1), QTime(23, 12, 40), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(2069, 1, 1, 23, 12, 40));
|
||||
QTest::newRow("expiration-2digit5") << "a=b; expires=Wednesday, 01-Jan-69 23:12:40 GMT " << cookie;
|
||||
|
||||
cookie.setExpirationDate(QDateTime(QDate(1999, 11, 9), QTime(23, 12, 40), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(1999, 11, 9, 23, 12, 40));
|
||||
|
||||
cookie.setPath("/");
|
||||
QTest::newRow("expires+path") << "a=b; expires=Wed, 09-Nov-1999 23:12:40 GMT; path=/" << cookie;
|
||||
@ -519,7 +527,7 @@ void tst_QNetworkCookie::parseSingleCookie_data()
|
||||
// cookies obtained from the network:
|
||||
cookie = QNetworkCookie("__siteid", "1");
|
||||
cookie.setPath("/");
|
||||
cookie.setExpirationDate(QDateTime(QDate(9999, 12, 31), QTime(23, 59, 59), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(9999, 12, 31, 23, 59, 59));
|
||||
QTest::newRow("network2") << "__siteid=1; expires=Fri, 31-Dec-9999 23:59:59 GMT; path=/" << cookie;
|
||||
|
||||
cookie = QNetworkCookie("YM.LC", "v=2&m=9993_262838_159_1558_1063_0_5649_4012_3776161073,9426_260205_549_1295_1336_0_5141_4738_3922731647,6733_258196_952_1364_643_0_3560_-1_0,3677_237633_1294_1294_19267_0_3244_29483_4102206176,1315_235149_1693_1541_941_0_3224_1691_1861378060,1858_214311_2100_1298_19538_0_2873_30900_716411652,6258_212007_2506_1285_1017_0_2868_3606_4288540264,3743_207884_2895_1362_2759_0_2545_7114_3388520216,2654_205253_3257_1297_1332_0_2504_4682_3048534803,1891_184881_3660_1291_19079_0_978_29178_2592538685&f=1&n=20&s=date&o=down&e=1196548712&b=Inbox&u=removed");
|
||||
@ -529,13 +537,13 @@ void tst_QNetworkCookie::parseSingleCookie_data()
|
||||
|
||||
cookie = QNetworkCookie("__ac", "\"c2hhdXNtYW46U2FTYW80Wm8%3D\"");
|
||||
cookie.setPath("/");
|
||||
cookie.setExpirationDate(QDateTime(QDate(2008, 8, 30), QTime(20, 21, 49), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(2008, 8, 30, 20, 21, 49));
|
||||
QTest::newRow("network4") << "__ac=\"c2hhdXNtYW46U2FTYW80Wm8%3D\"; Path=/; Expires=Sat, 30 Aug 2008 20:21:49 +0000" << cookie;
|
||||
|
||||
// linkedin.com sends cookies in quotes and expects the cookie in quotes
|
||||
cookie = QNetworkCookie("leo_auth_token", "\"GST:UroVXaxYA3sVSkoVjMNH9bj4dZxVzK2yekgrAUxMfUsyLTNyPjoP60:1298974875:b675566ae32ab36d7a708c0efbf446a5c22b9fca\"");
|
||||
cookie.setPath("/");
|
||||
cookie.setExpirationDate(QDateTime(QDate(2011, 3, 1), QTime(10, 51, 14), Qt::UTC));
|
||||
cookie.setExpirationDate(utc(2011, 3, 1, 10, 51, 14));
|
||||
QTest::newRow("network5") << "leo_auth_token=\"GST:UroVXaxYA3sVSkoVjMNH9bj4dZxVzK2yekgrAUxMfUsyLTNyPjoP60:1298974875:b675566ae32ab36d7a708c0efbf446a5c22b9fca\"; Version=1; Max-Age=1799; Expires=Tue, 01-Mar-2011 10:51:14 GMT; Path=/" << cookie;
|
||||
|
||||
// cookie containing JSON data (illegal for server, client should accept) - QTBUG-26002
|
||||
@ -611,7 +619,7 @@ void tst_QNetworkCookie::parseMultipleCookies_data()
|
||||
cookie = QNetworkCookie("id", "51706646077999719");
|
||||
cookie.setDomain(".bluestreak.com");
|
||||
cookie.setPath("/");
|
||||
cookie.setExpirationDate(QDateTime(QDate(2017, 12, 05), QTime(9, 11, 7), Qt::UTC));
|
||||
cookie.setExpirationDate(QDateTime(QDate(2017, 12, 05), QTime(9, 11, 7), QTimeZone::UTC));
|
||||
list << cookie;
|
||||
cookie.setName("bb");
|
||||
cookie.setValue("\\\"K14144t\\\"_AAQ\\\"ototrK_A_ttot44AQ4KwoRQtoto|");
|
||||
@ -630,8 +638,8 @@ void tst_QNetworkCookie::parseMultipleCookies_data()
|
||||
cookieB.setValue("d");
|
||||
|
||||
// NewLine
|
||||
cookieA.setExpirationDate(QDateTime(QDate(2009, 3, 10), QTime(7, 0, 0, 0), Qt::UTC));
|
||||
cookieB.setExpirationDate(QDateTime(QDate(2009, 3, 20), QTime(7, 0, 0, 0), Qt::UTC));
|
||||
cookieA.setExpirationDate(QDateTime(QDate(2009, 3, 10), QTime(7, 0), QTimeZone::UTC));
|
||||
cookieB.setExpirationDate(QDateTime(QDate(2009, 3, 20), QTime(7, 0), QTimeZone::UTC));
|
||||
list = QList<QNetworkCookie>() << cookieA << cookieB;
|
||||
QTest::newRow("real-0") << "a=b; expires=Tue Mar 10 07:00:00 2009 GMT\nc=d; expires=Fri Mar 20 07:00:00 2009 GMT" << list;
|
||||
QTest::newRow("real-1") << "a=b; expires=Tue Mar 10 07:00:00 2009 GMT\n\nc=d; expires=Fri Mar 20 07:00:00 2009 GMT" << list;
|
||||
|
@ -16,20 +16,23 @@
|
||||
#include <QBuffer>
|
||||
#include <QMap>
|
||||
|
||||
#include <QtCore/qlist.h>
|
||||
#include <QtCore/qset.h>
|
||||
#include <QtCore/QCryptographicHash>
|
||||
#include <QtCore/QDataStream>
|
||||
#include <QtCore/QUrl>
|
||||
#include <QtCore/QDateTime>
|
||||
#include <QtCore/QEventLoop>
|
||||
#include <QtCore/QElapsedTimer>
|
||||
#include <QtCore/QFile>
|
||||
#include <QtCore/QList>
|
||||
#include <QtCore/QRandomGenerator>
|
||||
#include <QtCore/QRegularExpression>
|
||||
#include <QtCore/QRegularExpressionMatch>
|
||||
#include <QtCore/QSet>
|
||||
#include <QtCore/QSharedPointer>
|
||||
#include <QtCore/QScopedPointer>
|
||||
#include <QtCore/QTemporaryFile>
|
||||
#include <QtCore/QTimeZone>
|
||||
#include <QtCore/QUrl>
|
||||
|
||||
#include <QtNetwork/QTcpServer>
|
||||
#include <QtNetwork/QTcpSocket>
|
||||
#include <QtNetwork/QLocalSocket>
|
||||
@ -5482,7 +5485,7 @@ void tst_QNetworkReply::lastModifiedHeaderForHttp()
|
||||
|
||||
QDateTime header = reply->header(QNetworkRequest::LastModifiedHeader).toDateTime();
|
||||
QDateTime realDate = QDateTime::fromString("2007-05-22T12:04:57", Qt::ISODate);
|
||||
realDate.setTimeSpec(Qt::UTC);
|
||||
realDate.setTimeZone(QTimeZone::UTC);
|
||||
|
||||
QCOMPARE(header, realDate);
|
||||
}
|
||||
|
@ -2,13 +2,14 @@
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||
|
||||
#include <QTest>
|
||||
#include <QtCore/QUrl>
|
||||
#if QT_CONFIG(timezone)
|
||||
# include <QtCore/QTimeZone>
|
||||
#endif
|
||||
|
||||
#include <QtNetwork/QNetworkRequest>
|
||||
#include <QtNetwork/QNetworkCookie>
|
||||
|
||||
#include <QtCore/QDateTime>
|
||||
#include <QtCore/QTimeZone>
|
||||
#include <QtCore/QUrl>
|
||||
|
||||
Q_DECLARE_METATYPE(QNetworkRequest::KnownHeaders)
|
||||
|
||||
class tst_QNetworkRequest: public QObject
|
||||
@ -215,23 +216,25 @@ void tst_QNetworkRequest::setHeader_data()
|
||||
<< "Thu, 01 Nov 2007 00:00:00 GMT";
|
||||
QTest::newRow("Last-Modified-DateTime-UTC")
|
||||
<< QNetworkRequest::LastModifiedHeader
|
||||
<< QVariant(QDateTime(QDate(2007, 11, 1), QTime(18, 8, 30), Qt::UTC))
|
||||
<< QVariant(QDateTime(QDate(2007, 11, 1), QTime(18, 8, 30), QTimeZone::UTC))
|
||||
<< true << "Last-Modified" << "Thu, 01 Nov 2007 18:08:30 GMT";
|
||||
// QTBUG-80666: format dates correctly (as GMT) even if the date passed in isn't in UTC:
|
||||
QTest::newRow("Last-Modified-DateTime-Local")
|
||||
<< QNetworkRequest::LastModifiedHeader
|
||||
<< QVariant(QDateTime(QDate(2007, 11, 1), QTime(18, 8, 30), Qt::UTC).toLocalTime())
|
||||
<< QVariant(QDateTime(QDate(2007, 11, 1), QTime(18, 8, 30), QTimeZone::UTC).toLocalTime())
|
||||
<< true << "Last-Modified" << "Thu, 01 Nov 2007 18:08:30 GMT";
|
||||
QTest::newRow("Last-Modified-DateTime-Offset")
|
||||
<< QNetworkRequest::LastModifiedHeader
|
||||
<< QVariant(QDateTime(QDate(2007, 11, 1), QTime(18, 8, 30), Qt::UTC).toOffsetFromUtc(3600))
|
||||
<< QVariant(QDateTime(QDate(2007, 11, 1), QTime(18, 8, 30),
|
||||
QTimeZone::UTC).toOffsetFromUtc(3600))
|
||||
<< true << "Last-Modified" << "Thu, 01 Nov 2007 18:08:30 GMT";
|
||||
#if QT_CONFIG(timezone)
|
||||
QTimeZone cet("Europe/Oslo");
|
||||
if (cet.isValid()) {
|
||||
QTest::newRow("Last-Modified-DateTime-CET")
|
||||
<< QNetworkRequest::LastModifiedHeader
|
||||
<< QVariant(QDateTime(QDate(2007, 11, 1), QTime(18, 8, 30), Qt::UTC).toTimeZone(cet))
|
||||
<< QVariant(QDateTime(QDate(2007, 11, 1), QTime(18, 8, 30),
|
||||
QTimeZone::UTC).toTimeZone(cet))
|
||||
<< true << "Last-Modified" << "Thu, 01 Nov 2007 18:08:30 GMT";
|
||||
}
|
||||
#endif
|
||||
@ -243,7 +246,7 @@ void tst_QNetworkRequest::setHeader_data()
|
||||
QTest::newRow("If-Modified-Since-DateTime") << QNetworkRequest::IfModifiedSinceHeader
|
||||
<< QVariant(QDateTime(QDate(2017, 7, 01),
|
||||
QTime(3, 14, 15),
|
||||
Qt::UTC))
|
||||
QTimeZone::UTC))
|
||||
<< true << "If-Modified-Since"
|
||||
<< "Sat, 01 Jul 2017 03:14:15 GMT";
|
||||
|
||||
@ -351,38 +354,38 @@ void tst_QNetworkRequest::rawHeaderParsing_data()
|
||||
QTest::newRow("Last-Modified-RFC1123") << QNetworkRequest::LastModifiedHeader
|
||||
<< QVariant(QDateTime(QDate(1994, 11, 06),
|
||||
QTime(8, 49, 37),
|
||||
Qt::UTC))
|
||||
QTimeZone::UTC))
|
||||
<< true << "Last-Modified"
|
||||
<< "Sun, 06 Nov 1994 08:49:37 GMT";
|
||||
QTest::newRow("Last-Modified-RFC850") << QNetworkRequest::LastModifiedHeader
|
||||
<< QVariant(QDateTime(QDate(1994, 11, 06),
|
||||
QTime(8, 49, 37),
|
||||
Qt::UTC))
|
||||
QTimeZone::UTC))
|
||||
<< true << "Last-Modified"
|
||||
<< "Sunday, 06-Nov-94 08:49:37 GMT";
|
||||
QTest::newRow("Last-Modified-asctime") << QNetworkRequest::LastModifiedHeader
|
||||
<< QVariant(QDateTime(QDate(1994, 11, 06),
|
||||
QTime(8, 49, 37),
|
||||
Qt::UTC))
|
||||
QTimeZone::UTC))
|
||||
<< true << "Last-Modified"
|
||||
<< "Sun Nov 6 08:49:37 1994";
|
||||
|
||||
QTest::newRow("If-Modified-Since-RFC1123") << QNetworkRequest::IfModifiedSinceHeader
|
||||
<< QVariant(QDateTime(QDate(1994, 8, 06),
|
||||
QTime(8, 49, 37),
|
||||
Qt::UTC))
|
||||
QTimeZone::UTC))
|
||||
<< true << "If-Modified-Since"
|
||||
<< "Sun, 06 Aug 1994 08:49:37 GMT";
|
||||
QTest::newRow("If-Modified-Since-RFC850") << QNetworkRequest::IfModifiedSinceHeader
|
||||
<< QVariant(QDateTime(QDate(1994, 8, 06),
|
||||
QTime(8, 49, 37),
|
||||
Qt::UTC))
|
||||
QTimeZone::UTC))
|
||||
<< true << "If-Modified-Since"
|
||||
<< "Sunday, 06-Aug-94 08:49:37 GMT";
|
||||
QTest::newRow("If-Modified-Since-asctime") << QNetworkRequest::IfModifiedSinceHeader
|
||||
<< QVariant(QDateTime(QDate(1994, 8, 06),
|
||||
QTime(8, 49, 37),
|
||||
Qt::UTC))
|
||||
QTimeZone::UTC))
|
||||
<< true << "If-Modified-Since"
|
||||
<< "Sun Aug 6 08:49:37 1994";
|
||||
|
||||
|
@ -1,9 +1,12 @@
|
||||
// Copyright (C) 2014 Jeremy Lainé <jeremy.laine@m4x.org>
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||
|
||||
#include "private/qasn1element_p.h"
|
||||
|
||||
#include <QTest>
|
||||
#include "private/qasn1element_p.h"
|
||||
|
||||
#include <QtCore/QDateTime>
|
||||
#include <QtCore/QTimeZone>
|
||||
|
||||
class tst_QAsn1Element : public QObject
|
||||
{
|
||||
@ -102,7 +105,7 @@ void tst_QAsn1Element::dateTime_data()
|
||||
<< QDateTime();
|
||||
QTest::newRow("UTCTime - 070417074026Z")
|
||||
<< QByteArray::fromHex("170d3037303431373037343032365a")
|
||||
<< QDateTime(QDate(2007, 4, 17), QTime(7, 40, 26), Qt::UTC);
|
||||
<< QDateTime(QDate(2007, 4, 17), QTime(7, 40, 26), QTimeZone::UTC);
|
||||
QTest::newRow("UTCTime - bad length")
|
||||
<< QByteArray::fromHex("170c30373034313730373430325a")
|
||||
<< QDateTime();
|
||||
@ -111,16 +114,16 @@ void tst_QAsn1Element::dateTime_data()
|
||||
<< QDateTime();
|
||||
QTest::newRow("UTCTime - year 1950")
|
||||
<< QByteArray::fromHex("170d3530313232343035353530305a")
|
||||
<< QDateTime(QDate(1950, 12, 24), QTime(5, 55), Qt::UTC);
|
||||
<< QDateTime(QDate(1950, 12, 24), QTime(5, 55), QTimeZone::UTC);
|
||||
QTest::newRow("UTCTime - year 1999")
|
||||
<< QByteArray::fromHex("170d3939313232343035353530305a")
|
||||
<< QDateTime(QDate(1999, 12, 24), QTime(5, 55), Qt::UTC);
|
||||
<< QDateTime(QDate(1999, 12, 24), QTime(5, 55), QTimeZone::UTC);
|
||||
QTest::newRow("UTCTime - year 2000")
|
||||
<< QByteArray::fromHex("170d3030313232343035353530305a")
|
||||
<< QDateTime(QDate(2000, 12, 24), QTime(5, 55), Qt::UTC);
|
||||
<< QDateTime(QDate(2000, 12, 24), QTime(5, 55), QTimeZone::UTC);
|
||||
QTest::newRow("UTCTime - year 2049")
|
||||
<< QByteArray::fromHex("170d3439313232343035353530305a")
|
||||
<< QDateTime(QDate(2049, 12, 24), QTime(5, 55), Qt::UTC);
|
||||
<< QDateTime(QDate(2049, 12, 24), QTime(5, 55), QTimeZone::UTC);
|
||||
QTest::newRow("UTCTime - invalid year ('-9')")
|
||||
<< QByteArray::fromHex("170d2d39313232343035353530305a")
|
||||
<< QDateTime();
|
||||
@ -138,7 +141,7 @@ void tst_QAsn1Element::dateTime_data()
|
||||
<< QDateTime();
|
||||
QTest::newRow("GeneralizedTime - 20510829095341Z")
|
||||
<< QByteArray::fromHex("180f32303531303832393039353334315a")
|
||||
<< QDateTime(QDate(2051, 8, 29), QTime(9, 53, 41), Qt::UTC);
|
||||
<< QDateTime(QDate(2051, 8, 29), QTime(9, 53, 41), QTimeZone::UTC);
|
||||
QTest::newRow("GeneralizedTime - bad length")
|
||||
<< QByteArray::fromHex("180e323035313038323930393533345a")
|
||||
<< QDateTime();
|
||||
|
@ -1,17 +1,19 @@
|
||||
// Copyright (C) 2016 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||
|
||||
|
||||
#include <QTest>
|
||||
|
||||
#include <QtNetwork/qtnetworkglobal.h>
|
||||
|
||||
#include <QtCore/qdatetime.h>
|
||||
#include <QtCore/qtimezone.h>
|
||||
#include <QtCore/qscopeguard.h>
|
||||
#include <QtCore/qset.h>
|
||||
|
||||
#include <qsslcertificate.h>
|
||||
#include <qsslkey.h>
|
||||
#include <qsslsocket.h>
|
||||
#include <qsslcertificateextension.h>
|
||||
#include <qscopeguard.h>
|
||||
|
||||
#ifndef QT_NO_OPENSSL
|
||||
#include <openssl/opensslv.h>
|
||||
@ -808,8 +810,10 @@ void tst_QSslCertificate::certInfo()
|
||||
QCOMPARE(cert.digest(QCryptographicHash::Sha1),
|
||||
QByteArray::fromHex("B6:D1:51:82:E0:29:CA:59:96:38:BD:B6:F9:40:05:91:6D:49:09:60"));
|
||||
|
||||
QCOMPARE(cert.effectiveDate().toUTC(), QDateTime(QDate(2007, 4, 17), QTime(7,40,26), Qt::UTC));
|
||||
QCOMPARE(cert.expiryDate().toUTC(), QDateTime(QDate(2007, 5, 17), QTime(7,40,26), Qt::UTC));
|
||||
QCOMPARE(cert.effectiveDate().toUTC(),
|
||||
QDateTime(QDate(2007, 4, 17), QTime(7,40,26), QTimeZone::UTC));
|
||||
QCOMPARE(cert.expiryDate().toUTC(),
|
||||
QDateTime(QDate(2007, 5, 17), QTime(7,40,26), QTimeZone::UTC));
|
||||
QVERIFY(cert.expiryDate() < QDateTime::currentDateTime()); // cert has expired
|
||||
|
||||
QSslCertificate copy = cert;
|
||||
@ -933,9 +937,11 @@ void tst_QSslCertificate::largeExpirationDate() // QTBUG-12489
|
||||
|
||||
const QSslCertificate &cert = certList.at(0);
|
||||
QVERIFY(!cert.isNull());
|
||||
QCOMPARE(cert.effectiveDate().toUTC(), QDateTime(QDate(2010, 8, 4), QTime(9, 53, 41), Qt::UTC));
|
||||
QCOMPARE(cert.effectiveDate().toUTC(),
|
||||
QDateTime(QDate(2010, 8, 4), QTime(9, 53, 41), QTimeZone::UTC));
|
||||
// if the date is larger than 2049, then the generalized time format is used
|
||||
QCOMPARE(cert.expiryDate().toUTC(), QDateTime(QDate(2051, 8, 29), QTime(9, 53, 41), Qt::UTC));
|
||||
QCOMPARE(cert.expiryDate().toUTC(),
|
||||
QDateTime(QDate(2051, 8, 29), QTime(9, 53, 41), QTimeZone::UTC));
|
||||
}
|
||||
|
||||
void tst_QSslCertificate::blacklistedCertificates()
|
||||
|
@ -4,6 +4,9 @@
|
||||
#include <QTest>
|
||||
#include <QtSql/QtSql>
|
||||
|
||||
#include <QtCore/QDateTime>
|
||||
#include <QtCore/QTimeZone>
|
||||
|
||||
#include <numeric>
|
||||
|
||||
#include "../qsqldatabase/tst_databases.h"
|
||||
@ -4730,10 +4733,10 @@ void tst_QSqlQuery::integralTypesMysql()
|
||||
|
||||
void tst_QSqlQuery::QTBUG_57138()
|
||||
{
|
||||
const QDateTime utc = QDateTime(QDate(2150, 1, 5), QTime(14, 0, 0, 123), Qt::UTC);
|
||||
const QDateTime localtime = QDateTime(QDate(2150, 1, 5), QTime(14, 0, 0, 123), Qt::LocalTime);
|
||||
const QDateTime tzoffset = QDateTime(QDate(2150, 1, 5), QTime(14, 0, 0, 123),
|
||||
Qt::OffsetFromUTC, 3600);
|
||||
const QDateTime utc(QDate(2150, 1, 5), QTime(14, 0, 0, 123), QTimeZone::UTC);
|
||||
const QDateTime localtime(QDate(2150, 1, 5), QTime(14, 0, 0, 123));
|
||||
const QDateTime tzoffset(QDate(2150, 1, 5), QTime(14, 0, 0, 123),
|
||||
QTimeZone::fromSecondsAheadOfUtc(3600));
|
||||
|
||||
QFETCH(QString, dbName);
|
||||
QSqlDatabase db = QSqlDatabase::database(dbName);
|
||||
|
@ -4,6 +4,7 @@
|
||||
|
||||
#include <QtCore/QCoreApplication>
|
||||
#include <QtCore/QDateTime>
|
||||
#include <QtCore/QTimeZone>
|
||||
#include <QTest>
|
||||
|
||||
/*!
|
||||
@ -21,8 +22,10 @@ private slots:
|
||||
|
||||
void tst_DateTime::dateTime() const
|
||||
{
|
||||
const QDateTime utc(QDate(2000, 5, 3), QTime(4, 3, 4), Qt::UTC);
|
||||
const QDateTime local(QDate(2000, 5, 3), QTime(4, 3, 4), Qt::OffsetFromUTC, 120 /* 2 minutes */);
|
||||
const auto twoMinutes = std::chrono::minutes{2};
|
||||
const QDateTime utc(QDate(2000, 5, 3), QTime(4, 3, 4), QTimeZone::UTC);
|
||||
const QDateTime local(QDate(2000, 5, 3), QTime(4, 3, 4),
|
||||
QTimeZone::fromDurationAheadOfUtc(twoMinutes));
|
||||
|
||||
QCOMPARE(local, utc);
|
||||
}
|
||||
|
@ -5,6 +5,7 @@
|
||||
|
||||
#include <QTest>
|
||||
#include <QTimeZone>
|
||||
#include <QDateTime>
|
||||
#include <QTimer>
|
||||
#include <QTestEventLoop>
|
||||
#include <QSignalSpy>
|
||||
@ -1592,12 +1593,12 @@ void tst_QItemDelegate::dateTextForRole_data()
|
||||
QDate date(2013, 12, 11);
|
||||
QTime time(10, 9, 8, 765);
|
||||
// Ensure we exercise every time-spec variant:
|
||||
QTest::newRow("local") << QDateTime(date, time, Qt::LocalTime);
|
||||
QTest::newRow("UTC") << QDateTime(date, time, Qt::UTC);
|
||||
#if QT_CONFIG(timezone)
|
||||
QTest::newRow("local") << QDateTime(date, time);
|
||||
QTest::newRow("UTC") << QDateTime(date, time, QTimeZone::UTC);
|
||||
# if QT_CONFIG(timezone)
|
||||
QTest::newRow("zone") << QDateTime(date, time, QTimeZone("Europe/Dublin"));
|
||||
#endif
|
||||
QTest::newRow("offset") << QDateTime(date, time, Qt::OffsetFromUTC, 36000);
|
||||
# endif
|
||||
QTest::newRow("offset") << QDateTime(date, time, QTimeZone::fromSecondsAheadOfUtc(36000));
|
||||
#endif
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user