File indexing completed on 2024-04-28 03:48:24
0001 /* 0002 * SPDX-FileCopyrightText: 2014-2014 Andreas Xavier <andxav at zoho dot com> 0003 * SPDX-License-Identifier: GPL-2.0-or-later 0004 */ 0005 0006 #include "dummyreader.h" 0007 #include "keduvocdocument.h" 0008 0009 #include <KTemporaryFile> 0010 0011 #include <qtest_kde.h> 0012 0013 /** Unit tests to exercise each exit path of the KEdeVocDocment open() API.*/ 0014 class OpenAPITest : public QObject 0015 { 0016 Q_OBJECT 0017 0018 private slots: 0019 /** File Does not exist*/ 0020 void fileDoesntExistTest(); 0021 /** File is Unreadable failure*/ 0022 void unreadableFileTest(); 0023 /** File is locked failure*/ 0024 void lockedFileFailureTest(); 0025 /** File is unknown format*/ 0026 void unknownFormatTest(); 0027 /** FileReader error File*/ 0028 void fileReaderFailedTest(); 0029 /** Good Read*/ 0030 void goodTest(); 0031 0032 private: 0033 /** Class to manage creation/destruction of a temp doc*/ 0034 class TestDoc : public KTemporaryFile 0035 { 0036 public: 0037 /** Create the file, fix the suffix and instantiate it.*/ 0038 explicit TestDoc(KEduVocDocument::ErrorCode err = KEduVocDocument::NoError) 0039 { 0040 this->open(QFile::WriteOnly); 0041 QTextStream out(this); 0042 out << DummyReader::makeDummyString(err); 0043 this->close(); 0044 } 0045 /** Destructor*/ 0046 ~TestDoc() 0047 { 0048 } 0049 }; 0050 }; 0051 0052 void OpenAPITest::fileDoesntExistTest() 0053 { 0054 KTemporaryFile tempfile; 0055 KEduVocDocument doc; 0056 0057 KEduVocDocument::ErrorCode errcode(doc.open(tempfile.fileName(), KEduVocDocument::FileDefaultHandling)); 0058 QCOMPARE(int(errcode), int(KEduVocDocument::FileDoesNotExist)); 0059 } 0060 0061 void OpenAPITest::unreadableFileTest() 0062 { 0063 TestDoc tempfile; 0064 QFile::setPermissions(tempfile.fileName(), ~QFile::Permissions(QFile::ReadOwner | QFile::ReadUser | QFile::ReadGroup | QFile::ReadOther)); 0065 0066 KEduVocDocument doc; 0067 KEduVocDocument::ErrorCode errcode(doc.open(tempfile.fileName(), KEduVocDocument::FileDefaultHandling)); 0068 0069 QCOMPARE(int(errcode), int(KEduVocDocument::FileDoesNotExist)); 0070 } 0071 0072 void OpenAPITest::lockedFileFailureTest() 0073 { 0074 TestDoc tempfile; 0075 0076 KEduVocDocument doc; 0077 QCOMPARE(doc.open(tempfile.fileName(), KEduVocDocument::FileDefaultHandling), KEduVocDocument::NoError); 0078 QCOMPARE(doc.open(tempfile.fileName(), KEduVocDocument::FileDefaultHandling), KEduVocDocument::NoError); 0079 KEduVocDocument doc2; 0080 QCOMPARE(doc2.open(tempfile.fileName(), KEduVocDocument::FileDefaultHandling), KEduVocDocument::FileLocked); 0081 0082 KEduVocDocument doc3; 0083 QCOMPARE(doc3.open(tempfile.fileName(), KEduVocDocument::FileIgnoreLock), KEduVocDocument::NoError); 0084 0085 doc.close(); 0086 QCOMPARE(doc2.open(tempfile.fileName(), KEduVocDocument::FileDefaultHandling), KEduVocDocument::NoError); 0087 } 0088 0089 void OpenAPITest::unknownFormatTest() 0090 { 0091 TestDoc tempfile(KEduVocDocument::FileTypeUnknown); 0092 KEduVocDocument doc; 0093 QCOMPARE(doc.open(tempfile.fileName()), int(KEduVocDocument::FileTypeUnknown)); 0094 } 0095 0096 void OpenAPITest::fileReaderFailedTest() 0097 { 0098 TestDoc tempfile(KEduVocDocument::FileReaderFailed); 0099 KEduVocDocument doc; 0100 QCOMPARE(doc.open(tempfile.fileName()), int(KEduVocDocument::FileReaderFailed)); 0101 } 0102 0103 void OpenAPITest::goodTest() 0104 { 0105 TestDoc tempfile(KEduVocDocument::NoError); 0106 KEduVocDocument doc; 0107 QCOMPARE(doc.open(tempfile.fileName()), int(KEduVocDocument::NoError)); 0108 } 0109 0110 QTEST_MAIN(OpenAPITest, GUI) 0111 0112 #include "openapitest.moc"