File indexing completed on 2024-04-28 05:02:16

0001 // SPDX-FileCopyrightText: 2023 Joshua Goins <josh@redstrate.com>
0002 // SPDX-License-Identifier: LGPL-2.1-or-later
0003 
0004 #include <QtTest/QtTest>
0005 
0006 #include "account/accountmanager.h"
0007 #include "editor/posteditorbackend.h"
0008 #include "mockaccount.h"
0009 
0010 class PostEditorTest : public QObject
0011 {
0012     Q_OBJECT
0013 
0014 private Q_SLOTS:
0015     void initTestCase()
0016     {
0017         account = new MockAccount();
0018         AccountManager::instance().addAccount(account, false);
0019         AccountManager::instance().selectAccount(account);
0020     }
0021 
0022     void cleanupTestCase()
0023     {
0024         AccountManager::instance().removeAccount(account);
0025     }
0026 
0027     void loadDataTest()
0028     {
0029         PostEditorBackend backend;
0030         backend.setAccount(account);
0031 
0032         QCOMPARE(backend.account(), account);
0033         QCOMPARE(backend.charactersLeft(), 500);
0034 
0035         const QString status{QStringLiteral("Hello, world!")};
0036         backend.setStatus(status);
0037 
0038         QCOMPARE(backend.status(), status);
0039         QCOMPARE(backend.charactersLeft(), 487);
0040 
0041         const QString longStatus{QStringLiteral(
0042             "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Duis ultricies lacus "
0043             "sed turpis tincidunt. Vestibulum lectus mauris ultrices eros. Tristique senectus et netus et malesuada fames ac turpis. Fringilla ut morbi "
0044             "tincidunt augue interdum. Ullamcorper dignissim cras tincidunt lobortis feugiat vivamus at augue eget. Sociis natoque penatibus et magnis dis. Et "
0045             "odio pellentesque diam volutpat commodo. Ligula ullamcorper malesuada proin libero. Curabitur gravida arcu ac tortor dignissim.")};
0046         backend.setStatus(longStatus);
0047 
0048         QCOMPARE(backend.charactersLeft(), -57);
0049 
0050         const QString urlStatus{QStringLiteral("Lorem ipsum dolor sit amet, https://www.google.com/")};
0051         backend.setStatus(urlStatus);
0052 
0053         QCOMPARE(backend.charactersLeft(), 449);
0054 
0055         const QString twoUrlStatus{QStringLiteral("https://www.google.com/https://www.google.com/")};
0056         backend.setStatus(twoUrlStatus);
0057 
0058         QCOMPARE(backend.charactersLeft(), 477);
0059     }
0060 
0061 private:
0062     MockAccount *account = nullptr;
0063 };
0064 
0065 QTEST_MAIN(PostEditorTest)
0066 #include "posteditortest.moc"