File indexing completed on 2024-05-12 03:59:57

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 
0059     QMap<QString, QMap<QString, QString>> q;
0060     q = wallet->mapList(&success);
0061     _out << "mapList returned: " << success << '\n';
0062     _out << "mapList returned " << q.keys().count() << " entries\n";
0063 
0064     QMap<QString, QByteArray> s;
0065     s = wallet->entriesList(&success);
0066     _out << "entryList returned: " << success << '\n';
0067     _out << "entryList returned " << s.keys().count() << " entries\n";
0068 
0069     _out.flush();
0070 
0071     delete wallet;
0072 }
0073 
0074 void WalletReceiver::walletOpened(bool got)
0075 {
0076     _out << "Got async wallet: " << got << '\n';
0077     _out.flush();
0078     qApp->exit(1);
0079 }
0080 
0081 QTEST_GUILESS_MAIN(KWalletBothTest)
0082 
0083 #include "moc_kwalletboth.cpp"