testfwuis/symbianunittestui/qt/testitemlist.cpp
changeset 2 453d490c84a5
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testfwuis/symbianunittestui/qt/testitemlist.cpp	Fri Sep 17 08:58:49 2010 +0300
@@ -0,0 +1,202 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: class to setup mapping of individual test cases and dll files.
+ *
+ */
+
+#include "testitemlist.h"
+
+TestItemList::TestItemList()
+    {
+    }
+
+TestItemList::~TestItemList()
+    {
+    removeAll();
+    }
+
+void TestItemList::removeAll()
+    {
+    for (QList<TestItem*>::iterator iter = listItems.begin(); iter
+            < listItems.end(); ++iter)
+        {
+        delete (*iter);
+        }
+    listItems.clear();
+    }
+
+bool TestItemList::findItem(const QString& item, TestItem*& testItem) const
+    {
+    for (QList<TestItem*>::const_iterator iter = listItems.begin(); iter
+            < listItems.end(); ++iter)
+        {
+        if ((*iter)->itemName.compare(item) == 0)
+            {
+            testItem = *iter;
+            return true;
+            }
+        }
+    return false;
+    }
+
+void TestItemList::removeItem(const QString& item)
+    {
+    TestItem* temp;
+    if (findItem(item, temp))
+        {
+        listItems.removeOne(temp);
+        delete temp;
+        }
+    }
+
+void TestItemList::removeOneSubItem(const QString& item,
+        const QString& subItem)
+    {
+    TestItem* temp;
+    if (findItem(item, temp))
+        {
+        temp->subItemNames.removeOne(subItem);
+        if (temp->subItemNames.count() == 0)
+            {
+            removeItem(item);
+            }
+        }
+    }
+
+void TestItemList::addItemExclusively(const QString& item,
+        const QStringList& subItem)
+    {
+    TestItem* temp;
+    if (!findItem(item, temp))
+        {
+        listItems.append(new TestItem(item, subItem));
+        }
+    }
+
+void TestItemList::addItemExclusively(const QString& item)
+    {
+    TestItem* temp;
+    if (!findItem(item, temp))
+        {
+        QStringList subItem;
+        listItems.append(new TestItem(item, subItem));
+        }
+    }
+
+void TestItemList::addOneSubItem(const QString& item, const QString& subItem)
+    {
+    TestItem* temp;
+    if (!findItem(item, temp))
+        {
+        QStringList subItems;
+        subItems << subItem;
+        addItemExclusively(item, subItems);
+        }
+    else if (!temp->subItemNames.contains(subItem))
+        {
+        (temp->subItemNames) << subItem;
+        }
+    }
+
+int TestItemList::count() const
+    {
+    return listItems.count();
+    }
+
+QStringList TestItemList::items() const
+    {
+    QStringList temp;
+    for (QList<TestItem*>::const_iterator iter = listItems.begin(); iter
+            < listItems.end(); ++iter)
+        {
+        temp << (*iter)->itemName;
+        }
+    return temp;
+    }
+
+QStringList TestItemList::subItems() const
+    {
+    QStringList temp;
+    for (QList<TestItem*>::const_iterator iter = listItems.begin(); iter
+            < listItems.end(); ++iter)
+        {
+        temp << (*iter)->subItemNames;
+        }
+    return temp;
+    }
+
+bool TestItemList::empty() const
+    {
+    return listItems.count() == 0;
+    }
+
+bool TestItemList::exists(const QString& itemName) const
+    {
+    TestItem* temp;
+    return findItem(itemName, temp);
+    }
+
+bool TestItemList::isEqual(const TestItemList* itemList)
+    {
+    bool ret = this->count() == itemList->count();
+    if (ret)
+        {
+        QStringList subItems = this->subItems();
+        ret = subItems.count() == itemList->subItems().count();
+        if (ret)
+            {
+            QStringList items = this->items();
+            foreach(QString tempItem, itemList->items())
+                    {
+                    if (!items.contains(tempItem, Qt::CaseInsensitive))
+                        {
+                        return false;
+                        }
+                    }
+            foreach(QString tempSubItem, itemList->subItems())
+                    {
+                    if (!subItems.contains(tempSubItem, Qt::CaseInsensitive))
+                        {
+                        return false;
+                        }
+                    }
+            }
+        }
+    return ret;
+    }
+
+TestItemList::TestItem::TestItem()
+    {
+    }
+
+TestItemList::TestItem::TestItem(QString name, QStringList cases) :
+    itemName(name), subItemNames(cases)
+    {
+    }
+
+TestItemList::TestItem::~TestItem()
+    {
+    }
+
+QString TestItemList::TestItem::getFullQulifiedCaseName(const QString& str)
+    {
+    // TODO
+    return QString(str);
+    }
+
+bool TestItemList::TestItem::isEqual(const TestItem& item)
+    {
+    // TODO: to be extended.
+    return itemName.compare(item.itemName) == 0;
+    }