File indexing completed on 2024-05-05 05:17:16
0001 // SPDX-FileCopyrightText: 2023 Claudio Cambra <claudio.cambra@kde.org> 0002 // SPDX-License-Identifier: LGPL-2.0-or-later 0003 0004 #include "identitymodeltest.h" 0005 0006 #include <QStandardPaths> 0007 #include <QTest> 0008 0009 #include <KIdentityManagementCore/Identity> 0010 #include <KIdentityManagementCore/IdentityModel> 0011 0012 using namespace KIdentityManagementCore; 0013 0014 namespace 0015 { 0016 const auto i1Name = QStringLiteral("Test1"); 0017 const auto i1Email = QStringLiteral("firstname.lastname@example.com"); 0018 0019 void cleanupIdentities(std::unique_ptr<IdentityManager> &manager) 0020 { 0021 QVERIFY(manager); 0022 // It is picking up identities from older tests sometimes, so cleanup 0023 // Note this will always leave at least one identity -- remove later 0024 while (manager->identities().count() > 1) { 0025 QVERIFY(manager->removeIdentity(manager->identities().at(0))); 0026 manager->commit(); 0027 } 0028 } 0029 } 0030 0031 QTEST_GUILESS_MAIN(IdentityModelTester) 0032 0033 void IdentityModelTester::initTestCase() 0034 { 0035 QStandardPaths::setTestModeEnabled(true); 0036 manager = std::make_unique<IdentityManager>(); 0037 0038 cleanupIdentities(manager); 0039 QCOMPARE(manager->identities().count(), 1); // Can't remove all identities 0040 0041 { 0042 auto &i1 = manager->newFromScratch(i1Name); 0043 i1.setPrimaryEmailAddress(i1Email); 0044 i1.setEmailAliases(QStringList{QStringLiteral("firstname@example.com"), QStringLiteral("lastname@example.com")}); 0045 } 0046 0047 { 0048 auto &i2 = manager->newFromScratch(QStringLiteral("Test2")); 0049 i2.setPrimaryEmailAddress(QStringLiteral("test@test.de")); 0050 } 0051 0052 // Remove the first identity, which we couldn't remove above 0053 QVERIFY(manager->removeIdentity(manager->identities().at(0))); 0054 0055 manager->commit(); 0056 QCOMPARE(manager->identities().count(), 2); 0057 } 0058 0059 void IdentityModelTester::testModelCount() 0060 { 0061 IdentityModel model; 0062 QCOMPARE(model.rowCount(), 2); 0063 } 0064 0065 void IdentityModelTester::testModelData() 0066 { 0067 IdentityModel model; 0068 const auto &i1 = IdentityManager::self()->modifyIdentityForName(i1Name); 0069 const auto i1Index = model.index(0, 0); 0070 QCOMPARE(i1Index.data(IdentityModel::IdentityNameRole), i1Name); 0071 QCOMPARE(i1Index.data(IdentityModel::EmailRole), i1Email); 0072 QCOMPARE(i1Index.data(IdentityModel::UoidRole).toUInt(), i1.uoid()); 0073 } 0074 0075 void IdentityModelTester::testEmailFromUoid() 0076 { 0077 IdentityModel model; 0078 const auto &i1 = IdentityManager::self()->modifyIdentityForName(i1Name); 0079 QCOMPARE(model.email(i1.uoid()), i1Email); 0080 } 0081 0082 #include "moc_identitymodeltest.cpp"