diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2020-06-30 15:25:51 +0200 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2020-07-08 09:46:46 +0200 |
commit | 6aa4c83bdbd9a8df05c14ac1aaad2f1d44053ec4 (patch) | |
tree | 8186599d1366b3bfbb7e65ab3d5a129e903a4c37 /tests/auto/qml/qqmldirparser | |
parent | e52e7ad76edc6012285db6c83eb12e8724a234ac (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.cpp | 26 |
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); |