File indexing completed on 2024-05-12 15:47:07

0001 #include "kwalletboth.h"
0002 
0003 #include <QApplication>
0004 #include <QMap>
0005 #include <QTest>
0006 #include <QTextStream>
0007 #include <QTimer>
0008 
0009 #include <KAboutData>
0010 #include <QDBusConnection>
0011 #include <QDBusConnectionInterface>
0012 #include <kwallet.h>
0013 
0014 #include "kwallettest.h"
0015 
0016 static QTextStream _out(stdout, QIODevice::WriteOnly);
0017 
0018 void KWalletBothTest::init()
0019 {
0020     if (!qEnvironmentVariableIsSet("DISPLAY")) {
0021         QSKIP("$DISPLAY is not set. These tests cannot be done without a graphical system.");
0022     }
0023 }
0024 
0025 void KWalletBothTest::openWallet()
0026 {
0027     _out << "About to ask for wallet async\n";
0028 
0029     // we have no wallet: ask for one.
0030     KWallet::Wallet *wallet = KWallet::Wallet::openWallet(KWallet::Wallet::NetworkWallet(), 0, KWallet::Wallet::Asynchronous);
0031     QVERIFY(wallet != nullptr);
0032 
0033     WalletReceiver r;
0034     connect(wallet, &KWallet::Wallet::walletOpened, &r, &WalletReceiver::walletOpened);
0035 
0036     _out << "About to ask for wallet sync\n";
0037 
0038     wallet = KWallet::Wallet::openWallet(KWallet::Wallet::NetworkWallet(), 0, KWallet::Wallet::Synchronous);
0039     QVERIFY(wallet != nullptr);
0040 
0041     _out << "Got sync wallet: " << (wallet != nullptr) << '\n';
0042     _out << "About to start 30 second event loop\n";
0043 
0044     QTimer::singleShot(30000, qApp, SLOT(quit()));
0045     int ret = qApp->exec();
0046 
0047     if (ret == 0) {
0048         _out << "Timed out!\n";
0049     } else {
0050         _out << "Success!\n";
0051     }
0052 
0053     bool success = false;
0054     QMap<QString, QString> p;
0055     p = wallet->passwordList(&success);
0056     _out << "passwordList returned: " << success << '\n';
0057     _out << "passwordList returned " << p.keys().count() << " entries\n";
0058 #if KWALLET_BUILD_DEPRECATED_SINCE(5, 72)
0059     p = {};
0060     ret = wallet->readPasswordList(QStringLiteral("*"), p);
0061     _out << "readPasswordList returned: " << ret << '\n';
0062     _out << "readPasswordList returned " << p.keys().count() << " entries\n";
0063 #endif
0064 
0065     QMap<QString, QMap<QString, QString>> q;
0066     q = wallet->mapList(&success);
0067     _out << "mapList returned: " << success << '\n';
0068     _out << "mapList returned " << q.keys().count() << " entries\n";
0069 #if KWALLET_BUILD_DEPRECATED_SINCE(5, 72)
0070     q = {};
0071     ret = wallet->readMapList(QStringLiteral("*"), q);
0072     _out << "readMapList returned: " << ret << '\n';
0073     _out << "readMapList returned " << q.keys().count() << " entries\n";
0074 
0075 #endif
0076 
0077     QMap<QString, QByteArray> s;
0078     s = wallet->entriesList(&success);
0079     _out << "entryList returned: " << success << '\n';
0080     _out << "entryList returned " << s.keys().count() << " entries\n";
0081 #if KWALLET_BUILD_DEPRECATED_SINCE(5, 72)
0082     s = {};
0083     ret = wallet->readEntryList(QStringLiteral("*"), s);
0084     _out << "readEntryList returned: " << ret << '\n';
0085     _out << "readEntryList returned " << s.keys().count() << " entries\n";
0086 #endif
0087 
0088     _out.flush();
0089 
0090     delete wallet;
0091 }
0092 
0093 void WalletReceiver::walletOpened(bool got)
0094 {
0095     _out << "Got async wallet: " << got << '\n';
0096     _out.flush();
0097     qApp->exit(1);
0098 }
0099 
0100 QTEST_GUILESS_MAIN(KWalletBothTest)
0101 
0102 #include "moc_kwalletboth.cpp"