summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/corelib/global/qnumeric/tst_qnumeric.cpp6
-rw-r--r--tests/auto/corelib/io/qloggingregistry/qtlogging.ini2
-rw-r--r--tests/auto/corelib/io/qloggingregistry/tst_qloggingregistry.cpp10
-rw-r--r--tests/auto/corelib/itemmodels/qitemselectionmodel/tst_qitemselectionmodel.cpp6
-rw-r--r--tests/auto/corelib/json/tst_qtjson.cpp14
-rw-r--r--tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp9
-rw-r--r--tests/auto/corelib/tools/qarraydata/qarraydata.pro4
-rw-r--r--tests/auto/corelib/tools/qarraydata/simplevector.h10
-rw-r--r--tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp2
-rw-r--r--tests/auto/corelib/tools/qarraydata_strictiterators/qarraydata_strictiterators.pro3
-rw-r--r--tests/auto/corelib/tools/qhash/qhash.pro2
-rw-r--r--tests/auto/corelib/tools/qhash/tst_qhash.cpp4
-rw-r--r--tests/auto/corelib/tools/qhash_strictiterators/qhash_strictiterators.pro3
-rw-r--r--tests/auto/corelib/tools/qlist/qlist.pro2
-rw-r--r--tests/auto/corelib/tools/qlist_strictiterators/qlist_strictiterators.pro3
-rw-r--r--tests/auto/corelib/tools/qmap/qmap.pro2
-rw-r--r--tests/auto/corelib/tools/qmap/tst_qmap.cpp2
-rw-r--r--tests/auto/corelib/tools/qmap_strictiterators/qmap_strictiterators.pro3
-rw-r--r--tests/auto/corelib/tools/qmargins/tst_qmargins.cpp108
-rw-r--r--tests/auto/corelib/tools/qrect/tst_qrect.cpp29
-rw-r--r--tests/auto/corelib/tools/qtextboundaryfinder/tst_qtextboundaryfinder.cpp4
-rw-r--r--tests/auto/corelib/tools/qvector/qvector.pro2
-rw-r--r--tests/auto/corelib/tools/qvector_strictiterators/qvector_strictiterators.pro3
-rw-r--r--tests/auto/corelib/tools/tools.pro7
-rw-r--r--tests/auto/gui/image/qicon/tst_qicon.cpp4
-rw-r--r--tests/auto/gui/image/qimagereader/tst_qimagereader.cpp6
-rw-r--r--tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp6
-rw-r--r--tests/auto/gui/text/qfontdatabase/FreeMono.ttfbin0 -> 267400 bytes
-rw-r--r--tests/auto/gui/text/qfontdatabase/LED_REAL.TTFbin4708 -> 0 bytes
-rw-r--r--tests/auto/gui/text/qfontdatabase/LED_REAL_readme.txt34
-rw-r--r--tests/auto/gui/text/qfontdatabase/tst_qfontdatabase.cpp2
-rw-r--r--tests/auto/gui/text/qfontmetrics/tst_qfontmetrics.cpp6
-rw-r--r--tests/auto/network/access/access.pro1
-rw-r--r--tests/auto/network/access/qabstractnetworkcache/qabstractnetworkcache.pro1
-rw-r--r--tests/auto/network/access/qftp/qftp.pro1
-rw-r--r--tests/auto/network/access/qhttpnetworkconnection/qhttpnetworkconnection.pro1
-rw-r--r--tests/auto/network/access/qhttpnetworkreply/qhttpnetworkreply.pro1
-rw-r--r--tests/auto/network/access/qnetworkaccessmanager/qnetworkaccessmanager.pro1
-rw-r--r--tests/auto/network/access/qnetworkcachemetadata/qnetworkcachemetadata.pro1
-rw-r--r--tests/auto/network/access/qnetworkcookie/qnetworkcookie.pro1
-rw-r--r--tests/auto/network/access/qnetworkcookiejar/qnetworkcookiejar.pro1
-rw-r--r--tests/auto/network/access/qnetworkdiskcache/qnetworkdiskcache.pro1
-rw-r--r--tests/auto/network/access/qnetworkreply/echo/echo.pro1
-rw-r--r--tests/auto/network/access/qnetworkreply/test/test.pro1
-rw-r--r--tests/auto/network/access/qnetworkrequest/qnetworkrequest.pro1
-rw-r--r--tests/auto/network/access/spdy/spdy.pro7
-rw-r--r--tests/auto/network/access/spdy/tst_spdy.cpp696
-rw-r--r--tests/auto/network/bearer/qnetworkconfiguration/qnetworkconfiguration.pro1
-rw-r--r--tests/auto/network/bearer/qnetworkconfigurationmanager/qnetworkconfigurationmanager.pro1
-rw-r--r--tests/auto/network/bearer/qnetworksession/lackey/lackey.pro1
-rw-r--r--tests/auto/network/bearer/qnetworksession/test/test.pro1
-rw-r--r--tests/auto/network/kernel/qauthenticator/qauthenticator.pro1
-rw-r--r--tests/auto/network/kernel/qdnslookup/qdnslookup.pro1
-rw-r--r--tests/auto/network/kernel/qdnslookup_appless/qdnslookup_appless.pro1
-rw-r--r--tests/auto/network/kernel/qhostaddress/qhostaddress.pro1
-rw-r--r--tests/auto/network/kernel/qhostinfo/qhostinfo.pro1
-rw-r--r--tests/auto/network/kernel/qnetworkaddressentry/qnetworkaddressentry.pro1
-rw-r--r--tests/auto/network/kernel/qnetworkinterface/qnetworkinterface.pro1
-rw-r--r--tests/auto/network/kernel/qnetworkproxy/qnetworkproxy.pro1
-rw-r--r--tests/auto/network/kernel/qnetworkproxyfactory/qnetworkproxyfactory.pro1
-rw-r--r--tests/auto/network/socket/platformsocketengine/platformsocketengine.pro1
-rw-r--r--tests/auto/network/socket/qabstractsocket/qabstractsocket.pro1
-rw-r--r--tests/auto/network/socket/qhttpsocketengine/qhttpsocketengine.pro1
-rw-r--r--tests/auto/network/socket/qlocalsocket/test/test.pro1
-rw-r--r--tests/auto/network/socket/qsocks5socketengine/qsocks5socketengine.pro1
-rw-r--r--tests/auto/network/socket/qtcpserver/crashingServer/crashingServer.pro1
-rw-r--r--tests/auto/network/socket/qtcpserver/test/test.pro1
-rw-r--r--tests/auto/network/socket/qtcpsocket/stressTest/stressTest.pro1
-rw-r--r--tests/auto/network/socket/qtcpsocket/test/test.pro1
-rw-r--r--tests/auto/network/socket/qudpsocket/clientserver/clientserver.pro1
-rw-r--r--tests/auto/network/socket/qudpsocket/test/test.pro1
-rw-r--r--tests/auto/network/socket/qudpsocket/udpServer/udpServer.pro1
-rw-r--r--tests/auto/network/ssl/qsslcertificate/qsslcertificate.pro1
-rw-r--r--tests/auto/network/ssl/qsslcipher/qsslcipher.pro1
-rw-r--r--tests/auto/network/ssl/qsslerror/qsslerror.pro1
-rw-r--r--tests/auto/network/ssl/qsslkey/qsslkey.pro1
-rw-r--r--tests/auto/network/ssl/qsslsocket/qsslsocket.pro1
-rw-r--r--tests/auto/network/ssl/qsslsocket_onDemandCertificates_member/qsslsocket_onDemandCertificates_member.pro1
-rw-r--r--tests/auto/network/ssl/qsslsocket_onDemandCertificates_static/qsslsocket_onDemandCertificates_static.pro1
-rw-r--r--tests/auto/other/lancelot/tst_lancelot.cpp4
-rw-r--r--tests/auto/other/qaccessibility/tst_qaccessibility.cpp6
-rw-r--r--tests/auto/printsupport/kernel/qprinter/tst_qprinter.cpp31
-rw-r--r--tests/auto/printsupport/kernel/qprinterinfo/tst_qprinterinfo.cpp6
-rw-r--r--tests/auto/tools/rcc/tst_rcc.cpp6
-rw-r--r--tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp28
-rw-r--r--tests/auto/widgets/dialogs/qfilesystemmodel/tst_qfilesystemmodel.cpp6
-rw-r--r--tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp6
87 files changed, 1012 insertions, 127 deletions
diff --git a/tests/auto/corelib/global/qnumeric/tst_qnumeric.cpp b/tests/auto/corelib/global/qnumeric/tst_qnumeric.cpp
index 36e01a0ccd..79df4b7055 100644
--- a/tests/auto/corelib/global/qnumeric/tst_qnumeric.cpp
+++ b/tests/auto/corelib/global/qnumeric/tst_qnumeric.cpp
@@ -167,6 +167,9 @@ void tst_QNumeric::floatDistance()
QFETCH(float, val1);
QFETCH(float, val2);
QFETCH(quint32, expectedDistance);
+#ifdef Q_OS_BLACKBERRY
+ QEXPECT_FAIL("denormal", "See QTBUG-37094", Continue);
+#endif
QCOMPARE(qFloatDistance(val1, val2), expectedDistance);
}
@@ -211,6 +214,9 @@ void tst_QNumeric::floatDistance_double()
QFETCH(double, val1);
QFETCH(double, val2);
QFETCH(quint64, expectedDistance);
+#ifdef Q_OS_BLACKBERRY
+ QEXPECT_FAIL("denormal", "See QTBUG-37094", Continue);
+#endif
QCOMPARE(qFloatDistance(val1, val2), expectedDistance);
}
diff --git a/tests/auto/corelib/io/qloggingregistry/qtlogging.ini b/tests/auto/corelib/io/qloggingregistry/qtlogging.ini
index 63b384e36a..fd7a4f8c54 100644
--- a/tests/auto/corelib/io/qloggingregistry/qtlogging.ini
+++ b/tests/auto/corelib/io/qloggingregistry/qtlogging.ini
@@ -1,2 +1,2 @@
-[rules]
+[Rules]
*=true
diff --git a/tests/auto/corelib/io/qloggingregistry/tst_qloggingregistry.cpp b/tests/auto/corelib/io/qloggingregistry/tst_qloggingregistry.cpp
index b538525161..dc6f16828b 100644
--- a/tests/auto/corelib/io/qloggingregistry/tst_qloggingregistry.cpp
+++ b/tests/auto/corelib/io/qloggingregistry/tst_qloggingregistry.cpp
@@ -63,16 +63,16 @@ private slots:
{
//
// Logging configuration can be described
- // in an .ini file. [rules] is the
+ // in an .ini file. [Rules] is the
// default category, and optional ...
//
QLoggingSettingsParser parser;
- parser.setContent("[rules]\n"
+ parser.setContent("[Rules]\n"
"default=false\n"
"default=true");
QCOMPARE(parser.rules().size(), 2);
- parser.setContent("[rules]\n"
+ parser.setContent("[Rules]\n"
"default=false");
QCOMPARE(parser.rules().size(), 1);
@@ -115,7 +115,7 @@ private slots:
QFile file(dir.absoluteFilePath("qtlogging.ini"));
QVERIFY(file.open(QFile::WriteOnly | QFile::Text));
QTextStream out(&file);
- out << "[rules]\n";
+ out << "[Rules]\n";
out << "Digia.*=false\n";
file.close();
@@ -153,7 +153,7 @@ private slots:
// set Config rule
QLoggingSettingsParser parser;
- parser.setContent("[rules]\nDigia.*=false");
+ parser.setContent("[Rules]\nDigia.*=false");
registry->configRules=parser.rules();
registry->updateRules();
diff --git a/tests/auto/corelib/itemmodels/qitemselectionmodel/tst_qitemselectionmodel.cpp b/tests/auto/corelib/itemmodels/qitemselectionmodel/tst_qitemselectionmodel.cpp
index 9788b78771..9e3457a25a 100644
--- a/tests/auto/corelib/itemmodels/qitemselectionmodel/tst_qitemselectionmodel.cpp
+++ b/tests/auto/corelib/itemmodels/qitemselectionmodel/tst_qitemselectionmodel.cpp
@@ -43,6 +43,8 @@
#include <QtGui/QtGui>
+#include <algorithm>
+
class tst_QItemSelectionModel : public QObject
{
Q_OBJECT
@@ -1833,7 +1835,7 @@ void tst_QItemSelectionModel::selectedRows()
QModelIndexList selectedRowIndexes = selectionModel.selectedRows(column);
QCOMPARE(selectedRowIndexes.count(), expectedRows.count());
- qSort(selectedRowIndexes);
+ std::sort(selectedRowIndexes.begin(), selectedRowIndexes.end());
for (int l = 0; l < selectedRowIndexes.count(); ++l) {
QCOMPARE(selectedRowIndexes.at(l).row(), expectedRows.at(l));
QCOMPARE(selectedRowIndexes.at(l).column(), column);
@@ -1893,7 +1895,7 @@ void tst_QItemSelectionModel::selectedColumns()
QModelIndexList selectedColumnIndexes = selectionModel.selectedColumns(row);
QCOMPARE(selectedColumnIndexes.count(), expectedColumns.count());
- qSort(selectedColumnIndexes);
+ std::sort(selectedColumnIndexes.begin(), selectedColumnIndexes.end());
for (int l = 0; l < selectedColumnIndexes.count(); ++l) {
QCOMPARE(selectedColumnIndexes.at(l).column(), expectedColumns.at(l));
QCOMPARE(selectedColumnIndexes.at(l).row(), row);
diff --git a/tests/auto/corelib/json/tst_qtjson.cpp b/tests/auto/corelib/json/tst_qtjson.cpp
index aee5875613..6736a33405 100644
--- a/tests/auto/corelib/json/tst_qtjson.cpp
+++ b/tests/auto/corelib/json/tst_qtjson.cpp
@@ -360,6 +360,10 @@ void tst_QtJson::testNumbers_2()
QJsonDocument jDocument2(QJsonDocument::fromJson(ba));
for (int power = 0; power <= 1075; power++) {
floatValues_1[power] = jDocument2.object().value(QString::number(power)).toDouble();
+#ifdef Q_OS_BLACKBERRY
+ if (power >= 970)
+ QEXPECT_FAIL("", "See QTBUG-37066", Abort);
+#endif
QVERIFY2(floatValues[power] == floatValues_1[power], QString("floatValues[%1] != floatValues_1[%1]").arg(power).toLatin1());
}
@@ -1299,11 +1303,17 @@ void tst_QtJson::toJsonLargeNumericValues()
" ]\n"
"}\n";
+#ifdef Q_OS_BLACKBERRY
+ QEXPECT_FAIL("", "See QTBUG-37066", Continue);
+#endif
QCOMPARE(json, expected);
QJsonDocument doc;
doc.setObject(object);
json = doc.toJson();
+#ifdef Q_OS_BLACKBERRY
+ QEXPECT_FAIL("", "See QTBUG-37066", Continue);
+#endif
QCOMPARE(json, expected);
}
@@ -1705,6 +1715,10 @@ void tst_QtJson::parseNumbers()
json += numbers[i].str;
json += " ]";
QJsonDocument doc = QJsonDocument::fromJson(json);
+#ifdef Q_OS_BLACKBERRY
+ if (0 == QString::compare(numbers[i].str, "1.1e-308"))
+ QEXPECT_FAIL("", "See QTBUG-37066", Abort);
+#endif
QVERIFY(!doc.isEmpty());
QCOMPARE(doc.isArray(), true);
QCOMPARE(doc.isObject(), false);
diff --git a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp
index 47900204e7..acff6a55ba 100644
--- a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp
+++ b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp
@@ -49,12 +49,19 @@
# include <pthread.h>
#endif
+#include <algorithm>
+
// At least these specific versions of MSVC2010 has a severe performance problem with this file,
// taking about 1 hour to compile if the portion making use of variadic macros is enabled.
#if defined(_MSC_FULL_VER) && (_MSC_FULL_VER >= 160030319) && (_MSC_FULL_VER <= 160040219)
# define TST_QMETATYPE_BROKEN_COMPILER
#endif
+// mingw gcc 4.8 also takes way too long, letting the CI system abort the test
+#if defined(__MINGW32__)
+# define TST_QMETATYPE_BROKEN_COMPILER
+#endif
+
Q_DECLARE_METATYPE(QMetaType::Type)
class tst_QMetaType: public QObject
@@ -2148,7 +2155,7 @@ void tst_QMetaType::compareCustomType()
{
QFETCH(QVariantList, unsorted);
QFETCH(QVariantList, sorted);
- qSort(unsorted);
+ std::sort(unsorted.begin(), unsorted.end());
QCOMPARE(unsorted, sorted);
}
diff --git a/tests/auto/corelib/tools/qarraydata/qarraydata.pro b/tests/auto/corelib/tools/qarraydata/qarraydata.pro
index d13cc86cf5..d5fe08c009 100644
--- a/tests/auto/corelib/tools/qarraydata/qarraydata.pro
+++ b/tests/auto/corelib/tools/qarraydata/qarraydata.pro
@@ -1,6 +1,6 @@
TARGET = tst_qarraydata
-SOURCES += tst_qarraydata.cpp
-HEADERS += simplevector.h
+SOURCES += $$PWD/tst_qarraydata.cpp
+HEADERS += $$PWD/simplevector.h
QT = core testlib
CONFIG += testcase parallel_test
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/corelib/tools/qarraydata/simplevector.h b/tests/auto/corelib/tools/qarraydata/simplevector.h
index ea3892ec5c..40917c0172 100644
--- a/tests/auto/corelib/tools/qarraydata/simplevector.h
+++ b/tests/auto/corelib/tools/qarraydata/simplevector.h
@@ -269,9 +269,9 @@ public:
if (first == last)
return;
- T *const begin = d->begin();
- T *const where = begin + position;
- const T *const end = begin + d->size;
+ const iterator begin = d->begin();
+ const iterator where = begin + position;
+ const iterator end = begin + d->size;
if (d.needsDetach()
|| capacity() - size() < size_t(last - first)) {
SimpleVector detached(Data::allocate(
@@ -290,8 +290,8 @@ public:
if ((first >= where && first < end)
|| (last > where && last <= end)) {
// Copy overlapping data first and only then shuffle it into place
- T *start = d->begin() + position;
- T *middle = d->end();
+ iterator start = d->begin() + position;
+ iterator middle = d->end();
d->copyAppend(first, last);
std::rotate(start, middle, d->end());
diff --git a/tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp b/tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp
index f9ce7425f6..60b807a7bc 100644
--- a/tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp
+++ b/tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp
@@ -1559,7 +1559,7 @@ void tst_QArrayData::literals()
#endif
QVERIFY(v.isSharable());
- QCOMPARE((void*)(v.constBegin() + v.size()), (void*)v.constEnd());
+ QCOMPARE((void*)(const char*)(v.constBegin() + v.size()), (void*)(const char*)v.constEnd());
for (int i = 0; i < 10; ++i)
QCOMPARE(const_(v)[i], char('A' + i));
diff --git a/tests/auto/corelib/tools/qarraydata_strictiterators/qarraydata_strictiterators.pro b/tests/auto/corelib/tools/qarraydata_strictiterators/qarraydata_strictiterators.pro
new file mode 100644
index 0000000000..b01fbd84d1
--- /dev/null
+++ b/tests/auto/corelib/tools/qarraydata_strictiterators/qarraydata_strictiterators.pro
@@ -0,0 +1,3 @@
+include(../qarraydata/qarraydata.pro)
+TARGET = tst_qarraydata_strictiterators
+DEFINES += QT_STRICT_ITERATORS=1 tst_QArrayData=tst_QArrayData_StrictIterators
diff --git a/tests/auto/corelib/tools/qhash/qhash.pro b/tests/auto/corelib/tools/qhash/qhash.pro
index 630eabdb7c..1ed062ca91 100644
--- a/tests/auto/corelib/tools/qhash/qhash.pro
+++ b/tests/auto/corelib/tools/qhash/qhash.pro
@@ -1,5 +1,5 @@
CONFIG += testcase parallel_test
TARGET = tst_qhash
QT = core testlib
-SOURCES = tst_qhash.cpp
+SOURCES = $$PWD/tst_qhash.cpp
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/corelib/tools/qhash/tst_qhash.cpp b/tests/auto/corelib/tools/qhash/tst_qhash.cpp
index ddb72a3c32..73f8973245 100644
--- a/tests/auto/corelib/tools/qhash/tst_qhash.cpp
+++ b/tests/auto/corelib/tools/qhash/tst_qhash.cpp
@@ -44,6 +44,8 @@
#include <qhash.h>
#include <qmap.h>
+#include <algorithm>
+
class tst_QHash : public QObject
{
Q_OBJECT
@@ -1167,7 +1169,7 @@ template <typename T>
QList<T> sorted(const QList<T> &list)
{
QList<T> res = list;
- qSort(res);
+ std::sort(res.begin(), res.end());
return res;
}
diff --git a/tests/auto/corelib/tools/qhash_strictiterators/qhash_strictiterators.pro b/tests/auto/corelib/tools/qhash_strictiterators/qhash_strictiterators.pro
new file mode 100644
index 0000000000..715e9bf0c9
--- /dev/null
+++ b/tests/auto/corelib/tools/qhash_strictiterators/qhash_strictiterators.pro
@@ -0,0 +1,3 @@
+include(../qhash/qhash.pro)
+TARGET = tst_qhash_strictiterators
+DEFINES += QT_STRICT_ITERATORS tst_QHash=tst_QHash_StrictIterators
diff --git a/tests/auto/corelib/tools/qlist/qlist.pro b/tests/auto/corelib/tools/qlist/qlist.pro
index d3f8d83177..43c06e0ee1 100644
--- a/tests/auto/corelib/tools/qlist/qlist.pro
+++ b/tests/auto/corelib/tools/qlist/qlist.pro
@@ -2,5 +2,5 @@ CONFIG += testcase
CONFIG += parallel_test
TARGET = tst_qlist
QT = core testlib
-SOURCES = tst_qlist.cpp
+SOURCES = $$PWD/tst_qlist.cpp
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/corelib/tools/qlist_strictiterators/qlist_strictiterators.pro b/tests/auto/corelib/tools/qlist_strictiterators/qlist_strictiterators.pro
new file mode 100644
index 0000000000..e39ad38919
--- /dev/null
+++ b/tests/auto/corelib/tools/qlist_strictiterators/qlist_strictiterators.pro
@@ -0,0 +1,3 @@
+include(../qlist/qlist.pro)
+TARGET = tst_qlist_strictiterators
+DEFINES += QT_STRICT_ITERATORS tst_QList=tst_QList_StrictIterators
diff --git a/tests/auto/corelib/tools/qmap/qmap.pro b/tests/auto/corelib/tools/qmap/qmap.pro
index 5601bc528c..460b6654fb 100644
--- a/tests/auto/corelib/tools/qmap/qmap.pro
+++ b/tests/auto/corelib/tools/qmap/qmap.pro
@@ -1,5 +1,5 @@
CONFIG += testcase parallel_test
TARGET = tst_qmap
QT = core testlib
-SOURCES = tst_qmap.cpp
+SOURCES = $$PWD/tst_qmap.cpp
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/corelib/tools/qmap/tst_qmap.cpp b/tests/auto/corelib/tools/qmap/tst_qmap.cpp
index dea657f842..e812e5a337 100644
--- a/tests/auto/corelib/tools/qmap/tst_qmap.cpp
+++ b/tests/auto/corelib/tools/qmap/tst_qmap.cpp
@@ -39,8 +39,6 @@
**
****************************************************************************/
-#define QT_STRICT_ITERATORS
-
#include <qmap.h>
#include <QtTest/QtTest>
#include <QDebug>
diff --git a/tests/auto/corelib/tools/qmap_strictiterators/qmap_strictiterators.pro b/tests/auto/corelib/tools/qmap_strictiterators/qmap_strictiterators.pro
new file mode 100644
index 0000000000..6c1f4727c1
--- /dev/null
+++ b/tests/auto/corelib/tools/qmap_strictiterators/qmap_strictiterators.pro
@@ -0,0 +1,3 @@
+include(../qmap/qmap.pro)
+TARGET = tst_qmap_strictiterators
+DEFINES += QT_STRICT_ITERATORS tst_QMap=tst_QMap_StrictIterators
diff --git a/tests/auto/corelib/tools/qmargins/tst_qmargins.cpp b/tests/auto/corelib/tools/qmargins/tst_qmargins.cpp
index ec83740196..409a82aab2 100644
--- a/tests/auto/corelib/tools/qmargins/tst_qmargins.cpp
+++ b/tests/auto/corelib/tools/qmargins/tst_qmargins.cpp
@@ -51,6 +51,10 @@ private slots:
void getSetCheck();
void dataStreamCheck();
void operators();
+
+ void getSetCheckF();
+ void dataStreamCheckF();
+ void operatorsF();
};
// Testing get/set functions
@@ -123,6 +127,13 @@ void tst_QMargins::operators()
QCOMPARE(a, halved);
QCOMPARE(m1 + (-m1), QMargins());
+
+ QMargins m3 = QMargins(10, 11, 12, 13);
+ QCOMPARE(m3 + 1, QMargins(11, 12, 13, 14));
+ QCOMPARE(1 + m3, QMargins(11, 12, 13, 14));
+ QCOMPARE(m3 - 1, QMargins(9, 10, 11, 12));
+ QCOMPARE(+m3, QMargins(10, 11, 12, 13));
+ QCOMPARE(-m3, QMargins(-10, -11, -12, -13));
}
// Testing QDataStream operators
@@ -150,5 +161,102 @@ void tst_QMargins::dataStreamCheck()
}
}
+// Testing get/set functions
+void tst_QMargins::getSetCheckF()
+{
+ QMarginsF margins;
+ // int QMarginsF::width()
+ // void QMarginsF::setWidth(int)
+ margins.setLeft(1.1);
+ QCOMPARE(1.1, margins.left());
+ margins.setTop(2.2);
+ QCOMPARE(2.2, margins.top());
+ margins.setBottom(3.3);
+ QCOMPARE(3.3, margins.bottom());
+ margins.setRight(4.4);
+ QCOMPARE(4.4, margins.right());
+
+ margins = QMarginsF();
+ QVERIFY(margins.isNull());
+ margins.setLeft(5.5);
+ margins.setRight(5.5);
+ QVERIFY(!margins.isNull());
+ QCOMPARE(margins, QMarginsF(5.5, 0.0, 5.5, 0.0));
+}
+
+void tst_QMargins::operatorsF()
+{
+ const QMarginsF m1(12.1, 14.1, 16.1, 18.1);
+ const QMarginsF m2(2.1, 3.1, 4.1, 5.1);
+
+ const QMarginsF added = m1 + m2;
+ QCOMPARE(added, QMarginsF(14.2, 17.2, 20.2, 23.2));
+ QMarginsF a = m1;
+ a += m2;
+ QCOMPARE(a, added);
+
+ const QMarginsF subtracted = m1 - m2;
+ QCOMPARE(subtracted, QMarginsF(10.0, 11.0, 12.0, 13.0));
+ a = m1;
+ a -= m2;
+ QCOMPARE(a, subtracted);
+
+ QMarginsF h = m1;
+ h += 2.1;
+ QCOMPARE(h, QMarginsF(14.2, 16.2, 18.2, 20.2));
+ h -= 2.1;
+ QCOMPARE(h, m1);
+
+ const QMarginsF doubled = m1 * 2.0;
+ QCOMPARE(doubled, QMarginsF(24.2, 28.2, 32.2, 36.2));
+ QCOMPARE(2.0 * m1, doubled);
+ QCOMPARE(m1 * 2.0, doubled);
+
+ a = m1;
+ a *= 2.0;
+ QCOMPARE(a, doubled);
+
+ const QMarginsF halved = m1 / 2.0;
+ QCOMPARE(halved, QMarginsF(6.05, 7.05, 8.05, 9.05));
+
+ a = m1;
+ a /= 2.0;
+ QCOMPARE(a, halved);
+
+ QCOMPARE(m1 + (-m1), QMarginsF());
+
+ QMarginsF m3 = QMarginsF(10.3, 11.4, 12.5, 13.6);
+ QCOMPARE(m3 + 1.1, QMarginsF(11.4, 12.5, 13.6, 14.7));
+ QCOMPARE(1.1 + m3, QMarginsF(11.4, 12.5, 13.6, 14.7));
+ QCOMPARE(m3 - 1.1, QMarginsF(9.2, 10.3, 11.4, 12.5));
+ QCOMPARE(+m3, QMarginsF(10.3, 11.4, 12.5, 13.6));
+ QCOMPARE(-m3, QMarginsF(-10.3, -11.4, -12.5, -13.6));
+}
+
+// Testing QDataStream operators
+void tst_QMargins::dataStreamCheckF()
+{
+ QByteArray buffer;
+
+ // stream out
+ {
+ QMarginsF marginsOut(1.1, 2.2, 3.3, 4.4);
+ QDataStream streamOut(&buffer, QIODevice::WriteOnly);
+ streamOut << marginsOut;
+ }
+
+ // stream in & compare
+ {
+ QMarginsF marginsIn;
+ QDataStream streamIn(&buffer, QIODevice::ReadOnly);
+ streamIn >> marginsIn;
+
+ QCOMPARE(marginsIn.left(), 1.1);
+ QCOMPARE(marginsIn.top(), 2.2);
+ QCOMPARE(marginsIn.right(), 3.3);
+ QCOMPARE(marginsIn.bottom(), 4.4);
+ }
+}
+
QTEST_APPLESS_MAIN(tst_QMargins)
#include "tst_qmargins.moc"
diff --git a/tests/auto/corelib/tools/qrect/tst_qrect.cpp b/tests/auto/corelib/tools/qrect/tst_qrect.cpp
index 1b11673bd1..81222552ca 100644
--- a/tests/auto/corelib/tools/qrect/tst_qrect.cpp
+++ b/tests/auto/corelib/tools/qrect/tst_qrect.cpp
@@ -135,6 +135,7 @@ private slots:
void newMoveBottomRight_data();
void newMoveBottomRight();
void margins();
+ void marginsf();
void translate_data();
void translate();
@@ -3496,6 +3497,10 @@ void tst_QRect::margins()
QCOMPARE(added, margins + rectangle);
QCOMPARE(added, rectangle.marginsAdded(margins));
+ const QRect subtracted = rectangle - margins;
+ QCOMPARE(subtracted, QRect(QPoint(12, 13), QSize(44, 42)));
+ QCOMPARE(subtracted, rectangle.marginsRemoved(margins));
+
QRect a = rectangle;
a += margins;
QCOMPARE(added, a);
@@ -3506,6 +3511,30 @@ void tst_QRect::margins()
QCOMPARE(a, rectangle.marginsRemoved(margins));
}
+void tst_QRect::marginsf()
+{
+ const QRectF rectangle = QRectF(QPointF(10.5, 10.5), QSizeF(50.5 ,150.5));
+ const QMarginsF margins = QMarginsF(2.5, 3.5, 4.5, 5.5);
+
+ const QRectF added = rectangle + margins;
+ QCOMPARE(added, QRectF(QPointF(8.0, 7.0), QSizeF(57.5, 159.5)));
+ QCOMPARE(added, margins + rectangle);
+ QCOMPARE(added, rectangle.marginsAdded(margins));
+
+ const QRectF subtracted = rectangle - margins;
+ QCOMPARE(subtracted, QRectF(QPointF(13.0, 14.0), QSizeF(43.5, 141.5)));
+ QCOMPARE(subtracted, rectangle.marginsRemoved(margins));
+
+ QRectF a = rectangle;
+ a += margins;
+ QCOMPARE(added, a);
+
+ a = rectangle;
+ a -= margins;
+ QCOMPARE(a, QRectF(QPoint(13.0, 14.0), QSizeF(43.5, 141.5)));
+ QCOMPARE(a, rectangle.marginsRemoved(margins));
+}
+
void tst_QRect::translate_data()
{
QTest::addColumn<QRect>("r");
diff --git a/tests/auto/corelib/tools/qtextboundaryfinder/tst_qtextboundaryfinder.cpp b/tests/auto/corelib/tools/qtextboundaryfinder/tst_qtextboundaryfinder.cpp
index 4245fe1418..2c0967da1c 100644
--- a/tests/auto/corelib/tools/qtextboundaryfinder/tst_qtextboundaryfinder.cpp
+++ b/tests/auto/corelib/tools/qtextboundaryfinder/tst_qtextboundaryfinder.cpp
@@ -47,6 +47,8 @@
#include <qdebug.h>
#include <qlist.h>
+#include <algorithm>
+
class tst_QTextBoundaryFinder : public QObject
{
Q_OBJECT
@@ -203,7 +205,7 @@ static void doTestData(const QString &testString, const QList<int> &expectedBrea
// test toPreviousBoundary()
{
QList<int> expectedBreakPositionsRev = expectedBreakPositions;
- qSort(expectedBreakPositionsRev.begin(), expectedBreakPositionsRev.end(), qGreater<int>());
+ std::sort(expectedBreakPositionsRev.begin(), expectedBreakPositionsRev.end(), qGreater<int>());
QList<int> actualBreakPositions;
boundaryFinder.toEnd();
diff --git a/tests/auto/corelib/tools/qvector/qvector.pro b/tests/auto/corelib/tools/qvector/qvector.pro
index 98fd2f2120..22edde3412 100644
--- a/tests/auto/corelib/tools/qvector/qvector.pro
+++ b/tests/auto/corelib/tools/qvector/qvector.pro
@@ -1,5 +1,5 @@
CONFIG += testcase parallel_test
TARGET = tst_qvector
QT = core testlib
-SOURCES = tst_qvector.cpp
+SOURCES = $$PWD/tst_qvector.cpp
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/corelib/tools/qvector_strictiterators/qvector_strictiterators.pro b/tests/auto/corelib/tools/qvector_strictiterators/qvector_strictiterators.pro
new file mode 100644
index 0000000000..d6cad86aac
--- /dev/null
+++ b/tests/auto/corelib/tools/qvector_strictiterators/qvector_strictiterators.pro
@@ -0,0 +1,3 @@
+include(../qvector/qvector.pro)
+TARGET = tst_qvector_strictiterators
+DEFINES += QT_STRICT_ITERATORS=1 tst_QVector=tst_QVector_StrictIterators
diff --git a/tests/auto/corelib/tools/tools.pro b/tests/auto/corelib/tools/tools.pro
index 996879ea69..d5c9e50190 100644
--- a/tests/auto/corelib/tools/tools.pro
+++ b/tests/auto/corelib/tools/tools.pro
@@ -2,6 +2,7 @@ TEMPLATE=subdirs
SUBDIRS=\
qalgorithms \
qarraydata \
+ qarraydata_strictiterators \
qbitarray \
qbytearray \
qbytearraylist \
@@ -20,11 +21,14 @@ SUBDIRS=\
qexplicitlyshareddatapointer \
qfreelist \
qhash \
+ qhash_strictiterators \
qline \
qlinkedlist \
qlist \
+ qlist_strictiterators \
qlocale \
qmap \
+ qmap_strictiterators \
qmargins \
qmessageauthenticationcode \
qpair \
@@ -54,4 +58,5 @@ SUBDIRS=\
qtimezone \
qtimeline \
qvarlengtharray \
- qvector
+ qvector \
+ qvector_strictiterators
diff --git a/tests/auto/gui/image/qicon/tst_qicon.cpp b/tests/auto/gui/image/qicon/tst_qicon.cpp
index bfe2fbc9f7..0f642bcc10 100644
--- a/tests/auto/gui/image/qicon/tst_qicon.cpp
+++ b/tests/auto/gui/image/qicon/tst_qicon.cpp
@@ -45,6 +45,8 @@
#include <qicon.h>
#include <qiconengine.h>
+#include <algorithm>
+
class tst_QIcon : public QObject
{
@@ -421,7 +423,7 @@ void tst_QIcon::availableSizes()
QList<QSize> availableSizes = icon.availableSizes();
QCOMPARE(availableSizes.size(), 3);
- qSort(availableSizes.begin(), availableSizes.end(), sizeLess);
+ std::sort(availableSizes.begin(), availableSizes.end(), sizeLess);
QCOMPARE(availableSizes.at(0), QSize(32,32));
QCOMPARE(availableSizes.at(1), QSize(64,64));
QCOMPARE(availableSizes.at(2), QSize(128,128));
diff --git a/tests/auto/gui/image/qimagereader/tst_qimagereader.cpp b/tests/auto/gui/image/qimagereader/tst_qimagereader.cpp
index b684231e10..5decbc86fc 100644
--- a/tests/auto/gui/image/qimagereader/tst_qimagereader.cpp
+++ b/tests/auto/gui/image/qimagereader/tst_qimagereader.cpp
@@ -55,6 +55,8 @@
#include <QTimer>
#include <QTemporaryDir>
+#include <algorithm>
+
typedef QMap<QString, QString> QStringMap;
typedef QList<int> QIntList;
Q_DECLARE_METATYPE(QImage::Format)
@@ -559,7 +561,7 @@ void tst_QImageReader::supportedFormats()
{
QList<QByteArray> formats = QImageReader::supportedImageFormats();
QList<QByteArray> sortedFormats = formats;
- qSort(sortedFormats);
+ std::sort(sortedFormats.begin(), sortedFormats.end());
// check that the list is sorted
QCOMPARE(formats, sortedFormats);
@@ -576,7 +578,7 @@ void tst_QImageReader::supportedMimeTypes()
{
QList<QByteArray> mimeTypes = QImageReader::supportedMimeTypes();
QList<QByteArray> sortedMimeTypes = mimeTypes;
- qSort(sortedMimeTypes);
+ std::sort(sortedMimeTypes.begin(), sortedMimeTypes.end());
// check that the list is sorted
QCOMPARE(mimeTypes, sortedMimeTypes);
diff --git a/tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp b/tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp
index b10b5704c3..c9f8a1f681 100644
--- a/tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp
+++ b/tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp
@@ -57,6 +57,8 @@
# include <unistd.h>
#endif
+#include <algorithm>
+
typedef QMap<QString, QString> QStringMap;
typedef QList<int> QIntList;
Q_DECLARE_METATYPE(QImageWriter::ImageWriterError)
@@ -342,7 +344,7 @@ void tst_QImageWriter::supportedFormats()
{
QList<QByteArray> formats = QImageWriter::supportedImageFormats();
QList<QByteArray> sortedFormats = formats;
- qSort(sortedFormats);
+ std::sort(sortedFormats.begin(), sortedFormats.end());
// check that the list is sorted
QCOMPARE(formats, sortedFormats);
@@ -359,7 +361,7 @@ void tst_QImageWriter::supportedMimeTypes()
{
QList<QByteArray> mimeTypes = QImageWriter::supportedMimeTypes();
QList<QByteArray> sortedMimeTypes = mimeTypes;
- qSort(sortedMimeTypes);
+ std::sort(sortedMimeTypes.begin(), sortedMimeTypes.end());
// check that the list is sorted
QCOMPARE(mimeTypes, sortedMimeTypes);
diff --git a/tests/auto/gui/text/qfontdatabase/FreeMono.ttf b/tests/auto/gui/text/qfontdatabase/FreeMono.ttf
new file mode 100644
index 0000000000..d7ce52ddc7
--- /dev/null
+++ b/tests/auto/gui/text/qfontdatabase/FreeMono.ttf
Binary files differ
diff --git a/tests/auto/gui/text/qfontdatabase/LED_REAL.TTF b/tests/auto/gui/text/qfontdatabase/LED_REAL.TTF
deleted file mode 100644
index f87ea95e0e..0000000000
--- a/tests/auto/gui/text/qfontdatabase/LED_REAL.TTF
+++ /dev/null
Binary files differ
diff --git a/tests/auto/gui/text/qfontdatabase/LED_REAL_readme.txt b/tests/auto/gui/text/qfontdatabase/LED_REAL_readme.txt
deleted file mode 100644
index 06a5b40313..0000000000
--- a/tests/auto/gui/text/qfontdatabase/LED_REAL_readme.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-Font: LED Real (led_real.ttf)
-Created By: Matthew Welch
-E-Mail: daffy-duck@worldnet.att.net
-Web Address: http://home.att.net/~daffy-duck
- (PGP public key available here)
-
-LED Real, like all of my fonts, is free. You can use it for most
-personal or business uses you'd like, and I ask for no money. I
-would, however, like to hear from you. If you use my fonts for
-something please send me a postcard or e-mail letting me know how
-you used it. Send me a copy if you can or let me know where I can
-find your work.
-
-You may use this font for graphical or printed work, but you may not
-sell it or include it in a collection of fonts (on CD or otherwise)
-being sold. You can redistribute this font as long as you charge
-nothing to receive it. If you redistribute it include this text file
-with it as is (without modifications).
-
-If you use this font for commercial purposes please credit me in
-at least some little way.
-
-About the font:
-
-Unlike most LED/LCD style fonts mine could be recreated with an
-actual LED. I created this font working from memories of the good
-old Speak and Spell display. Since I don't have an actual Speak
-and Spell to work from I had to just do as well as I could in its
-spirit. Be warned that some characters look just like others. The
-( and the <, for instance. Also C and [. Most of these will be
-pretty clear in context. To see all the sections of the LED "lit
-up" at once use character 127 (hold down alt and type 0127 on the
-numeric keypad). This font is, of course, monospaced.
-
diff --git a/tests/auto/gui/text/qfontdatabase/tst_qfontdatabase.cpp b/tests/auto/gui/text/qfontdatabase/tst_qfontdatabase.cpp
index 28db0ba291..fa5c81a2f0 100644
--- a/tests/auto/gui/text/qfontdatabase/tst_qfontdatabase.cpp
+++ b/tests/auto/gui/text/qfontdatabase/tst_qfontdatabase.cpp
@@ -83,7 +83,7 @@ private:
};
tst_QFontDatabase::tst_QFontDatabase()
- : m_testFont(QFINDTESTDATA("LED_REAL.TTF"))
+ : m_testFont(QFINDTESTDATA("FreeMono.ttf"))
{
}
diff --git a/tests/auto/gui/text/qfontmetrics/tst_qfontmetrics.cpp b/tests/auto/gui/text/qfontmetrics/tst_qfontmetrics.cpp
index 7adaac9fac..d3f5ce4a7d 100644
--- a/tests/auto/gui/text/qfontmetrics/tst_qfontmetrics.cpp
+++ b/tests/auto/gui/text/qfontmetrics/tst_qfontmetrics.cpp
@@ -100,6 +100,12 @@ void tst_QFontMetrics::same()
const QString text = QLatin1String("Some stupid STRING");
QCOMPARE(fm.size(0, text), fm.size(0, text)) ;
+ for (int i = 10; i <= 32; ++i) {
+ font.setPixelSize(i);
+ QFontMetrics fm1(font);
+ QCOMPARE(fm1.size(0, text), fm1.size(0, text));
+ }
+
{
QImage image;
QFontMetrics fm2(font, &image);
diff --git a/tests/auto/network/access/access.pro b/tests/auto/network/access/access.pro
index 3139f19f7b..bc76190e30 100644
--- a/tests/auto/network/access/access.pro
+++ b/tests/auto/network/access/access.pro
@@ -7,6 +7,7 @@ SUBDIRS=\
qnetworkrequest \
qhttpnetworkconnection \
qnetworkreply \
+ spdy \
qnetworkcachemetadata \
qftp \
qhttpnetworkreply \
diff --git a/tests/auto/network/access/qabstractnetworkcache/qabstractnetworkcache.pro b/tests/auto/network/access/qabstractnetworkcache/qabstractnetworkcache.pro
index 2b5ffab088..4772af9af9 100644
--- a/tests/auto/network/access/qabstractnetworkcache/qabstractnetworkcache.pro
+++ b/tests/auto/network/access/qabstractnetworkcache/qabstractnetworkcache.pro
@@ -6,4 +6,3 @@ SOURCES += tst_qabstractnetworkcache.cpp
TESTDATA += tests/*
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/access/qftp/qftp.pro b/tests/auto/network/access/qftp/qftp.pro
index 917cd10837..c56dfa2b6e 100644
--- a/tests/auto/network/access/qftp/qftp.pro
+++ b/tests/auto/network/access/qftp/qftp.pro
@@ -15,4 +15,3 @@ wince*: {
}
CONFIG+=insignificant_test # QTBUG-15111: uses live qt-test-server, inherently unstable
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/access/qhttpnetworkconnection/qhttpnetworkconnection.pro b/tests/auto/network/access/qhttpnetworkconnection/qhttpnetworkconnection.pro
index 5f5966e90d..fa19fa7ac9 100644
--- a/tests/auto/network/access/qhttpnetworkconnection/qhttpnetworkconnection.pro
+++ b/tests/auto/network/access/qhttpnetworkconnection/qhttpnetworkconnection.pro
@@ -5,4 +5,3 @@ SOURCES += tst_qhttpnetworkconnection.cpp
requires(contains(QT_CONFIG,private_tests))
QT = core-private network-private testlib
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/access/qhttpnetworkreply/qhttpnetworkreply.pro b/tests/auto/network/access/qhttpnetworkreply/qhttpnetworkreply.pro
index 2eb0944e44..f5dbc7f010 100644
--- a/tests/auto/network/access/qhttpnetworkreply/qhttpnetworkreply.pro
+++ b/tests/auto/network/access/qhttpnetworkreply/qhttpnetworkreply.pro
@@ -5,4 +5,3 @@ SOURCES += tst_qhttpnetworkreply.cpp
requires(contains(QT_CONFIG,private_tests))
QT = core-private network-private testlib
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/access/qnetworkaccessmanager/qnetworkaccessmanager.pro b/tests/auto/network/access/qnetworkaccessmanager/qnetworkaccessmanager.pro
index e6354d0479..8b3de90f54 100644
--- a/tests/auto/network/access/qnetworkaccessmanager/qnetworkaccessmanager.pro
+++ b/tests/auto/network/access/qnetworkaccessmanager/qnetworkaccessmanager.pro
@@ -3,4 +3,3 @@ CONFIG += parallel_test
TARGET = tst_qnetworkaccessmanager
SOURCES += tst_qnetworkaccessmanager.cpp
QT = core network testlib
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/access/qnetworkcachemetadata/qnetworkcachemetadata.pro b/tests/auto/network/access/qnetworkcachemetadata/qnetworkcachemetadata.pro
index 7342252963..d308c286fb 100644
--- a/tests/auto/network/access/qnetworkcachemetadata/qnetworkcachemetadata.pro
+++ b/tests/auto/network/access/qnetworkcachemetadata/qnetworkcachemetadata.pro
@@ -3,4 +3,3 @@ CONFIG += parallel_test
TARGET = tst_qnetworkcachemetadata
QT = core network testlib
SOURCES += tst_qnetworkcachemetadata.cpp
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/access/qnetworkcookie/qnetworkcookie.pro b/tests/auto/network/access/qnetworkcookie/qnetworkcookie.pro
index edbc972011..ba3ece8576 100644
--- a/tests/auto/network/access/qnetworkcookie/qnetworkcookie.pro
+++ b/tests/auto/network/access/qnetworkcookie/qnetworkcookie.pro
@@ -4,4 +4,3 @@ TARGET = tst_qnetworkcookie
SOURCES += tst_qnetworkcookie.cpp
QT = core network testlib
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/access/qnetworkcookiejar/qnetworkcookiejar.pro b/tests/auto/network/access/qnetworkcookiejar/qnetworkcookiejar.pro
index 2fc1485a50..bb39f83af6 100644
--- a/tests/auto/network/access/qnetworkcookiejar/qnetworkcookiejar.pro
+++ b/tests/auto/network/access/qnetworkcookiejar/qnetworkcookiejar.pro
@@ -4,4 +4,3 @@ TARGET = tst_qnetworkcookiejar
SOURCES += tst_qnetworkcookiejar.cpp
QT = core core-private network network-private testlib
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/access/qnetworkdiskcache/qnetworkdiskcache.pro b/tests/auto/network/access/qnetworkdiskcache/qnetworkdiskcache.pro
index 57f9c0534a..7e26abbe08 100644
--- a/tests/auto/network/access/qnetworkdiskcache/qnetworkdiskcache.pro
+++ b/tests/auto/network/access/qnetworkdiskcache/qnetworkdiskcache.pro
@@ -3,4 +3,3 @@ CONFIG += parallel_test
TARGET = tst_qnetworkdiskcache
QT = core network testlib
SOURCES += tst_qnetworkdiskcache.cpp
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/access/qnetworkreply/echo/echo.pro b/tests/auto/network/access/qnetworkreply/echo/echo.pro
index d634c677c6..1f05fd9a54 100644
--- a/tests/auto/network/access/qnetworkreply/echo/echo.pro
+++ b/tests/auto/network/access/qnetworkreply/echo/echo.pro
@@ -2,4 +2,3 @@ SOURCES += main.cpp
QT = core
CONFIG -= app_bundle debug_and_release_target
CONFIG += console
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/access/qnetworkreply/test/test.pro b/tests/auto/network/access/qnetworkreply/test/test.pro
index cc58843eef..b683f620df 100644
--- a/tests/auto/network/access/qnetworkreply/test/test.pro
+++ b/tests/auto/network/access/qnetworkreply/test/test.pro
@@ -14,4 +14,3 @@ contains(QT_CONFIG,xcb): CONFIG+=insignificant_test # unstable, QTBUG-21102
win32:CONFIG += insignificant_test # QTBUG-24226
TEST_HELPER_INSTALLS = ../echo/echo
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/access/qnetworkrequest/qnetworkrequest.pro b/tests/auto/network/access/qnetworkrequest/qnetworkrequest.pro
index bbcb9226aa..0470d96b8c 100644
--- a/tests/auto/network/access/qnetworkrequest/qnetworkrequest.pro
+++ b/tests/auto/network/access/qnetworkrequest/qnetworkrequest.pro
@@ -4,4 +4,3 @@ TARGET = tst_qnetworkrequest
SOURCES += tst_qnetworkrequest.cpp
QT = core network testlib
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/access/spdy/spdy.pro b/tests/auto/network/access/spdy/spdy.pro
new file mode 100644
index 0000000000..6bfc6d84e0
--- /dev/null
+++ b/tests/auto/network/access/spdy/spdy.pro
@@ -0,0 +1,7 @@
+CONFIG += testcase
+CONFIG += parallel_test
+TARGET = tst_spdy
+SOURCES += tst_spdy.cpp
+
+QT = core core-private network network-private testlib
+DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/access/spdy/tst_spdy.cpp b/tests/auto/network/access/spdy/tst_spdy.cpp
new file mode 100644
index 0000000000..15c0831590
--- /dev/null
+++ b/tests/auto/network/access/spdy/tst_spdy.cpp
@@ -0,0 +1,696 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 BlackBerry Limited. All rights reserved.
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtTest/QtTest>
+#include <QtNetwork/QNetworkAccessManager>
+#include <QtNetwork/QNetworkReply>
+#include <QtNetwork/QHttpPart>
+#include <QtNetwork/QHttpMultiPart>
+#include <QtNetwork/QNetworkProxy>
+#include <QtNetwork/QAuthenticator>
+#ifdef QT_BUILD_INTERNAL
+#include <QtNetwork/private/qsslsocket_openssl_p.h>
+#endif // QT_BUILD_INTERNAL
+
+#include "../../../network-settings.h"
+
+Q_DECLARE_METATYPE(QAuthenticator*)
+
+class tst_Spdy: public QObject
+{
+ Q_OBJECT
+
+public:
+ tst_Spdy();
+ ~tst_Spdy();
+
+private Q_SLOTS:
+ void initTestCase();
+ void settingsAndNegotiation_data();
+ void settingsAndNegotiation();
+ void download_data();
+ void download();
+ void headerFields();
+ void upload_data();
+ void upload();
+ void errors_data();
+ void errors();
+ void multipleRequests_data();
+ void multipleRequests();
+
+private:
+ QNetworkAccessManager m_manager;
+ int m_multipleRequestsCount;
+ int m_multipleRepliesFinishedCount;
+
+protected Q_SLOTS:
+ void proxyAuthenticationRequired(const QNetworkProxy &, QAuthenticator *authenticator);
+ void multipleRequestsFinishedSlot();
+};
+
+tst_Spdy::tst_Spdy()
+{
+#if defined(QT_BUILD_INTERNAL) && !defined(QT_NO_SSL) && OPENSSL_VERSION_NUMBER >= 0x1000100fL && !defined(OPENSSL_NO_TLSEXT) && !defined(OPENSSL_NO_NEXTPROTONEG)
+ qRegisterMetaType<QNetworkReply *>(); // for QSignalSpy
+ qRegisterMetaType<QAuthenticator *>();
+
+ connect(&m_manager, SIGNAL(proxyAuthenticationRequired(const QNetworkProxy &, QAuthenticator *)),
+ this, SLOT(proxyAuthenticationRequired(const QNetworkProxy &, QAuthenticator *)));
+#else
+ QSKIP("Qt built withouth OpenSSL, or the OpenSSL version is too old");
+#endif // defined(QT_BUILD_INTERNAL) && !defined(QT_NO_SSL) ...
+}
+
+tst_Spdy::~tst_Spdy()
+{
+}
+
+void tst_Spdy::initTestCase()
+{
+ QVERIFY(QtNetworkSettings::verifyTestNetworkSettings());
+}
+
+void tst_Spdy::settingsAndNegotiation_data()
+{
+ QTest::addColumn<QUrl>("url");
+ QTest::addColumn<bool>("setAttribute");
+ QTest::addColumn<bool>("enabled");
+ QTest::addColumn<QByteArray>("expectedProtocol");
+ QTest::addColumn<QByteArray>("expectedContent");
+
+ QTest::newRow("default-settings") << QUrl("https://" + QtNetworkSettings::serverName()
+ + "/qtest/cgi-bin/echo.cgi?1")
+ << false << false << QByteArray()
+ << QByteArray("1");
+
+ QTest::newRow("http-url") << QUrl("http://" + QtNetworkSettings::serverName()
+ + "/qtest/cgi-bin/echo.cgi?1")
+ << true << true << QByteArray()
+ << QByteArray("1");
+
+ QTest::newRow("spdy-disabled") << QUrl("https://" + QtNetworkSettings::serverName()
+ + "/qtest/cgi-bin/echo.cgi?1")
+ << true << false << QByteArray()
+ << QByteArray("1");
+
+#ifndef QT_NO_OPENSSL
+ QTest::newRow("spdy-enabled") << QUrl("https://" + QtNetworkSettings::serverName()
+ + "/qtest/cgi-bin/echo.cgi?1")
+ << true << true << QByteArray(QSslConfiguration::NextProtocolSpdy3_0)
+ << QByteArray("1");
+#endif // QT_NO_OPENSSL
+}
+
+void tst_Spdy::settingsAndNegotiation()
+{
+ QFETCH(QUrl, url);
+ QFETCH(bool, setAttribute);
+ QFETCH(bool, enabled);
+
+ QNetworkRequest request(url);
+
+ if (setAttribute) {
+ request.setAttribute(QNetworkRequest::SpdyAllowedAttribute, QVariant(enabled));
+ }
+
+ QNetworkReply *reply = m_manager.get(request);
+ reply->ignoreSslErrors();
+ QSignalSpy metaDataChangedSpy(reply, SIGNAL(metaDataChanged()));
+ QSignalSpy readyReadSpy(reply, SIGNAL(readyRead()));
+ QSignalSpy finishedSpy(reply, SIGNAL(finished()));
+
+ QObject::connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()));
+ QSignalSpy finishedManagerSpy(&m_manager, SIGNAL(finished(QNetworkReply*)));
+
+ QTestEventLoop::instance().enterLoop(15);
+ QVERIFY(!QTestEventLoop::instance().timeout());
+
+ QFETCH(QByteArray, expectedProtocol);
+
+#ifndef QT_NO_OPENSSL
+ bool expectedSpdyUsed = (expectedProtocol == QSslConfiguration::NextProtocolSpdy3_0)
+ ? true : false;
+ QCOMPARE(reply->attribute(QNetworkRequest::SpdyWasUsedAttribute).toBool(), expectedSpdyUsed);
+#endif // QT_NO_OPENSSL
+
+ QCOMPARE(metaDataChangedSpy.count(), 1);
+ QCOMPARE(finishedSpy.count(), 1);
+
+ int statusCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
+ QCOMPARE(statusCode, 200);
+
+ QByteArray content = reply->readAll();
+
+ QFETCH(QByteArray, expectedContent);
+ QCOMPARE(expectedContent, content);
+
+#ifndef QT_NO_OPENSSL
+ QSslConfiguration::NextProtocolNegotiationStatus expectedStatus =
+ (expectedProtocol.isEmpty())
+ ? QSslConfiguration::NextProtocolNegotiationNone
+ : QSslConfiguration::NextProtocolNegotiationNegotiated;
+ QCOMPARE(reply->sslConfiguration().nextProtocolNegotiationStatus(),
+ expectedStatus);
+
+ QCOMPARE(reply->sslConfiguration().nextNegotiatedProtocol(), expectedProtocol);
+#endif // QT_NO_OPENSSL
+}
+
+void tst_Spdy::proxyAuthenticationRequired(const QNetworkProxy &/*proxy*/,
+ QAuthenticator *authenticator)
+{
+ authenticator->setUser("qsockstest");
+ authenticator->setPassword("password");
+}
+
+void tst_Spdy::download_data()
+{
+ QTest::addColumn<QUrl>("url");
+ QTest::addColumn<QString>("fileName");
+ QTest::addColumn<QNetworkProxy>("proxy");
+
+ QTest::newRow("mediumfile") << QUrl("https://" + QtNetworkSettings::serverName()
+ + "/qtest/rfc3252.txt")
+ << QFINDTESTDATA("../qnetworkreply/rfc3252.txt")
+ << QNetworkProxy();
+
+ QHostInfo hostInfo = QHostInfo::fromName(QtNetworkSettings::serverName());
+ QString proxyserver = hostInfo.addresses().first().toString();
+
+ QTest::newRow("mediumfile-http-proxy") << QUrl("https://" + QtNetworkSettings::serverName()
+ + "/qtest/rfc3252.txt")
+ << QFINDTESTDATA("../qnetworkreply/rfc3252.txt")
+ << QNetworkProxy(QNetworkProxy::HttpProxy, proxyserver, 3128);
+
+ QTest::newRow("mediumfile-http-proxy-auth") << QUrl("https://" + QtNetworkSettings::serverName()
+ + "/qtest/rfc3252.txt")
+ << QFINDTESTDATA("../qnetworkreply/rfc3252.txt")
+ << QNetworkProxy(QNetworkProxy::HttpProxy,
+ proxyserver, 3129);
+
+ QTest::newRow("mediumfile-socks-proxy") << QUrl("https://" + QtNetworkSettings::serverName()
+ + "/qtest/rfc3252.txt")
+ << QFINDTESTDATA("../qnetworkreply/rfc3252.txt")
+ << QNetworkProxy(QNetworkProxy::Socks5Proxy, proxyserver, 1080);
+
+ QTest::newRow("mediumfile-socks-proxy-auth") << QUrl("https://" + QtNetworkSettings::serverName()
+ + "/qtest/rfc3252.txt")
+ << QFINDTESTDATA("../qnetworkreply/rfc3252.txt")
+ << QNetworkProxy(QNetworkProxy::Socks5Proxy,
+ proxyserver, 1081);
+
+ QTest::newRow("bigfile") << QUrl("https://" + QtNetworkSettings::serverName()
+ + "/qtest/bigfile")
+ << QFINDTESTDATA("../qnetworkreply/bigfile")
+ << QNetworkProxy();
+}
+
+void tst_Spdy::download()
+{
+ QFETCH(QUrl, url);
+ QFETCH(QString, fileName);
+ QFETCH(QNetworkProxy, proxy);
+
+ QNetworkRequest request(url);
+ request.setAttribute(QNetworkRequest::SpdyAllowedAttribute, true);
+
+ if (proxy.type() != QNetworkProxy::DefaultProxy) {
+ m_manager.setProxy(proxy);
+ }
+ QNetworkReply *reply = m_manager.get(request);
+ reply->ignoreSslErrors();
+ QSignalSpy metaDataChangedSpy(reply, SIGNAL(metaDataChanged()));
+ QSignalSpy downloadProgressSpy(reply, SIGNAL(downloadProgress(qint64, qint64)));
+ QSignalSpy readyReadSpy(reply, SIGNAL(readyRead()));
+ QSignalSpy finishedSpy(reply, SIGNAL(finished()));
+
+ QObject::connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()));
+ QSignalSpy finishedManagerSpy(&m_manager, SIGNAL(finished(QNetworkReply*)));
+ QSignalSpy proxyAuthRequiredSpy(&m_manager, SIGNAL(
+ proxyAuthenticationRequired(const QNetworkProxy &,
+ QAuthenticator *)));
+
+ QTestEventLoop::instance().enterLoop(15);
+ QVERIFY(!QTestEventLoop::instance().timeout());
+
+ QCOMPARE(finishedManagerSpy.count(), 1);
+ QCOMPARE(metaDataChangedSpy.count(), 1);
+ QCOMPARE(finishedSpy.count(), 1);
+ QVERIFY(downloadProgressSpy.count() > 0);
+ QVERIFY(readyReadSpy.count() > 0);
+
+ QVERIFY(proxyAuthRequiredSpy.count() <= 1);
+
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
+ QCOMPARE(reply->attribute(QNetworkRequest::SpdyWasUsedAttribute).toBool(), true);
+ QCOMPARE(reply->attribute(QNetworkRequest::ConnectionEncryptedAttribute).toBool(), true);
+ QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200);
+
+ QFile file(fileName);
+ QVERIFY(file.open(QIODevice::ReadOnly));
+
+ qint64 contentLength = reply->header(QNetworkRequest::ContentLengthHeader).toLongLong();
+ qint64 expectedContentLength = file.bytesAvailable();
+ QCOMPARE(contentLength, expectedContentLength);
+
+ QByteArray expectedContent = file.readAll();
+ QByteArray content = reply->readAll();
+ QCOMPARE(content, expectedContent);
+
+ reply->deleteLater();
+ m_manager.setProxy(QNetworkProxy()); // reset
+}
+
+void tst_Spdy::headerFields()
+{
+ QUrl url(QUrl("https://" + QtNetworkSettings::serverName()));
+ QNetworkRequest request(url);
+ request.setAttribute(QNetworkRequest::SpdyAllowedAttribute, true);
+
+ QNetworkReply *reply = m_manager.get(request);
+ reply->ignoreSslErrors();
+
+ QObject::connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()));
+
+ QTestEventLoop::instance().enterLoop(15);
+ QVERIFY(!QTestEventLoop::instance().timeout());
+
+ QCOMPARE(reply->rawHeader("Content-Type"), QByteArray("text/html"));
+ QVERIFY(reply->rawHeader("Content-Length").toInt() > 0);
+ QVERIFY(reply->rawHeader("server").contains("Apache"));
+
+ QCOMPARE(reply->header(QNetworkRequest::ContentTypeHeader).toByteArray(), QByteArray("text/html"));
+ QVERIFY(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong() > 0);
+ QVERIFY(reply->header(QNetworkRequest::LastModifiedHeader).toDateTime().isValid());
+ QVERIFY(reply->header(QNetworkRequest::ServerHeader).toByteArray().contains("Apache"));
+}
+
+static inline QByteArray md5sum(const QByteArray &data)
+{
+ return QCryptographicHash::hash(data, QCryptographicHash::Md5).toHex().append('\n');
+}
+
+void tst_Spdy::upload_data()
+{
+ QTest::addColumn<QUrl>("url");
+ QTest::addColumn<QByteArray>("data");
+ QTest::addColumn<QByteArray>("uploadMethod");
+ QTest::addColumn<QObject *>("uploadObject");
+ QTest::addColumn<QByteArray>("md5sum");
+ QTest::addColumn<QNetworkProxy>("proxy");
+
+
+ // 1. test uploading of byte arrays
+
+ QUrl md5Url("https://" + QtNetworkSettings::serverName() + "/qtest/cgi-bin/md5sum.cgi");
+
+ QByteArray data;
+ data = "";
+ QObject *dummyObject = 0;
+ QTest::newRow("empty") << md5Url << data << QByteArray("POST") << dummyObject
+ << md5sum(data) << QNetworkProxy();
+
+ data = "This is a normal message.";
+ QTest::newRow("generic") << md5Url << data << QByteArray("POST") << dummyObject
+ << md5sum(data) << QNetworkProxy();
+
+ data = "This is a message to show that Qt rocks!\r\n\n";
+ QTest::newRow("small") << md5Url << data << QByteArray("POST") << dummyObject
+ << md5sum(data) << QNetworkProxy();
+
+ data = QByteArray("abcd\0\1\2\abcd",12);
+ QTest::newRow("with-nul") << md5Url << data << QByteArray("POST") << dummyObject
+ << md5sum(data) << QNetworkProxy();
+
+ data = QByteArray(4097, '\4');
+ QTest::newRow("4k+1") << md5Url << data << QByteArray("POST") << dummyObject
+ << md5sum(data)<< QNetworkProxy();
+
+ QHostInfo hostInfo = QHostInfo::fromName(QtNetworkSettings::serverName());
+ QString proxyserver = hostInfo.addresses().first().toString();
+
+ QTest::newRow("4k+1-with-http-proxy") << md5Url << data << QByteArray("POST") << dummyObject
+ << md5sum(data)
+ << QNetworkProxy(QNetworkProxy::HttpProxy, proxyserver, 3128);
+
+ QTest::newRow("4k+1-with-http-proxy-auth") << md5Url << data << QByteArray("POST") << dummyObject
+ << md5sum(data)
+ << QNetworkProxy(QNetworkProxy::HttpProxy,
+ proxyserver, 3129);
+
+ QTest::newRow("4k+1-with-socks-proxy") << md5Url << data << QByteArray("POST") << dummyObject
+ << md5sum(data)
+ << QNetworkProxy(QNetworkProxy::Socks5Proxy, proxyserver, 1080);
+
+ QTest::newRow("4k+1-with-socks-proxy-auth") << md5Url << data << QByteArray("POST") << dummyObject
+ << md5sum(data)
+ << QNetworkProxy(QNetworkProxy::Socks5Proxy,
+ proxyserver, 1081);
+
+ data = QByteArray(128*1024+1, '\177');
+ QTest::newRow("128k+1") << md5Url << data << QByteArray("POST") << dummyObject
+ << md5sum(data) << QNetworkProxy();
+
+ data = QByteArray(128*1024+1, '\177');
+ QTest::newRow("128k+1-put") << md5Url << data << QByteArray("PUT") << dummyObject
+ << md5sum(data) << QNetworkProxy();
+
+ data = QByteArray(2*1024*1024+1, '\177');
+ QTest::newRow("2MB+1") << md5Url << data << QByteArray("POST") << dummyObject
+ << md5sum(data) << QNetworkProxy();
+
+
+ // 2. test uploading of files
+
+ QFile *file = new QFile(QFINDTESTDATA("../qnetworkreply/rfc3252.txt"));
+ file->open(QIODevice::ReadOnly);
+ QTest::newRow("file-26K") << md5Url << QByteArray() << QByteArray("POST")
+ << static_cast<QObject *>(file)
+ << QByteArray("b3e32ac459b99d3f59318f3ac31e4bee\n") << QNetworkProxy();
+
+ QFile *file2 = new QFile(QFINDTESTDATA("../qnetworkreply/image1.jpg"));
+ file2->open(QIODevice::ReadOnly);
+ QTest::newRow("file-1MB") << md5Url << QByteArray() << QByteArray("POST")
+ << static_cast<QObject *>(file2)
+ << QByteArray("87ef3bb319b004ba9e5e9c9fa713776e\n") << QNetworkProxy();
+
+
+ // 3. test uploading of multipart
+
+ QUrl multiPartUrl("https://" + QtNetworkSettings::serverName() + "/qtest/cgi-bin/multipart.cgi");
+
+ QHttpPart imagePart31;
+ imagePart31.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("image/jpeg"));
+ imagePart31.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"testImage1\""));
+ imagePart31.setRawHeader("Content-Location", "http://my.test.location.tld");
+ imagePart31.setRawHeader("Content-ID", "my@id.tld");
+ QFile *file31 = new QFile(QFINDTESTDATA("../qnetworkreply/image1.jpg"));
+ file31->open(QIODevice::ReadOnly);
+ imagePart31.setBodyDevice(file31);
+ QHttpMultiPart *imageMultiPart3 = new QHttpMultiPart(QHttpMultiPart::FormDataType);
+ imageMultiPart3->append(imagePart31);
+ file31->setParent(imageMultiPart3);
+ QHttpPart imagePart32;
+ imagePart32.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("image/jpeg"));
+ imagePart32.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"testImage2\""));
+ QFile *file32 = new QFile(QFINDTESTDATA("../qnetworkreply/image2.jpg"));
+ file32->open(QIODevice::ReadOnly);
+ imagePart32.setBodyDevice(file31); // check that resetting works
+ imagePart32.setBodyDevice(file32);
+ imageMultiPart3->append(imagePart32);
+ file32->setParent(imageMultiPart3);
+ QHttpPart imagePart33;
+ imagePart33.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("image/jpeg"));
+ imagePart33.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"testImage3\""));
+ QFile *file33 = new QFile(QFINDTESTDATA("../qnetworkreply/image3.jpg"));
+ file33->open(QIODevice::ReadOnly);
+ imagePart33.setBodyDevice(file33);
+ imageMultiPart3->append(imagePart33);
+ file33->setParent(imageMultiPart3);
+ QByteArray expectedData = "content type: multipart/form-data; boundary=\""
+ + imageMultiPart3->boundary();
+ expectedData.append("\"\nkey: testImage1, value: 87ef3bb319b004ba9e5e9c9fa713776e\n"
+ "key: testImage2, value: 483761b893f7fb1bd2414344cd1f3dfb\n"
+ "key: testImage3, value: ab0eb6fd4fcf8b4436254870b4513033\n");
+
+ QTest::newRow("multipart-3images") << multiPartUrl << QByteArray() << QByteArray("POST")
+ << static_cast<QObject *>(imageMultiPart3) << expectedData
+ << QNetworkProxy();
+}
+
+void tst_Spdy::upload()
+{
+ QFETCH(QUrl, url);
+ QNetworkRequest request(url);
+ request.setAttribute(QNetworkRequest::SpdyAllowedAttribute, true);
+
+ QFETCH(QByteArray, data);
+ QFETCH(QByteArray, uploadMethod);
+ QFETCH(QObject *, uploadObject);
+ QFETCH(QNetworkProxy, proxy);
+
+ if (proxy.type() != QNetworkProxy::DefaultProxy) {
+ m_manager.setProxy(proxy);
+ }
+
+ QNetworkReply *reply;
+ QHttpMultiPart *multiPart = 0;
+
+ if (uploadObject) {
+ // upload via device
+ if (QIODevice *device = qobject_cast<QIODevice *>(uploadObject)) {
+ reply = m_manager.post(request, device);
+ } else if ((multiPart = qobject_cast<QHttpMultiPart *>(uploadObject))) {
+ reply = m_manager.post(request, multiPart);
+ } else {
+ QFAIL("got unknown upload device");
+ }
+ } else {
+ // upload via byte array
+ if (uploadMethod == "PUT") {
+ reply = m_manager.put(request, data);
+ } else {
+ reply = m_manager.post(request, data);
+ }
+ }
+
+ reply->ignoreSslErrors();
+ QSignalSpy metaDataChangedSpy(reply, SIGNAL(metaDataChanged()));
+ QSignalSpy uploadProgressSpy(reply, SIGNAL(uploadProgress(qint64, qint64)));
+ QSignalSpy readyReadSpy(reply, SIGNAL(readyRead()));
+ QSignalSpy finishedSpy(reply, SIGNAL(finished()));
+
+ QObject::connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()));
+ QSignalSpy finishedManagerSpy(&m_manager, SIGNAL(finished(QNetworkReply*)));
+
+ QTestEventLoop::instance().enterLoop(20);
+ QVERIFY(!QTestEventLoop::instance().timeout());
+
+ QCOMPARE(finishedManagerSpy.count(), 1);
+ QCOMPARE(metaDataChangedSpy.count(), 1);
+ QCOMPARE(finishedSpy.count(), 1);
+ QVERIFY(uploadProgressSpy.count() > 0);
+ QVERIFY(readyReadSpy.count() > 0);
+
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
+ QCOMPARE(reply->attribute(QNetworkRequest::SpdyWasUsedAttribute).toBool(), true);
+ QCOMPARE(reply->attribute(QNetworkRequest::ConnectionEncryptedAttribute).toBool(), true);
+ QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200);
+
+ qint64 contentLength = reply->header(QNetworkRequest::ContentLengthHeader).toLongLong();
+ if (!multiPart) // script to test multiparts does not return a content length
+ QCOMPARE(contentLength, 33); // 33 bytes for md5 sums (including new line)
+
+ QFETCH(QByteArray, md5sum);
+ QByteArray content = reply->readAll();
+ QCOMPARE(content, md5sum);
+
+ reply->deleteLater();
+ if (uploadObject)
+ uploadObject->deleteLater();
+
+ m_manager.setProxy(QNetworkProxy()); // reset
+}
+
+void tst_Spdy::errors_data()
+{
+ QTest::addColumn<QUrl>("url");
+ QTest::addColumn<QNetworkProxy>("proxy");
+ QTest::addColumn<bool>("ignoreSslErrors");
+ QTest::addColumn<int>("expectedReplyError");
+
+ QTest::newRow("http-404") << QUrl("https://" + QtNetworkSettings::serverName() + "/non-existent-url")
+ << QNetworkProxy() << true << int(QNetworkReply::ContentNotFoundError);
+
+ QTest::newRow("ssl-errors") << QUrl("https://" + QtNetworkSettings::serverName())
+ << QNetworkProxy() << false << int(QNetworkReply::SslHandshakeFailedError);
+
+ QTest::newRow("host-not-found") << QUrl("https://this-host-does-not.exist")
+ << QNetworkProxy()
+ << true << int(QNetworkReply::HostNotFoundError);
+
+ QTest::newRow("proxy-not-found") << QUrl("https://" + QtNetworkSettings::serverName())
+ << QNetworkProxy(QNetworkProxy::HttpProxy,
+ "https://this-host-does-not.exist", 3128)
+ << true << int(QNetworkReply::HostNotFoundError);
+
+ QHostInfo hostInfo = QHostInfo::fromName(QtNetworkSettings::serverName());
+ QString proxyserver = hostInfo.addresses().first().toString();
+
+ QTest::newRow("proxy-unavailable") << QUrl("https://" + QtNetworkSettings::serverName())
+ << QNetworkProxy(QNetworkProxy::HttpProxy, proxyserver, 10)
+ << true << int(QNetworkReply::UnknownNetworkError);
+
+ QTest::newRow("no-proxy-credentials") << QUrl("https://" + QtNetworkSettings::serverName())
+ << QNetworkProxy(QNetworkProxy::HttpProxy, proxyserver, 3129)
+ << true << int(QNetworkReply::ProxyAuthenticationRequiredError);
+}
+
+void tst_Spdy::errors()
+{
+ QFETCH(QUrl, url);
+ QFETCH(QNetworkProxy, proxy);
+ QFETCH(bool, ignoreSslErrors);
+ QFETCH(int, expectedReplyError);
+
+ QNetworkRequest request(url);
+ request.setAttribute(QNetworkRequest::SpdyAllowedAttribute, true);
+
+ disconnect(&m_manager, SIGNAL(proxyAuthenticationRequired(const QNetworkProxy &, QAuthenticator *)),
+ 0, 0);
+ if (proxy.type() != QNetworkProxy::DefaultProxy) {
+ m_manager.setProxy(proxy);
+ }
+ QNetworkReply *reply = m_manager.get(request);
+ if (ignoreSslErrors)
+ reply->ignoreSslErrors();
+ QSignalSpy finishedSpy(reply, SIGNAL(finished()));
+ QSignalSpy errorSpy(reply, SIGNAL(error(QNetworkReply::NetworkError)));
+
+ QObject::connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()));
+
+ QTestEventLoop::instance().enterLoop(15);
+ QVERIFY(!QTestEventLoop::instance().timeout());
+
+ QCOMPARE(finishedSpy.count(), 1);
+ QCOMPARE(errorSpy.count(), 1);
+
+ QCOMPARE(reply->error(), static_cast<QNetworkReply::NetworkError>(expectedReplyError));
+
+ m_manager.setProxy(QNetworkProxy()); // reset
+ m_manager.clearAccessCache(); // e.g. to get an SSL error we need a new connection
+ connect(&m_manager, SIGNAL(proxyAuthenticationRequired(const QNetworkProxy &, QAuthenticator *)),
+ this, SLOT(proxyAuthenticationRequired(const QNetworkProxy &, QAuthenticator *)),
+ Qt::UniqueConnection); // reset
+}
+
+void tst_Spdy::multipleRequests_data()
+{
+ QTest::addColumn<QList<QUrl> >("urls");
+
+ QString baseUrl = "https://" + QtNetworkSettings::serverName() + "/qtest/cgi-bin/echo.cgi?";
+ QList<QUrl> urls;
+ for (int a = 1; a <= 50; ++a)
+ urls.append(QUrl(baseUrl + QLatin1String(QByteArray::number(a))));
+
+ QTest::newRow("one-request") << urls.mid(0, 1);
+ QTest::newRow("two-requests") << urls.mid(0, 2);
+ QTest::newRow("ten-requests") << urls.mid(0, 10);
+ QTest::newRow("twenty-requests") << urls.mid(0, 20);
+ QTest::newRow("fifty-requests") << urls;
+}
+
+void tst_Spdy::multipleRequestsFinishedSlot()
+{
+ m_multipleRepliesFinishedCount++;
+ if (m_multipleRepliesFinishedCount == m_multipleRequestsCount)
+ QTestEventLoop::instance().exitLoop();
+}
+
+void tst_Spdy::multipleRequests()
+{
+ QFETCH(QList<QUrl>, urls);
+ m_multipleRequestsCount = urls.count();
+ m_multipleRepliesFinishedCount = 0;
+
+ QList<QNetworkReply *> replies;
+ QList<QSignalSpy *> metaDataChangedSpies;
+ QList<QSignalSpy *> readyReadSpies;
+ QList<QSignalSpy *> finishedSpies;
+
+ foreach (const QUrl &url, urls) {
+ QNetworkRequest request(url);
+ request.setAttribute(QNetworkRequest::SpdyAllowedAttribute, true);
+ QNetworkReply *reply = m_manager.get(request);
+ replies.append(reply);
+ reply->ignoreSslErrors();
+ QObject::connect(reply, SIGNAL(finished()), this, SLOT(multipleRequestsFinishedSlot()));
+ QSignalSpy *metaDataChangedSpy = new QSignalSpy(reply, SIGNAL(metaDataChanged()));
+ metaDataChangedSpies << metaDataChangedSpy;
+ QSignalSpy *readyReadSpy = new QSignalSpy(reply, SIGNAL(readyRead()));
+ readyReadSpies << readyReadSpy;
+ QSignalSpy *finishedSpy = new QSignalSpy(reply, SIGNAL(finished()));
+ finishedSpies << finishedSpy;
+ }
+
+ QSignalSpy finishedManagerSpy(&m_manager, SIGNAL(finished(QNetworkReply*)));
+
+ QTestEventLoop::instance().enterLoop(15);
+ QVERIFY(!QTestEventLoop::instance().timeout());
+
+ QCOMPARE(finishedManagerSpy.count(), m_multipleRequestsCount);
+
+ for (int a = 0; a < replies.count(); ++a) {
+
+#ifndef QT_NO_OPENSSL
+ QCOMPARE(replies.at(a)->sslConfiguration().nextProtocolNegotiationStatus(),
+ QSslConfiguration::NextProtocolNegotiationNegotiated);
+ QCOMPARE(replies.at(a)->sslConfiguration().nextNegotiatedProtocol(),
+ QByteArray(QSslConfiguration::NextProtocolSpdy3_0));
+#endif // QT_NO_OPENSSL
+
+ QCOMPARE(replies.at(a)->error(), QNetworkReply::NoError);
+ QCOMPARE(replies.at(a)->attribute(QNetworkRequest::SpdyWasUsedAttribute).toBool(), true);
+ QCOMPARE(replies.at(a)->attribute(QNetworkRequest::ConnectionEncryptedAttribute).toBool(), true);
+ QCOMPARE(replies.at(a)->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200);
+
+ // using the echo script, a request to "echo.cgi?1" will return a body of "1"
+ QByteArray expectedContent = replies.at(a)->url().query().toUtf8();
+ QByteArray content = replies.at(a)->readAll();
+ QCOMPARE(expectedContent, content);
+
+ QCOMPARE(metaDataChangedSpies.at(a)->count(), 1);
+ metaDataChangedSpies.at(a)->deleteLater();
+
+ QCOMPARE(finishedSpies.at(a)->count(), 1);
+ finishedSpies.at(a)->deleteLater();
+
+ QVERIFY(readyReadSpies.at(a)->count() > 0);
+ readyReadSpies.at(a)->deleteLater();
+
+ replies.at(a)->deleteLater();
+ }
+}
+
+QTEST_MAIN(tst_Spdy)
+
+#include "tst_spdy.moc"
diff --git a/tests/auto/network/bearer/qnetworkconfiguration/qnetworkconfiguration.pro b/tests/auto/network/bearer/qnetworkconfiguration/qnetworkconfiguration.pro
index 8c1e111873..cde82a4fb2 100644
--- a/tests/auto/network/bearer/qnetworkconfiguration/qnetworkconfiguration.pro
+++ b/tests/auto/network/bearer/qnetworkconfiguration/qnetworkconfiguration.pro
@@ -4,4 +4,3 @@ SOURCES += tst_qnetworkconfiguration.cpp
HEADERS += ../qbearertestcommon.h
QT = core network testlib
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/bearer/qnetworkconfigurationmanager/qnetworkconfigurationmanager.pro b/tests/auto/network/bearer/qnetworkconfigurationmanager/qnetworkconfigurationmanager.pro
index 1a1220763c..52cee1f64d 100644
--- a/tests/auto/network/bearer/qnetworkconfigurationmanager/qnetworkconfigurationmanager.pro
+++ b/tests/auto/network/bearer/qnetworkconfigurationmanager/qnetworkconfigurationmanager.pro
@@ -4,4 +4,3 @@ SOURCES += tst_qnetworkconfigurationmanager.cpp
HEADERS += ../qbearertestcommon.h
QT = core network testlib
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/bearer/qnetworksession/lackey/lackey.pro b/tests/auto/network/bearer/qnetworksession/lackey/lackey.pro
index 9f2e82d4cc..1605b31d94 100644
--- a/tests/auto/network/bearer/qnetworksession/lackey/lackey.pro
+++ b/tests/auto/network/bearer/qnetworksession/lackey/lackey.pro
@@ -7,4 +7,3 @@ DESTDIR = ./
win32:CONFIG += console
mac:CONFIG -= app_bundle
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/bearer/qnetworksession/test/test.pro b/tests/auto/network/bearer/qnetworksession/test/test.pro
index 574d0672b6..dd7618b4ad 100644
--- a/tests/auto/network/bearer/qnetworksession/test/test.pro
+++ b/tests/auto/network/bearer/qnetworksession/test/test.pro
@@ -16,4 +16,3 @@ CONFIG(debug_and_release) {
}
TEST_HELPER_INSTALLS = ../lackey/lackey
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/kernel/qauthenticator/qauthenticator.pro b/tests/auto/network/kernel/qauthenticator/qauthenticator.pro
index 54ec0e4cff..5e4759b690 100644
--- a/tests/auto/network/kernel/qauthenticator/qauthenticator.pro
+++ b/tests/auto/network/kernel/qauthenticator/qauthenticator.pro
@@ -4,4 +4,3 @@ requires(contains(QT_CONFIG,private_tests))
QT = core network-private testlib
SOURCES += tst_qauthenticator.cpp
DEFINES += SRCDIR=\\\"$$PWD/\\\"
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/kernel/qdnslookup/qdnslookup.pro b/tests/auto/network/kernel/qdnslookup/qdnslookup.pro
index 36727a3bf6..3727736fad 100644
--- a/tests/auto/network/kernel/qdnslookup/qdnslookup.pro
+++ b/tests/auto/network/kernel/qdnslookup/qdnslookup.pro
@@ -6,4 +6,3 @@ TARGET = tst_qdnslookup
SOURCES += tst_qdnslookup.cpp
QT = core network testlib
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/kernel/qdnslookup_appless/qdnslookup_appless.pro b/tests/auto/network/kernel/qdnslookup_appless/qdnslookup_appless.pro
index 4a97b89d9a..0515bbad3b 100644
--- a/tests/auto/network/kernel/qdnslookup_appless/qdnslookup_appless.pro
+++ b/tests/auto/network/kernel/qdnslookup_appless/qdnslookup_appless.pro
@@ -6,4 +6,3 @@ TARGET = tst_qdnslookup_appless
SOURCES += tst_qdnslookup_appless.cpp
QT = core network testlib
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/kernel/qhostaddress/qhostaddress.pro b/tests/auto/network/kernel/qhostaddress/qhostaddress.pro
index 318c78531b..421685d855 100644
--- a/tests/auto/network/kernel/qhostaddress/qhostaddress.pro
+++ b/tests/auto/network/kernel/qhostaddress/qhostaddress.pro
@@ -13,4 +13,3 @@ wince*: {
LIBS += -lws2_32
}
}
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/kernel/qhostinfo/qhostinfo.pro b/tests/auto/network/kernel/qhostinfo/qhostinfo.pro
index 3b217f6e7b..a95a6bc2d6 100644
--- a/tests/auto/network/kernel/qhostinfo/qhostinfo.pro
+++ b/tests/auto/network/kernel/qhostinfo/qhostinfo.pro
@@ -16,4 +16,3 @@ wince*: {
mingw:DEFINES += _WIN32_WINNT=0x0501
linux-*:CONFIG+=insignificant_test # QTBUG-23837 - test is unstable
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/kernel/qnetworkaddressentry/qnetworkaddressentry.pro b/tests/auto/network/kernel/qnetworkaddressentry/qnetworkaddressentry.pro
index 864d945064..ae207e9c79 100644
--- a/tests/auto/network/kernel/qnetworkaddressentry/qnetworkaddressentry.pro
+++ b/tests/auto/network/kernel/qnetworkaddressentry/qnetworkaddressentry.pro
@@ -4,4 +4,3 @@ TARGET = tst_qnetworkaddressentry
SOURCES += tst_qnetworkaddressentry.cpp
QT = core network testlib
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/kernel/qnetworkinterface/qnetworkinterface.pro b/tests/auto/network/kernel/qnetworkinterface/qnetworkinterface.pro
index 3b59690580..79279514d1 100644
--- a/tests/auto/network/kernel/qnetworkinterface/qnetworkinterface.pro
+++ b/tests/auto/network/kernel/qnetworkinterface/qnetworkinterface.pro
@@ -4,4 +4,3 @@ TARGET = tst_qnetworkinterface
SOURCES += tst_qnetworkinterface.cpp
QT = core network testlib
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/kernel/qnetworkproxy/qnetworkproxy.pro b/tests/auto/network/kernel/qnetworkproxy/qnetworkproxy.pro
index daf3e5dead..996f9e3691 100644
--- a/tests/auto/network/kernel/qnetworkproxy/qnetworkproxy.pro
+++ b/tests/auto/network/kernel/qnetworkproxy/qnetworkproxy.pro
@@ -7,4 +7,3 @@ TARGET = tst_qnetworkproxy
QT = core network testlib
SOURCES += tst_qnetworkproxy.cpp
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/kernel/qnetworkproxyfactory/qnetworkproxyfactory.pro b/tests/auto/network/kernel/qnetworkproxyfactory/qnetworkproxyfactory.pro
index 1afb5de603..c63c7742a1 100644
--- a/tests/auto/network/kernel/qnetworkproxyfactory/qnetworkproxyfactory.pro
+++ b/tests/auto/network/kernel/qnetworkproxyfactory/qnetworkproxyfactory.pro
@@ -8,4 +8,3 @@ TARGET = tst_qnetworkproxyfactory
QT = core network testlib
SOURCES += tst_qnetworkproxyfactory.cpp
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/socket/platformsocketengine/platformsocketengine.pro b/tests/auto/network/socket/platformsocketengine/platformsocketengine.pro
index 8da6ad9a67..eee762037d 100644
--- a/tests/auto/network/socket/platformsocketengine/platformsocketengine.pro
+++ b/tests/auto/network/socket/platformsocketengine/platformsocketengine.pro
@@ -9,4 +9,3 @@ requires(contains(QT_CONFIG,private_tests))
MOC_DIR=tmp
QT = core-private network-private testlib
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/socket/qabstractsocket/qabstractsocket.pro b/tests/auto/network/socket/qabstractsocket/qabstractsocket.pro
index 970a3ffe60..00e604972f 100644
--- a/tests/auto/network/socket/qabstractsocket/qabstractsocket.pro
+++ b/tests/auto/network/socket/qabstractsocket/qabstractsocket.pro
@@ -8,4 +8,3 @@ QT = core network testlib
SOURCES += tst_qabstractsocket.cpp
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/socket/qhttpsocketengine/qhttpsocketengine.pro b/tests/auto/network/socket/qhttpsocketengine/qhttpsocketengine.pro
index 009d151e29..12ce576e23 100644
--- a/tests/auto/network/socket/qhttpsocketengine/qhttpsocketengine.pro
+++ b/tests/auto/network/socket/qhttpsocketengine/qhttpsocketengine.pro
@@ -10,4 +10,3 @@ MOC_DIR=tmp
requires(contains(QT_CONFIG,private_tests))
QT = core-private network-private testlib
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/socket/qlocalsocket/test/test.pro b/tests/auto/network/socket/qlocalsocket/test/test.pro
index c870304549..6a5df7f9b6 100644
--- a/tests/auto/network/socket/qlocalsocket/test/test.pro
+++ b/tests/auto/network/socket/qlocalsocket/test/test.pro
@@ -25,4 +25,3 @@ CONFIG(debug_and_release) {
DESTDIR = ..
}
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/socket/qsocks5socketengine/qsocks5socketengine.pro b/tests/auto/network/socket/qsocks5socketengine/qsocks5socketengine.pro
index c741c78980..c9793952ce 100644
--- a/tests/auto/network/socket/qsocks5socketengine/qsocks5socketengine.pro
+++ b/tests/auto/network/socket/qsocks5socketengine/qsocks5socketengine.pro
@@ -13,4 +13,3 @@ QT = core-private network-private testlib
linux-*:system(". /etc/lsb-release && [ $DISTRIB_CODENAME = oneiric ]"):DEFINES+=UBUNTU_ONEIRIC # QTBUG-23380
requires(contains(QT_CONFIG,private_tests))
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/socket/qtcpserver/crashingServer/crashingServer.pro b/tests/auto/network/socket/qtcpserver/crashingServer/crashingServer.pro
index 23b36ddade..487b9014d0 100644
--- a/tests/auto/network/socket/qtcpserver/crashingServer/crashingServer.pro
+++ b/tests/auto/network/socket/qtcpserver/crashingServer/crashingServer.pro
@@ -6,4 +6,3 @@ DESTDIR = ./
# This means the auto test works on some machines for MinGW. No dialog stalls
# the application.
mingw:CONFIG += console
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/socket/qtcpserver/test/test.pro b/tests/auto/network/socket/qtcpserver/test/test.pro
index 1cc9f66de4..4daa9963ce 100644
--- a/tests/auto/network/socket/qtcpserver/test/test.pro
+++ b/tests/auto/network/socket/qtcpserver/test/test.pro
@@ -25,4 +25,3 @@ win32 {
QT = core network testlib
MOC_DIR=tmp
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/socket/qtcpsocket/stressTest/stressTest.pro b/tests/auto/network/socket/qtcpsocket/stressTest/stressTest.pro
index c290fb8aa3..2eb00593e0 100644
--- a/tests/auto/network/socket/qtcpsocket/stressTest/stressTest.pro
+++ b/tests/auto/network/socket/qtcpsocket/stressTest/stressTest.pro
@@ -7,4 +7,3 @@ CONFIG += console
DESTDIR = ./
MOC_DIR = .moc/
TMP_DIR = .tmp/
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/socket/qtcpsocket/test/test.pro b/tests/auto/network/socket/qtcpsocket/test/test.pro
index bc34adf349..6c6697bfdc 100644
--- a/tests/auto/network/socket/qtcpsocket/test/test.pro
+++ b/tests/auto/network/socket/qtcpsocket/test/test.pro
@@ -21,4 +21,3 @@ win32 {
} else {
DESTDIR = ../
}
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/socket/qudpsocket/clientserver/clientserver.pro b/tests/auto/network/socket/qudpsocket/clientserver/clientserver.pro
index b8522f970e..a1b0021232 100644
--- a/tests/auto/network/socket/qudpsocket/clientserver/clientserver.pro
+++ b/tests/auto/network/socket/qudpsocket/clientserver/clientserver.pro
@@ -4,4 +4,3 @@ CONFIG += console
CONFIG -= app_bundle
TARGET = clientserver
DESTDIR = ./
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/socket/qudpsocket/test/test.pro b/tests/auto/network/socket/qudpsocket/test/test.pro
index ec249b4840..8ad16c652d 100644
--- a/tests/auto/network/socket/qudpsocket/test/test.pro
+++ b/tests/auto/network/socket/qudpsocket/test/test.pro
@@ -24,4 +24,3 @@ wince* {
TARGET = tst_qudpsocket
CONFIG+=insignificant_test # QTBUG-25367, QTBUG-25368
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/socket/qudpsocket/udpServer/udpServer.pro b/tests/auto/network/socket/qudpsocket/udpServer/udpServer.pro
index 9532401e0b..cf707aa14a 100644
--- a/tests/auto/network/socket/qudpsocket/udpServer/udpServer.pro
+++ b/tests/auto/network/socket/qudpsocket/udpServer/udpServer.pro
@@ -3,4 +3,3 @@ QT = core network
CONFIG -= app_bundle
CONFIG += console
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/ssl/qsslcertificate/qsslcertificate.pro b/tests/auto/network/ssl/qsslcertificate/qsslcertificate.pro
index 2a1f6ef299..09cb22defe 100644
--- a/tests/auto/network/ssl/qsslcertificate/qsslcertificate.pro
+++ b/tests/auto/network/ssl/qsslcertificate/qsslcertificate.pro
@@ -8,4 +8,3 @@ QT = core network testlib
TARGET = tst_qsslcertificate
TESTDATA += certificates/* more-certificates/* verify-certs/*
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/ssl/qsslcipher/qsslcipher.pro b/tests/auto/network/ssl/qsslcipher/qsslcipher.pro
index 07907d3b76..a091bd0184 100644
--- a/tests/auto/network/ssl/qsslcipher/qsslcipher.pro
+++ b/tests/auto/network/ssl/qsslcipher/qsslcipher.pro
@@ -14,4 +14,3 @@ win32 {
DESTDIR = release
}
}
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/ssl/qsslerror/qsslerror.pro b/tests/auto/network/ssl/qsslerror/qsslerror.pro
index 9708ed0703..85a5046923 100644
--- a/tests/auto/network/ssl/qsslerror/qsslerror.pro
+++ b/tests/auto/network/ssl/qsslerror/qsslerror.pro
@@ -14,4 +14,3 @@ win32 {
DESTDIR = release
}
}
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/ssl/qsslkey/qsslkey.pro b/tests/auto/network/ssl/qsslkey/qsslkey.pro
index 37796bf5b7..78cfb9ce92 100644
--- a/tests/auto/network/ssl/qsslkey/qsslkey.pro
+++ b/tests/auto/network/ssl/qsslkey/qsslkey.pro
@@ -8,4 +8,3 @@ QT = core network testlib
TARGET = tst_qsslkey
TESTDATA += keys/* rsa-without-passphrase.pem rsa-with-passphrase.pem
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/ssl/qsslsocket/qsslsocket.pro b/tests/auto/network/ssl/qsslsocket/qsslsocket.pro
index d8a6b2cdcb..6e34b23f6c 100644
--- a/tests/auto/network/ssl/qsslsocket/qsslsocket.pro
+++ b/tests/auto/network/ssl/qsslsocket/qsslsocket.pro
@@ -33,4 +33,3 @@ wince* {
linux-*:system(". /etc/lsb-release && [ $DISTRIB_CODENAME = oneiric ]"):DEFINES+=UBUNTU_ONEIRIC # QTBUG-24234
requires(contains(QT_CONFIG,private_tests))
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/ssl/qsslsocket_onDemandCertificates_member/qsslsocket_onDemandCertificates_member.pro b/tests/auto/network/ssl/qsslsocket_onDemandCertificates_member/qsslsocket_onDemandCertificates_member.pro
index e8247d7b16..9b12785081 100644
--- a/tests/auto/network/ssl/qsslsocket_onDemandCertificates_member/qsslsocket_onDemandCertificates_member.pro
+++ b/tests/auto/network/ssl/qsslsocket_onDemandCertificates_member/qsslsocket_onDemandCertificates_member.pro
@@ -23,4 +23,3 @@ wince* {
}
requires(contains(QT_CONFIG,private_tests))
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/network/ssl/qsslsocket_onDemandCertificates_static/qsslsocket_onDemandCertificates_static.pro b/tests/auto/network/ssl/qsslsocket_onDemandCertificates_static/qsslsocket_onDemandCertificates_static.pro
index 8a95e11780..c4d56436d0 100644
--- a/tests/auto/network/ssl/qsslsocket_onDemandCertificates_static/qsslsocket_onDemandCertificates_static.pro
+++ b/tests/auto/network/ssl/qsslsocket_onDemandCertificates_static/qsslsocket_onDemandCertificates_static.pro
@@ -22,4 +22,3 @@ wince* {
}
requires(contains(QT_CONFIG,private_tests))
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/other/lancelot/tst_lancelot.cpp b/tests/auto/other/lancelot/tst_lancelot.cpp
index a99b041bfc..237e50ae3d 100644
--- a/tests/auto/other/lancelot/tst_lancelot.cpp
+++ b/tests/auto/other/lancelot/tst_lancelot.cpp
@@ -50,6 +50,8 @@
#include <QOpenGLPaintDevice>
#endif
+#include <algorithm>
+
class tst_Lancelot : public QObject
{
Q_OBJECT
@@ -114,7 +116,7 @@ void tst_Lancelot::initTestCase()
QSKIP("Aborted due to errors.");
}
- qSort(qpsFiles);
+ std::sort(qpsFiles.begin(), qpsFiles.end());
foreach (const QString& fileName, qpsFiles) {
QFile file(scriptsDir + fileName);
file.open(QFile::ReadOnly);
diff --git a/tests/auto/other/qaccessibility/tst_qaccessibility.cpp b/tests/auto/other/qaccessibility/tst_qaccessibility.cpp
index dc3f266025..53f74d091b 100644
--- a/tests/auto/other/qaccessibility/tst_qaccessibility.cpp
+++ b/tests/auto/other/qaccessibility/tst_qaccessibility.cpp
@@ -73,6 +73,8 @@
#include "QtTest/qtestaccessible.h"
+#include <algorithm>
+
// Make a widget frameless to prevent size constraints of title bars
// from interfering (Windows).
static inline void setFrameless(QWidget *w)
@@ -2192,7 +2194,7 @@ void tst_QAccessibility::dialogButtonBoxTest()
for (int i = 0; i < iface->childCount(); ++i)
buttons << iface->child(i);
- qSort(buttons.begin(), buttons.end(), accessibleInterfaceLeftOf);
+ std::sort(buttons.begin(), buttons.end(), accessibleInterfaceLeftOf);
for (int i = 0; i < buttons.count(); ++i)
actualOrder << buttons.at(i)->text(QAccessible::Name);
@@ -2243,7 +2245,7 @@ void tst_QAccessibility::dialogButtonBoxTest()
for (int i = 0; i < iface->childCount(); ++i)
buttons << iface->child(i);
- qSort(buttons.begin(), buttons.end(), accessibleInterfaceAbove);
+ std::sort(buttons.begin(), buttons.end(), accessibleInterfaceAbove);
for (int i = 0; i < buttons.count(); ++i)
actualOrder << buttons.at(i)->text(QAccessible::Name);
diff --git a/tests/auto/printsupport/kernel/qprinter/tst_qprinter.cpp b/tests/auto/printsupport/kernel/qprinter/tst_qprinter.cpp
index 9571cb4110..b138f34967 100644
--- a/tests/auto/printsupport/kernel/qprinter/tst_qprinter.cpp
+++ b/tests/auto/printsupport/kernel/qprinter/tst_qprinter.cpp
@@ -1259,6 +1259,8 @@ void tst_QPrinter::fullPage()
QCOMPARE(pdf.fullPage(), false);
pdf.setFullPage(true);
QCOMPARE(pdf.fullPage(), true);
+ pdf.setFullPage(false);
+ QCOMPARE(pdf.fullPage(), false);
QPrinter native;
if (native.outputFormat() == QPrinter::NativeFormat) {
@@ -1275,6 +1277,17 @@ void tst_QPrinter::fullPage()
QCOMPARE(native.fullPage(), expected);
native.setOutputFormat(QPrinter::NativeFormat);
QCOMPARE(native.fullPage(), expected);
+
+ // Test set/get
+ expected = false;
+ native.setFullPage(expected);
+ QCOMPARE(native.fullPage(), expected);
+
+ // Test value preservation
+ native.setOutputFormat(QPrinter::PdfFormat);
+ QCOMPARE(native.fullPage(), expected);
+ native.setOutputFormat(QPrinter::NativeFormat);
+ QCOMPARE(native.fullPage(), expected);
} else {
QSKIP("No printers installed, cannot test NativeFormat, please install printers to test");
}
@@ -1310,6 +1323,17 @@ void tst_QPrinter::orientation()
QCOMPARE(native.orientation(), expected);
native.setOutputFormat(QPrinter::NativeFormat);
QCOMPARE(native.orientation(), expected);
+
+ // Test set/get
+ expected = QPrinter::Portrait;
+ native.setOrientation(expected);
+ QCOMPARE(native.orientation(), expected);
+
+ // Test value preservation
+ native.setOutputFormat(QPrinter::PdfFormat);
+ QCOMPARE(native.orientation(), expected);
+ native.setOutputFormat(QPrinter::NativeFormat);
+ QCOMPARE(native.orientation(), expected);
} else {
QSKIP("No printers installed, cannot test NativeFormat, please install printers to test");
}
@@ -1710,13 +1734,8 @@ void tst_QPrinter::resolution()
// Test set/get
int expected = 333;
#ifdef Q_OS_MAC
+ // Set resolution does nothing on OSX, see QTBUG-7000
expected = native.resolution();
- foreach (int supported, native.supportedResolutions()) {
- if (supported != expected) {
- expected = supported;
- break;
- }
- }
#endif // Q_OS_MAC
native.setResolution(expected);
QCOMPARE(native.resolution(), expected);
diff --git a/tests/auto/printsupport/kernel/qprinterinfo/tst_qprinterinfo.cpp b/tests/auto/printsupport/kernel/qprinterinfo/tst_qprinterinfo.cpp
index 9416224440..fb2609b7ec 100644
--- a/tests/auto/printsupport/kernel/qprinterinfo/tst_qprinterinfo.cpp
+++ b/tests/auto/printsupport/kernel/qprinterinfo/tst_qprinterinfo.cpp
@@ -44,6 +44,8 @@
#include <QtAlgorithms>
#include <QtPrintSupport/qprinterinfo.h>
+#include <algorithm>
+
#ifdef Q_OS_UNIX
# include <unistd.h>
# include <sys/types.h>
@@ -246,8 +248,8 @@ void tst_QPrinterInfo::testForPrinters()
for (int i = 0; i < printers.size(); ++i)
qtPrinters.append(printers.at(i).printerName());
- qSort(testPrinters);
- qSort(qtPrinters);
+ std::sort(testPrinters.begin(), testPrinters.end());
+ std::sort(qtPrinters.begin(), qtPrinters.end());
qDebug() << "Test believes Available Printers = " << testPrinters;
qDebug() << "QPrinterInfo::availablePrinters() believes Available Printers = " << qtPrinters;
diff --git a/tests/auto/tools/rcc/tst_rcc.cpp b/tests/auto/tools/rcc/tst_rcc.cpp
index 4089d53f3d..9a494428e7 100644
--- a/tests/auto/tools/rcc/tst_rcc.cpp
+++ b/tests/auto/tools/rcc/tst_rcc.cpp
@@ -54,6 +54,8 @@
#include <QtCore/QLocale>
#include <QtCore/QtGlobal>
+#include <algorithm>
+
typedef QMap<QString, QString> QStringMap;
Q_DECLARE_METATYPE(QStringMap)
@@ -325,8 +327,8 @@ void tst_rcc::binary()
}
// check that we have all (and only) the expected files
- qSort(filesFound);
- qSort(expectedFileNames);
+ std::sort(filesFound.begin(), filesFound.end());
+ std::sort(expectedFileNames.begin(), expectedFileNames.end());
QCOMPARE(filesFound, expectedFileNames);
// now actually check the file contents
diff --git a/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp b/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp
index 8bad4bb176..54a3a85e87 100644
--- a/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp
+++ b/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp
@@ -148,6 +148,7 @@ private slots:
void enableChooseButton();
void hooks();
void widgetlessNativeDialog();
+ void trailingDotsAndSpaces();
#ifdef Q_OS_UNIX
#ifdef QT_BUILD_INTERNAL
void tildeExpansion_data();
@@ -1413,6 +1414,33 @@ void tst_QFiledialog::widgetlessNativeDialog()
QVERIFY(!button);
}
+void tst_QFiledialog::trailingDotsAndSpaces()
+{
+#ifndef Q_OS_WIN
+ QSKIP("This is only tested on Windows");
+#endif
+ QNonNativeFileDialog fd;
+ fd.setViewMode(QFileDialog::List);
+ fd.setFileMode(QFileDialog::ExistingFile);
+ fd.setOptions(QFileDialog::DontUseNativeDialog);
+ fd.show();
+ QLineEdit *lineEdit = fd.findChild<QLineEdit *>("fileNameEdit");
+ QVERIFY(lineEdit);
+ QListView *list = fd.findChild<QListView *>("listView");
+ QVERIFY(list);
+ QTest::qWait(1000);
+ int currentChildrenCount = list->model()->rowCount(list->rootIndex());
+ QTest::keyClick(lineEdit, Qt::Key_Space);
+ QTest::keyClick(lineEdit, Qt::Key_Period);
+ QTest::qWait(1000);
+ QVERIFY(currentChildrenCount == list->model()->rowCount(list->rootIndex()));
+ lineEdit->clear();
+ QTest::keyClick(lineEdit, Qt::Key_Period);
+ QTest::keyClick(lineEdit, Qt::Key_Space);
+ QTest::qWait(1000);
+ QVERIFY(currentChildrenCount == list->model()->rowCount(list->rootIndex()));
+}
+
#ifdef Q_OS_UNIX
#ifdef QT_BUILD_INTERNAL
void tst_QFiledialog::tildeExpansion_data()
diff --git a/tests/auto/widgets/dialogs/qfilesystemmodel/tst_qfilesystemmodel.cpp b/tests/auto/widgets/dialogs/qfilesystemmodel/tst_qfilesystemmodel.cpp
index b29bf44307..9e0446388e 100644
--- a/tests/auto/widgets/dialogs/qfilesystemmodel/tst_qfilesystemmodel.cpp
+++ b/tests/auto/widgets/dialogs/qfilesystemmodel/tst_qfilesystemmodel.cpp
@@ -57,6 +57,8 @@
# include <qt_windows.h> // for SetFileAttributes
#endif
+#include <algorithm>
+
#define WAITTIME 1000
// Will try to wait for the condition while allowing event processing
@@ -717,8 +719,8 @@ void tst_QFileSystemModel::filters()
for (int i = 0; i < rowCount; ++i)
modelEntries.append(model->data(model->index(i, 0, root), QFileSystemModel::FileNameRole).toString());
- qSort(dirEntries);
- qSort(modelEntries);
+ std::sort(dirEntries.begin(), dirEntries.end());
+ std::sort(modelEntries.begin(), modelEntries.end());
QCOMPARE(dirEntries, modelEntries);
#ifdef Q_OS_LINUX
diff --git a/tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp b/tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp
index 5739245899..38367fb4ee 100644
--- a/tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp
+++ b/tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp
@@ -46,6 +46,8 @@
#include <QtTest/QtTest>
#include "private/qapplication_p.h"
+#include <algorithm>
+
#ifdef QT_BUILD_INTERNAL
#define VERIFY_SPANS_CONSISTENCY(TEST_VIEW_) \
QVERIFY(static_cast<QTableViewPrivate*>(QObjectPrivate::get(TEST_VIEW_))->spans.checkConsistency())
@@ -3921,8 +3923,8 @@ void tst_QTableView::task234926_setHeaderSorting()
data << "orange" << "apple" << "banana" << "lemon" << "pumpkin";
QStringList sortedDataA = data;
QStringList sortedDataD = data;
- qSort(sortedDataA);
- qSort(sortedDataD.begin(), sortedDataD.end(), qGreater<QString>());
+ std::sort(sortedDataA.begin(), sortedDataA.end());
+ std::sort(sortedDataD.begin(), sortedDataD.end(), qGreater<QString>());
model.setStringList(data);
QTableView view;
view.setModel(&model);