File indexing completed on 2024-04-14 05:12:17
0001 /* 0002 SPDX-FileCopyrightText: 2006 Volker Krause <vkrause@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "contentindextest.h" 0008 0009 #include "kmime_content.h" 0010 #include "kmime_contentindex.h" 0011 0012 using namespace KMime; 0013 0014 #include <QTest> 0015 0016 QTEST_MAIN(ContentIndexTest) 0017 0018 void ContentIndexTest::testToString() 0019 { 0020 KMime::ContentIndex ci; 0021 QCOMPARE(ci.toString(), QString()); 0022 ci.push(1); 0023 QCOMPARE(ci.toString(), QLatin1StringView("1")); 0024 ci.push(2); 0025 QCOMPARE(ci.toString(), QLatin1StringView("2.1")); 0026 } 0027 0028 void ContentIndexTest::testFromString() 0029 { 0030 ContentIndex ci1; 0031 QVERIFY(!ci1.isValid()); 0032 0033 ContentIndex ci2(QStringLiteral("1.2.bla")); 0034 QVERIFY(!ci2.isValid()); 0035 0036 ContentIndex ci3(QStringLiteral("1")); 0037 QVERIFY(ci3.isValid()); 0038 QCOMPARE(ci3.pop(), 1u); 0039 QVERIFY(!ci3.isValid()); 0040 0041 ContentIndex ci4(QStringLiteral("3.2")); 0042 QVERIFY(ci4.isValid()); 0043 QCOMPARE(ci4.pop(), 3u); 0044 QCOMPARE(ci4.pop(), 2u); 0045 QVERIFY(!ci4.isValid()); 0046 } 0047 0048 void ContentIndexTest::testContent() 0049 { 0050 auto c1 = new Content(); 0051 QCOMPARE(c1->content(ContentIndex()), c1); 0052 QCOMPARE(c1->content(ContentIndex(u"1")), (Content *)nullptr); 0053 QCOMPARE(c1->indexForContent(c1), ContentIndex()); 0054 0055 auto c11 = new Content(); 0056 c1->appendContent(c11); 0057 QCOMPARE(c1->content(ContentIndex(u"1")), c11); 0058 QCOMPARE(c1->content(ContentIndex(u"3")), (Content *)nullptr); 0059 QCOMPARE(c1->content(ContentIndex(u"2.1")), (Content *)nullptr); 0060 QCOMPARE(c1->indexForContent(c1), ContentIndex()); 0061 QCOMPARE(c1->indexForContent(c11), ContentIndex(u"1")); 0062 QCOMPARE(c1->indexForContent(c1->contents().first()), ContentIndex(u"1")); 0063 0064 auto c12 = new Content(); 0065 c1->appendContent(c12); 0066 auto c121 = new Content(); 0067 c12->appendContent(c121); 0068 QCOMPARE(c1->content(ContentIndex(u"2")), c12); 0069 QCOMPARE(c1->content(ContentIndex(u"2.1")), c121); 0070 QCOMPARE(c1->indexForContent(c121), ContentIndex(u"2.1")); 0071 QCOMPARE(c121->index(), ContentIndex(u"2.1")); 0072 0073 QCOMPARE(c1->indexForContent((Content *)nullptr), ContentIndex()); 0074 delete c1; 0075 } 0076 0077 void ContentIndexTest::testNavigation() 0078 { 0079 ContentIndex ci; 0080 QCOMPARE(ci.toString(), QString()); 0081 ci.push(1); 0082 ci.push(2); 0083 ci.push(3); 0084 QCOMPARE(ci.toString(), QLatin1StringView("3.2.1")); 0085 QCOMPARE(ci.pop(), 3u); 0086 QCOMPARE(ci.up(), 1u); 0087 QCOMPARE(ci.toString(), QLatin1StringView("2")); 0088 } 0089 0090 0091 #include "moc_contentindextest.cpp"