aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2018-10-16 01:00:07 +0200
committerQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2018-10-16 01:00:07 +0200
commit299bf6fd51218a0912e7a3d9eb4b0043dbaad1f7 (patch)
treecd128b58711244ec6fc785a6e33b963642da663e /tests
parentf157da4d57330a10e085a0e475936d4465577c6d (diff)
parent53240b099cf801ec51e5facdf159e35a3fef2cd9 (diff)
Merge remote-tracking branch 'origin/5.12' into dev
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/qml/qjsengine/tst_qjsengine.cpp69
-rw-r--r--tests/auto/qml/v4misc/tst_v4misc.cpp3
-rw-r--r--tests/auto/quick/examples/tst_examples.cpp1
3 files changed, 72 insertions, 1 deletions
diff --git a/tests/auto/qml/qjsengine/tst_qjsengine.cpp b/tests/auto/qml/qjsengine/tst_qjsengine.cpp
index 6bc0359483..a38224ef81 100644
--- a/tests/auto/qml/qjsengine/tst_qjsengine.cpp
+++ b/tests/auto/qml/qjsengine/tst_qjsengine.cpp
@@ -177,6 +177,8 @@ private slots:
void translateScriptUnicodeIdBased_data();
void translateScriptUnicodeIdBased();
void translateFromBuiltinCallback();
+ void translationFilePath_data();
+ void translationFilePath();
void installConsoleFunctions();
void logging();
@@ -3915,6 +3917,73 @@ void tst_QJSEngine::translateFromBuiltinCallback()
eng.evaluate("[10,20].forEach(foo)", "script.js");
}
+void tst_QJSEngine::translationFilePath_data()
+{
+ QTest::addColumn<QString>("filename");
+
+ QTest::newRow("relative") << QStringLiteral("script.js");
+ QTest::newRow("absolute unix") << QStringLiteral("/script.js");
+ QTest::newRow("absolute /windows/") << QStringLiteral("c:/script.js");
+#ifdef Q_OS_WIN
+ QTest::newRow("absolute \\windows\\") << QStringLiteral("c:\\script.js");
+#endif
+ QTest::newRow("relative url") << QStringLiteral("file://script.js");
+ QTest::newRow("absolute url unix") << QStringLiteral("file:///script.js");
+ QTest::newRow("absolute url windows") << QStringLiteral("file://c:/script.js");
+}
+
+class DummyTranslator : public QTranslator
+{
+ Q_OBJECT
+
+public:
+ DummyTranslator(const char *sourceText)
+ : srcTxt(sourceText)
+ {}
+
+ QString translate(const char *context, const char *sourceText, const char *disambiguation, int n) const override
+ {
+ Q_UNUSED(disambiguation);
+ Q_UNUSED(n);
+
+ if (srcTxt == sourceText)
+ ctxt = QByteArray(context);
+
+ return QString(sourceText);
+ }
+
+ bool isEmpty() const override
+ {
+ return false;
+ }
+
+ const char *sourceText() const
+ { return srcTxt.constData(); }
+
+ QByteArray context() const
+ { return ctxt; }
+
+private:
+ QByteArray srcTxt;
+ mutable QByteArray ctxt;
+};
+
+void tst_QJSEngine::translationFilePath()
+{
+ QFETCH(QString, filename);
+
+ DummyTranslator translator("some text");
+ QCoreApplication::installTranslator(&translator);
+ QByteArray scriptContent = QByteArray("qsTr('%1')").replace("%1", translator.sourceText());
+
+ QJSEngine engine;
+ engine.installExtensions(QJSEngine::TranslationExtension);
+ QJSValue result = engine.evaluate(scriptContent, filename);
+ QCOMPARE(translator.context(), QByteArray("script"));
+
+ QCoreApplication::removeTranslator(&translator);
+}
+
void tst_QJSEngine::installConsoleFunctions()
{
QJSEngine engine;
diff --git a/tests/auto/qml/v4misc/tst_v4misc.cpp b/tests/auto/qml/v4misc/tst_v4misc.cpp
index a080826e15..f8e76fdf5c 100644
--- a/tests/auto/qml/v4misc/tst_v4misc.cpp
+++ b/tests/auto/qml/v4misc/tst_v4misc.cpp
@@ -111,6 +111,9 @@ void tst_v4misc::parserMisc_data()
QTest::newRow("8[++i][+++i]") << QString("ReferenceError: Prefix ++ operator applied to value that is not a reference.");
QTest::newRow("`a${1++}`") << QString("ReferenceError: Invalid left-hand side expression in postfix operation");
+ QTest::newRow("for (var f in ++!binaryMathg) ;") << QString("ReferenceError: Prefix ++ operator applied to value that is not a reference.");
+ QTest::newRow("for (va() in obj) {}") << QString("ReferenceError: Invalid left-hand side expression for 'in' expression");
+ QTest::newRow("[1]=7[A=8=9]") << QString("ReferenceError: left-hand side of assignment operator is not an lvalue");
}
void tst_v4misc::parserMisc()
diff --git a/tests/auto/quick/examples/tst_examples.cpp b/tests/auto/quick/examples/tst_examples.cpp
index ea8830fefa..b3fc87a8de 100644
--- a/tests/auto/quick/examples/tst_examples.cpp
+++ b/tests/auto/quick/examples/tst_examples.cpp
@@ -79,7 +79,6 @@ tst_examples::tst_examples()
excludedDirs << "shared"; //Not an example
excludedDirs << "snippets/qml/path"; //No root QQuickItem
excludedDirs << "examples/qml/qmlextensionplugins"; //Requires special import search path
- excludedDirs << "examples/quick/tutorials/gettingStartedQml"; //C++ example, but no cpp files in root dir
// These snippets are not expected to run on their own.
excludedDirs << "snippets/qml/visualdatamodel_rootindex";