diff options
Diffstat (limited to 'tests')
16 files changed, 231 insertions, 116 deletions
diff --git a/tests/auto/corelib/global/qlogging/app/app.pro b/tests/auto/corelib/global/qlogging/app/app.pro index b11e792a4c..a7f6e68448 100644 --- a/tests/auto/corelib/global/qlogging/app/app.pro +++ b/tests/auto/corelib/global/qlogging/app/app.pro @@ -10,6 +10,7 @@ CONFIG += console SOURCES += main.cpp DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0 +DEFINES += QT_MESSAGELOGCONTEXT gcc:!mingw: QMAKE_LFLAGS += -rdynamic diff --git a/tests/auto/corelib/global/qlogging/test/test.pro b/tests/auto/corelib/global/qlogging/test/test.pro index 788a2064cd..d4dce4a0c3 100644 --- a/tests/auto/corelib/global/qlogging/test/test.pro +++ b/tests/auto/corelib/global/qlogging/test/test.pro @@ -5,5 +5,6 @@ TARGET = ../tst_qlogging QT = core testlib SOURCES = ../tst_qlogging.cpp +DEFINES += QT_MESSAGELOGCONTEXT TEST_HELPER_INSTALLS = ../app/app DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0 diff --git a/tests/auto/corelib/io/qdebug/tst_qdebug.cpp b/tests/auto/corelib/io/qdebug/tst_qdebug.cpp index f1c99e5dab..015a13775d 100644 --- a/tests/auto/corelib/io/qdebug/tst_qdebug.cpp +++ b/tests/auto/corelib/io/qdebug/tst_qdebug.cpp @@ -116,9 +116,13 @@ private: */ void tst_QDebug::warningWithoutDebug() const { + QString file, function; + int line = 0; MessageHandlerSetter mhs(myMessageHandler); { qWarning() << "A qWarning() message"; } - QString file = __FILE__; int line = __LINE__ - 1; QString function = Q_FUNC_INFO; +#ifndef QT_NO_MESSAGELOGCONTEXT + file = __FILE__; line = __LINE__ - 2; function = Q_FUNC_INFO; +#endif QCOMPARE(s_msgType, QtWarningMsg); QCOMPARE(s_msg, QString::fromLatin1("A qWarning() message")); QCOMPARE(QString::fromLatin1(s_file), file); @@ -131,9 +135,13 @@ void tst_QDebug::warningWithoutDebug() const */ void tst_QDebug::criticalWithoutDebug() const { + QString file, function; + int line = 0; MessageHandlerSetter mhs(myMessageHandler); { qCritical() << "A qCritical() message"; } - QString file = __FILE__; int line = __LINE__ - 1; QString function = Q_FUNC_INFO; +#ifndef QT_NO_MESSAGELOGCONTEXT + file = __FILE__; line = __LINE__ - 2; function = Q_FUNC_INFO; +#endif QCOMPARE(s_msgType, QtCriticalMsg); QCOMPARE(s_msg, QString::fromLatin1("A qCritical() message")); QCOMPARE(QString::fromLatin1(s_file), file); @@ -143,9 +151,13 @@ void tst_QDebug::criticalWithoutDebug() const void tst_QDebug::debugWithBool() const { + QString file, function; + int line = 0; MessageHandlerSetter mhs(myMessageHandler); { qDebug() << false << true; } - QString file = __FILE__; int line = __LINE__ - 1; QString function = Q_FUNC_INFO; +#ifndef QT_NO_MESSAGELOGCONTEXT + file = __FILE__; line = __LINE__ - 2; function = Q_FUNC_INFO; +#endif QCOMPARE(s_msgType, QtDebugMsg); QCOMPARE(s_msg, QString::fromLatin1("false true")); QCOMPARE(QString::fromLatin1(s_file), file); @@ -291,6 +303,8 @@ void tst_QDebug::stateSaver() const void tst_QDebug::veryLongWarningMessage() const { + QString file, function; + int line = 0; MessageHandlerSetter mhs(myMessageHandler); QString test; { @@ -299,7 +313,9 @@ void tst_QDebug::veryLongWarningMessage() const test.append(part); qWarning("Test output:\n%s\nend", qPrintable(test)); } - QString file = __FILE__; int line = __LINE__ - 2; QString function = Q_FUNC_INFO; +#ifndef QT_NO_MESSAGELOGCONTEXT + file = __FILE__; line = __LINE__ - 3; function = Q_FUNC_INFO; +#endif QCOMPARE(s_msgType, QtWarningMsg); QCOMPARE(s_msg, QString::fromLatin1("Test output:\n")+test+QString::fromLatin1("\nend")); QCOMPARE(QString::fromLatin1(s_file), file); @@ -309,13 +325,17 @@ void tst_QDebug::veryLongWarningMessage() const void tst_QDebug::qDebugQChar() const { + QString file, function; + int line = 0; MessageHandlerSetter mhs(myMessageHandler); { QDebug d = qDebug(); d << QChar('f'); d.nospace().noquote() << QChar('o') << QChar('o'); } - QString file = __FILE__; int line = __LINE__ - 4; QString function = Q_FUNC_INFO; +#ifndef QT_NO_MESSAGELOGCONTEXT + file = __FILE__; line = __LINE__ - 5; function = Q_FUNC_INFO; +#endif QCOMPARE(s_msgType, QtDebugMsg); QCOMPARE(s_msg, QString::fromLatin1("'f' oo")); QCOMPARE(QString::fromLatin1(s_file), file); @@ -328,12 +348,16 @@ void tst_QDebug::qDebugQStringRef() const { /* Use a basic string. */ { + QString file, function; + int line = 0; const QString in(QLatin1String("input")); const QStringRef inRef(&in); MessageHandlerSetter mhs(myMessageHandler); { qDebug() << inRef; } - QString file = __FILE__; int line = __LINE__ - 1; QString function = Q_FUNC_INFO; +#ifndef QT_NO_MESSAGELOGCONTEXT + file = __FILE__; line = __LINE__ - 2; function = Q_FUNC_INFO; +#endif QCOMPARE(s_msgType, QtDebugMsg); QCOMPARE(s_msg, QString::fromLatin1("\"input\"")); QCOMPARE(QString::fromLatin1(s_file), file); @@ -343,11 +367,16 @@ void tst_QDebug::qDebugQStringRef() const /* Use a null QStringRef. */ { + QString file, function; + int line = 0; + const QStringRef inRef; MessageHandlerSetter mhs(myMessageHandler); { qDebug() << inRef; } - QString file = __FILE__; int line = __LINE__ - 1; QString function = Q_FUNC_INFO; +#ifndef QT_NO_MESSAGELOGCONTEXT + file = __FILE__; line = __LINE__ - 2; function = Q_FUNC_INFO; +#endif QCOMPARE(s_msgType, QtDebugMsg); QCOMPARE(s_msg, QString::fromLatin1("\"\"")); QCOMPARE(QString::fromLatin1(s_file), file); @@ -358,13 +387,17 @@ void tst_QDebug::qDebugQStringRef() const void tst_QDebug::qDebugQLatin1String() const { + QString file, function; + int line = 0; MessageHandlerSetter mhs(myMessageHandler); { QDebug d = qDebug(); d << QLatin1String("foo") << QLatin1String("") << QLatin1String("barbaz", 3); d.nospace().noquote() << QLatin1String("baz"); } - QString file = __FILE__; int line = __LINE__ - 4; QString function = Q_FUNC_INFO; +#ifndef QT_NO_MESSAGELOGCONTEXT + file = __FILE__; line = __LINE__ - 5; function = Q_FUNC_INFO; +#endif QCOMPARE(s_msgType, QtDebugMsg); QCOMPARE(s_msg, QString::fromLatin1("\"foo\" \"\" \"bar\" baz")); QCOMPARE(QString::fromLatin1(s_file), file); @@ -374,13 +407,17 @@ void tst_QDebug::qDebugQLatin1String() const void tst_QDebug::qDebugQByteArray() const { + QString file, function; + int line = 0; MessageHandlerSetter mhs(myMessageHandler); { QDebug d = qDebug(); d << QByteArrayLiteral("foo") << QByteArrayLiteral("") << QByteArray("barbaz", 3); d.nospace().noquote() << QByteArrayLiteral("baz"); } - QString file = __FILE__; int line = __LINE__ - 4; QString function = Q_FUNC_INFO; +#ifndef QT_NO_MESSAGELOGCONTEXT + file = __FILE__; line = __LINE__ - 5; function = Q_FUNC_INFO; +#endif QCOMPARE(s_msgType, QtDebugMsg); QCOMPARE(s_msg, QString::fromLatin1("\"foo\" \"\" \"bar\" baz")); QCOMPARE(QString::fromLatin1(s_file), file); @@ -397,11 +434,15 @@ Q_DECLARE_FLAGS(TestFlags, TestEnum) void tst_QDebug::qDebugQFlags() const { + QString file, function; + int line = 0; QFlags<TestEnum> flags(Flag1 | Flag2); MessageHandlerSetter mhs(myMessageHandler); { qDebug() << flags; } - QString file = __FILE__; int line = __LINE__ - 1; QString function = Q_FUNC_INFO; +#ifndef QT_NO_MESSAGELOGCONTEXT + file = __FILE__; line = __LINE__ - 2; function = Q_FUNC_INFO; +#endif QCOMPARE(s_msgType, QtDebugMsg); QCOMPARE(s_msg, QString::fromLatin1("QFlags(0x1|0x10)")); QCOMPARE(QString::fromLatin1(s_file), file); @@ -412,9 +453,13 @@ void tst_QDebug::qDebugQFlags() const void tst_QDebug::textStreamModifiers() const { + QString file, function; + int line = 0; MessageHandlerSetter mhs(myMessageHandler); { qDebug() << hex << short(0xf) << int(0xf) << unsigned(0xf) << long(0xf) << qint64(0xf) << quint64(0xf); } - QString file = __FILE__; int line = __LINE__ - 1; QString function = Q_FUNC_INFO; +#ifndef QT_NO_MESSAGELOGCONTEXT + file = __FILE__; line = __LINE__ - 2; function = Q_FUNC_INFO; +#endif QCOMPARE(s_msgType, QtDebugMsg); QCOMPARE(s_msg, QString::fromLatin1("f f f f f f")); QCOMPARE(QString::fromLatin1(s_file), file); @@ -424,13 +469,17 @@ void tst_QDebug::textStreamModifiers() const void tst_QDebug::resetFormat() const { + QString file, function; + int line = 0; MessageHandlerSetter mhs(myMessageHandler); { QDebug d = qDebug(); d.nospace().noquote() << hex << int(0xf); d.resetFormat() << int(0xf) << QStringLiteral("foo"); } - QString file = __FILE__; int line = __LINE__ - 4; QString function = Q_FUNC_INFO; +#ifndef QT_NO_MESSAGELOGCONTEXT + file = __FILE__; line = __LINE__ - 5; function = Q_FUNC_INFO; +#endif QCOMPARE(s_msgType, QtDebugMsg); QCOMPARE(s_msg, QString::fromLatin1("f15 \"foo\"")); QCOMPARE(QString::fromLatin1(s_file), file); diff --git a/tests/auto/corelib/io/qsettings/tst_qsettings.cpp b/tests/auto/corelib/io/qsettings/tst_qsettings.cpp index 422340747b..77a60997a6 100644 --- a/tests/auto/corelib/io/qsettings/tst_qsettings.cpp +++ b/tests/auto/corelib/io/qsettings/tst_qsettings.cpp @@ -120,6 +120,7 @@ private slots: void testEmptyData(); void testResourceFiles(); void testRegistryShortRootNames(); + void trailingWhitespace(); #ifdef Q_OS_MAC void fileName(); #endif @@ -2053,6 +2054,23 @@ void tst_QSettings::testRegistryShortRootNames() #endif } +void tst_QSettings::trailingWhitespace() +{ + { + QSettings s("tst_QSettings_trailingWhitespace"); + s.setValue("trailingSpace", "x "); + s.setValue("trailingTab", "x\t"); + s.setValue("trailingNewline", "x\n"); + } + { + QSettings s("tst_QSettings_trailingWhitespace"); + QCOMPARE(s.value("trailingSpace").toString(), QLatin1String("x ")); + QCOMPARE(s.value("trailingTab").toString(), QLatin1String("x\t")); + QCOMPARE(s.value("trailingNewline").toString(), QLatin1String("x\n")); + s.clear(); + } +} + void tst_QSettings::fromFile_data() { populateWithFormats(); diff --git a/tests/auto/gui/text/qfontmetrics/tst_qfontmetrics.cpp b/tests/auto/gui/text/qfontmetrics/tst_qfontmetrics.cpp index 3effeb895e..5c2c805506 100644 --- a/tests/auto/gui/text/qfontmetrics/tst_qfontmetrics.cpp +++ b/tests/auto/gui/text/qfontmetrics/tst_qfontmetrics.cpp @@ -64,6 +64,7 @@ private slots: void elidedMultiLengthF(); void inFontUcs4(); void lineWidth(); + void mnemonicTextWidth(); }; tst_QFontMetrics::tst_QFontMetrics() @@ -331,5 +332,16 @@ void tst_QFontMetrics::lineWidth() QVERIFY(smallFontMetrics.lineWidth() < bigFontMetrics.lineWidth()); } +void tst_QFontMetrics::mnemonicTextWidth() +{ + // QTBUG-41593 + QFont f; + QFontMetrics fm(f); + const QString f1 = "File"; + const QString f2 = "&File"; + + QCOMPARE(fm.size(Qt::TextShowMnemonic, f1), fm.size(Qt::TextShowMnemonic, f2)); + QCOMPARE(fm.size(Qt::TextHideMnemonic, f1), fm.size(Qt::TextHideMnemonic, f2)); +} QTEST_MAIN(tst_QFontMetrics) #include "tst_qfontmetrics.moc" diff --git a/tests/auto/network/access/qnetworkaccessmanager/tst_qnetworkaccessmanager.cpp b/tests/auto/network/access/qnetworkaccessmanager/tst_qnetworkaccessmanager.cpp index aa63681664..4221097cd4 100644 --- a/tests/auto/network/access/qnetworkaccessmanager/tst_qnetworkaccessmanager.cpp +++ b/tests/auto/network/access/qnetworkaccessmanager/tst_qnetworkaccessmanager.cpp @@ -34,6 +34,7 @@ #include <QtTest/QtTest> #include <QtNetwork/QNetworkAccessManager> +#include <QtNetwork/QNetworkReply> #ifndef QT_NO_BEARERMANAGEMENT #include <QtNetwork/QNetworkConfigurationManager> #endif @@ -53,6 +54,7 @@ public: private slots: void networkAccessible(); + void alwaysCacheRequest(); }; tst_QNetworkAccessManager::tst_QNetworkAccessManager() @@ -118,5 +120,16 @@ void tst_QNetworkAccessManager::networkAccessible() #endif } +void tst_QNetworkAccessManager::alwaysCacheRequest() +{ + QNetworkAccessManager manager; + + QNetworkRequest req; + req.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::AlwaysCache); + QNetworkReply *reply = manager.get(req); + reply->close(); + delete reply; +} + QTEST_MAIN(tst_QNetworkAccessManager) #include "tst_qnetworkaccessmanager.moc" diff --git a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp index 7ec35fb3c2..533f7a7289 100644 --- a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp +++ b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp @@ -7929,6 +7929,8 @@ protected slots: //qDebug() << Q_FUNC_INFO; bandwidthQuota = 8*1024; // fill quota emit readyRead(); + // Emitting readyRead() several times triggers a bug ("QIODevice::read: Called with maxSize < 0") we fix with this commit + emit readyRead(); } }; diff --git a/tests/auto/network/access/spdy/tst_spdy.cpp b/tests/auto/network/access/spdy/tst_spdy.cpp index b68bb90123..34e5ab4a88 100644 --- a/tests/auto/network/access/spdy/tst_spdy.cpp +++ b/tests/auto/network/access/spdy/tst_spdy.cpp @@ -166,8 +166,7 @@ void tst_Spdy::settingsAndNegotiation() QFETCH(QByteArray, expectedProtocol); #ifndef QT_NO_OPENSSL - bool expectedSpdyUsed = (expectedProtocol == QSslConfiguration::NextProtocolSpdy3_0) - ? true : false; + bool expectedSpdyUsed = (expectedProtocol == QSslConfiguration::NextProtocolSpdy3_0); QCOMPARE(reply->attribute(QNetworkRequest::SpdyWasUsedAttribute).toBool(), expectedSpdyUsed); #endif // QT_NO_OPENSSL diff --git a/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp b/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp index b4f2a8d009..92200618d6 100644 --- a/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp +++ b/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp @@ -429,26 +429,18 @@ void tst_QFiledialog::completer_data() QTest::addColumn<QString>("input"); QTest::addColumn<int>("expected"); - QTest::newRow("r, 10") << "" << "r" << 10; - QTest::newRow("x, 0") << "" << "x" << 0; - QTest::newRow("../, -1") << "" << "../" << -1; + const QString rootPath = QDir::rootPath(); - QTest::newRow("goto root") << QString() << QDir::rootPath() << -1; - QTest::newRow("start at root") << QDir::rootPath() << QString() << -1; + QTest::newRow("r, 10") << QString() << "r" << 10; + QTest::newRow("x, 0") << QString() << "x" << 0; + QTest::newRow("../, -1") << QString() << "../" << -1; - QDir root = QDir::root(); - QStringList list = root.entryList(); - QString folder; - for (int i = 0; i < list.count(); ++i) { - if (list[i].at(0) == QChar('.')) - continue; - QFileInfo info(QDir::rootPath() + list[i]); - if (info.isDir()) { - folder = QDir::rootPath() + list[i]; - break; - } - } + QTest::newRow("goto root") << QString() << rootPath << -1; + QTest::newRow("start at root") << rootPath << QString() << -1; + QFileInfoList list = QDir::root().entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot); + QVERIFY(!list.isEmpty()); + const QString folder = list.first().absoluteFilePath(); QTest::newRow("start at one below root r") << folder << "r" << -1; QTest::newRow("start at one below root ../") << folder << "../" << -1; } @@ -457,27 +449,35 @@ void tst_QFiledialog::completer() { typedef QSharedPointer<QTemporaryFile> TemporaryFilePtr; +#ifdef Q_OS_WIN + static const Qt::CaseSensitivity caseSensitivity = Qt::CaseInsensitive; +#else + static const Qt::CaseSensitivity caseSensitivity = Qt::CaseSensitive; +#endif + QFETCH(QString, input); QFETCH(QString, startPath); QFETCH(int, expected); - QTemporaryDir tempDir; - QVERIFY(tempDir.isValid()); - - const QString tempPath = tempDir.path(); - startPath = startPath.isEmpty() ? tempPath : QDir::cleanPath(startPath); - // make temp dir and files + QScopedPointer<QTemporaryDir> tempDir; QList<TemporaryFilePtr> files; - QT_TRY { - for (int i = 0; i < 10; ++i) { - TemporaryFilePtr file(new QTemporaryFile(tempPath + QStringLiteral("/rXXXXXX"))); - QVERIFY(file->open()); - files.append(file); + + if (startPath.isEmpty()) { + tempDir.reset(new QTemporaryDir); + QVERIFY(tempDir->isValid()); + startPath = tempDir->path(); + for (int i = 0; i < 10; ++i) { + TemporaryFilePtr file(new QTemporaryFile(startPath + QStringLiteral("/rXXXXXX"))); + QVERIFY(file->open()); + files.append(file); + } } // ### flesh this out more - QNonNativeFileDialog fd(0,QString("Test it"),startPath); + QNonNativeFileDialog fd(0, QLatin1String(QTest::currentTestFunction()) + + QStringLiteral(" \"") + QLatin1String(QTest::currentDataTag()) + + QLatin1Char('"'), startPath); fd.setOptions(QFileDialog::DontUseNativeDialog); fd.show(); QVERIFY(QTest::qWaitForWindowExposed(&fd)); @@ -509,10 +509,20 @@ void tst_QFiledialog::completer() QCOMPARE(model->index(fd.directory().path()), model->index(startPath)); if (input.isEmpty()) { - QModelIndex r = model->index(model->rootPath()); - QVERIFY(model->rowCount(r) > 0); - QModelIndex idx = model->index(0, 0, r); - input = idx.data().toString().at(0); + // Try to find a suitable directory under root that does not + // start with 'C' to avoid issues with completing to "C:" drives on Windows. + const QString rootPath = model->rootPath(); + const QChar rootPathFirstChar = rootPath.at(0).toLower(); + QModelIndex rootIndex = model->index(rootPath); + const int rowCount = model->rowCount(rootIndex); + QVERIFY(rowCount > 0); + for (int row = 0; row < rowCount && input.isEmpty(); ++row) { + const QString name = model->index(row, 0, rootIndex).data().toString(); + const QChar firstChar = name.at(0); + if (firstChar.isLetter() && firstChar.toLower() != rootPathFirstChar) + input = firstChar; + } + QVERIFY2(!input.isEmpty(), "Unable to find a suitable input directory"); } // press 'keys' for the input @@ -525,7 +535,7 @@ void tst_QFiledialog::completer() if (!fullPath.endsWith(QLatin1Char('/'))) fullPath.append(QLatin1Char('/')); fullPath.append(input); - if (input.startsWith(QDir::rootPath())) { + if (input.startsWith(QDir::rootPath(), caseSensitivity)) { fullPath = input; input.clear(); } @@ -536,29 +546,13 @@ void tst_QFiledialog::completer() expected = 0; if (input.startsWith("..")) input.clear(); - for (int ii = 0; ii < expectedFiles.count(); ++ii) { -#if defined(Q_OS_WIN) - if (expectedFiles.at(ii).startsWith(input,Qt::CaseInsensitive)) -#else - if (expectedFiles.at(ii).startsWith(input)) -#endif + foreach (const QString &expectedFile, expectedFiles) { + if (expectedFile.startsWith(input, caseSensitivity)) ++expected; } } - QTest::qWait(1000); - if (cModel->rowCount() != expected) { - for (int i = 0; i < cModel->rowCount(); ++i) { - QString file = cModel->index(i, 0).data().toString(); - expectedFiles.removeAll(file); - } - //qDebug() << expectedFiles; - } - QTRY_COMPARE(cModel->rowCount(), expected); - } QT_CATCH(...) { - QT_RETHROW; - } } void tst_QFiledialog::completer_up() diff --git a/tests/auto/widgets/dialogs/qwizard/tst_qwizard.cpp b/tests/auto/widgets/dialogs/qwizard/tst_qwizard.cpp index d8ca50fac6..92c9ff3375 100644 --- a/tests/auto/widgets/dialogs/qwizard/tst_qwizard.cpp +++ b/tests/auto/widgets/dialogs/qwizard/tst_qwizard.cpp @@ -43,6 +43,7 @@ #include <QVBoxLayout> #include <QWizard> #include <QTreeWidget> +#include <QScreen> Q_DECLARE_METATYPE(QWizard::WizardButton); @@ -148,6 +149,7 @@ void tst_QWizard::init() void tst_QWizard::cleanup() { + QVERIFY(QApplication::topLevelWidgets().isEmpty()); } void tst_QWizard::buttonText() @@ -975,9 +977,17 @@ void tst_QWizard::setOption_IgnoreSubTitles() #if defined(Q_OS_WINCE) QSKIP("Skipped because of limited resources and potential crash. (Task: 166824)"); #endif + const QRect availableGeometry = QGuiApplication::primaryScreen()->availableGeometry(); + const int kPixels = (availableGeometry.width() + 500) / 1000; + const int frame = 50 * kPixels; + const int size = 400 * kPixels; QWizard wizard1; +#ifdef Q_OS_WIN + wizard1.setWizardStyle(QWizard::ClassicStyle); // Avoid Vista style focus animations, etc. +#endif wizard1.setButtonLayout(QList<QWizard::WizardButton>() << QWizard::CancelButton); - wizard1.resize(500, 500); + wizard1.resize(size, size); + wizard1.move(availableGeometry.left() + frame, availableGeometry.top() + frame); QVERIFY(!wizard1.testOption(QWizard::IgnoreSubTitles)); QWizardPage *page11 = new QWizardPage; page11->setTitle("Page X"); @@ -990,8 +1000,12 @@ void tst_QWizard::setOption_IgnoreSubTitles() wizard1.addPage(page12); QWizard wizard2; +#ifdef Q_OS_WIN + wizard2.setWizardStyle(QWizard::ClassicStyle); // Avoid Vista style focus animations, etc. +#endif wizard2.setButtonLayout(QList<QWizard::WizardButton>() << QWizard::CancelButton); - wizard2.resize(500, 500); + wizard2.resize(size, size); + wizard2.move(availableGeometry.left() + 2 * frame + size, availableGeometry.top() + frame); wizard2.setOption(QWizard::IgnoreSubTitles, true); QWizardPage *page21 = new QWizardPage; page21->setTitle("Page X"); @@ -1005,6 +1019,7 @@ void tst_QWizard::setOption_IgnoreSubTitles() wizard1.show(); wizard2.show(); + QVERIFY(QTest::qWaitForWindowExposed(&wizard2)); // Check that subtitles are shown when they should (i.e., // they're set and IgnoreSubTitles is off). @@ -1019,24 +1034,24 @@ void tst_QWizard::setOption_IgnoreSubTitles() QImage i12 = grabWidget(&wizard1); QImage i22 = grabWidget(&wizard2); - QVERIFY(i12 == i22); - QVERIFY(i21 == i22); + QCOMPARE(i12, i22); + QCOMPARE(i21, i22); wizard1.back(); wizard2.back(); QImage i13 = grabWidget(&wizard1); QImage i23 = grabWidget(&wizard2); - QVERIFY(i13 == i11); - QVERIFY(i23 == i21); + QCOMPARE(i13, i11); + QCOMPARE(i23, i21); wizard1.setOption(QWizard::IgnoreSubTitles, true); wizard2.setOption(QWizard::IgnoreSubTitles, false); QImage i14 = grabWidget(&wizard1); QImage i24 = grabWidget(&wizard2); - QVERIFY(i14 == i21); - QVERIFY(i24 == i11); + QCOMPARE(i14, i21); + QCOMPARE(i24, i11); // Check the impact of subtitles on the rest of the layout, by // using a subtitle that looks empty (but that isn't). In @@ -1060,7 +1075,7 @@ void tst_QWizard::setOption_IgnoreSubTitles() QImage i2 = grabWidget(&wizard1); if (j == 0 || wizard1.wizardStyle() == QWizard::MacStyle) { - QVERIFY(i1 == i2); + QCOMPARE(i1, i2); } else { QVERIFY(i1 != i2); } @@ -2411,9 +2426,9 @@ void tst_QWizard::sideWidget() wizard.setSideWidget(0); QVERIFY(wizard.sideWidget() == 0); - QWidget *w1 = new QWidget(&wizard); - wizard.setSideWidget(w1); - QVERIFY(wizard.sideWidget() == w1); + QScopedPointer<QWidget> w1(new QWidget(&wizard)); + wizard.setSideWidget(w1.data()); + QCOMPARE(wizard.sideWidget(), w1.data()); QWidget *w2 = new QWidget(&wizard); wizard.setSideWidget(w2); QVERIFY(wizard.sideWidget() == w2); diff --git a/tests/auto/widgets/graphicsview/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp b/tests/auto/widgets/graphicsview/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp index ec3335e143..ab84c9e482 100644 --- a/tests/auto/widgets/graphicsview/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp +++ b/tests/auto/widgets/graphicsview/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp @@ -984,7 +984,7 @@ void tst_QGraphicsProxyWidget::hoverEnterLeaveEvent() // in QTest::mouseMove(&view, QPoint(50, 50)); QSKIP("QTBUG-25294"); - QTRY_COMPARE(widget->testAttribute(Qt::WA_UnderMouse), hasWidget ? true : false); + QTRY_COMPARE(widget->testAttribute(Qt::WA_UnderMouse), hasWidget); // ### this attribute isn't supported QCOMPARE(widget->enterCount, hasWidget ? 1 : 0); QCOMPARE(widget->hoverEnter, (hasWidget && hoverEnabled) ? 1 : 0); @@ -1366,7 +1366,7 @@ void tst_QGraphicsProxyWidget::sizeHint() void tst_QGraphicsProxyWidget::sizePolicy() { for (int p = 0; p < 2; ++p) { - bool hasWidget = (p == 0 ? true : false); + bool hasWidget = (p == 0); SubQGraphicsProxyWidget proxy; QWidget *widget = new QWidget; QSizePolicy proxyPol(QSizePolicy::Maximum, QSizePolicy::Expanding); diff --git a/tests/auto/widgets/itemviews/qlistwidget/tst_qlistwidget.cpp b/tests/auto/widgets/itemviews/qlistwidget/tst_qlistwidget.cpp index 1237cd708a..6428bbba10 100644 --- a/tests/auto/widgets/itemviews/qlistwidget/tst_qlistwidget.cpp +++ b/tests/auto/widgets/itemviews/qlistwidget/tst_qlistwidget.cpp @@ -1080,7 +1080,7 @@ public: bool isEditingState(QListWidgetItem *item) { Q_UNUSED(item); - return (QListWidget::state() == QListWidget::EditingState ? true : false); + return QListWidget::state() == QListWidget::EditingState; } }; diff --git a/tests/auto/widgets/widgets/qmdiarea/qmdiarea.pro b/tests/auto/widgets/widgets/qmdiarea/qmdiarea.pro index cfd0dd5463..119204c10e 100644 --- a/tests/auto/widgets/widgets/qmdiarea/qmdiarea.pro +++ b/tests/auto/widgets/widgets/qmdiarea/qmdiarea.pro @@ -11,5 +11,3 @@ qtHaveModule(opengl): QT += opengl mac { LIBS += -framework Security } - -!mac:!win32:CONFIG+=insignificant_test # QTBUG-25298 diff --git a/tests/auto/widgets/widgets/qmdiarea/tst_qmdiarea.cpp b/tests/auto/widgets/widgets/qmdiarea/tst_qmdiarea.cpp index 6919f79711..f457955657 100644 --- a/tests/auto/widgets/widgets/qmdiarea/tst_qmdiarea.cpp +++ b/tests/auto/widgets/widgets/qmdiarea/tst_qmdiarea.cpp @@ -136,6 +136,22 @@ static inline QTabBar::Shape tabBarShapeFrom(QTabWidget::TabShape shape, QTabWid return QTabBar::RoundedNorth; } +static int cascadedDeltaY(const QMdiArea *area) +{ + // Calculate the delta (dx, dy) between two cascaded subwindows. + const QWidget *subWindow = area->subWindowList().first(); + const QStyle *style = subWindow->style(); + QStyleOptionTitleBar options; + options.initFrom(subWindow); + int titleBarHeight = style->pixelMetric(QStyle::PM_TitleBarHeight, &options); + // ### Remove this after the QMacStyle has been fixed + if (style->inherits("QMacStyle")) + titleBarHeight -= 4; + const QFontMetrics fontMetrics = QFontMetrics(QApplication::font("QMdiSubWindowTitleBar")); + return qMax(titleBarHeight - (titleBarHeight - fontMetrics.height()) / 2, 1) + + style->pixelMetric(QStyle::PM_FocusFrameVMargin); +} + enum Arrangement { Tiled, Cascaded @@ -147,7 +163,6 @@ static bool verifyArrangement(QMdiArea *mdiArea, Arrangement arrangement, const return false; const QList<QMdiSubWindow *> subWindows = mdiArea->subWindowList(); - const QMdiSubWindow *const firstSubWindow = subWindows.at(0); switch (arrangement) { case Tiled: @@ -179,17 +194,7 @@ static bool verifyArrangement(QMdiArea *mdiArea, Arrangement arrangement, const } case Cascaded: { - // Calculate the delta (dx, dy) between two cascaded subwindows. - QStyleOptionTitleBar options; - options.initFrom(firstSubWindow); - int titleBarHeight = firstSubWindow->style()->pixelMetric(QStyle::PM_TitleBarHeight, &options); -#ifdef Q_OS_MAC - // ### Remove this after the mac style has been fixed - if (firstSubWindow->style()->inherits("QMacStyle")) - titleBarHeight -= 4; -#endif - const QFontMetrics fontMetrics = QFontMetrics(QApplication::font("QMdiSubWindowTitleBar")); - const int dy = qMax(titleBarHeight - (titleBarHeight - fontMetrics.height()) / 2, 1); + const int dy = cascadedDeltaY(mdiArea); const int dx = 10; // Current activation/stacking order. @@ -513,6 +518,8 @@ void tst_QMdiArea::subWindowActivated2() #ifdef Q_OS_MAC QSKIP("QTBUG-25298: This test is unstable on Mac."); #endif + if (qApp->platformName().toLower() == QStringLiteral("xcb")) + QSKIP("QTBUG-25298: Unstable on some X11 window managers"); QTRY_COMPARE(spy.count(), 1); QVERIFY(!mdiArea.activeSubWindow()); QCOMPARE(mdiArea.currentSubWindow(), activeSubWindow); @@ -1006,11 +1013,6 @@ void tst_QMdiArea::activeSubWindow() qApp->setActiveWindow(&mainWindow); QCOMPARE(mdiArea->activeSubWindow(), subWindow); -#if !defined(Q_OS_MAC) && !defined(Q_OS_WIN) && !defined(Q_OS_QNX) - qApp->setActiveWindow(0); - QVERIFY(!mdiArea->activeSubWindow()); -#endif - //task 202657 dockWidgetLineEdit->setFocus(); qApp->setActiveWindow(&mainWindow); @@ -1086,12 +1088,6 @@ void tst_QMdiArea::currentSubWindow() qApp->sendEvent(active, &windowActivate); QVERIFY(mdiArea.activeSubWindow()); QVERIFY(mdiArea.currentSubWindow()); - -#if !defined(Q_OS_MAC) && !defined(Q_OS_WIN) && !defined(Q_OS_QNX) - qApp->setActiveWindow(0); - QVERIFY(!mdiArea.activeSubWindow()); - QVERIFY(mdiArea.currentSubWindow()); -#endif } void tst_QMdiArea::addAndRemoveWindows() @@ -1790,14 +1786,7 @@ void tst_QMdiArea::cascadeAndTileSubWindows() qApp->processEvents(); // Check dy between two cascaded windows - QStyleOptionTitleBar options; - options.initFrom(windows.at(1)); - int titleBarHeight = windows.at(1)->style()->pixelMetric(QStyle::PM_TitleBarHeight, &options); - // ### Remove this after the mac style has been fixed - if (windows.at(1)->style()->inherits("QMacStyle")) - titleBarHeight -= 4; - const QFontMetrics fontMetrics = QFontMetrics(QApplication::font("QMdiSubWindowTitleBar")); - const int dy = qMax(titleBarHeight - (titleBarHeight - fontMetrics.height()) / 2, 1); + const int dy = cascadedDeltaY(&workspace); #ifdef Q_OS_MAC QEXPECT_FAIL("", "QTBUG-25298", Abort); #endif diff --git a/tests/auto/widgets/widgets/qplaintextedit/tst_qplaintextedit.cpp b/tests/auto/widgets/widgets/qplaintextedit/tst_qplaintextedit.cpp index cb085e77f3..d8e7fb7a99 100644 --- a/tests/auto/widgets/widgets/qplaintextedit/tst_qplaintextedit.cpp +++ b/tests/auto/widgets/widgets/qplaintextedit/tst_qplaintextedit.cpp @@ -147,6 +147,7 @@ private slots: void findWithRegExpReturnsFalseIfNoMoreResults(); #endif void layoutAfterMultiLineRemove(); + void undoCommandRemovesAndReinsertsBlock(); private: void createSelection(); @@ -1604,5 +1605,29 @@ void tst_QPlainTextEdit::layoutAfterMultiLineRemove() QCOMPARE(curs.blockNumber(), 3); } +void tst_QPlainTextEdit::undoCommandRemovesAndReinsertsBlock() +{ + ed->setVisible(true); + ed->setPlainText(QStringLiteral("line1\nline2")); + QCOMPARE(ed->document()->blockCount(), 2); + + QTextCursor cursor = ed->textCursor(); + cursor.movePosition(QTextCursor::Start); + cursor.movePosition(QTextCursor::NextBlock, QTextCursor::KeepAnchor); + cursor.insertText(QStringLiteral("\n")); + QCOMPARE(ed->document()->blockCount(), 2); + + ed->undo(); + QCOMPARE(ed->document()->blockCount(), 2); + + QTextBlock block; + for (block = ed->document()->begin(); block != ed->document()->end(); block = block.next()) { + QVERIFY(block.isValid()); + QCOMPARE(block.length(), 6); + QVERIFY(block.layout()->lineForTextPosition(0).isValid()); + } + +} + QTEST_MAIN(tst_QPlainTextEdit) #include "tst_qplaintextedit.moc" diff --git a/tests/manual/qnetworkreply/main.cpp b/tests/manual/qnetworkreply/main.cpp index f3bbd0887f..9d199c3755 100644 --- a/tests/manual/qnetworkreply/main.cpp +++ b/tests/manual/qnetworkreply/main.cpp @@ -381,8 +381,7 @@ void tst_qnetworkreply::spdy() QFETCH(QByteArray, expectedProtocol); - bool expectedSpdyUsed = (expectedProtocol == QSslConfiguration::NextProtocolSpdy3_0) - ? true : false; + bool expectedSpdyUsed = (expectedProtocol == QSslConfiguration::NextProtocolSpdy3_0); QCOMPARE(reply->attribute(QNetworkRequest::SpdyWasUsedAttribute).toBool(), expectedSpdyUsed); QCOMPARE(metaDataChangedSpy.count(), 1); |