diff options
Diffstat (limited to 'tests')
23 files changed, 350 insertions, 37 deletions
diff --git a/tests/auto/cmake/test_private_includes/CMakeLists.txt b/tests/auto/cmake/test_private_includes/CMakeLists.txt index f283bc21b3..9095836ed8 100644 --- a/tests/auto/cmake/test_private_includes/CMakeLists.txt +++ b/tests/auto/cmake/test_private_includes/CMakeLists.txt @@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 2.8) project(test_private_includes) -find_package(Qt5Gui REQUIRED) +find_package(Qt5Gui REQUIRED Private) include_directories( ${Qt5Gui_INCLUDE_DIRS} diff --git a/tests/auto/corelib/codecs/qtextcodec/tst_qtextcodec.cpp b/tests/auto/corelib/codecs/qtextcodec/tst_qtextcodec.cpp index 616fe33309..6329160998 100644 --- a/tests/auto/corelib/codecs/qtextcodec/tst_qtextcodec.cpp +++ b/tests/auto/corelib/codecs/qtextcodec/tst_qtextcodec.cpp @@ -102,6 +102,7 @@ private slots: void moreToFromUnicode(); void shiftJis(); + void userCodec(); }; void tst_QTextCodec::toUnicode_data() @@ -2312,6 +2313,53 @@ void tst_QTextCodec::shiftJis() QCOMPARE(encoded, backslashTilde); } +struct UserCodec : public QTextCodec +{ + // implement pure virtuals + QByteArray name() const Q_DECL_OVERRIDE + { return "UserCodec"; } + QList<QByteArray> aliases() const Q_DECL_OVERRIDE + { return QList<QByteArray>() << "usercodec" << "user-codec"; } + int mibEnum() const Q_DECL_OVERRIDE + { return 5000; } + + virtual QString convertToUnicode(const char *, int, ConverterState *) const Q_DECL_OVERRIDE + { return QString(); } + virtual QByteArray convertFromUnicode(const QChar *, int, ConverterState *) const Q_DECL_OVERRIDE + { return QByteArray(); } +}; + +void tst_QTextCodec::userCodec() +{ + // check that it isn't there + static bool executedOnce = false; + if (executedOnce) + QSKIP("Test already executed once"); + + QVERIFY(!QTextCodec::availableCodecs().contains("UserCodec")); + QVERIFY(!QTextCodec::codecForName("UserCodec")); + + QTextCodec *codec = new UserCodec; + executedOnce = true; + + QList<QByteArray> availableCodecs = QTextCodec::availableCodecs(); + QVERIFY(availableCodecs.contains("UserCodec")); + QVERIFY(availableCodecs.contains("usercodec")); + QVERIFY(availableCodecs.contains("user-codec")); + + QTextCodec *pcodec = QTextCodec::codecForName("UserCodec"); + QCOMPARE(pcodec, codec); + + pcodec = QTextCodec::codecForName("user-codec"); + QCOMPARE(pcodec, codec); + + pcodec = QTextCodec::codecForName("User-Codec"); + QCOMPARE(pcodec, codec); + + pcodec = QTextCodec::codecForMib(5000); + QCOMPARE(pcodec, codec); +} + struct DontCrashAtExit { ~DontCrashAtExit() { QTextCodec *c = QTextCodec::codecForName("utf8"); diff --git a/tests/auto/corelib/io/qprocess/tst_qprocess.cpp b/tests/auto/corelib/io/qprocess/tst_qprocess.cpp index 3862553a4b..f2759dfd6e 100644 --- a/tests/auto/corelib/io/qprocess/tst_qprocess.cpp +++ b/tests/auto/corelib/io/qprocess/tst_qprocess.cpp @@ -82,6 +82,7 @@ private slots: void constructing(); void simpleStart(); void startWithOpen(); + void startWithOldOpen(); void execute(); void startDetached(); void crashTest(); @@ -297,6 +298,25 @@ void tst_QProcess::startWithOpen() } //----------------------------------------------------------------------------- +void tst_QProcess::startWithOldOpen() +{ + // similar to the above, but we start with start() actually + // while open() is overridden to call QIODevice::open(). + // This tests the BC requirement that "it works with the old implementation" + class OverriddenOpen : public QProcess + { + public: + virtual bool open(OpenMode mode) Q_DECL_OVERRIDE + { return QIODevice::open(mode); } + }; + + OverriddenOpen p; + p.start("testProcessNormal/testProcessNormal"); + QVERIFY(p.waitForStarted(5000)); + QVERIFY(p.waitForFinished(5000)); +} + +//----------------------------------------------------------------------------- void tst_QProcess::execute() { QCOMPARE(QProcess::execute("testProcessNormal/testProcessNormal", diff --git a/tests/auto/corelib/tools/qeasingcurve/qeasingcurve.pro b/tests/auto/corelib/tools/qeasingcurve/qeasingcurve.pro index 679f9bbda4..bec6c1e17e 100644 --- a/tests/auto/corelib/tools/qeasingcurve/qeasingcurve.pro +++ b/tests/auto/corelib/tools/qeasingcurve/qeasingcurve.pro @@ -3,3 +3,4 @@ TARGET = tst_qeasingcurve QT = core testlib SOURCES = tst_qeasingcurve.cpp DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0 +linux-*:system(". /etc/lsb-release && [ $DISTRIB_CODENAME = oneiric ]"):DEFINES+=UBUNTU_ONEIRIC # QTBUG-32432 diff --git a/tests/auto/corelib/tools/qeasingcurve/tst_qeasingcurve.cpp b/tests/auto/corelib/tools/qeasingcurve/tst_qeasingcurve.cpp index 2099d978c0..fa747b3c18 100644 --- a/tests/auto/corelib/tools/qeasingcurve/tst_qeasingcurve.cpp +++ b/tests/auto/corelib/tools/qeasingcurve/tst_qeasingcurve.cpp @@ -434,6 +434,9 @@ void tst_QEasingCurve::setCustomType() QCOMPARE(curve.valueForProgress(0.15), 0.1); QCOMPARE(curve.valueForProgress(0.20), 0.2); QCOMPARE(curve.valueForProgress(0.25), 0.2); +#if defined(UBUNTU_ONEIRIC) && defined(__i386__) + QEXPECT_FAIL("", "QTBUG-32432: Fails on Ubuntu 11.10 32 bit configurations", Abort); +#endif QCOMPARE(curve.valueForProgress(0.30), 0.3); QCOMPARE(curve.valueForProgress(0.35), 0.3); QCOMPARE(curve.valueForProgress(0.999999), 0.9); diff --git a/tests/auto/dbus/qdbusabstractinterface/tst_qdbusabstractinterface.cpp b/tests/auto/dbus/qdbusabstractinterface/tst_qdbusabstractinterface.cpp index 54aa563d99..91e69fcdb7 100644 --- a/tests/auto/dbus/qdbusabstractinterface/tst_qdbusabstractinterface.cpp +++ b/tests/auto/dbus/qdbusabstractinterface/tst_qdbusabstractinterface.cpp @@ -70,12 +70,12 @@ class tst_QDBusAbstractInterface: public QObject return Pinger(new org::qtproject::QtDBus::Pinger(service, path, con)); } - Pinger getPingerPeer(const QString &path = "/") + Pinger getPingerPeer(const QString &path = "/", const QString &service = "") { QDBusConnection con = QDBusConnection("peer"); if (!con.isConnected()) return Pinger(); - return Pinger(new org::qtproject::QtDBus::Pinger("", path, con)); + return Pinger(new org::qtproject::QtDBus::Pinger(service, path, con)); } void resetServer() @@ -197,6 +197,10 @@ private slots: void directPropertyReadErrorsPeer(); void directPropertyWriteErrorsPeer_data(); void directPropertyWriteErrorsPeer(); + + void validity_data(); + void validity(); + private: QProcess proc; }; @@ -1389,5 +1393,23 @@ void tst_QDBusAbstractInterface::directPropertyWriteErrorsPeer() QTEST(p->lastError().name(), "errorName"); } +void tst_QDBusAbstractInterface::validity_data() +{ + QTest::addColumn<QString>("service"); + + QTest::newRow("null-service") << ""; + QTest::newRow("ignored-service") << "org.example.anyservice"; +} + +void tst_QDBusAbstractInterface::validity() +{ + /* Test case for QTBUG-32374 */ + QFETCH(QString, service); + Pinger p = getPingerPeer("/", service); + QVERIFY2(p, "Not connected to D-Bus"); + + QVERIFY(p->isValid()); +} + QTEST_MAIN(tst_QDBusAbstractInterface) #include "tst_qdbusabstractinterface.moc" diff --git a/tests/auto/gui/image/qicon/styles/commonstyle/images/standardbutton-open-128.png b/tests/auto/gui/image/qicon/styles/commonstyle/images/standardbutton-open-128.png Binary files differnew file mode 100644 index 0000000000..8a052e829d --- /dev/null +++ b/tests/auto/gui/image/qicon/styles/commonstyle/images/standardbutton-open-128.png diff --git a/tests/auto/gui/image/qicon/styles/commonstyle/images/standardbutton-open-16.png b/tests/auto/gui/image/qicon/styles/commonstyle/images/standardbutton-open-16.png Binary files differnew file mode 100644 index 0000000000..08cdc2b91f --- /dev/null +++ b/tests/auto/gui/image/qicon/styles/commonstyle/images/standardbutton-open-16.png diff --git a/tests/auto/gui/image/qicon/styles/commonstyle/images/standardbutton-open-32.png b/tests/auto/gui/image/qicon/styles/commonstyle/images/standardbutton-open-32.png Binary files differnew file mode 100644 index 0000000000..db33c79852 --- /dev/null +++ b/tests/auto/gui/image/qicon/styles/commonstyle/images/standardbutton-open-32.png diff --git a/tests/auto/gui/image/qicon/styles/commonstyle/images/standardbutton-save-128.png b/tests/auto/gui/image/qicon/styles/commonstyle/images/standardbutton-save-128.png Binary files differnew file mode 100644 index 0000000000..fc6fd7ce1d --- /dev/null +++ b/tests/auto/gui/image/qicon/styles/commonstyle/images/standardbutton-save-128.png diff --git a/tests/auto/gui/image/qicon/styles/commonstyle/images/standardbutton-save-16.png b/tests/auto/gui/image/qicon/styles/commonstyle/images/standardbutton-save-16.png Binary files differnew file mode 100644 index 0000000000..dd4e228280 --- /dev/null +++ b/tests/auto/gui/image/qicon/styles/commonstyle/images/standardbutton-save-16.png diff --git a/tests/auto/gui/image/qicon/styles/commonstyle/images/standardbutton-save-32.png b/tests/auto/gui/image/qicon/styles/commonstyle/images/standardbutton-save-32.png Binary files differnew file mode 100644 index 0000000000..177678c963 --- /dev/null +++ b/tests/auto/gui/image/qicon/styles/commonstyle/images/standardbutton-save-32.png diff --git a/tests/auto/gui/image/qicon/tst_qicon.cpp b/tests/auto/gui/image/qicon/tst_qicon.cpp index 6c62d6f1b4..2ce6fc5058 100644 --- a/tests/auto/gui/image/qicon/tst_qicon.cpp +++ b/tests/auto/gui/image/qicon/tst_qicon.cpp @@ -375,32 +375,32 @@ void tst_QIcon::detach() void tst_QIcon::addFile() { QIcon icon; - icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-open-16.png")); - icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-open-32.png")); - icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-open-128.png")); - icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-save-16.png"), QSize(), QIcon::Selected); - icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-save-32.png"), QSize(), QIcon::Selected); - icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-save-128.png"), QSize(), QIcon::Selected); + icon.addFile(QLatin1String(":/styles/commonstyle/images/standardbutton-open-16.png")); + icon.addFile(QLatin1String(":/styles/commonstyle/images/standardbutton-open-32.png")); + icon.addFile(QLatin1String(":/styles/commonstyle/images/standardbutton-open-128.png")); + icon.addFile(QLatin1String(":/styles/commonstyle/images/standardbutton-save-16.png"), QSize(), QIcon::Selected); + icon.addFile(QLatin1String(":/styles/commonstyle/images/standardbutton-save-32.png"), QSize(), QIcon::Selected); + icon.addFile(QLatin1String(":/styles/commonstyle/images/standardbutton-save-128.png"), QSize(), QIcon::Selected); #ifndef Q_OS_WINCE QVERIFY(icon.pixmap(16, QIcon::Normal).toImage() == - QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-open-16.png")).toImage()); + QPixmap(QLatin1String(":/styles/commonstyle/images/standardbutton-open-16.png")).toImage()); QVERIFY(icon.pixmap(32, QIcon::Normal).toImage() == - QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-open-32.png")).toImage()); + QPixmap(QLatin1String(":/styles/commonstyle/images/standardbutton-open-32.png")).toImage()); QVERIFY(icon.pixmap(128, QIcon::Normal).toImage() == - QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-open-128.png")).toImage()); + QPixmap(QLatin1String(":/styles/commonstyle/images/standardbutton-open-128.png")).toImage()); QVERIFY(icon.pixmap(16, QIcon::Selected).toImage() == - QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-save-16.png")).toImage()); + QPixmap(QLatin1String(":/styles/commonstyle/images/standardbutton-save-16.png")).toImage()); QVERIFY(icon.pixmap(32, QIcon::Selected).toImage() == - QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-save-32.png")).toImage()); + QPixmap(QLatin1String(":/styles/commonstyle/images/standardbutton-save-32.png")).toImage()); QVERIFY(icon.pixmap(128, QIcon::Selected).toImage() == - QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-save-128.png")).toImage()); + QPixmap(QLatin1String(":/styles/commonstyle/images/standardbutton-save-128.png")).toImage()); #else // WinCE only includes the 16x16 images for size reasons QVERIFY(icon.pixmap(16, QIcon::Normal).toImage() == - QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-open-16.png")).toImage()); + QPixmap(QLatin1String(":/styles/commonstyle/images/standardbutton-open-16.png")).toImage()); QVERIFY(icon.pixmap(16, QIcon::Selected).toImage() == - QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-save-16.png")).toImage()); + QPixmap(QLatin1String(":/styles/commonstyle/images/standardbutton-save-16.png")).toImage()); #endif } @@ -437,11 +437,8 @@ void tst_QIcon::availableSizes() { // we try to load an icon from resources - QIcon icon(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-open-16.png")); + QIcon icon(QLatin1String(":/styles/commonstyle/images/standardbutton-open-16.png")); QList<QSize> availableSizes = icon.availableSizes(); -#ifdef QT_NO_WIDGETS - QEXPECT_FAIL("", "See QTBUG-31993", Abort); -#endif QCOMPARE(availableSizes.size(), 1); QCOMPARE(availableSizes.at(0), QSize(16, 16)); } @@ -449,7 +446,7 @@ void tst_QIcon::availableSizes() { // load an icon from binary data. QPixmap pix; - QFile file(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-open-16.png")); + QFile file(QLatin1String(":/styles/commonstyle/images/standardbutton-open-16.png")); QVERIFY(file.open(QIODevice::ReadOnly)); uchar *data = file.map(0, file.size()); QVERIFY(data != 0); @@ -629,18 +626,15 @@ void tst_QIcon::fromTheme() void tst_QIcon::task223279_inconsistentAddFile() { QIcon icon1; - icon1.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-open-16.png")); + icon1.addFile(QLatin1String(":/styles/commonstyle/images/standardbutton-open-16.png")); icon1.addFile(QLatin1String("IconThatDoesntExist"), QSize(32, 32)); QPixmap pm1 = icon1.pixmap(32, 32); QIcon icon2; - icon2.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-open-16.png")); + icon2.addFile(QLatin1String(":/styles/commonstyle/images/standardbutton-open-16.png")); icon2.addFile(QLatin1String("IconThatDoesntExist")); QPixmap pm2 = icon1.pixmap(32, 32); -#ifdef QT_NO_WIDGETS - QEXPECT_FAIL("", "See QTBUG-31993", Abort); -#endif QCOMPARE(pm1.isNull(), false); QCOMPARE(pm1.size(), QSize(16,16)); QCOMPARE(pm1.isNull(), pm2.isNull()); diff --git a/tests/auto/gui/image/qicon/tst_qicon.qrc b/tests/auto/gui/image/qicon/tst_qicon.qrc index 7925a33c84..469a0a21b4 100644 --- a/tests/auto/gui/image/qicon/tst_qicon.qrc +++ b/tests/auto/gui/image/qicon/tst_qicon.qrc @@ -16,5 +16,11 @@ <file>./icons/themeparent/index.theme</file> <file>./icons/themeparent/scalable/actions/address-book-new.svg</file> <file>./icons/themeparent/scalable/actions/appointment-new.svg</file> +<file>./styles/commonstyle/images/standardbutton-open-16.png</file> +<file>./styles/commonstyle/images/standardbutton-open-32.png</file> +<file>./styles/commonstyle/images/standardbutton-open-128.png</file> +<file>./styles/commonstyle/images/standardbutton-save-16.png</file> +<file>./styles/commonstyle/images/standardbutton-save-32.png</file> +<file>./styles/commonstyle/images/standardbutton-save-128.png</file> </qresource> </RCC> diff --git a/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp b/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp index ed07b3fab5..663f664d94 100644 --- a/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp +++ b/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp @@ -372,8 +372,8 @@ public: int leaves; int enters; - inline BlockableWindow() - : QWindow(), blocked(false), leaves(0), enters(0) {} + inline explicit BlockableWindow(QWindow *parent = 0) + : QWindow(parent), blocked(false), leaves(0), enters(0) {} bool event(QEvent *e) { @@ -416,10 +416,13 @@ void tst_QGuiApplication::modalWindow() window1->setTitle(QStringLiteral("window1")); window1->resize(windowSize, windowSize); window1->setFramePosition(QPoint(x, y)); + BlockableWindow *childWindow1 = new BlockableWindow(window1.data()); + childWindow1->resize(windowSize / 2, windowSize / 2); x += spacing + windowSize; QScopedPointer<BlockableWindow> window2(new BlockableWindow); window2->setTitle(QStringLiteral("window2")); + window2->setFlags(window2->flags() & Qt::Tool); // QTBUG-32433, don't be fooled by unusual window flags. window2->resize(windowSize, windowSize); window2->setFramePosition(QPoint(x, y)); x += spacing + windowSize; @@ -458,6 +461,7 @@ void tst_QGuiApplication::modalWindow() QVERIFY(QTest::qWaitForWindowExposed(window2.data())); QCOMPARE(app.modalWindow(), static_cast<QWindow *>(0)); QCOMPARE(window1->blocked, 0); + QCOMPARE(childWindow1->blocked, 0); QCOMPARE(window2->blocked, 0); QCOMPARE(windowModalWindow1->blocked, 0); QCOMPARE(windowModalWindow2->blocked, 0); @@ -473,6 +477,7 @@ void tst_QGuiApplication::modalWindow() applicationModalWindow1->show(); QCOMPARE(app.modalWindow(), applicationModalWindow1.data()); QCOMPARE(window1->blocked, 1); + QCOMPARE(childWindow1->blocked, 1); // QTBUG-32242, blocked status needs to be set on children as well. QCOMPARE(window2->blocked, 1); QCOMPARE(windowModalWindow1->blocked, 1); QCOMPARE(windowModalWindow2->blocked, 1); @@ -500,6 +505,7 @@ void tst_QGuiApplication::modalWindow() applicationModalWindow1->hide(); QCOMPARE(app.modalWindow(), static_cast<QWindow *>(0)); QCOMPARE(window1->blocked, 0); + QCOMPARE(childWindow1->blocked, 0); // QTBUG-32242, blocked status needs to be set on children as well. QCOMPARE(window2->blocked, 0); QCOMPARE(windowModalWindow1->blocked, 0); QCOMPARE(windowModalWindow2->blocked, 0); diff --git a/tests/auto/network/access/qnetworkreply/test/test.pro b/tests/auto/network/access/qnetworkreply/test/test.pro index 93a8cbad55..cc58843eef 100644 --- a/tests/auto/network/access/qnetworkreply/test/test.pro +++ b/tests/auto/network/access/qnetworkreply/test/test.pro @@ -1,19 +1,16 @@ CONFIG += testcase testcase.timeout = 600 # this test is slow -CONFIG += parallel_test CONFIG -= app_bundle debug_and_release_target -QT -= gui SOURCES += ../tst_qnetworkreply.cpp TARGET = ../tst_qnetworkreply -contains(QT_CONFIG,xcb): CONFIG+=insignificant_test # unstable, QTBUG-21102 - QT = core-private network-private testlib RESOURCES += ../qnetworkreply.qrc TESTDATA += ../empty ../rfc3252.txt ../resource ../bigfile ../*.jpg ../certs \ ../index.html ../smb-file.txt +contains(QT_CONFIG,xcb): CONFIG+=insignificant_test # unstable, QTBUG-21102 win32:CONFIG += insignificant_test # QTBUG-24226 TEST_HELPER_INSTALLS = ../echo/echo diff --git a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp index 81c3e48d61..2bf8f71d31 100644 --- a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp +++ b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp @@ -7537,6 +7537,10 @@ void tst_QNetworkReply::backgroundRequestInterruption() QNetworkSessionPrivate::setUsagePolicies(*const_cast<QNetworkSession *>(session.data()), original); QVERIFY(reply->isFinished()); +#ifdef Q_OS_MACX + if (QSysInfo::MacintoshVersion == QSysInfo::MV_10_8) + QEXPECT_FAIL("ftp, bg, nobg", "See QTBUG-32435", Abort); +#endif QCOMPARE(reply->error(), error); #endif } diff --git a/tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp b/tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp index 159f276c77..9887acf7dd 100644 --- a/tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp +++ b/tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp @@ -78,6 +78,9 @@ private slots: void listenAndConnect_data(); void listenAndConnect(); + void connectWithOpen(); + void connectWithOldOpen(); + void sendData_data(); void sendData(); @@ -267,6 +270,7 @@ void tst_QLocalSocket::socket_basic() //QCOMPARE(socket.socketDescriptor(), (qintptr)-1); QCOMPARE(socket.state(), QLocalSocket::UnconnectedState); QCOMPARE(socket.waitForConnected(0), false); + QTest::ignoreMessage(QtWarningMsg, "QLocalSocket::waitForDisconnected() is not allowed in UnconnectedState"); QCOMPARE(socket.waitForDisconnected(0), false); QCOMPARE(socket.waitForReadyRead(0), false); @@ -310,6 +314,7 @@ void tst_QLocalSocket::listen() QVERIFY(server.errorString().isEmpty()); QCOMPARE(server.serverError(), QAbstractSocket::UnknownSocketError); // already isListening + QTest::ignoreMessage(QtWarningMsg, "QLocalServer::listen() called when already listening"); QVERIFY(!server.listen(name)); } else { QVERIFY(!server.errorString().isEmpty()); @@ -452,6 +457,54 @@ void tst_QLocalSocket::listenAndConnect() QCOMPARE(spyNewConnection.count(), (canListen ? connections : 0)); } +void tst_QLocalSocket::connectWithOpen() +{ + LocalServer server; + QVERIFY(server.listen("tst_qlocalsocket")); + + LocalSocket socket; + socket.setServerName("tst_qlocalsocket"); + QVERIFY(socket.open()); + + bool timedOut = true; + QVERIFY(server.waitForNewConnection(3000, &timedOut)); + +#if defined(QT_LOCALSOCKET_TCP) + QTest::qWait(250); +#endif + QVERIFY(!timedOut); + + socket.close(); + server.close(); +} + +void tst_QLocalSocket::connectWithOldOpen() +{ + class OverriddenOpen : public LocalSocket + { + public: + virtual bool open(OpenMode mode) Q_DECL_OVERRIDE + { return QIODevice::open(mode); } + }; + + LocalServer server; + QCOMPARE(server.listen("tst_qlocalsocket"), true); + + OverriddenOpen socket; + socket.connectToServer("tst_qlocalsocket"); + + bool timedOut = true; + QVERIFY(server.waitForNewConnection(3000, &timedOut)); + +#if defined(QT_LOCALSOCKET_TCP) + QTest::qWait(250); +#endif + QVERIFY(!timedOut); + + socket.close(); + server.close(); +} + void tst_QLocalSocket::sendData_data() { listenAndConnect_data(); @@ -964,15 +1017,16 @@ void tst_QLocalSocket::writeToClientAndDisconnect() clientSocket->close(); server.close(); - QTRY_COMPARE(readChannelFinishedSpy.count(), 1); - QCOMPARE(client.read(buffer, sizeof(buffer)), (qint64)sizeof(buffer)); client.waitForDisconnected(); + QCOMPARE(readChannelFinishedSpy.count(), 1); + QCOMPARE(client.read(buffer, sizeof(buffer)), (qint64)sizeof(buffer)); QCOMPARE(client.state(), QLocalSocket::UnconnectedState); } void tst_QLocalSocket::debug() { // Make sure this compiles + QTest::ignoreMessage(QtDebugMsg, "QLocalSocket::ConnectionRefusedError QLocalSocket::UnconnectedState "); qDebug() << QLocalSocket::ConnectionRefusedError << QLocalSocket::UnconnectedState; } @@ -1104,7 +1158,7 @@ void tst_QLocalSocket::verifyListenWithDescriptor() QFETCH(bool, abstract); QFETCH(bool, bound); - qDebug() << "socket" << path << abstract; +// qDebug() << "socket" << path << abstract; int listenSocket; diff --git a/tests/auto/widgets/graphicsview/qgraphicssceneindex/tst_qgraphicssceneindex.cpp b/tests/auto/widgets/graphicsview/qgraphicssceneindex/tst_qgraphicssceneindex.cpp index dd432912f3..55fcd96dc0 100644 --- a/tests/auto/widgets/graphicsview/qgraphicssceneindex/tst_qgraphicssceneindex.cpp +++ b/tests/auto/widgets/graphicsview/qgraphicssceneindex/tst_qgraphicssceneindex.cpp @@ -61,6 +61,8 @@ private slots: void movingItems(); void connectedToSceneRectChanged(); void items(); + void boundingRectPointIntersection_data(); + void boundingRectPointIntersection(); void removeItems(); void clear(); @@ -233,6 +235,56 @@ void tst_QGraphicsSceneIndex::items() QCOMPARE(scene.items().size(), 3); } +class CustomShapeItem : public QGraphicsItem +{ +public: + CustomShapeItem(const QPainterPath &shape) : QGraphicsItem(0), mShape(shape) {} + + QPainterPath shape() const { return mShape; } + QRectF boundingRect() const { return mShape.boundingRect(); } + void paint(QPainter*, const QStyleOptionGraphicsItem*, QWidget*) {} +private: + QPainterPath mShape; +}; + +Q_DECLARE_METATYPE(Qt::ItemSelectionMode) +Q_DECLARE_METATYPE(QPainterPath) + +void tst_QGraphicsSceneIndex::boundingRectPointIntersection_data() +{ + QTest::addColumn<QPainterPath>("itemShape"); + QTest::addColumn<Qt::ItemSelectionMode>("mode"); + + QTest::newRow("zero shape - intersects rect") << QPainterPath() << Qt::IntersectsItemBoundingRect; + QTest::newRow("zero shape - contains rect") << QPainterPath() << Qt::ContainsItemBoundingRect; + + QPainterPath triangle; + triangle.moveTo(50, 0); + triangle.lineTo(0, 50); + triangle.lineTo(100, 50); + triangle.lineTo(50, 0); + QTest::newRow("triangle shape - intersects rect") << triangle << Qt::IntersectsItemBoundingRect; + QTest::newRow("triangle shape - contains rect") << triangle << Qt::ContainsItemBoundingRect; + + QPainterPath rect; + rect.addRect(QRectF(0, 0, 100, 100)); + QTest::newRow("rectangle shape - intersects rect") << rect << Qt::IntersectsItemBoundingRect; + QTest::newRow("rectangle shape - contains rect") << rect << Qt::ContainsItemBoundingRect; +} + +void tst_QGraphicsSceneIndex::boundingRectPointIntersection() +{ + QFETCH(QPainterPath, itemShape); + QFETCH(Qt::ItemSelectionMode, mode); + + QGraphicsScene scene; + CustomShapeItem *item = new CustomShapeItem(itemShape); + scene.addItem(item); + QList<QGraphicsItem*> items = scene.items(QPointF(0, 0), mode, Qt::AscendingOrder); + QVERIFY(!items.isEmpty()); + QCOMPARE(items.first(), item); +} + class RectWidget : public QGraphicsWidget { Q_OBJECT diff --git a/tests/manual/manual.pro b/tests/manual/manual.pro index d6c3cd8048..c04f22b53b 100644 --- a/tests/manual/manual.pro +++ b/tests/manual/manual.pro @@ -41,7 +41,8 @@ widgetgrab \ xembed-raster \ xembed-widgets \ dialogs \ -windowtransparency +windowtransparency \ +unc !contains(QT_CONFIG, openssl):!contains(QT_CONFIG, openssl-linked):SUBDIRS -= qssloptions diff --git a/tests/manual/unc/main.cpp b/tests/manual/unc/main.cpp new file mode 100644 index 0000000000..51ceb87e28 --- /dev/null +++ b/tests/manual/unc/main.cpp @@ -0,0 +1,89 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** 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 <QApplication> +#include <QDialog> +#include <QVBoxLayout> +#include <QLabel> + +class Dialog : public QDialog +{ +public: + Dialog() + { + QString localFile("test.html"); + // server/shared/test.html should be replaced to point to a real file + QString UNCPath("file://server/shared/test.html"); + + QVBoxLayout* vBox = new QVBoxLayout(); + vBox->addWidget(new QLabel("Clicking on the links should open their" + " contents in the default browser !")); + vBox->addWidget(createLink(localFile)); + vBox->addWidget(new QLabel("The following link must point to " + "a file in a shared folder on a network !")); + vBox->addWidget(createLink(UNCPath)); + setLayout(vBox); + } + +protected: + QLabel* createLink(QString path) + { + QLabel *label = new QLabel(); + label->setTextFormat(Qt::RichText); + label->setTextInteractionFlags(Qt::TextBrowserInteraction); + label->setOpenExternalLinks(true); + + QString link("<a href=" + path + ">" + path + "</a>"); + + label->setText(link); + return label; + } +}; + +int main(int argc, char* argv[]) +{ + QApplication app(argc, argv); + + Dialog dlg; + dlg.show(); + + return app.exec(); +} diff --git a/tests/manual/unc/test.html b/tests/manual/unc/test.html new file mode 100644 index 0000000000..2e84ad5385 --- /dev/null +++ b/tests/manual/unc/test.html @@ -0,0 +1,10 @@ +<HTML> + <HEAD> + <TITLE> + A Small Hello + </TITLE> + </HEAD> +<BODY> + <P>This is first html document.</P> +</BODY> +</HTML> diff --git a/tests/manual/unc/unc.pro b/tests/manual/unc/unc.pro new file mode 100644 index 0000000000..977bd0c177 --- /dev/null +++ b/tests/manual/unc/unc.pro @@ -0,0 +1,6 @@ +QT += core gui +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets + +TEMPLATE = app + +SOURCES += main.cpp |