aboutsummaryrefslogtreecommitdiffstats
path: root/src/qmltest
diff options
context:
space:
mode:
authorRobin Burchell <robin.burchell@crimson.no>2017-01-12 10:52:02 +0100
committerLiang Qi <liang.qi@qt.io>2018-04-09 17:25:42 +0000
commitf257be627cc9de4fdec430e2fe8f6ac3b6827070 (patch)
tree4a1a07adf994c4f7a448fa2fae51ec7703a0340a /src/qmltest
parent61b7f5a0c1280d93d00c74e393c8244be626168c (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.cpp14
-rw-r--r--src/qmltest/quicktestresult_p.h2
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);