File indexing completed on 2024-05-12 05:52:03

0001 /*
0002     SPDX-FileCopyrightText: 2019 Christoph Cullmann <cullmann@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "session_test.h"
0008 #include "katesession.h"
0009 
0010 #include <KConfig>
0011 #include <KConfigGroup>
0012 
0013 #include <QFileInfo>
0014 #include <QTemporaryFile>
0015 #include <QtTestWidgets>
0016 
0017 QTEST_MAIN(KateSessionTest)
0018 
0019 void KateSessionTest::init()
0020 {
0021     m_tmpfile = new QTemporaryFile;
0022     QVERIFY(m_tmpfile->open());
0023 }
0024 
0025 void KateSessionTest::cleanup()
0026 {
0027     delete m_tmpfile;
0028 }
0029 
0030 void KateSessionTest::create()
0031 {
0032     const QString name = QStringLiteral("session name");
0033     KateSession::Ptr s = KateSession::create(m_tmpfile->fileName(), name);
0034     QCOMPARE(s->name(), name);
0035     QCOMPARE((int)s->documents(), 0);
0036     QCOMPARE(s->isAnonymous(), false);
0037     QCOMPARE(s->config()->name(), m_tmpfile->fileName());
0038 }
0039 
0040 void KateSessionTest::createAnonymous()
0041 {
0042     KateSession::Ptr s = KateSession::createAnonymous(m_tmpfile->fileName());
0043     QCOMPARE(s->name(), QString());
0044     QCOMPARE((int)s->documents(), 0);
0045     QCOMPARE(s->isAnonymous(), true);
0046     QCOMPARE(s->config()->name(), m_tmpfile->fileName());
0047 }
0048 
0049 void KateSessionTest::createAnonymousFrom()
0050 {
0051     // Regular
0052     KateSession::Ptr s = KateSession::create(m_tmpfile->fileName(), QStringLiteral("session name"));
0053 
0054     const QString groupName = QStringLiteral("test group");
0055     QTemporaryFile newFile;
0056     newFile.open();
0057     KateSession::Ptr ns;
0058 
0059     s->config()->group(groupName).writeEntry("foo", "bar");
0060 
0061     // Create Anon from Other
0062     ns = KateSession::createAnonymousFrom(s, newFile.fileName());
0063     QCOMPARE(ns->name(), QString());
0064     QCOMPARE((int)ns->documents(), 0);
0065     QCOMPARE(ns->isAnonymous(), true);
0066     QCOMPARE(ns->config()->name(), newFile.fileName());
0067     QCOMPARE(ns->config()->group(groupName).readEntry("foo"), QLatin1String("bar"));
0068 }
0069 
0070 void KateSessionTest::createFrom()
0071 {
0072     KateSession::Ptr s = KateSession::create(m_tmpfile->fileName(), QStringLiteral("session name"));
0073 
0074     const QString newName = QStringLiteral("new session name");
0075     const QString groupName = QStringLiteral("test group");
0076 
0077     QTemporaryFile newFile;
0078     newFile.open();
0079     KateSession::Ptr ns;
0080 
0081     s->config()->group(groupName).writeEntry("foo", "bar");
0082 
0083     ns = KateSession::createFrom(s, newFile.fileName(), newName);
0084     QCOMPARE(ns->name(), newName);
0085     QCOMPARE((int)ns->documents(), 0);
0086     QCOMPARE(ns->isAnonymous(), false);
0087     QCOMPARE(ns->config()->name(), newFile.fileName());
0088     QCOMPARE(ns->config()->group(groupName).readEntry("foo"), QLatin1String("bar"));
0089 }
0090 
0091 void KateSessionTest::setFile()
0092 {
0093     KateSession::Ptr s = KateSession::create(m_tmpfile->fileName(), QStringLiteral("session name"));
0094     s->config()->group(QStringLiteral("test")).writeEntry("foo", "bar");
0095 
0096     QTemporaryFile file2;
0097     file2.open();
0098 
0099     s->setFile(file2.fileName());
0100     QCOMPARE(s->config()->name(), file2.fileName());
0101     QCOMPARE(s->config()->group(QStringLiteral("test")).readEntry("foo"), QLatin1String("bar"));
0102 }
0103 
0104 void KateSessionTest::timestamp()
0105 {
0106     QFileInfo i(m_tmpfile->fileName());
0107     KateSession::Ptr s = KateSession::create(m_tmpfile->fileName(), QStringLiteral("session name"));
0108 
0109     QCOMPARE(s->timestamp(), i.lastModified());
0110 }
0111 
0112 void KateSessionTest::setName()
0113 {
0114     KateSession::Ptr s = KateSession::create(m_tmpfile->fileName(), QStringLiteral("session name"));
0115     const QString newName = QStringLiteral("bar");
0116     s->setName(newName);
0117     QCOMPARE(s->name(), newName);
0118     QCOMPARE(s->file(), m_tmpfile->fileName()); // on purpose, orthogonal
0119 }
0120 
0121 #include "moc_session_test.cpp"