diff options
author | Robin Burchell <robin.burchell@crimson.no> | 2017-01-12 10:52:02 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2018-04-09 17:25:42 +0000 |
commit | f257be627cc9de4fdec430e2fe8f6ac3b6827070 (patch) | |
tree | 4a1a07adf994c4f7a448fa2fae51ec7703a0340a /src/qmltest | |
parent | 61b7f5a0c1280d93d00c74e393c8244be626168c (diff) |
testlib: Support regular expression ignores in ignoreMessage
This is a feature C++ has that the QML side lacked.
[ChangeLog][Qt Quick Test][TestCase] ignoreWarning now supports ignoring
regular expressions as well as strings.
Task-number: QTBUG-47111
Change-Id: If3b7b78365e60f1d8d276050ba7e00fac43400e1
Reviewed-by: Kari Oikarinen <kari.oikarinen@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/qmltest')
-rw-r--r-- | src/qmltest/quicktestresult.cpp | 14 | ||||
-rw-r--r-- | src/qmltest/quicktestresult_p.h | 2 |
2 files changed, 13 insertions, 3 deletions
diff --git a/src/qmltest/quicktestresult.cpp b/src/qmltest/quicktestresult.cpp index c4a3280cf6..3b854dfccd 100644 --- a/src/qmltest/quicktestresult.cpp +++ b/src/qmltest/quicktestresult.cpp @@ -61,6 +61,7 @@ #include <QtCore/qdebug.h> #include <QtCore/QUrl> #include <QtCore/QDir> +#include <QtCore/qregularexpression.h> #include <QtQuick/qquickwindow.h> #include <QtGui/qvector3d.h> #include <QtGui/qimagewriter.h> @@ -625,9 +626,18 @@ void QuickTestResult::warn(const QString &message, const QUrl &location, int lin QTestLog::warn(message.toLatin1().constData(), qtestFixUrl(location).toLatin1().constData(), line); } -void QuickTestResult::ignoreWarning(const QString &message) +void QuickTestResult::ignoreWarning(const QJSValue &message) { - QTestLog::ignoreMessage(QtWarningMsg, message.toLatin1().constData()); + if (message.isRegExp()) { + // ### we should probably handle QRegularExpression conversion engine-side + QRegExp re = message.toVariant().toRegExp(); + QRegularExpression::PatternOptions opts = re.caseSensitivity() == + Qt::CaseInsensitive ? QRegularExpression::CaseInsensitiveOption : QRegularExpression::NoPatternOption; + QRegularExpression re2(re.pattern(), opts); + QTestLog::ignoreMessage(QtWarningMsg, re2); + } else { + QTestLog::ignoreMessage(QtWarningMsg, message.toString().toLatin1()); + } } void QuickTestResult::wait(int ms) diff --git a/src/qmltest/quicktestresult_p.h b/src/qmltest/quicktestresult_p.h index 6e7b72830e..f222cd3e87 100644 --- a/src/qmltest/quicktestresult_p.h +++ b/src/qmltest/quicktestresult_p.h @@ -137,7 +137,7 @@ public Q_SLOTS: const QUrl &location, int line); void warn(const QString &message, const QUrl &location, int line); - void ignoreWarning(const QString &message); + void ignoreWarning(const QJSValue &message); void wait(int ms); void sleep(int ms); |