1 /*
2    This software is in the public domain, furnished "as is", without technical
3    support, and with no warranty, express or implied, as to its usefulness for
4    any purpose.
5 */
6 
7 #include <QtTest>
8 
9 #include "libsync/cookiejar.h"
10 
11 using namespace OCC;
12 
13 class TestCookies : public QObject
14 {
15     Q_OBJECT
16 
17 private slots:
testCookies()18     void testCookies()
19     {
20         QTemporaryDir tmp;
21         const QString nonexistingPath = tmp.filePath("someNonexistingDir/test.db");
22         QNetworkCookie cookieA = QNetworkCookie("foo", "bar");
23         // tomorrow rounded
24         cookieA.setExpirationDate(QDateTime::currentDateTimeUtc().addDays(1).date().startOfDay());
25         const QList<QNetworkCookie> cookies = {cookieA, QNetworkCookie("foo2", "bar")};
26         CookieJar jar;
27         jar.setAllCookies(cookies);
28         QCOMPARE(cookies, jar.allCookies());
29         QVERIFY(jar.save(tmp.filePath("test.db")));
30         // ensure we are able to create a cookie jar in a non exisitning folder (mkdir)
31         QVERIFY(jar.save(nonexistingPath));
32 
33         CookieJar jar2;
34         QVERIFY(jar2.restore(nonexistingPath));
35         // here we should have  only cookieA as the second one was a session cookie
36         QCOMPARE(QList<QNetworkCookie>{cookieA}, jar2.allCookies());
37 
38     }
39 
40 };
41 
42 QTEST_APPLESS_MAIN(TestCookies)
43 #include "testcookies.moc"
44