[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [KSecretService] 5faa0ab: Extend KSecretTest to also create,
From: Michael Leupold <lemma () confuego ! org>
Date: 2010-11-09 19:14:34
Message-ID: 20101109191434.B68DDA610C () git ! kde ! org
[Download RAW message or body]
commit 5faa0ab7b0bacc93bdbd1be0fb9e3802591584a1
branch master
Author: Michael Leupold <lemma@confuego.org>
Date: Mon Nov 1 13:17:56 2010 +0000
Extend KSecretTest to also create, check and change items. Fix small bugs on the go.
svn path=/trunk/playground/base/ksecretservice/; revision=1191929
diff --git a/backend/ksecret/ksecretcollection.cpp b/backend/ksecret/ksecretcollection.cpp
index 0689ef1..1df60f0 100644
--- a/backend/ksecret/ksecretcollection.cpp
+++ b/backend/ksecret/ksecretcollection.cpp
@@ -315,6 +315,9 @@ BackendReturn<BackendItem*> KSecretCollection::createItem(const QString &label,
emit itemCreated(item);
}
+ // mark the modification date of the collection.
+ m_modified = QDateTime::currentDateTime();
+
// sync
m_dirty = true;
startSyncTimer();
diff --git a/backend/tests/ksecrettest.cpp b/backend/tests/ksecrettest.cpp
index 660218f..fec81d8 100644
--- a/backend/tests/ksecrettest.cpp
+++ b/backend/tests/ksecrettest.cpp
@@ -90,6 +90,8 @@ void KSecretTest::testCreateCollectionAsync()
// remember the collection
m_collection = createColl->collection();
+ m_collCreated = m_collection->created();
+ m_collModified = m_collection->modified();
}
void KSecretTest::testLockCollectionAsync()
@@ -179,6 +181,100 @@ void KSecretTest::testCreateItemAsync()
QCOMPARE(m_collection->items().value().size(), 1);
QCOMPARE(m_collection->items().value().first(), createItem->item());
QCOMPARE(m_collection->items().value().first()->secret().value().toByteArray(), QByteArray("cccc"));
+
+ // remember the item
+ m_item = createItem->item();
+}
+
+void KSecretTest::testCheckItem()
+{
+ // check attributes
+ QVERIFY(!m_item->isLocked());
+ QVERIFY(!m_item->id().isEmpty());
+ BackendReturn<QString> ret1 = m_item->label();
+ QVERIFY(!ret1.isError());
+ QCOMPARE(ret1.value(), QString("testitem"));
+ BackendReturn<QCA::SecureArray> ret2 = m_item->secret();
+ QVERIFY(!ret2.isError());
+ QCOMPARE(ret2.value().toByteArray(), QByteArray("cccc"));
+ BackendReturn<QMap<QString, QString> > ret3 = m_item->attributes();
+ QVERIFY(!ret3.isError());
+ QCOMPARE(ret3.value().size(), 1);
+ QCOMPARE(ret3.value().value("mainattr"), QLatin1String("haha"));
+
+ // check timestamps
+ QDateTime cur = QDateTime::currentDateTime();
+ QVERIFY(m_item->created() >= m_collCreated);
+ QVERIFY(cur >= m_item->created());
+ QVERIFY(m_item->modified() >= m_collCreated);
+ QVERIFY(cur >= m_item->modified());
+
+ // remember item creation and modification times
+ m_itemCreated = m_item->created();
+ m_itemModified = m_item->modified();
+}
+
+void KSecretTest::testSearchItem()
+{
+ // search for the item we just created and find it.
+ QMap<QString, QString> attr1;
+ attr1["mainattr"] = "haha";
+ BackendReturn<QList<BackendItem*> > ret1 = m_collection->searchItems(attr1);
+ QVERIFY(!ret1.isError());
+ QCOMPARE(ret1.value().size(), 1);
+ QCOMPARE(ret1.value().first(), m_item);
+
+ // search for another item and DON'T find it.
+ QMap<QString, QString> attr2;
+ attr2["mainattr"] = "hoho";
+ BackendReturn<QList<BackendItem*> > ret2 = m_collection->searchItems(attr2);
+ QVERIFY(!ret2.isError());
+ QVERIFY(ret2.value().isEmpty());
+}
+
+void KSecretTest::testChangeItem()
+{
+ QDateTime start = QDateTime::currentDateTime();
+
+ // change the item we created earlier
+ BackendReturn<void> ret1 = m_item->setLabel("itemtest");
+ QVERIFY(!ret1.isError());
+ BackendReturn<void> ret2 = m_item->setSecret(QCA::SecureArray(4, 'b'));
+ QVERIFY(!ret2.isError());
+ QMap<QString, QString> attr1;
+ attr1["mainattr"] = "huhu";
+ attr1["secoattr"] = "hihi";
+ BackendReturn<void> ret3 = m_item->setAttributes(attr1);
+
+ // check the values match with what we set
+ BackendReturn<QString> ret4 = m_item->label();
+ QVERIFY(!ret4.isError());
+ QCOMPARE(ret4.value(), QString("itemtest"));
+ BackendReturn<QCA::SecureArray> ret5 = m_item->secret();
+ QVERIFY(!ret5.isError());
+ QCOMPARE(ret5.value().toByteArray(), QByteArray("bbbb"));
+ BackendReturn<QMap<QString, QString> > ret6 = m_item->attributes();
+ QVERIFY(!ret6.isError());
+ QCOMPARE(ret6.value().size(), 2);
+ QCOMPARE(ret6.value().value("mainattr"), QString("huhu"));
+ QCOMPARE(ret6.value().value("secoattr"), QString("hihi"));
+
+ QDateTime end = QDateTime::currentDateTime();
+
+ // make sure the item's creation time didn't change and the modification
+ // time changed.
+ QCOMPARE(m_item->created(), m_itemCreated);
+ QVERIFY(m_item->modified() >= start);
+ QVERIFY(m_item->modified() <= end);
+ QCOMPARE(m_collection->created(), m_collCreated);
+ QVERIFY(m_collection->modified() >= start);
+ QVERIFY(m_collection->modified() <= end);
+
+ // change the item back so the tests still work
+ QVERIFY(!m_item->setLabel("testitem").isError());
+ QMap<QString, QString> attr2;
+ attr2["mainattr"] = "haha";
+ QVERIFY(!m_item->setAttributes(attr2).isError());
}
void KSecretTest::testReplaceItemAsync()
diff --git a/backend/tests/ksecrettest.h b/backend/tests/ksecrettest.h
index dca8f74..ab293f6 100644
--- a/backend/tests/ksecrettest.h
+++ b/backend/tests/ksecrettest.h
@@ -25,6 +25,7 @@
class BackendCollectionManager;
class BackendCollection;
+class BackendItem;
class KSecretTest : public QObject
{
@@ -37,6 +38,9 @@ private Q_SLOTS:
void testLockCollectionAsync();
void testUnlockCollectionAsync();
void testCreateItemAsync();
+ void testCheckItem();
+ void testSearchItem();
+ void testChangeItem();
void testReplaceItemAsync();
void testDoNotReplaceItemAsync();
void testDeleteItemAsync();
@@ -47,9 +51,13 @@ private Q_SLOTS:
private:
BackendCollectionManager *m_manager;
BackendCollection *m_collection;
+ BackendItem *m_item;
QDateTime m_collCreated;
QDateTime m_collModified;
+
+ QDateTime m_itemCreated;
+ QDateTime m_itemModified;
};
#endif
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic