Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/keepassxreboot/keepassxc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'tests/gui/TestGuiFdoSecrets.h')
-rw-r--r--tests/gui/TestGuiFdoSecrets.h121
1 files changed, 121 insertions, 0 deletions
diff --git a/tests/gui/TestGuiFdoSecrets.h b/tests/gui/TestGuiFdoSecrets.h
new file mode 100644
index 000000000..8a961eb8e
--- /dev/null
+++ b/tests/gui/TestGuiFdoSecrets.h
@@ -0,0 +1,121 @@
+/*
+ * Copyright (C) 2019 Aetf <aetf@unlimitedcodeworks.xyz>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 or (at your option)
+ * version 3 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef KEEPASSXC_TESTGUIFDOSECRETS_H
+#define KEEPASSXC_TESTGUIFDOSECRETS_H
+
+#include <QByteArray>
+#include <QObject>
+#include <QPointer>
+#include <QScopedPointer>
+#include <QSharedPointer>
+#include <QString>
+
+#include "fdosecrets/GcryptMPI.h"
+#include "fdosecrets/objects/DBusTypes.h"
+
+class MainWindow;
+class Database;
+class DatabaseTabWidget;
+class DatabaseWidget;
+class TemporaryFile;
+class FdoSecretsPlugin;
+namespace FdoSecrets
+{
+ class Service;
+ class Session;
+ class Collection;
+ class Item;
+ class Prompt;
+ class DhIetf1024Sha256Aes128CbcPkcs7;
+} // namespace FdoSecrets
+
+class QAbstractItemView;
+
+class TestGuiFdoSecrets : public QObject
+{
+ Q_OBJECT
+
+public:
+ ~TestGuiFdoSecrets() override;
+
+private slots:
+ void initTestCase();
+ void init();
+ void cleanup();
+ void cleanupTestCase();
+
+ void testDBusSpec();
+
+ void testServiceEnable();
+ void testServiceEnableNoExposedDatabase();
+ void testServiceSearch();
+ void testServiceUnlock();
+ void testServiceLock();
+
+ void testSessionOpen();
+ void testSessionClose();
+
+ void testCollectionCreate();
+ void testCollectionDelete();
+
+ void testItemCreate();
+ void testItemReplace();
+ void testItemSecret();
+ void testItemDelete();
+
+ void testAlias();
+ void testDefaultAliasAlwaysPresent();
+
+ void testExposeSubgroup();
+ void testModifiyingExposedGroup();
+
+protected slots:
+ void createDatabaseCallback();
+
+private:
+ void lockDatabaseInBackend();
+ void unlockDatabaseInBackend();
+ QPointer<FdoSecrets::Service> enableService();
+ QPointer<FdoSecrets::Session> openSession(FdoSecrets::Service* service, const QString& algo);
+ QPointer<FdoSecrets::Collection> getDefaultCollection(FdoSecrets::Service* service);
+ QPointer<FdoSecrets::Item> getFirstItem(FdoSecrets::Collection* coll);
+ QPointer<FdoSecrets::Item> createItem(FdoSecrets::Session* sess,
+ FdoSecrets::Collection* coll,
+ const QString& label,
+ const QString& pass,
+ const StringStringMap& attr,
+ bool replace);
+
+private:
+ QScopedPointer<MainWindow> m_mainWindow;
+ QPointer<DatabaseTabWidget> m_tabWidget;
+ QPointer<DatabaseWidget> m_dbWidget;
+ QSharedPointer<Database> m_db;
+
+ QPointer<FdoSecretsPlugin> m_plugin;
+
+ // For DH session tests
+ GcryptMPI m_serverPrivate;
+ GcryptMPI m_serverPublic;
+ std::unique_ptr<FdoSecrets::DhIetf1024Sha256Aes128CbcPkcs7> m_cipher;
+
+ QByteArray m_dbData;
+ QScopedPointer<TemporaryFile> m_dbFile;
+};
+
+#endif // KEEPASSXC_TESTGUIFDOSECRETS_H