summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/corelib/global/qlogging/app/app.pro1
-rw-r--r--tests/auto/corelib/global/qlogging/test/test.pro1
-rw-r--r--tests/auto/corelib/io/qdebug/tst_qdebug.cpp73
-rw-r--r--tests/auto/corelib/io/qsettings/tst_qsettings.cpp18
-rw-r--r--tests/auto/gui/text/qfontmetrics/tst_qfontmetrics.cpp12
-rw-r--r--tests/auto/network/access/qnetworkaccessmanager/tst_qnetworkaccessmanager.cpp13
-rw-r--r--tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp2
-rw-r--r--tests/auto/network/access/spdy/tst_spdy.cpp3
-rw-r--r--tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp98
-rw-r--r--tests/auto/widgets/dialogs/qwizard/tst_qwizard.cpp39
-rw-r--r--tests/auto/widgets/graphicsview/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp4
-rw-r--r--tests/auto/widgets/itemviews/qlistwidget/tst_qlistwidget.cpp2
-rw-r--r--tests/auto/widgets/widgets/qmdiarea/qmdiarea.pro2
-rw-r--r--tests/auto/widgets/widgets/qmdiarea/tst_qmdiarea.cpp51
-rw-r--r--tests/auto/widgets/widgets/qplaintextedit/tst_qplaintextedit.cpp25
-rw-r--r--tests/manual/qnetworkreply/main.cpp3
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);