123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294 |
- #include "test_utils.h"
- #include <QDebug>
- #include <QTemporaryDir>
- #include <QJsonArray>
- #include <utils/utils.h>
- #include <utils/pathutils.h>
- #include <utils/fileutils.h>
- using namespace tests;
- using namespace vnotex;
- TestUtils::TestUtils(QObject *p_parent)
- : QObject(p_parent)
- {
- }
- void TestUtils::initTestCase()
- {
- m_obj["a"] = "a";
- {
- QJsonObject objb;
- objb["a"] = "ba";
- objb["b"] = 2;
- {
- QJsonObject objbc;
- objbc["a"] = "bca";
- objb["c"] = objbc;
- }
- m_obj["b"] = objb;
- }
- {
- QJsonObject objc;
- objc["a"] = "ca";
- QJsonArray arr;
- arr.append("cb0");
- arr.append("cb1");
- arr.append("cb2");
- objc["b"] = arr;
- m_obj["c"] = objc;
- }
- }
- void TestUtils::testParseAndReadJson_data()
- {
- QTest::addColumn<QString>("exp");
- QTest::addColumn<QJsonValue>("result");
- QTest::newRow("empty") << "" << QJsonValue(m_obj);
- QTest::newRow("a") << "a" << QJsonValue("a");
- QTest::newRow("ba") << "b.a" << QJsonValue("ba");
- QTest::newRow("bb") << "b.b" << QJsonValue(2);
- QTest::newRow("bca") << "b.c.a" << QJsonValue("bca");
- QTest::newRow("ca") << "c.a" << QJsonValue("ca");
- QTest::newRow("cb0") << "c.b[0]" << QJsonValue("cb0");
- QTest::newRow("cb1") << "c.b[1]" << QJsonValue("cb1");
- QTest::newRow("cb2") << "c.b[2]" << QJsonValue("cb2");
- }
- void TestUtils::testParseAndReadJson()
- {
- QFETCH(QString, exp);
- QFETCH(QJsonValue, result);
- QCOMPARE(Utils::parseAndReadJson(m_obj, exp), result);
- }
- void TestUtils::testParentDirPath_data()
- {
- QTest::addColumn<QString>("path");
- QTest::addColumn<QString>("result");
- QTest::newRow("empty") << "" << "";
- #if defined(Q_OS_WIN)
- QTest::newRow("win_root") << "c:\\" << "C:/";
- QTest::newRow("win_normal") << "c:\\users\\tamlok" << "C:/users";
- QTest::newRow("win_slash") << "c:\\users\\tamlok\\" << "C:/users/tamlok";
- QTest::newRow("win_ext") << "c:\\users\\tamlok\\vnotex.md" << "C:/users/tamlok";
- QTest::newRow("win_case") << "c:\\users\\Tamlok\\Vnotex.md" << "C:/users/Tamlok";
- QTest::newRow("win_sep") << "c:/users/tamlok/vnotex.md" << "C:/users/tamlok";
- #else
- QTest::newRow("linux_root") << "/home" << "/";
- QTest::newRow("linux_normal") << "/home/tamlok" << "/home";
- QTest::newRow("linux_slash") << "/home/tamlok/" << "/home/tamlok";
- QTest::newRow("linux_ext") << "/home/tamlok/vnotex.md" << "/home/tamlok";
- QTest::newRow("linux_case") << "/home/Tamlok/vnotex.md" << "/home/Tamlok";
- #endif
- }
- void TestUtils::testParentDirPath()
- {
- QFETCH(QString, path);
- QFETCH(QString, result);
- QCOMPARE(PathUtils::parentDirPath(path), result);
- }
- void TestUtils::testCleanPath_data()
- {
- QTest::addColumn<QString>("path");
- QTest::addColumn<QString>("result");
- QTest::newRow("empty") << "" << "";
- #if defined(Q_OS_WIN)
- QTest::newRow("win_root") << "c:" << "c:";
- QTest::newRow("win_normal") << "c:\\users\\tamlok" << "c:/users/tamlok";
- QTest::newRow("win_slash") << "c:\\users\\tamlok\\" << "c:/users/tamlok";
- QTest::newRow("win_ext") << "C:\\users\\tamlok\\vnotex.md" << "C:/users/tamlok/vnotex.md";
- QTest::newRow("win_case") << "c:\\users\\Tamlok" << "c:/users/Tamlok";
- QTest::newRow("win_sep") << "c:/users/tamlok" << "c:/users/tamlok";
- #else
- QTest::newRow("linux_root") << "/home" << "/home";
- QTest::newRow("linux_normal") << "/home/tamlok" << "/home/tamlok";
- QTest::newRow("linux_slash") << "/home/tamlok/" << "/home/tamlok";
- QTest::newRow("linux_ext") << "/home/tamlok/vnotex.md" << "/home/tamlok/vnotex.md";
- QTest::newRow("linux_case") << "/home/Tamlok/vnotex.md" << "/home/Tamlok/vnotex.md";
- #endif
- }
- void TestUtils::testCleanPath()
- {
- QFETCH(QString, path);
- QFETCH(QString, result);
- QCOMPARE(PathUtils::cleanPath(path), result);
- }
- void TestUtils::testAreSamePaths_data()
- {
- QTest::addColumn<QString>("patha");
- QTest::addColumn<QString>("pathb");
- QTest::addColumn<bool>("result");
- QTest::newRow("empty") << "" << "" << true;
- #if defined(Q_OS_WIN)
- QTest::newRow("win_normal") << "c:\\users\\tamlok" << "c:\\users\\tamlok" << true;
- QTest::newRow("win_slash") << "c:\\users\\vnotex\\" << "c:/users/vnotex" << true;
- QTest::newRow("win_file") << "C:\\users\\tamlok\\vnotex.md" << "C:/users/tamlok/vnotex.md" << true;
- QTest::newRow("win_file_false") << "C:\\users\\tamlok\\vnote.md" << "C:/users/tamlok/vnotex.md" << false;
- QTest::newRow("win_case") << "c:\\users\\Tamlok" << "C:/users/tamlok" << true;
- #else
- QTest::newRow("linux_normal") << "/home/tamlok" << "/home/tamlok" << true;
- QTest::newRow("linux_slash") << "/home/tamlok/" << "/home/tamlok" << true;
- QTest::newRow("linux_file") << "/home/tamlok/vnotex.md" << "/home/tamlok/vnotex.md" << true;
- QTest::newRow("linux_file_false") << "/home/tamlok/vnote.md" << "/home/tamlok/vnotex.md" << false;
- QTest::newRow("linux_case") << "/home/Tamlok/vnotex.md" << "/home/tamlok/vnotex.md" << false;
- #endif
- }
- void TestUtils::testAreSamePaths()
- {
- QFETCH(QString, patha);
- QFETCH(QString, pathb);
- QFETCH(bool, result);
- QCOMPARE(PathUtils::areSamePaths(patha, pathb), result);
- }
- void TestUtils::testPathContains_data()
- {
- QTest::addColumn<QString>("patha");
- QTest::addColumn<QString>("pathb");
- QTest::addColumn<bool>("result");
- QTest::newRow("empty") << "" << "" << true;
- #if defined(Q_OS_WIN)
- QTest::newRow("win_same") << "c:\\users\\tamlok" << "c:\\users\\tamlok" << true;
- QTest::newRow("win_slash") << "c:\\users\\vnotex\\" << "c:\\users\\vnotex" << true;
- QTest::newRow("win_file") << "C:\\users\\tamlok" << "C:/users/tamlok/vnotex.md" << true;
- QTest::newRow("win_relative") << "C:\\users\\tamlok" << "tamlok/vnotex.md" << true;
- QTest::newRow("win_root") << "c:\\users\\Tamlok" << "D:/users/tamlok" << false;
- QTest::newRow("win_case") << "c:\\users\\Tamlok" << "c:/users/tamlok/abc" << true;
- QTest::newRow("win_parent") << "c:\\users\\Tamlok\\abc" << "c:/users/tamlok" << false;
- QTest::newRow("win_parents") << "c:\\users\\Tamlok\\abc\\def" << "c:/users/tamlok" << false;
- #else
- QTest::newRow("linux_same") << "/home/tamlok" << "/home/tamlok" << true;
- QTest::newRow("linux_slash") << "/home/tamlok/" << "/home/tamlok" << true;
- QTest::newRow("linux_file") << "/home/tamlok" << "/home/tamlok/vnotex.md" << true;
- QTest::newRow("linux_relative") << "/home/tamlok" << "tamlok/vnotex.md" << true;
- QTest::newRow("linux_root") << "/home/tamlok" << "/tamlok/vnotex.md" << false;
- QTest::newRow("linux_case") << "/home/Tamlok" << "/home/tamlok/vnotex.md" << false;
- QTest::newRow("linux_parent") << "/home/tamlok/abc" << "/home/tamlok" << false;
- QTest::newRow("linux_parents") << "/home/tamlok/abc/def" << "/home/tamlok" << false;
- #endif
- }
- void TestUtils::testPathContains()
- {
- QFETCH(QString, patha);
- QFETCH(QString, pathb);
- QFETCH(bool, result);
- QCOMPARE(PathUtils::pathContains(patha, pathb), result);
- }
- void TestUtils::testConcatenateFilePath_data()
- {
- QTest::addColumn<QString>("dirPath");
- QTest::addColumn<QString>("name");
- QTest::addColumn<QString>("result");
- QTest::newRow("emptyDir") << "" << "filea" << "filea";
- #if defined(Q_OS_WIN)
- QTest::newRow("win_absolute") << "c:\\users\\tamlok" << "filea" << "c:/users/tamlok/filea";
- QTest::newRow("win_slash") << "c:\\users\\vnotex\\" << "filea" << "c:/users/vnotex/filea";
- QTest::newRow("win_slash2") << "C:/users/tamlok///" << "filea" << "C:/users/tamlok/filea";
- QTest::newRow("win_relative") << "users\\tamlok" << "filea" << "users/tamlok/filea";
- QTest::newRow("win_path") << "c:\\users\\tamlok" << "folder/filea" << "c:/users/tamlok/folder/filea";
- #else
- QTest::newRow("linux_absolute") << "/home/tamlok" << "filea" << "/home/tamlok/filea";
- QTest::newRow("linux_slash") << "/home/tamlok///" << "filea" << "/home/tamlok/filea";
- QTest::newRow("linux_relative") << "home/tamlok" << "filea" << "home/tamlok/filea";
- QTest::newRow("linux_path") << "/home/tamloK" << "folder/filea" << "/home/tamloK/folder/filea";
- #endif
- }
- void TestUtils::testConcatenateFilePath()
- {
- QFETCH(QString, dirPath);
- QFETCH(QString, name);
- QFETCH(QString, result);
- QCOMPARE(PathUtils::concatenateFilePath(dirPath, name), result);
- }
- void TestUtils::testRenameFile()
- {
- QTemporaryDir dir;
- const QString testFolderPath(dir.path());
- // File.
- {
- QString fileAPath = testFolderPath + "/filea.md";
- QFile fileA(fileAPath);
- QVERIFY(fileA.open(QIODevice::WriteOnly | QIODevice::Text));
- fileA.write(QByteArray());
- fileA.close();
- QVERIFY(QFileInfo::exists(fileAPath));
- FileUtils::renameFile(fileAPath, "fileb.md");
- QString newFileAPath = testFolderPath + "/fileb.md";
- QVERIFY(QFileInfo::exists(newFileAPath));
- }
- // Folder.
- {
- QDir paDir(testFolderPath);
- QString dirAPath = testFolderPath + "/dira";
- QVERIFY(paDir.mkdir("dira"));
- FileUtils::renameFile(dirAPath, "dirb");
- QVERIFY(paDir.exists("dirb"));
- }
- }
- void TestUtils::testIsText()
- {
- QTemporaryDir dir;
- const QString testFolderPath(dir.path());
- {
- auto filePath = testFolderPath + "/text";
- QFile file(filePath);
- QVERIFY(file.open(QIODevice::WriteOnly | QIODevice::Text));
- file.write(QByteArray(5, 'v'));
- file.close();
- QVERIFY(QFileInfo::exists(filePath));
- QVERIFY(FileUtils::isText(filePath));
- }
- {
- auto filePath = testFolderPath + "/bin";
- QFile file(filePath);
- QVERIFY(file.open(QIODevice::WriteOnly));
- file.write(reinterpret_cast<const char *>(&file), sizeof(file));
- file.close();
- QVERIFY(QFileInfo::exists(filePath));
- QVERIFY(!FileUtils::isText(filePath));
- }
- }
- QTEST_MAIN(tests::TestUtils)
|