summaryrefslogtreecommitdiffstats
path: root/src/testlib
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@theqtcompany.com>2015-11-18 09:01:51 +0100
committerLiang Qi <liang.qi@theqtcompany.com>2015-11-18 09:01:51 +0100
commitc7934f2489e2eb9a539206bab35f335b1943c5bd (patch)
treea27d0ed6c001fe9432e2a0f28fb935acf9e4c65f /src/testlib
parentf40593b11199fbef886bfcb6b210a214d8c3adf3 (diff)
parent08f9a1bd6ab9b1777ee5ba163d75e5c848c39eb4 (diff)
Merge remote-tracking branch 'origin/5.6' into dev
Conflicts: src/corelib/io/qprocess.cpp src/corelib/io/qprocess_unix.cpp src/network/kernel/qnetworkinterface_winrt.cpp tools/configure/configureapp.cpp Change-Id: I47df00a01597d2e63b334b492b3b4221b29f58ea
Diffstat (limited to 'src/testlib')
-rw-r--r--src/testlib/qtestmouse.h2
-rw-r--r--src/testlib/qtesttable.cpp161
2 files changed, 40 insertions, 123 deletions
diff --git a/src/testlib/qtestmouse.h b/src/testlib/qtestmouse.h
index c422a990ef..c5969a1603 100644
--- a/src/testlib/qtestmouse.h
+++ b/src/testlib/qtestmouse.h
@@ -95,7 +95,7 @@ namespace QTest
}
if (pos.isNull())
- pos = window->geometry().center();
+ pos = QPoint(window->width() / 2, window->height() / 2);
QTEST_ASSERT(uint(stateKey) == 0 || stateKey & Qt::KeyboardModifierMask);
diff --git a/src/testlib/qtesttable.cpp b/src/testlib/qtesttable.cpp
index 497b2649c5..d20bdd8467 100644
--- a/src/testlib/qtesttable.cpp
+++ b/src/testlib/qtesttable.cpp
@@ -38,37 +38,30 @@
#include <QtCore/qmetaobject.h>
#include <string.h>
+#include <vector>
+#include <algorithm>
QT_BEGIN_NAMESPACE
class QTestTablePrivate
{
public:
- struct ElementList
- {
- ElementList(): elementName(0), elementType(0), next(0) {}
- const char *elementName;
- int elementType;
- ElementList *next;
- };
+ struct Element {
+ Element() : name(Q_NULLPTR), type(0) {}
+ Element(const char *n, int t) : name(n), type(t) {}
- struct DataList
- {
- DataList(): data(0), next(0) {}
- QTestData *data;
- DataList *next;
+ const char *name;
+ int type;
};
- QTestTablePrivate(): list(0), dataList(0) {}
- ~QTestTablePrivate();
+ typedef std::vector<Element> ElementList;
+ ElementList elementList;
- ElementList *list;
- DataList *dataList;
+ typedef std::vector<QTestData *> DataList;
+ DataList dataList;
- void addColumn(int elemType, const char *elemName);
- void addRow(QTestData *data);
- ElementList *elementAt(int index);
- QTestData *dataAt(int index);
+ void addColumn(int elemType, const char *elemName) { elementList.push_back(Element(elemName, elemType)); }
+ void addRow(QTestData *data) { dataList.push_back(data); }
static QTestTable *currentTestTable;
static QTestTable *gTable;
@@ -77,74 +70,6 @@ public:
QTestTable *QTestTablePrivate::currentTestTable = 0;
QTestTable *QTestTablePrivate::gTable = 0;
-QTestTablePrivate::ElementList *QTestTablePrivate::elementAt(int index)
-{
- ElementList *iter = list;
- for (int i = 0; i < index; ++i) {
- if (!iter)
- return 0;
- iter = iter->next;
- }
- return iter;
-}
-
-QTestData *QTestTablePrivate::dataAt(int index)
-{
- DataList *iter = dataList;
- for (int i = 0; i < index; ++i) {
- if (!iter)
- return 0;
- iter = iter->next;
- }
- return iter ? iter->data : 0;
-}
-
-QTestTablePrivate::~QTestTablePrivate()
-{
- DataList *dit = dataList;
- while (dit) {
- DataList *next = dit->next;
- delete dit->data;
- delete dit;
- dit = next;
- }
- ElementList *iter = list;
- while (iter) {
- ElementList *next = iter->next;
- delete iter;
- iter = next;
- }
-}
-
-void QTestTablePrivate::addColumn(int elemType, const char *elemName)
-{
- ElementList *item = new ElementList;
- item->elementName = elemName;
- item->elementType = elemType;
- if (!list) {
- list = item;
- return;
- }
- ElementList *last = list;
- while (last->next != 0)
- last = last->next;
- last->next = item;
-}
-
-void QTestTablePrivate::addRow(QTestData *data)
-{
- DataList *item = new DataList;
- item->data = data;
- if (!dataList) {
- dataList = item;
- return;
- }
- DataList *last = dataList;
- while (last->next != 0)
- last = last->next;
- last->next = item;
-}
-
void QTestTable::addColumn(int type, const char *name)
{
QTEST_ASSERT(type);
@@ -155,30 +80,17 @@ void QTestTable::addColumn(int type, const char *name)
int QTestTable::elementCount() const
{
- QTestTablePrivate::ElementList *item = d->list;
- int count = 0;
- while (item) {
- ++count;
- item = item->next;
- }
- return count;
+ return int(d->elementList.size());
}
-
int QTestTable::dataCount() const
{
- QTestTablePrivate::DataList *item = d->dataList;
- int count = 0;
- while (item) {
- ++count;
- item = item->next;
- }
- return count;
+ return int(d->dataList.size());
}
bool QTestTable::isEmpty() const
{
- return !d->list;
+ return d->elementList.empty();
}
QTestData *QTestTable::newData(const char *tag)
@@ -202,38 +114,43 @@ QTestTable::~QTestTable()
int QTestTable::elementTypeId(int index) const
{
- QTestTablePrivate::ElementList *item = d->elementAt(index);
- if (!item)
- return -1;
- return item->elementType;
+ return size_t(index) < d->elementList.size() ? d->elementList[index].type : -1;
}
const char *QTestTable::dataTag(int index) const
{
- QTestTablePrivate::ElementList *item = d->elementAt(index);
- if (!item)
- return 0;
- return item->elementName;
+ return size_t(index) < d->elementList.size() ? d->elementList[index].name : Q_NULLPTR;
}
QTestData *QTestTable::testData(int index) const
{
- return d->dataAt(index);
+ return size_t(index) < d->dataList.size() ? d->dataList[index] : Q_NULLPTR;
}
+class NamePredicate : public std::unary_function<QTestTablePrivate::Element, bool>
+{
+public:
+ explicit NamePredicate(const char *needle) : m_needle(needle) {}
+
+ bool operator()(const QTestTablePrivate::Element &e) const
+ { return !strcmp(e.name, m_needle); }
+
+private:
+ const char *m_needle;
+};
+
int QTestTable::indexOf(const char *elementName) const
{
+ typedef QTestTablePrivate::ElementList::const_iterator It;
+
QTEST_ASSERT(elementName);
- QTestTablePrivate::ElementList *item = d->list;
- int i = 0;
- while (item) {
- if (strcmp(elementName, item->elementName) == 0)
- return i;
- item = item->next;
- ++i;
- }
- return -1;
+ const QTestTablePrivate::ElementList &elementList = d->elementList;
+
+ const It it = std::find_if(elementList.begin(), elementList.end(),
+ NamePredicate(elementName));
+ return it != elementList.end() ?
+ int(it - elementList.begin()) : -1;
}
QTestTable *QTestTable::globalTestTable()