aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/qml/qqmldirparser
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2020-06-30 15:25:51 +0200
committerUlf Hermann <ulf.hermann@qt.io>2020-07-08 09:46:46 +0200
commit6aa4c83bdbd9a8df05c14ac1aaad2f1d44053ec4 (patch)
tree8186599d1366b3bfbb7e65ab3d5a129e903a4c37 /tests/auto/qml/qqmldirparser
parente52e7ad76edc6012285db6c83eb12e8724a234ac (diff)
qmlimportscanner: Use QmlDirParser
This gives us a reliable way to parse imports and versions. Apparently we can also have multiple classname entries in the same qmldir file. Reflect that in the parser. Also, drop the version field from the output. Nobody uses it and maintaining it while allowing partial, missing and auto versions would be rather difficult. Fixes: QTBUG-85304 Change-Id: Iab89a6d505a3c58174e623f02f0418899cb5fa2f Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'tests/auto/qml/qqmldirparser')
-rw-r--r--tests/auto/qml/qqmldirparser/tst_qqmldirparser.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/auto/qml/qqmldirparser/tst_qqmldirparser.cpp b/tests/auto/qml/qqmldirparser/tst_qqmldirparser.cpp
index 627347df06..d019285c5b 100644
--- a/tests/auto/qml/qqmldirparser/tst_qqmldirparser.cpp
+++ b/tests/auto/qml/qqmldirparser/tst_qqmldirparser.cpp
@@ -133,6 +133,7 @@ void tst_qqmldirparser::parse_data()
QTest::addColumn<QString>("file");
QTest::addColumn<QStringList>("errors");
QTest::addColumn<QStringList>("plugins");
+ QTest::addColumn<QStringList>("classnames");
QTest::addColumn<QStringList>("components");
QTest::addColumn<QStringList>("scripts");
QTest::addColumn<QStringList>("dependencies");
@@ -145,6 +146,7 @@ void tst_qqmldirparser::parse_data()
<< QStringList()
<< QStringList()
<< QStringList()
+ << QStringList()
<< false;
QTest::newRow("no-content")
@@ -154,6 +156,7 @@ void tst_qqmldirparser::parse_data()
<< QStringList()
<< QStringList()
<< QStringList()
+ << QStringList()
<< false;
QTest::newRow("one-section")
@@ -163,6 +166,7 @@ void tst_qqmldirparser::parse_data()
<< QStringList()
<< QStringList()
<< QStringList()
+ << QStringList()
<< false;
QTest::newRow("four-sections")
@@ -172,6 +176,7 @@ void tst_qqmldirparser::parse_data()
<< QStringList()
<< QStringList()
<< QStringList()
+ << QStringList()
<< false;
QTest::newRow("incomplete-module")
@@ -181,6 +186,7 @@ void tst_qqmldirparser::parse_data()
<< QStringList()
<< QStringList()
<< QStringList()
+ << QStringList()
<< false;
QTest::newRow("excessive-module")
@@ -190,6 +196,7 @@ void tst_qqmldirparser::parse_data()
<< QStringList()
<< QStringList()
<< QStringList()
+ << QStringList()
<< false;
QTest::newRow("repeated-module")
@@ -199,6 +206,7 @@ void tst_qqmldirparser::parse_data()
<< QStringList()
<< QStringList()
<< QStringList()
+ << QStringList()
<< false;
QTest::newRow("non-first-module")
@@ -208,6 +216,7 @@ void tst_qqmldirparser::parse_data()
<< QStringList()
<< QStringList()
<< QStringList()
+ << QStringList()
<< false;
QTest::newRow("incomplete-plugin")
@@ -217,6 +226,7 @@ void tst_qqmldirparser::parse_data()
<< QStringList()
<< QStringList()
<< QStringList()
+ << QStringList()
<< false;
QTest::newRow("excessive-plugin")
@@ -226,6 +236,7 @@ void tst_qqmldirparser::parse_data()
<< QStringList()
<< QStringList()
<< QStringList()
+ << QStringList()
<< false;
QTest::newRow("name-plugin")
@@ -235,6 +246,7 @@ void tst_qqmldirparser::parse_data()
<< QStringList()
<< QStringList()
<< QStringList()
+ << QStringList()
<< false;
QTest::newRow("name-path-plugin")
@@ -244,12 +256,14 @@ void tst_qqmldirparser::parse_data()
<< QStringList()
<< QStringList()
<< QStringList()
+ << QStringList()
<< false;
QTest::newRow("unversioned-component")
<< "unversioned-component/qmldir"
<< QStringList()
<< QStringList()
+ << QStringList()
<< (QStringList() << "foo|bar|255|255|false")
<< QStringList()
<< QStringList()
@@ -262,12 +276,14 @@ void tst_qqmldirparser::parse_data()
<< QStringList()
<< QStringList()
<< QStringList()
+ << QStringList()
<< false;
QTest::newRow("versioned-component")
<< "versioned-component/qmldir"
<< QStringList()
<< QStringList()
+ << QStringList()
<< (QStringList() << "foo|bar|33|66|false")
<< QStringList()
<< QStringList()
@@ -280,6 +296,7 @@ void tst_qqmldirparser::parse_data()
<< QStringList()
<< QStringList()
<< QStringList()
+ << QStringList()
<< false;
QTest::newRow("versioned-script")
@@ -287,6 +304,7 @@ void tst_qqmldirparser::parse_data()
<< QStringList()
<< QStringList()
<< QStringList()
+ << QStringList()
<< (QStringList() << "foo|bar.js|33|66")
<< QStringList()
<< false;
@@ -295,6 +313,7 @@ void tst_qqmldirparser::parse_data()
<< "multiple/qmldir"
<< QStringList()
<< (QStringList() << "PluginA|plugina.so")
+ << QStringList()
<< (QStringList() << "ComponentA|componenta-1_0.qml|1|0|false"
<< "ComponentA|componenta-1_5.qml|1|5|false"
<< "ComponentB|componentb-1_5.qml|1|5|false")
@@ -309,6 +328,7 @@ void tst_qqmldirparser::parse_data()
<< QStringList()
<< QStringList()
<< QStringList()
+ << QStringList()
<< true;
QTest::newRow("designersupported-no")
@@ -318,6 +338,7 @@ void tst_qqmldirparser::parse_data()
<< QStringList()
<< QStringList()
<< QStringList()
+ << QStringList()
<< false;
QTest::newRow("invalid-versioned-dependency")
@@ -327,6 +348,7 @@ void tst_qqmldirparser::parse_data()
<< QStringList()
<< QStringList()
<< QStringList()
+ << QStringList()
<< false;
QTest::newRow("dependency")
@@ -335,6 +357,7 @@ void tst_qqmldirparser::parse_data()
<< (QStringList() << "foo|")
<< QStringList()
<< QStringList()
+ << QStringList()
<< (QStringList() << "bar||1|0|true")
<< false;
@@ -342,6 +365,7 @@ void tst_qqmldirparser::parse_data()
<< "classname/qmldir"
<< QStringList()
<< (QStringList() << "qtquick2plugin|")
+ << (QStringList() << "QtQuick2Plugin")
<< QStringList()
<< QStringList()
<< QStringList()
@@ -353,6 +377,7 @@ void tst_qqmldirparser::parse()
QFETCH(QString, file);
QFETCH(QStringList, errors);
QFETCH(QStringList, plugins);
+ QFETCH(QStringList, classnames);
QFETCH(QStringList, components);
QFETCH(QStringList, scripts);
QFETCH(QStringList, dependencies);
@@ -372,6 +397,7 @@ void tst_qqmldirparser::parse()
}
QCOMPARE(toStringList(p.plugins()), plugins);
+ QCOMPARE(p.classNames(), classnames);
QCOMPARE(toStringList(p.components()), components);
QCOMPARE(toStringList(p.scripts()), scripts);
QCOMPARE(toStringList(p.dependencies()), dependencies);