File indexing completed on 2024-12-01 04:35:24

0001 /*
0002    SPDX-FileCopyrightText: 2018-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "filetest.h"
0008 #include "attachments/file.h"
0009 #include "ruqola_autotest_helper.h"
0010 
0011 QTEST_GUILESS_MAIN(FileTest)
0012 
0013 FileTest::FileTest(QObject *parent)
0014     : QObject(parent)
0015 {
0016 }
0017 
0018 void FileTest::shouldHaveDefaultValue()
0019 {
0020     File f;
0021     QVERIFY(f.fileName().isEmpty());
0022     QVERIFY(f.description().isEmpty());
0023     QVERIFY(f.userId().isEmpty());
0024     QVERIFY(f.url().isEmpty());
0025     QVERIFY(f.mimeType().isEmpty());
0026     QVERIFY(f.fileId().isEmpty());
0027     QVERIFY(f.rid().isEmpty());
0028     QVERIFY(f.uploadedDateTimeStr().isEmpty());
0029     QCOMPARE(f.uploadedAt(), -1);
0030     QCOMPARE(f.complete(), false);
0031     QVERIFY(f.typeGroup().isEmpty());
0032 }
0033 
0034 void FileTest::shouldAssignValue()
0035 {
0036     File f;
0037     const QString url = QStringLiteral("foo");
0038     const QString name = QStringLiteral("bla");
0039     const QString description = QStringLiteral("des");
0040     const QString userId = QStringLiteral("ble");
0041     const QString mimetype = QStringLiteral("ble1");
0042     const qint64 timeUploaded = 55;
0043     const QString fileId = QStringLiteral("blabla");
0044     const QString rId = QStringLiteral("blabla22");
0045     bool complete = false;
0046     f.setUrl(url);
0047     f.setFileName(name);
0048     f.setDescription(description);
0049     f.setUserId(userId);
0050     f.setMimeType(mimetype);
0051     f.setUploadedAt(timeUploaded);
0052     f.setFileId(fileId);
0053     f.setRid(rId);
0054     f.setComplete(complete);
0055 
0056     QCOMPARE(f.url(), url);
0057     QCOMPARE(f.fileName(), name);
0058     QCOMPARE(f.description(), description);
0059     QCOMPARE(f.userId(), userId);
0060     QCOMPARE(f.mimeType(), mimetype);
0061     QCOMPARE(f.uploadedAt(), timeUploaded);
0062     QCOMPARE(f.fileId(), fileId);
0063     QCOMPARE(f.rid(), rId);
0064     QCOMPARE(f.complete(), complete);
0065 
0066     complete = true;
0067     f.setComplete(complete);
0068     QCOMPARE(f.complete(), complete);
0069 }
0070 
0071 void FileTest::shouldCopyValue()
0072 {
0073     File f;
0074     const QString url = QStringLiteral("foo");
0075     const QString name = QStringLiteral("bla");
0076     const QString description = QStringLiteral("des");
0077     const QString userId = QStringLiteral("ble");
0078     const QString mimetype = QStringLiteral("ble1");
0079     const QString fileId = QStringLiteral("blabla");
0080     const QString rId = QStringLiteral("blabla22");
0081     const qint64 timeUploaded = 55;
0082     bool complete = true;
0083     f.setComplete(complete);
0084     f.setUrl(url);
0085     f.setFileName(name);
0086     f.setDescription(description);
0087     f.setUserId(userId);
0088     f.setMimeType(mimetype);
0089     f.setUploadedAt(timeUploaded);
0090     f.setFileId(fileId);
0091     f.setRid(rId);
0092 
0093     File f2 = f;
0094     QCOMPARE(f2, f);
0095 }
0096 
0097 void FileTest::shouldParseFile_data()
0098 {
0099     QTest::addColumn<QString>("fileName");
0100     QTest::addColumn<File>("expectedFile");
0101     QTest::addColumn<bool>("usingRestApi");
0102     {
0103         File expected;
0104         expected.setFileName(QStringLiteral("191135.jpg"));
0105         expected.setUrl(QStringLiteral("/ufs/FileSystem:Uploads/ybWLKB4FpCkzQXsa/191135.jpg"));
0106         expected.setUserId(QStringLiteral("aX7va58FuNuq4bcti"));
0107         expected.setDescription(QString());
0108         expected.setMimeType(QStringLiteral("image/jpeg"));
0109         expected.setUploadedAt(1507828418338);
0110         expected.setFileId(QStringLiteral("ybWLKB4FepCkzQXsa"));
0111         expected.setRid(QStringLiteral("GENERAL"));
0112         QTest::newRow("roomfile1") << QStringLiteral("roomfile1") << expected << false;
0113     }
0114     {
0115         // RestAPI
0116         File expected;
0117         expected.setFileName(QStringLiteral("Clipboard - February 7, 2018 8:59 AM"));
0118         expected.setUrl(QStringLiteral("/ufs/FileSystem:Uploads/AoqRSa6GMt3wXCeSo/Clipboard%20-%20February%207,%202018%208:59%20AM"));
0119         expected.setUserId(QStringLiteral("vEETYfDxakqpM88Zt"));
0120         expected.setDescription(QString());
0121         expected.setMimeType(QStringLiteral("image/png"));
0122         expected.setUploadedAt(1517990371911);
0123         expected.setFileId(QStringLiteral("AoqRSa6GMt3wXCeSo"));
0124         expected.setRid(QStringLiteral("GENERAL"));
0125         expected.setUserName(QStringLiteral("bli"));
0126         expected.setComplete(true);
0127         QTest::newRow("roomfile1-restapi") << QStringLiteral("roomfile1") << expected << true;
0128     }
0129 }
0130 
0131 void FileTest::shouldParseFile()
0132 {
0133     QFETCH(QString, fileName);
0134     QFETCH(File, expectedFile);
0135     QFETCH(bool, usingRestApi);
0136     QString originalJsonFile;
0137     if (usingRestApi) {
0138         originalJsonFile = QLatin1String(RUQOLA_DATA_DIR) + QLatin1String("/json/restapi/") + fileName + QLatin1String(".json");
0139     } else {
0140         originalJsonFile = QLatin1String(RUQOLA_DATA_DIR) + QLatin1String("/json/") + fileName + QLatin1String(".json");
0141     }
0142     const QJsonObject fields = AutoTestHelper::loadJsonObject(originalJsonFile);
0143 
0144     File newFile;
0145     newFile.parseFile(fields, usingRestApi);
0146     const bool equal = (newFile == expectedFile);
0147     if (!equal) {
0148         qDebug() << " current value " << newFile;
0149         qDebug() << " expected value " << expectedFile;
0150     }
0151     QVERIFY(equal);
0152 }
0153 
0154 #include "moc_filetest.cpp"