]> dgit.raspbian.org Git - nextcloud-desktop.git/commitdiff
Add a test for the various ways of setting a date on datefieldbackend
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Tue, 12 Sep 2023 16:59:57 +0000 (00:59 +0800)
committerbackportbot-nextcloud[bot] <backportbot-nextcloud[bot]@users.noreply.github.com>
Wed, 13 Sep 2023 08:47:54 +0000 (08:47 +0000)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
test/testdatefieldbackend.cpp

index 776c61e1032da8dabc903f35da23f5c45fb7a527..c80aa3a2db2e472a92cfb6d9fcfb67570530df80 100644 (file)
@@ -23,11 +23,12 @@ class TestDateFieldBackend : public QObject
 {
     Q_OBJECT
 
+private:
+    static constexpr auto dateStringFormat = "dd/MM/yyyy";
+
 private slots:
     void testDefaultBehaviour()
     {
-        constexpr auto dateStringFormat = "dd/MM/yyyy";
-
         Quick::DateFieldBackend backend;
         backend._dateFormat = dateStringFormat;
 
@@ -101,6 +102,50 @@ private slots:
         QVERIFY(!backend.validDate());
         QCOMPARE(validDateChangedSpy.count(), 8);
     }
+
+    void testDateSettingMethods()
+    {
+        Quick::DateFieldBackend backend;
+        backend._dateFormat = dateStringFormat;
+
+        QSignalSpy dateChangedSpy(&backend, &Quick::DateFieldBackend::dateChanged);
+        QSignalSpy dateMsecsChangedSpy(&backend, &Quick::DateFieldBackend::dateMsecsChanged);
+        QSignalSpy dateStringChangedSpy(&backend, &Quick::DateFieldBackend::dateStringChanged);
+
+        const auto testDate = QDate::currentDate().addDays(800);
+        const auto testDateMsecs = testDate.startOfDay(Qt::UTC).toMSecsSinceEpoch();
+        const auto testDateString = testDate.toString(dateStringFormat);
+
+        backend.setDate(testDate);
+        QCOMPARE(backend.date(), testDate);
+        QCOMPARE(dateChangedSpy.count(), 1);
+        QCOMPARE(dateMsecsChangedSpy.count(), 1);
+        QCOMPARE(dateStringChangedSpy.count(), 1);
+
+        backend.setDate({});
+        QVERIFY(backend.date() != testDate);
+        QCOMPARE(dateChangedSpy.count(), 2);
+        QCOMPARE(dateMsecsChangedSpy.count(), 2);
+        QCOMPARE(dateStringChangedSpy.count(), 2);
+
+        backend.setDateMsecs(testDateMsecs);
+        QCOMPARE(backend.date(), testDate);
+        QCOMPARE(dateChangedSpy.count(), 3);
+        QCOMPARE(dateMsecsChangedSpy.count(), 3);
+        QCOMPARE(dateStringChangedSpy.count(), 3);
+
+        backend.setDate({});
+        QVERIFY(backend.date() != testDate);
+        QCOMPARE(dateChangedSpy.count(), 4);
+        QCOMPARE(dateMsecsChangedSpy.count(), 4);
+        QCOMPARE(dateStringChangedSpy.count(), 4);
+
+        backend.setDateString(testDateString);
+        QCOMPARE(backend.date(), testDate);
+        QCOMPARE(dateChangedSpy.count(), 5);
+        QCOMPARE(dateMsecsChangedSpy.count(), 5);
+        QCOMPARE(dateStringChangedSpy.count(), 5);
+    }
 };
 
 QTEST_MAIN(TestDateFieldBackend)