[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [KSecretService] 3e7c871: Rename BackendTest to
From: Michael Leupold <lemma () confuego ! org>
Date: 2010-11-09 19:14:30
Message-ID: 20101109191430.73DAEA60F2 () git ! kde ! org
[Download RAW message or body]
A backend/tests/temporarytest.h [License: GPL(v2)]
A backend/tests/temporarytest.cpp [License: GPL(v2)]
commit 3e7c8711491cea0940c27eabb22d2775bdee0b61
Author: Michael Leupold <lemma@confuego.org>
Date: Mon Sep 27 19:01:28 2010 +0000
Rename BackendTest to TemporaryCollectionTest to reflect what it really is. This \
should help avoiding confusion.
svn path=/trunk/playground/base/ksecretservice/; revision=1180351
diff --git a/backend/tests/CMakeLists.txt b/backend/tests/CMakeLists.txt
index 03f75e9..4854b7c 100644
--- a/backend/tests/CMakeLists.txt
+++ b/backend/tests/CMakeLists.txt
@@ -1,24 +1,24 @@
INCLUDE_DIRECTORIES (${CMAKE_CURRENT_BINARY_DIR})
-KDE4_ADD_EXECUTABLE (ksecretservice_backend_test backendtest.cpp)
-TARGET_LINK_LIBRARIES (ksecretservice_backend_test
+KDE4_ADD_EXECUTABLE (temporary_collection_test temporarytest.cpp)
+TARGET_LINK_LIBRARIES (temporary_collection_test
ksecretservicebackend
ksecretservicelib
ksecretserviceui
${QT_QTTEST_LIBRARIES}
)
-ADD_TEST (BackendItemCollectionHandlingTest ksecretservice_backend_test)
+ADD_TEST (TemporaryCollectionTest temporary_collection_test)
-KDE4_ADD_EXECUTABLE (ksecretservice_ksecret_test ksecrettest.cpp)
-TARGET_LINK_LIBRARIES (ksecretservice_ksecret_test
+KDE4_ADD_EXECUTABLE (ksecret_collection_test ksecrettest.cpp)
+TARGET_LINK_LIBRARIES (ksecret_collection_test
ksecretservicebackend
ksecretservicelib
ksecretserviceui
${QT_QTTEST_LIBRARIES}
)
-ADD_TEST (KSecretTest ksecretservice_ksecret_test)
+ADD_TEST (KSecretCollectionTest ksecret_collection_test)
KDE4_ADD_EXECUTABLE (securebuffer_test securebuffertest.cpp)
TARGET_LINK_LIBRARIES (securebuffer_test ksecretservicebackend \
${QT_QTTEST_LIBRARIES})
diff --git a/backend/tests/backendtest.cpp b/backend/tests/backendtest.cpp
deleted file mode 100644
index 4ad9635..0000000
--- a/backend/tests/backendtest.cpp
+++ /dev/null
@@ -1,399 +0,0 @@
-/*
- * Copyright 2010, Dario Freddi <dario.freddi@collabora.co.uk>
- *
- * 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 of
- * the License or (at your option) version 3 or any later version
- * accepted by the membership of KDE e.V. (or its successor approved
- * by the membership of KDE e.V.), which shall act as a proxy
- * defined in Section 14 of 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/>.
- */
-
-#include "backendtest.h"
-#include <backendmaster.h>
-#include <temporary/temporarycollectionmanager.h>
-#include <backendcollection.h>
-#include <backenditem.h>
-#include <ui/nouimanager.h>
-
-Q_DECLARE_METATYPE(BackendCollection*)
-Q_DECLARE_METATYPE(BackendItem*)
-
-BackendTest::BackendTest(QObject* parent): QObject(parent)
-{
-
-}
-
-BackendTest::~BackendTest()
-{
-
-}
-
-void BackendTest::initTestCase()
-{
- qRegisterMetaType<BackendCollection*>();
- qRegisterMetaType<BackendItem*>();
- QCA::init();
- m_master = BackendMaster::instance();
- m_master->setUiManager(new NoUiManager);
- m_manager = new TemporaryCollectionManager(m_master);
- m_master->addManager(m_manager);
-}
-
-void BackendTest::testCreateCollectionSync()
-{
- CreateCollectionJob *createColl = m_manager->createCreateCollectionJob("test", \
false);
- QSignalSpy managerSpy(m_manager, SIGNAL(collectionCreated(BackendCollection*)));
- QSignalSpy masterSpy(m_master, SIGNAL(collectionCreated(BackendCollection*)));
-
- QVERIFY(createColl->isImmediate());
-
- createColl->exec();
-
- QVERIFY(createColl->isFinished());
- QCOMPARE(createColl->error(), NoError);
- QVERIFY(!createColl->isDismissed());
- QVERIFY(createColl->collection() != 0);
-
- // Verify signals
- QCOMPARE(managerSpy.count(), 1);
- QCOMPARE(managerSpy.takeFirst().at(0).value<BackendCollection*>()->label().value(), \
QString("test"));
- QCOMPARE(masterSpy.count(), 1);
- QCOMPARE(masterSpy.takeFirst().at(0).value<BackendCollection*>(), \
createColl->collection());
-
- // Check the collection is present and alive
- QCOMPARE(m_master->collections().size(), 1);
- QCOMPARE(m_master->collections().first(), createColl->collection());
- QCOMPARE(m_master->collections().first()->label().value(), \
QLatin1String("test"));
-}
-
-void BackendTest::testCreateItemSync()
-{
- BackendCollection *collection = m_master->collections().first();
- QMap<QString,QString> attr;
- attr["mainattr"] = "haha";
- QCA::SecureArray array(4, 'c');
- CreateItemJob *createItem = collection->createCreateItemJob("testitem", attr, \
array,
- false, false);
- QSignalSpy collectionSpy(collection, SIGNAL(itemCreated(BackendItem*)));
-
- QVERIFY(createItem->isImmediate());
-
- createItem->exec();
-
- QVERIFY(createItem->isFinished());
- QCOMPARE(createItem->error(), NoError);
- QVERIFY(!createItem->isDismissed());
- QVERIFY(createItem->item() != 0);
-
- // Verify signals
- QCOMPARE(collectionSpy.count(), 1);
- QCOMPARE(collectionSpy.takeFirst().at(0).value<BackendItem*>(), \
createItem->item());
-
- // Check the item is present and alive
- QCOMPARE(collection->items().value().size(), 1);
- QCOMPARE(collection->items().value().first(), createItem->item());
- QCOMPARE(collection->items().value().first()->secret().value().toByteArray(), \
QByteArray("cccc"));
-}
-
-void BackendTest::testReplaceItemSync()
-{
- BackendCollection *collection = m_master->collections().first();
- QMap<QString,QString> attr;
- attr["mainattr"] = "haha";
- QCA::SecureArray array(QByteArray("arealsecrete243"));
- CreateItemJob *createItem = collection->createCreateItemJob("testitem2", attr, \
array,
- false, true);
-
- QSignalSpy collectionSpy(collection, SIGNAL(itemChanged(BackendItem*)));
-
- QVERIFY(createItem->isImmediate());
-
- createItem->exec();
-
- QVERIFY(createItem->isFinished());
- QCOMPARE(createItem->error(), NoError);
- QVERIFY(!createItem->isDismissed());
- QVERIFY(createItem->item() != 0);
-
- // Verify signals
- QCOMPARE(collectionSpy.count(), 1);
- QCOMPARE(collectionSpy.takeFirst().at(0).value<BackendItem*>(), \
createItem->item());
-
- // Check the item is present and alive
- QCOMPARE(collection->items().value().size(), 1);
- QCOMPARE(collection->items().value().first(), createItem->item());
- QCOMPARE(collection->items().value().first()->secret().value().toByteArray(), \
QByteArray("arealsecrete243"));
-}
-
-void BackendTest::testDoNotReplaceItemSync()
-{
- BackendCollection *collection = m_master->collections().first();
- QMap<QString,QString> attr;
- attr["mainattr"] = "haha";
- QCA::SecureArray array(QByteArray("anothersecret"));
- CreateItemJob *createItem = collection->createCreateItemJob("testitem3", attr, \
array,
- false, false);
-
- QSignalSpy collectionSpy(collection, SIGNAL(itemChanged(BackendItem*)));
-
- QVERIFY(createItem->isImmediate());
-
- createItem->exec();
-
- QVERIFY(createItem->isFinished());
- QCOMPARE(createItem->error(), ErrorAlreadyExists);
- QVERIFY(!createItem->isDismissed());
- QVERIFY(createItem->item() == 0);
-
- // Verify signals
- QCOMPARE(collectionSpy.count(), 0);
-
- // Check the item is present and alive
- QCOMPARE(collection->items().value().size(), 1);
- QCOMPARE(collection->items().value().first()->secret().value().toByteArray(), \
QByteArray("arealsecrete243"));
-}
-
-void BackendTest::testDeleteItemSync()
-{
- BackendCollection *collection = m_master->collections().first();
- BackendItem *item = collection->items().value().first();
- DeleteItemJob *deleteItem = item->createDeleteJob();
- QSignalSpy collectionSpy(collection, SIGNAL(itemDeleted(BackendItem*)));
-
- QVERIFY(deleteItem->isImmediate());
-
- deleteItem->exec();
-
- QVERIFY(deleteItem->isFinished());
- QCOMPARE(deleteItem->error(), NoError);
- QVERIFY(deleteItem->result());
- QVERIFY(!deleteItem->isDismissed());
-
- // Verify signals
- QCOMPARE(collectionSpy.count(), 1);
- QCOMPARE(collectionSpy.takeFirst().at(0).value<BackendItem*>()->label().value(), \
QString("testitem2"));
-
- // Check the item is present and alive
- QVERIFY(collection->items().value().isEmpty());
-}
-
-void BackendTest::testDeleteCollectionSync()
-{
- BackendCollection *collection = m_master->collections().first();
- DeleteCollectionJob *deleteCollection = collection->createDeleteJob();
- QSignalSpy managerSpy(m_manager, SIGNAL(collectionDeleted(BackendCollection*)));
- QSignalSpy masterSpy(m_master, SIGNAL(collectionDeleted(BackendCollection*)));
-
- QVERIFY(deleteCollection->isImmediate());
-
- deleteCollection->exec();
-
- QVERIFY(deleteCollection->isFinished());
- QCOMPARE(deleteCollection->error(), NoError);
- QVERIFY(deleteCollection->result());
- QVERIFY(!deleteCollection->isDismissed());
-
- // Verify signals
- QCOMPARE(managerSpy.count(), 1);
- QCOMPARE(managerSpy.takeFirst().at(0).value<BackendCollection*>(), collection);
- QCOMPARE(masterSpy.count(), 1);
- QCOMPARE(masterSpy.takeFirst().at(0).value<BackendCollection*>(), collection);
-
- // Check the collection is dead
- QVERIFY(m_master->collections().isEmpty());
-}
-
-void BackendTest::testCreateCollectionAsync()
-{
- CreateCollectionJob *createColl = m_manager->createCreateCollectionJob("test", \
false);
- QSignalSpy managerSpy(m_manager, SIGNAL(collectionCreated(BackendCollection*)));
- QSignalSpy masterSpy(m_master, SIGNAL(collectionCreated(BackendCollection*)));
- QEventLoop loop;
- QVERIFY(loop.connect(createColl, SIGNAL(result(QueuedJob*)), SLOT(quit())));
- createColl->enqueue();
- if (!createColl->isFinished()) {
- loop.exec();
- }
-
- QVERIFY(createColl->isFinished());
- QCOMPARE(createColl->error(), NoError);
- QVERIFY(!createColl->isDismissed());
- QVERIFY(createColl->collection() != 0);
-
- // Verify signals
- QCOMPARE(managerSpy.count(), 1);
- QCOMPARE(managerSpy.takeFirst().at(0).value<BackendCollection*>()->label().value(), \
QString("test"));
- QCOMPARE(masterSpy.count(), 1);
- QCOMPARE(masterSpy.takeFirst().at(0).value<BackendCollection*>(), \
createColl->collection());
-
- // Check the collection is present and alive
- QCOMPARE(m_master->collections().size(), 1);
- QCOMPARE(m_master->collections().first(), createColl->collection());
- QCOMPARE(m_master->collections().first()->label().value(), \
QLatin1String("test"));
-}
-
-void BackendTest::testCreateItemAsync()
-{
- BackendCollection *collection = m_master->collections().first();
- QMap<QString,QString> attr;
- attr["mainattr"] = "haha";
- QCA::SecureArray array(4, 'c');
- CreateItemJob *createItem = collection->createCreateItemJob("testitem", attr, \
array,
- false, false);
- QSignalSpy collectionSpy(collection, SIGNAL(itemCreated(BackendItem*)));
- QEventLoop loop;
- QVERIFY(loop.connect(createItem, SIGNAL(result(QueuedJob*)), SLOT(quit())));
- createItem->enqueue();
- if (!createItem->isFinished()) {
- loop.exec();
- }
-
- QVERIFY(createItem->isFinished());
- QCOMPARE(createItem->error(), NoError);
- QVERIFY(!createItem->isDismissed());
- QVERIFY(createItem->item() != 0);
-
- // Verify signals
- QCOMPARE(collectionSpy.count(), 1);
- QCOMPARE(collectionSpy.takeFirst().at(0).value<BackendItem*>(), \
createItem->item());
-
- // Check the item is present and alive
- QCOMPARE(collection->items().value().size(), 1);
- QCOMPARE(collection->items().value().first(), createItem->item());
- QCOMPARE(collection->items().value().first()->secret().value().toByteArray(), \
QByteArray("cccc"));
-}
-
-void BackendTest::testReplaceItemAsync()
-{
- BackendCollection *collection = m_master->collections().first();
- QMap<QString,QString> attr;
- attr["mainattr"] = "haha";
- QCA::SecureArray array(QByteArray("arealsecrete243"));
- CreateItemJob *createItem = collection->createCreateItemJob("testitem2", attr, \
array,
- false, true);
-
- QSignalSpy collectionSpy(collection, SIGNAL(itemChanged(BackendItem*)));
- QEventLoop loop;
- QVERIFY(loop.connect(createItem, SIGNAL(result(QueuedJob*)), SLOT(quit())));
- createItem->enqueue();
- if (!createItem->isFinished()) {
- loop.exec();
- }
-
- QVERIFY(createItem->isFinished());
- QCOMPARE(createItem->error(), NoError);
- QVERIFY(!createItem->isDismissed());
- QVERIFY(createItem->item() != 0);
-
- // Verify signals
- QCOMPARE(collectionSpy.count(), 1);
- QCOMPARE(collectionSpy.takeFirst().at(0).value<BackendItem*>(), \
createItem->item());
-
- // Check the item is present and alive
- QCOMPARE(collection->items().value().size(), 1);
- QCOMPARE(collection->items().value().first(), createItem->item());
- QCOMPARE(collection->items().value().first()->secret().value().toByteArray(), \
QByteArray("arealsecrete243"));
-}
-
-void BackendTest::testDoNotReplaceItemAsync()
-{
- BackendCollection *collection = m_master->collections().first();
- QMap<QString,QString> attr;
- attr["mainattr"] = "haha";
- QCA::SecureArray array(QByteArray("anothersecret"));
- CreateItemJob *createItem = collection->createCreateItemJob("testitem3", attr, \
array,
- false, false);
-
- QSignalSpy collectionSpy(collection, SIGNAL(itemChanged(BackendItem*)));
- QEventLoop loop;
- QVERIFY(loop.connect(createItem, SIGNAL(result(QueuedJob*)), SLOT(quit())));
- createItem->enqueue();
- if (!createItem->isFinished()) {
- loop.exec();
- }
-
- QVERIFY(createItem->isFinished());
- QCOMPARE(createItem->error(), ErrorAlreadyExists);
- QVERIFY(!createItem->isDismissed());
- QVERIFY(createItem->item() == 0);
-
- // Verify signals
- QCOMPARE(collectionSpy.count(), 0);
-
- // Check the item is present and alive
- QCOMPARE(collection->items().value().size(), 1);
- QCOMPARE(collection->items().value().first()->secret().value().toByteArray(), \
QByteArray("arealsecrete243"));
-}
-
-void BackendTest::testDeleteItemAsync()
-{
- BackendCollection *collection = m_master->collections().first();
- BackendItem *item = collection->items().value().first();
- DeleteItemJob *deleteItem = item->createDeleteJob();
- QSignalSpy collectionSpy(collection, SIGNAL(itemDeleted(BackendItem*)));
- QEventLoop loop;
- QVERIFY(loop.connect(deleteItem, SIGNAL(result(QueuedJob*)), SLOT(quit())));
- deleteItem->enqueue();
- if (!deleteItem->isFinished()) {
- loop.exec();
- }
-
- QVERIFY(deleteItem->isFinished());
- QCOMPARE(deleteItem->error(), NoError);
- QVERIFY(deleteItem->result());
- QVERIFY(!deleteItem->isDismissed());
-
- // Verify signals
- QCOMPARE(collectionSpy.count(), 1);
- QCOMPARE(collectionSpy.takeFirst().at(0).value<BackendItem*>()->label().value(), \
QString("testitem2"));
-
- // Check the item is present and alive
- QVERIFY(collection->items().value().isEmpty());
-}
-
-void BackendTest::testDeleteCollectionAsync()
-{
- BackendCollection *collection = m_master->collections().first();
- DeleteCollectionJob *deleteCollection = collection->createDeleteJob();
- QSignalSpy managerSpy(m_manager, SIGNAL(collectionDeleted(BackendCollection*)));
- QSignalSpy masterSpy(m_master, SIGNAL(collectionDeleted(BackendCollection*)));
- QEventLoop loop;
- QVERIFY(loop.connect(deleteCollection, SIGNAL(result(QueuedJob*)), \
SLOT(quit())));
- deleteCollection->enqueue();
- if (!deleteCollection->isFinished()) {
- loop.exec();
- }
-
- QVERIFY(deleteCollection->isFinished());
- QCOMPARE(deleteCollection->error(), NoError);
- QVERIFY(deleteCollection->result());
- QVERIFY(!deleteCollection->isDismissed());
-
- // Verify signals
- QCOMPARE(managerSpy.count(), 1);
- QCOMPARE(managerSpy.takeFirst().at(0).value<BackendCollection*>(), collection);
- QCOMPARE(masterSpy.count(), 1);
- QCOMPARE(masterSpy.takeFirst().at(0).value<BackendCollection*>(), collection);
-
- // Check the collection is dead
- QVERIFY(m_master->collections().isEmpty());
-}
-
-void BackendTest::cleanupTestCase()
-{
- // TODO: delete stuff so this can also be used for valgrind leak-checking.
-}
-
-
-QTEST_MAIN(BackendTest)
-#include "backendtest.moc"
diff --git a/backend/tests/backendtest.h b/backend/tests/backendtest.h
deleted file mode 100644
index 39111f1..0000000
--- a/backend/tests/backendtest.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2010, Dario Freddi <dario.freddi@collabora.co.uk>
- *
- * 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 of
- * the License or (at your option) version 3 or any later version
- * accepted by the membership of KDE e.V. (or its successor approved
- * by the membership of KDE e.V.), which shall act as a proxy
- * defined in Section 14 of 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 BACKENDTEST_H
-#define BACKENDTEST_H
-
-#include <QtTest>
-
-class BackendCollectionManager;
-class BackendMaster;
-
-class BackendTest : public QObject
-{
- Q_OBJECT
- public:
- BackendTest(QObject* parent = 0);
- virtual ~BackendTest();
-
- private Q_SLOTS:
- void initTestCase();
-
- void testCreateCollectionSync();
- void testCreateItemSync();
- void testReplaceItemSync();
- void testDoNotReplaceItemSync();
- void testDeleteItemSync();
- void testDeleteCollectionSync();
-
- void testCreateCollectionAsync();
- void testCreateItemAsync();
- void testReplaceItemAsync();
- void testDoNotReplaceItemAsync();
- void testDeleteItemAsync();
- void testDeleteCollectionAsync();
-
- void cleanupTestCase();
-
- private:
- BackendMaster *m_master;
- BackendCollectionManager *m_manager;
-};
-
-#endif // BACKENDTEST_H
diff --git a/backend/tests/temporarytest.cpp b/backend/tests/temporarytest.cpp
new file mode 100644
index 0000000..8af397f
--- /dev/null
+++ b/backend/tests/temporarytest.cpp
@@ -0,0 +1,399 @@
+/*
+ * Copyright 2010, Dario Freddi <dario.freddi@collabora.co.uk>
+ *
+ * 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 of
+ * the License or (at your option) version 3 or any later version
+ * accepted by the membership of KDE e.V. (or its successor approved
+ * by the membership of KDE e.V.), which shall act as a proxy
+ * defined in Section 14 of 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/>.
+ */
+
+#include "temporarytest.h"
+#include <backendmaster.h>
+#include <temporary/temporarycollectionmanager.h>
+#include <backendcollection.h>
+#include <backenditem.h>
+#include <ui/nouimanager.h>
+
+Q_DECLARE_METATYPE(BackendCollection*)
+Q_DECLARE_METATYPE(BackendItem*)
+
+TemporaryTest::TemporaryTest(QObject* parent): QObject(parent)
+{
+
+}
+
+TemporaryTest::~TemporaryTest()
+{
+
+}
+
+void TemporaryTest::initTestCase()
+{
+ qRegisterMetaType<BackendCollection*>();
+ qRegisterMetaType<BackendItem*>();
+ QCA::init();
+ m_master = BackendMaster::instance();
+ m_master->setUiManager(new NoUiManager);
+ m_manager = new TemporaryCollectionManager(m_master);
+ m_master->addManager(m_manager);
+}
+
+void TemporaryTest::testCreateCollectionSync()
+{
+ CreateCollectionJob *createColl = m_manager->createCreateCollectionJob("test", \
false); + QSignalSpy managerSpy(m_manager, \
SIGNAL(collectionCreated(BackendCollection*))); + QSignalSpy masterSpy(m_master, \
SIGNAL(collectionCreated(BackendCollection*))); +
+ QVERIFY(createColl->isImmediate());
+
+ createColl->exec();
+
+ QVERIFY(createColl->isFinished());
+ QCOMPARE(createColl->error(), NoError);
+ QVERIFY(!createColl->isDismissed());
+ QVERIFY(createColl->collection() != 0);
+
+ // Verify signals
+ QCOMPARE(managerSpy.count(), 1);
+ QCOMPARE(managerSpy.takeFirst().at(0).value<BackendCollection*>()->label().value(), \
QString("test")); + QCOMPARE(masterSpy.count(), 1);
+ QCOMPARE(masterSpy.takeFirst().at(0).value<BackendCollection*>(), \
createColl->collection()); +
+ // Check the collection is present and alive
+ QCOMPARE(m_master->collections().size(), 1);
+ QCOMPARE(m_master->collections().first(), createColl->collection());
+ QCOMPARE(m_master->collections().first()->label().value(), \
QLatin1String("test")); +}
+
+void TemporaryTest::testCreateItemSync()
+{
+ BackendCollection *collection = m_master->collections().first();
+ QMap<QString,QString> attr;
+ attr["mainattr"] = "haha";
+ QCA::SecureArray array(4, 'c');
+ CreateItemJob *createItem = collection->createCreateItemJob("testitem", attr, \
array, + false, \
false); + QSignalSpy collectionSpy(collection, SIGNAL(itemCreated(BackendItem*)));
+
+ QVERIFY(createItem->isImmediate());
+
+ createItem->exec();
+
+ QVERIFY(createItem->isFinished());
+ QCOMPARE(createItem->error(), NoError);
+ QVERIFY(!createItem->isDismissed());
+ QVERIFY(createItem->item() != 0);
+
+ // Verify signals
+ QCOMPARE(collectionSpy.count(), 1);
+ QCOMPARE(collectionSpy.takeFirst().at(0).value<BackendItem*>(), \
createItem->item()); +
+ // Check the item is present and alive
+ QCOMPARE(collection->items().value().size(), 1);
+ QCOMPARE(collection->items().value().first(), createItem->item());
+ QCOMPARE(collection->items().value().first()->secret().value().toByteArray(), \
QByteArray("cccc")); +}
+
+void TemporaryTest::testReplaceItemSync()
+{
+ BackendCollection *collection = m_master->collections().first();
+ QMap<QString,QString> attr;
+ attr["mainattr"] = "haha";
+ QCA::SecureArray array(QByteArray("arealsecrete243"));
+ CreateItemJob *createItem = collection->createCreateItemJob("testitem2", attr, \
array, + false, true);
+
+ QSignalSpy collectionSpy(collection, SIGNAL(itemChanged(BackendItem*)));
+
+ QVERIFY(createItem->isImmediate());
+
+ createItem->exec();
+
+ QVERIFY(createItem->isFinished());
+ QCOMPARE(createItem->error(), NoError);
+ QVERIFY(!createItem->isDismissed());
+ QVERIFY(createItem->item() != 0);
+
+ // Verify signals
+ QCOMPARE(collectionSpy.count(), 1);
+ QCOMPARE(collectionSpy.takeFirst().at(0).value<BackendItem*>(), \
createItem->item()); +
+ // Check the item is present and alive
+ QCOMPARE(collection->items().value().size(), 1);
+ QCOMPARE(collection->items().value().first(), createItem->item());
+ QCOMPARE(collection->items().value().first()->secret().value().toByteArray(), \
QByteArray("arealsecrete243")); +}
+
+void TemporaryTest::testDoNotReplaceItemSync()
+{
+ BackendCollection *collection = m_master->collections().first();
+ QMap<QString,QString> attr;
+ attr["mainattr"] = "haha";
+ QCA::SecureArray array(QByteArray("anothersecret"));
+ CreateItemJob *createItem = collection->createCreateItemJob("testitem3", attr, \
array, + false, \
false); +
+ QSignalSpy collectionSpy(collection, SIGNAL(itemChanged(BackendItem*)));
+
+ QVERIFY(createItem->isImmediate());
+
+ createItem->exec();
+
+ QVERIFY(createItem->isFinished());
+ QCOMPARE(createItem->error(), ErrorAlreadyExists);
+ QVERIFY(!createItem->isDismissed());
+ QVERIFY(createItem->item() == 0);
+
+ // Verify signals
+ QCOMPARE(collectionSpy.count(), 0);
+
+ // Check the item is present and alive
+ QCOMPARE(collection->items().value().size(), 1);
+ QCOMPARE(collection->items().value().first()->secret().value().toByteArray(), \
QByteArray("arealsecrete243")); +}
+
+void TemporaryTest::testDeleteItemSync()
+{
+ BackendCollection *collection = m_master->collections().first();
+ BackendItem *item = collection->items().value().first();
+ DeleteItemJob *deleteItem = item->createDeleteJob();
+ QSignalSpy collectionSpy(collection, SIGNAL(itemDeleted(BackendItem*)));
+
+ QVERIFY(deleteItem->isImmediate());
+
+ deleteItem->exec();
+
+ QVERIFY(deleteItem->isFinished());
+ QCOMPARE(deleteItem->error(), NoError);
+ QVERIFY(deleteItem->result());
+ QVERIFY(!deleteItem->isDismissed());
+
+ // Verify signals
+ QCOMPARE(collectionSpy.count(), 1);
+ QCOMPARE(collectionSpy.takeFirst().at(0).value<BackendItem*>()->label().value(), \
QString("testitem2")); +
+ // Check the item is present and alive
+ QVERIFY(collection->items().value().isEmpty());
+}
+
+void TemporaryTest::testDeleteCollectionSync()
+{
+ BackendCollection *collection = m_master->collections().first();
+ DeleteCollectionJob *deleteCollection = collection->createDeleteJob();
+ QSignalSpy managerSpy(m_manager, SIGNAL(collectionDeleted(BackendCollection*)));
+ QSignalSpy masterSpy(m_master, SIGNAL(collectionDeleted(BackendCollection*)));
+
+ QVERIFY(deleteCollection->isImmediate());
+
+ deleteCollection->exec();
+
+ QVERIFY(deleteCollection->isFinished());
+ QCOMPARE(deleteCollection->error(), NoError);
+ QVERIFY(deleteCollection->result());
+ QVERIFY(!deleteCollection->isDismissed());
+
+ // Verify signals
+ QCOMPARE(managerSpy.count(), 1);
+ QCOMPARE(managerSpy.takeFirst().at(0).value<BackendCollection*>(), collection);
+ QCOMPARE(masterSpy.count(), 1);
+ QCOMPARE(masterSpy.takeFirst().at(0).value<BackendCollection*>(), collection);
+
+ // Check the collection is dead
+ QVERIFY(m_master->collections().isEmpty());
+}
+
+void TemporaryTest::testCreateCollectionAsync()
+{
+ CreateCollectionJob *createColl = m_manager->createCreateCollectionJob("test", \
false); + QSignalSpy managerSpy(m_manager, \
SIGNAL(collectionCreated(BackendCollection*))); + QSignalSpy masterSpy(m_master, \
SIGNAL(collectionCreated(BackendCollection*))); + QEventLoop loop;
+ QVERIFY(loop.connect(createColl, SIGNAL(result(QueuedJob*)), SLOT(quit())));
+ createColl->enqueue();
+ if (!createColl->isFinished()) {
+ loop.exec();
+ }
+
+ QVERIFY(createColl->isFinished());
+ QCOMPARE(createColl->error(), NoError);
+ QVERIFY(!createColl->isDismissed());
+ QVERIFY(createColl->collection() != 0);
+
+ // Verify signals
+ QCOMPARE(managerSpy.count(), 1);
+ QCOMPARE(managerSpy.takeFirst().at(0).value<BackendCollection*>()->label().value(), \
QString("test")); + QCOMPARE(masterSpy.count(), 1);
+ QCOMPARE(masterSpy.takeFirst().at(0).value<BackendCollection*>(), \
createColl->collection()); +
+ // Check the collection is present and alive
+ QCOMPARE(m_master->collections().size(), 1);
+ QCOMPARE(m_master->collections().first(), createColl->collection());
+ QCOMPARE(m_master->collections().first()->label().value(), \
QLatin1String("test")); +}
+
+void TemporaryTest::testCreateItemAsync()
+{
+ BackendCollection *collection = m_master->collections().first();
+ QMap<QString,QString> attr;
+ attr["mainattr"] = "haha";
+ QCA::SecureArray array(4, 'c');
+ CreateItemJob *createItem = collection->createCreateItemJob("testitem", attr, \
array, + false, \
false); + QSignalSpy collectionSpy(collection, SIGNAL(itemCreated(BackendItem*)));
+ QEventLoop loop;
+ QVERIFY(loop.connect(createItem, SIGNAL(result(QueuedJob*)), SLOT(quit())));
+ createItem->enqueue();
+ if (!createItem->isFinished()) {
+ loop.exec();
+ }
+
+ QVERIFY(createItem->isFinished());
+ QCOMPARE(createItem->error(), NoError);
+ QVERIFY(!createItem->isDismissed());
+ QVERIFY(createItem->item() != 0);
+
+ // Verify signals
+ QCOMPARE(collectionSpy.count(), 1);
+ QCOMPARE(collectionSpy.takeFirst().at(0).value<BackendItem*>(), \
createItem->item()); +
+ // Check the item is present and alive
+ QCOMPARE(collection->items().value().size(), 1);
+ QCOMPARE(collection->items().value().first(), createItem->item());
+ QCOMPARE(collection->items().value().first()->secret().value().toByteArray(), \
QByteArray("cccc")); +}
+
+void TemporaryTest::testReplaceItemAsync()
+{
+ BackendCollection *collection = m_master->collections().first();
+ QMap<QString,QString> attr;
+ attr["mainattr"] = "haha";
+ QCA::SecureArray array(QByteArray("arealsecrete243"));
+ CreateItemJob *createItem = collection->createCreateItemJob("testitem2", attr, \
array, + false, true);
+
+ QSignalSpy collectionSpy(collection, SIGNAL(itemChanged(BackendItem*)));
+ QEventLoop loop;
+ QVERIFY(loop.connect(createItem, SIGNAL(result(QueuedJob*)), SLOT(quit())));
+ createItem->enqueue();
+ if (!createItem->isFinished()) {
+ loop.exec();
+ }
+
+ QVERIFY(createItem->isFinished());
+ QCOMPARE(createItem->error(), NoError);
+ QVERIFY(!createItem->isDismissed());
+ QVERIFY(createItem->item() != 0);
+
+ // Verify signals
+ QCOMPARE(collectionSpy.count(), 1);
+ QCOMPARE(collectionSpy.takeFirst().at(0).value<BackendItem*>(), \
createItem->item()); +
+ // Check the item is present and alive
+ QCOMPARE(collection->items().value().size(), 1);
+ QCOMPARE(collection->items().value().first(), createItem->item());
+ QCOMPARE(collection->items().value().first()->secret().value().toByteArray(), \
QByteArray("arealsecrete243")); +}
+
+void TemporaryTest::testDoNotReplaceItemAsync()
+{
+ BackendCollection *collection = m_master->collections().first();
+ QMap<QString,QString> attr;
+ attr["mainattr"] = "haha";
+ QCA::SecureArray array(QByteArray("anothersecret"));
+ CreateItemJob *createItem = collection->createCreateItemJob("testitem3", attr, \
array, + false, \
false); +
+ QSignalSpy collectionSpy(collection, SIGNAL(itemChanged(BackendItem*)));
+ QEventLoop loop;
+ QVERIFY(loop.connect(createItem, SIGNAL(result(QueuedJob*)), SLOT(quit())));
+ createItem->enqueue();
+ if (!createItem->isFinished()) {
+ loop.exec();
+ }
+
+ QVERIFY(createItem->isFinished());
+ QCOMPARE(createItem->error(), ErrorAlreadyExists);
+ QVERIFY(!createItem->isDismissed());
+ QVERIFY(createItem->item() == 0);
+
+ // Verify signals
+ QCOMPARE(collectionSpy.count(), 0);
+
+ // Check the item is present and alive
+ QCOMPARE(collection->items().value().size(), 1);
+ QCOMPARE(collection->items().value().first()->secret().value().toByteArray(), \
QByteArray("arealsecrete243")); +}
+
+void TemporaryTest::testDeleteItemAsync()
+{
+ BackendCollection *collection = m_master->collections().first();
+ BackendItem *item = collection->items().value().first();
+ DeleteItemJob *deleteItem = item->createDeleteJob();
+ QSignalSpy collectionSpy(collection, SIGNAL(itemDeleted(BackendItem*)));
+ QEventLoop loop;
+ QVERIFY(loop.connect(deleteItem, SIGNAL(result(QueuedJob*)), SLOT(quit())));
+ deleteItem->enqueue();
+ if (!deleteItem->isFinished()) {
+ loop.exec();
+ }
+
+ QVERIFY(deleteItem->isFinished());
+ QCOMPARE(deleteItem->error(), NoError);
+ QVERIFY(deleteItem->result());
+ QVERIFY(!deleteItem->isDismissed());
+
+ // Verify signals
+ QCOMPARE(collectionSpy.count(), 1);
+ QCOMPARE(collectionSpy.takeFirst().at(0).value<BackendItem*>()->label().value(), \
QString("testitem2")); +
+ // Check the item is present and alive
+ QVERIFY(collection->items().value().isEmpty());
+}
+
+void TemporaryTest::testDeleteCollectionAsync()
+{
+ BackendCollection *collection = m_master->collections().first();
+ DeleteCollectionJob *deleteCollection = collection->createDeleteJob();
+ QSignalSpy managerSpy(m_manager, SIGNAL(collectionDeleted(BackendCollection*)));
+ QSignalSpy masterSpy(m_master, SIGNAL(collectionDeleted(BackendCollection*)));
+ QEventLoop loop;
+ QVERIFY(loop.connect(deleteCollection, SIGNAL(result(QueuedJob*)), \
SLOT(quit()))); + deleteCollection->enqueue();
+ if (!deleteCollection->isFinished()) {
+ loop.exec();
+ }
+
+ QVERIFY(deleteCollection->isFinished());
+ QCOMPARE(deleteCollection->error(), NoError);
+ QVERIFY(deleteCollection->result());
+ QVERIFY(!deleteCollection->isDismissed());
+
+ // Verify signals
+ QCOMPARE(managerSpy.count(), 1);
+ QCOMPARE(managerSpy.takeFirst().at(0).value<BackendCollection*>(), collection);
+ QCOMPARE(masterSpy.count(), 1);
+ QCOMPARE(masterSpy.takeFirst().at(0).value<BackendCollection*>(), collection);
+
+ // Check the collection is dead
+ QVERIFY(m_master->collections().isEmpty());
+}
+
+void TemporaryTest::cleanupTestCase()
+{
+ // TODO: delete stuff so this can also be used for valgrind leak-checking.
+}
+
+
+QTEST_MAIN(TemporaryTest)
+#include "temporarytest.moc"
diff --git a/backend/tests/temporarytest.h b/backend/tests/temporarytest.h
new file mode 100644
index 0000000..557acdd
--- /dev/null
+++ b/backend/tests/temporarytest.h
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2010, Dario Freddi <dario.freddi@collabora.co.uk>
+ *
+ * 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 of
+ * the License or (at your option) version 3 or any later version
+ * accepted by the membership of KDE e.V. (or its successor approved
+ * by the membership of KDE e.V.), which shall act as a proxy
+ * defined in Section 14 of 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 TEMPORARYTEST_H
+#define TEMPORARYTEST_H
+
+#include <QtTest>
+
+class BackendCollectionManager;
+class BackendMaster;
+
+class TemporaryTest : public QObject
+{
+ Q_OBJECT
+ public:
+ TemporaryTest(QObject* parent = 0);
+ virtual ~TemporaryTest();
+
+ private Q_SLOTS:
+ void initTestCase();
+
+ void testCreateCollectionSync();
+ void testCreateItemSync();
+ void testReplaceItemSync();
+ void testDoNotReplaceItemSync();
+ void testDeleteItemSync();
+ void testDeleteCollectionSync();
+
+ void testCreateCollectionAsync();
+ void testCreateItemAsync();
+ void testReplaceItemAsync();
+ void testDoNotReplaceItemAsync();
+ void testDeleteItemAsync();
+ void testDeleteCollectionAsync();
+
+ void cleanupTestCase();
+
+ private:
+ BackendMaster *m_master;
+ BackendCollectionManager *m_manager;
+};
+
+#endif // TEMPORARYTEST_H
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic