diff options
Diffstat (limited to 'tests/auto')
23 files changed, 60 insertions, 870 deletions
diff --git a/tests/auto/auto.pro b/tests/auto/auto.pro index 9eb741edac..c9d1da8649 100644 --- a/tests/auto/auto.pro +++ b/tests/auto/auto.pro @@ -1,5 +1,9 @@ TEMPLATE = subdirs +# Tests with developer-build started failing on qemu-armv7/armv8 after commit +# b88acae7a8e773c307e44f84da037d01d19e60f7 in qt5. +boot2qt:qtConfig(private_tests): return() + SUBDIRS += \ corelib \ dbus \ diff --git a/tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp b/tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp index 16fcafa248..34439aa93b 100644 --- a/tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp +++ b/tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp @@ -115,7 +115,7 @@ static DWORD createSymbolicLink(const QString &symLinkName, const QString &targe reinterpret_cast<const wchar_t*>(nativeTarget.utf16()), flags) == FALSE) { result = GetLastError(); QTextStream(errorMessage) << "CreateSymbolicLink(" << nativeSymLinkName << ", " - << nativeTarget << ", 0x" << hex << flags << dec << ") failed with error " << result + << nativeTarget << ", 0x" << Qt::hex << flags << Qt::dec << ") failed with error " << result << ": " << qt_error_string(int(result)); } return result; diff --git a/tests/auto/corelib/io/qfileselector/platforms/+mac/test5 b/tests/auto/corelib/io/qfileselector/platforms/+mac/test5 deleted file mode 100644 index e69de29bb2..0000000000 --- a/tests/auto/corelib/io/qfileselector/platforms/+mac/test5 +++ /dev/null diff --git a/tests/auto/corelib/io/qfileselector/platforms/+osx/test4 b/tests/auto/corelib/io/qfileselector/platforms/+osx/test4 deleted file mode 100644 index e69de29bb2..0000000000 --- a/tests/auto/corelib/io/qfileselector/platforms/+osx/test4 +++ /dev/null diff --git a/tests/auto/corelib/io/qfileselector/platforms/+mac/test b/tests/auto/corelib/io/qfileselector/platforms/+unix/+darwin/+ios/test index e69de29bb2..e69de29bb2 100644 --- a/tests/auto/corelib/io/qfileselector/platforms/+mac/test +++ b/tests/auto/corelib/io/qfileselector/platforms/+unix/+darwin/+ios/test diff --git a/tests/auto/corelib/io/qfileselector/platforms/+unix/+darwin/+mac/+ios/test b/tests/auto/corelib/io/qfileselector/platforms/+unix/+darwin/+mac/+ios/test deleted file mode 100644 index e69de29bb2..0000000000 --- a/tests/auto/corelib/io/qfileselector/platforms/+unix/+darwin/+mac/+ios/test +++ /dev/null diff --git a/tests/auto/corelib/io/qfileselector/platforms/+unix/+darwin/+mac/+macos/test b/tests/auto/corelib/io/qfileselector/platforms/+unix/+darwin/+mac/+macos/test deleted file mode 100644 index e69de29bb2..0000000000 --- a/tests/auto/corelib/io/qfileselector/platforms/+unix/+darwin/+mac/+macos/test +++ /dev/null diff --git a/tests/auto/corelib/io/qfileselector/platforms/+unix/+darwin/+mac/+osx/+macos/test b/tests/auto/corelib/io/qfileselector/platforms/+unix/+darwin/+mac/+osx/+macos/test deleted file mode 100644 index e69de29bb2..0000000000 --- a/tests/auto/corelib/io/qfileselector/platforms/+unix/+darwin/+mac/+osx/+macos/test +++ /dev/null diff --git a/tests/auto/corelib/io/qfileselector/platforms/+unix/+darwin/+mac/+osx/test b/tests/auto/corelib/io/qfileselector/platforms/+unix/+darwin/+mac/+osx/test deleted file mode 100644 index e69de29bb2..0000000000 --- a/tests/auto/corelib/io/qfileselector/platforms/+unix/+darwin/+mac/+osx/test +++ /dev/null diff --git a/tests/auto/corelib/io/qfileselector/platforms/+unix/+darwin/+mac/test b/tests/auto/corelib/io/qfileselector/platforms/+unix/+darwin/+mac/test deleted file mode 100644 index e69de29bb2..0000000000 --- a/tests/auto/corelib/io/qfileselector/platforms/+unix/+darwin/+mac/test +++ /dev/null diff --git a/tests/auto/corelib/io/qfileselector/platforms/+osx/test b/tests/auto/corelib/io/qfileselector/platforms/+unix/+darwin/+macos/test index e69de29bb2..e69de29bb2 100644 --- a/tests/auto/corelib/io/qfileselector/platforms/+osx/test +++ b/tests/auto/corelib/io/qfileselector/platforms/+unix/+darwin/+macos/test diff --git a/tests/auto/corelib/io/qfileselector/qfileselector.qrc b/tests/auto/corelib/io/qfileselector/qfileselector.qrc index 54b2e0a0e2..f3b3ede575 100644 --- a/tests/auto/corelib/io/qfileselector/qfileselector.qrc +++ b/tests/auto/corelib/io/qfileselector/qfileselector.qrc @@ -1,65 +1,51 @@ -<!DOCTYPE RCC><RCC version="1.0"> -<qresource prefix="/"> - <file>extras/test</file> - <file>extras/test2</file> - <file>extras/+custom1/test</file> - <file>extras/+custom1/test3</file> - <file>extras/+custom2/test</file> - <file>extras/+custom3/test</file> - <file>extras/+custom3/+custom2/test</file> - <file>extras/+custom3/+custom4/test</file> - <file>extras/+custom3/+custom5/test</file> - <file>extras/+custom5/+custom3/test</file> - - <!-- platforms/test: deepest possible selection --> - <file>platforms/test</file> - <file>platforms/+unix/+android/test</file> - <file>platforms/+unix/+darwin/+mac/+ios/test</file> - <file>platforms/+unix/+darwin/+mac/+osx/+macos/test</file> - <file>platforms/+unix/+darwin/+mac/+osx/test</file> - <file>platforms/+unix/+darwin/+mac/test</file> - <file>platforms/+unix/+darwin/test</file> - <file>platforms/+unix/+haiku/test</file> - <file>platforms/+unix/+linux/test</file> - <file>platforms/+unix/+qnx/test</file> - <file>platforms/+unix/test</file> - <file>platforms/+windows/+wince/test</file> - <file>platforms/+windows/+winnt/test</file> - <file>platforms/+windows/+winrt/test</file> - <file>platforms/+windows/test</file> - <file>platforms/+android/test</file> - <file>platforms/+ios/test</file> - <file>platforms/+macos/test</file> - <file>platforms/+osx/test</file> - <file>platforms/+darwin/test</file> - <file>platforms/+mac/test</file> - <file>platforms/+haiku/test</file> - <file>platforms/+linux/test</file> - <file>platforms/+qnx/test</file> - <file>platforms/+wince/test</file> - <file>platforms/+winrt/test</file> - - <!-- platforms/test2: shallow selection for the deepest selector --> - <file>platforms/test2</file> - <file>platforms/+android/test2</file> - <file>platforms/+ios/test2</file> - <file>platforms/+macos/test2</file> - <file>platforms/+haiku/test2</file> - <file>platforms/+linux/test2</file> - <file>platforms/+qnx/test2</file> - <file>platforms/+wince/test2</file> - <file>platforms/+winnt/test2</file> - <file>platforms/+winrt/test2</file> - - <!-- platforms/test3: selection for the family only --> - <file>platforms/test3</file> - <file>platforms/+windows/test3</file> - <file>platforms/+unix/test3</file> - - <!-- platforms/test4 and 5: special cases for macOS --> - <file>platforms/test4</file> - <file>platforms/+osx/test4</file> - <file>platforms/test5</file> - <file>platforms/+mac/test5</file> -</qresource> +<RCC> + <qresource prefix="/"> + <file>extras/test</file> + <file>extras/test2</file> + <file>extras/+custom1/test</file> + <file>extras/+custom1/test3</file> + <file>extras/+custom2/test</file> + <file>extras/+custom3/test</file> + <file>extras/+custom3/+custom2/test</file> + <file>extras/+custom3/+custom4/test</file> + <file>extras/+custom3/+custom5/test</file> + <file>extras/+custom5/+custom3/test</file> + <file>platforms/test</file> + <file>platforms/+unix/+android/test</file> + <file>platforms/+unix/+darwin/test</file> + <file>platforms/+unix/+haiku/test</file> + <file>platforms/+unix/+linux/test</file> + <file>platforms/+unix/+qnx/test</file> + <file>platforms/+unix/test</file> + <file>platforms/+windows/+wince/test</file> + <file>platforms/+windows/+winnt/test</file> + <file>platforms/+windows/+winrt/test</file> + <file>platforms/+windows/test</file> + <file>platforms/+android/test</file> + <file>platforms/+ios/test</file> + <file>platforms/+macos/test</file> + <file>platforms/+darwin/test</file> + <file>platforms/+haiku/test</file> + <file>platforms/+linux/test</file> + <file>platforms/+qnx/test</file> + <file>platforms/+wince/test</file> + <file>platforms/+winrt/test</file> + <file>platforms/test2</file> + <file>platforms/+android/test2</file> + <file>platforms/+ios/test2</file> + <file>platforms/+macos/test2</file> + <file>platforms/+haiku/test2</file> + <file>platforms/+linux/test2</file> + <file>platforms/+qnx/test2</file> + <file>platforms/+wince/test2</file> + <file>platforms/+winnt/test2</file> + <file>platforms/+winrt/test2</file> + <file>platforms/test3</file> + <file>platforms/+windows/test3</file> + <file>platforms/+unix/test3</file> + <file>platforms/test4</file> + <file>platforms/test5</file> + <file>platforms/+unix/+darwin/+macos/test</file> + <file>platforms/+unix/+darwin/+ios/test</file> + </qresource> </RCC> diff --git a/tests/auto/corelib/io/qfileselector/tst_qfileselector.cpp b/tests/auto/corelib/io/qfileselector/tst_qfileselector.cpp index 11b1fdaeeb..bac7a69e0f 100644 --- a/tests/auto/corelib/io/qfileselector/tst_qfileselector.cpp +++ b/tests/auto/corelib/io/qfileselector/tst_qfileselector.cpp @@ -126,14 +126,6 @@ void tst_QFileSelector::basicTest_data() QTest::newRow("platform3") << QString(":/platforms/test3") << QStringList() << expectedPlatform3File; -#ifdef Q_OS_MACOS - // special case for compatibility code - QTest::newRow("osx-compat") << QString(":/platforms/test4") << QStringList() - << ":/platforms/+osx/test4"; - QTest::newRow("mac-compat") << QString(":/platforms/test5") << QStringList() - << ":/platforms/+mac/test5"; -#endif - QString resourceTestPath(":/extras/test"); QString custom1("custom1"); QTest::newRow("custom1-noselector") << resourceTestPath << QStringList() diff --git a/tests/auto/corelib/kernel/qobject/tst_qobject.cpp b/tests/auto/corelib/kernel/qobject/tst_qobject.cpp index a805bfb747..676999a08c 100644 --- a/tests/auto/corelib/kernel/qobject/tst_qobject.cpp +++ b/tests/auto/corelib/kernel/qobject/tst_qobject.cpp @@ -81,9 +81,6 @@ private slots: void senderTest(); void declareInterface(); void qpointerResetBeforeDestroyedSignal(); -#ifndef QT_NO_USERDATA - void testUserData(); -#endif void childDeletesItsSibling(); void dynamicProperties(); void floatProperty(); @@ -2341,51 +2338,6 @@ void tst_QObject::declareInterface() } -#ifndef QT_NO_USERDATA -class CustomData : public QObjectUserData -{ -public: - int id; -}; - -void tst_QObject::testUserData() -{ - const int USER_DATA_COUNT = 100; - int user_data_ids[USER_DATA_COUNT]; - - // Register a few - for (int i=0; i<USER_DATA_COUNT; ++i) { - user_data_ids[i] = QObject::registerUserData(); - } - - // Randomize the table a bit - for (int i=0; i<100; ++i) { - int p1 = QRandomGenerator::global()->bounded(USER_DATA_COUNT); - int p2 = QRandomGenerator::global()->bounded(USER_DATA_COUNT); - - int tmp = user_data_ids[p1]; - user_data_ids[p1] = user_data_ids[p2]; - user_data_ids[p2] = tmp; - } - - // insert the user data into an object - QObject my_test_object; - for (int i=0; i<USER_DATA_COUNT; ++i) { - CustomData *data = new CustomData; - data->id = user_data_ids[i]; - my_test_object.setUserData(data->id, data); - } - - // verify that all ids and positions are matching - for (int i=0; i<USER_DATA_COUNT; ++i) { - int id = user_data_ids[i]; - CustomData *data = static_cast<CustomData *>(my_test_object.userData(id)); - QVERIFY(data != nullptr); - QCOMPARE(data->id, id); - } -} -#endif // QT_NO_USERDATA - class DestroyedListener : public QObject { Q_OBJECT diff --git a/tests/auto/gui/image/qpicture/tst_qpicture.cpp b/tests/auto/gui/image/qpicture/tst_qpicture.cpp index ec6bb8dcee..6287960457 100644 --- a/tests/auto/gui/image/qpicture/tst_qpicture.cpp +++ b/tests/auto/gui/image/qpicture/tst_qpicture.cpp @@ -37,6 +37,8 @@ #include <qscreen.h> #include <limits.h> +#ifndef QT_NO_PICTURE + class tst_QPicture : public QObject { Q_OBJECT @@ -45,7 +47,6 @@ public: tst_QPicture(); private slots: - void getSetCheck(); void devType(); void paintingActive(); void boundingRect(); @@ -56,31 +57,6 @@ private slots: void boundaryValues(); }; -// Testing get/set functions -void tst_QPicture::getSetCheck() -{ - QPictureIO obj1; - // const QPicture & QPictureIO::picture() - // void QPictureIO::setPicture(const QPicture &) - // const char * QPictureIO::format() - // void QPictureIO::setFormat(const char *) - const char var2[] = "PNG"; - obj1.setFormat(var2); - QCOMPARE(var2, obj1.format()); - obj1.setFormat((char *)0); - // The format is stored internally in a QString, so return is always a valid char * - QVERIFY(QString(obj1.format()).isEmpty()); - - // const char * QPictureIO::parameters() - // void QPictureIO::setParameters(const char *) - const char var3[] = "Bogus data"; - obj1.setParameters(var3); - QCOMPARE(var3, obj1.parameters()); - obj1.setParameters((char *)0); - // The format is stored internally in a QString, so return is always a valid char * - QVERIFY(QString(obj1.parameters()).isEmpty()); -} - tst_QPicture::tst_QPicture() { } @@ -316,6 +292,7 @@ void tst_QPicture::boundaryValues() painter.end(); } - QTEST_MAIN(tst_QPicture) #include "tst_qpicture.moc" + +#endif // QT_NO_PICTURE diff --git a/tests/auto/network/access/access.pro b/tests/auto/network/access/access.pro index b140b5e9f2..d2b4d97b21 100644 --- a/tests/auto/network/access/access.pro +++ b/tests/auto/network/access/access.pro @@ -7,7 +7,6 @@ SUBDIRS=\ qnetworkrequest \ qhttpnetworkconnection \ qnetworkreply \ - spdy \ qnetworkcachemetadata \ qftp \ qhttpnetworkreply \ diff --git a/tests/auto/network/access/http2/tst_http2.cpp b/tests/auto/network/access/http2/tst_http2.cpp index 6f94692cb1..904cfd52b0 100644 --- a/tests/auto/network/access/http2/tst_http2.cpp +++ b/tests/auto/network/access/http2/tst_http2.cpp @@ -939,13 +939,6 @@ void tst_Http2::replyFinished() QVERIFY(http2Used.isValid()); QVERIFY(http2Used.toBool()); - const QVariant spdyUsed(reply->attribute(QNetworkRequest::SpdyWasUsedAttribute)); - if (!spdyUsed.isValid() || spdyUsed.toBool()) - stopEventLoop(); - - QVERIFY(spdyUsed.isValid()); - QVERIFY(!spdyUsed.toBool()); - const QVariant code(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute)); if (!code.isValid() || !code.canConvert<int>() || code.value<int>() != 200) stopEventLoop(); diff --git a/tests/auto/network/access/qnetworkreply/BLACKLIST b/tests/auto/network/access/qnetworkreply/BLACKLIST index 2a0651f96f..18450f1853 100644 --- a/tests/auto/network/access/qnetworkreply/BLACKLIST +++ b/tests/auto/network/access/qnetworkreply/BLACKLIST @@ -15,8 +15,6 @@ linux # QTBUG-71953 [getFromHttp] * !android !winrt -[getFromHttp:success-external] -* [getFromHttpIntoBuffer] osx [getFromHttpIntoBuffer2] diff --git a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp index 418e1caf68..04bda567ed 100644 --- a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp +++ b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp @@ -1910,10 +1910,6 @@ void tst_QNetworkReply::getFromHttp_data() << testDataDir + "/rfc3252.txt" << "http://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt"; - QTest::newRow("success-external") - << testDataDir + "/rfc3252.txt" - << "http://www.ietf.org/rfc/rfc3252.txt"; - QTest::newRow("bigfile-internal") << testDataDir + "/bigfile" << "http://" + QtNetworkSettings::httpServerName() + "/qtest/bigfile"; diff --git a/tests/auto/network/access/spdy/BLACKLIST b/tests/auto/network/access/spdy/BLACKLIST deleted file mode 100644 index 5cf79327be..0000000000 --- a/tests/auto/network/access/spdy/BLACKLIST +++ /dev/null @@ -1,7 +0,0 @@ -[download] -opensuse-leap -[upload] -opensuse-leap -ubuntu-18.04 -b2qt - diff --git a/tests/auto/network/access/spdy/spdy.pro b/tests/auto/network/access/spdy/spdy.pro deleted file mode 100644 index cdbe60a19b..0000000000 --- a/tests/auto/network/access/spdy/spdy.pro +++ /dev/null @@ -1,7 +0,0 @@ -CONFIG += testcase -TARGET = tst_spdy -SOURCES += tst_spdy.cpp - -QT = core core-private network network-private testlib - -win32:CONFIG += insignificant_test # QTBUG-47128 diff --git a/tests/auto/network/access/spdy/tst_spdy.cpp b/tests/auto/network/access/spdy/tst_spdy.cpp deleted file mode 100644 index f4a5976558..0000000000 --- a/tests/auto/network/access/spdy/tst_spdy.cpp +++ /dev/null @@ -1,693 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 BlackBerry Limited. All rights reserved. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** 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 The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.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> -#if defined(QT_BUILD_INTERNAL) && !defined(QT_NO_OPENSSL) -#include <QtNetwork/private/qsslsocket_openssl_p.h> -#endif // QT_BUILD_INTERNAL && !QT_NO_OPENSSL - -#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(); -#ifndef QT_NO_NETWORKPROXY - void download_data(); - void download(); -#endif // !QT_NO_NETWORKPROXY - void headerFields(); -#ifndef QT_NO_NETWORKPROXY - void upload_data(); - void upload(); - void errors_data(); - void errors(); -#endif // !QT_NO_NETWORKPROXY - void multipleRequests_data(); - void multipleRequests(); - -private: - QNetworkAccessManager m_manager; - int m_multipleRequestsCount; - int m_multipleRepliesFinishedCount; - const QString m_rfc3252FilePath; - -protected Q_SLOTS: - void proxyAuthenticationRequired(const QNetworkProxy &, QAuthenticator *authenticator); - void multipleRequestsFinishedSlot(); -}; - -tst_Spdy::tst_Spdy() - : m_rfc3252FilePath(QFINDTESTDATA("../qnetworkreply/rfc3252.txt")) -{ -#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(!m_rfc3252FilePath.isEmpty()); - 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); - 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"); -} - -#ifndef QT_NO_NETWORKPROXY -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") - << m_rfc3252FilePath - << 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") - << m_rfc3252FilePath - << QNetworkProxy(QNetworkProxy::HttpProxy, proxyserver, 3128); - - QTest::newRow("mediumfile-http-proxy-auth") << QUrl("https://" + QtNetworkSettings::serverName() - + "/qtest/rfc3252.txt") - << m_rfc3252FilePath - << QNetworkProxy(QNetworkProxy::HttpProxy, - proxyserver, 3129); - - QTest::newRow("mediumfile-socks-proxy") << QUrl("https://" + QtNetworkSettings::serverName() - + "/qtest/rfc3252.txt") - << m_rfc3252FilePath - << QNetworkProxy(QNetworkProxy::Socks5Proxy, proxyserver, 1080); - - QTest::newRow("mediumfile-socks-proxy-auth") << QUrl("https://" + QtNetworkSettings::serverName() - + "/qtest/rfc3252.txt") - << m_rfc3252FilePath - << 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 -} -#endif // !QT_NO_NETWORKPROXY - -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'); -} - -#ifndef QT_NO_NETWORKPROXY -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(m_rfc3252FilePath); - 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 -} -#endif // !QT_NO_NETWORKPROXY - -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/widgets/itemviews/qheaderview/tst_qheaderview.cpp b/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp index 3a71b1818b..df1b271f2a 100644 --- a/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp +++ b/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp @@ -1740,7 +1740,7 @@ void tst_QHeaderView::restoreQt4State() QCOMPARE(h2.length(), old_length); QCOMPARE(h2.saveState(), old_state); #else - QSKIP("Qt4 compatibility no longer needed in Qt6") + QSKIP("Qt4 compatibility no longer needed in Qt6"); #endif } |