diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -66,6 +66,8 @@ add_subdirectory(src) add_subdirectory(misc) +add_subdirectory(autotests) + if (KF5DocTools_FOUND) add_subdirectory(doc) endif() diff --git a/autotests/CMakeLists.txt b/autotests/CMakeLists.txt new file mode 100644 --- /dev/null +++ b/autotests/CMakeLists.txt @@ -0,0 +1,6 @@ +include(ECMAddTests) + +find_package(Qt5Test ${QT_MIN_VERSION} REQUIRED Test) +find_package(KF5CoreAddons ${KF5_DEP_VERSION} REQUIRED) + +add_subdirectory(core) diff --git a/autotests/core/CMakeLists.txt b/autotests/core/CMakeLists.txt new file mode 100644 --- /dev/null +++ b/autotests/core/CMakeLists.txt @@ -0,0 +1,11 @@ +SET(FILENAME_TEST_SRCS + testFileTree.cpp + ../../src/fileTree.cpp +) + +ecm_add_test( + ${FILENAME_TEST_SRCS} + TEST_NAME "filetree_test" + LINK_LIBRARIES Qt5::Test + KF5::CoreAddons +) diff --git a/autotests/core/dummy.txt b/autotests/core/dummy.txt new file mode 100644 --- /dev/null +++ b/autotests/core/dummy.txt @@ -0,0 +1 @@ + diff --git a/autotests/core/testFileTree.h b/autotests/core/testFileTree.h new file mode 100644 --- /dev/null +++ b/autotests/core/testFileTree.h @@ -0,0 +1,45 @@ +/*********************************************************************** +* Copyright 2020 Shubham +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License as +* published by the Free Software Foundation; either version 2 of +* the License or (at your option) version 3 or any later version +* accepted by the membership of KDE e.V. (or its successor approved +* by the membership of KDE e.V.), which shall act as a proxy +* defined in Section 14 of version 3 of the license. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +***********************************************************************/ + +#ifndef TESTFILETREE_H +#define TESTFILETREE_H + +#include "fileTree.h" + +#include + +class TestFileTree : public QObject +{ + Q_OBJECT + +public: + TestFileTree(); + ~TestFileTree(); + +private: + void testFileName(); + void testFileSize(); + void testFilePath(); + +private: + File *fl; +}; + +#endif diff --git a/autotests/core/testFileTree.cpp b/autotests/core/testFileTree.cpp new file mode 100644 --- /dev/null +++ b/autotests/core/testFileTree.cpp @@ -0,0 +1,52 @@ +/*********************************************************************** +* Copyright 2020 Shubham +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License as +* published by the Free Software Foundation; either version 2 of +* the License or (at your option) version 3 or any later version +* accepted by the membership of KDE e.V. (or its successor approved +* by the membership of KDE e.V.), which shall act as a proxy +* defined in Section 14 of version 3 of the license. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +***********************************************************************/ + +#include "testFileTree.h" + +TestFileTree::TestFileTree() +{ + fl = new File("./autotests/core/dummy.txt", 20); +} + +TestFileTree::~TestFileTree() +{ + delete fl; +} + +void TestFileTree::testFileName() +{ + const QString fname = fl->displayName(); + QCOMPARE(QStringLiteral("./autotests/core/dummy.txt"), fname); +} + +void TestFileTree::testFileSize() +{ + const quint64 fsize = fl->size(); + QVERIFY(fsize > 0); +} + +void TestFileTree::testFilePath() +{ + const Folder *folder = new Folder("./autotests/core/"); + const QString fpath = fl->displayPath(folder); + QVERIFY(!fpath.isEmpty()); +} + +QTEST_MAIN(TestFileTree)