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"