diff options
author | Shawn Rutledge <shawn.rutledge@digia.com> | 2014-09-24 17:36:53 +0200 |
---|---|---|
committer | Shawn Rutledge <shawn.rutledge@digia.com> | 2014-10-01 14:40:46 +0200 |
commit | 564c1038d1645d76004ad93651aa392d71d45490 (patch) | |
tree | 6724a918810f91dda0c4f5f5a8de11d655de950f /tests | |
parent | 64e2fa80015fb7d9e53cc66357870d4ea11f3590 (diff) |
qmldir parser: add support for "depends component version" syntax
Dependency declarations are initially for the benefit of
qmlimportscanner which does not (yet) use this parser. This patch
adds support for dependencies into the qmldir parser for completeness,
along with autotests. It is necessary to prevent errors at runtime
when parsing a qmldir which contains the "depends" declaration.
Task-number: QTBUG-41489
Change-Id: Ief2524a30140c42874f94f1735755b171e15dcf7
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/qml/qqmldirparser/data/dependency/qmldir | 3 | ||||
-rw-r--r-- | tests/auto/qml/qqmldirparser/tst_qqmldirparser.cpp | 32 |
2 files changed, 35 insertions, 0 deletions
diff --git a/tests/auto/qml/qqmldirparser/data/dependency/qmldir b/tests/auto/qml/qqmldirparser/data/dependency/qmldir new file mode 100644 index 0000000000..0754dbceea --- /dev/null +++ b/tests/auto/qml/qqmldirparser/data/dependency/qmldir @@ -0,0 +1,3 @@ +plugin foo +depends bar 1.0 + diff --git a/tests/auto/qml/qqmldirparser/tst_qqmldirparser.cpp b/tests/auto/qml/qqmldirparser/tst_qqmldirparser.cpp index 017a92b590..615df08d5c 100644 --- a/tests/auto/qml/qqmldirparser/tst_qqmldirparser.cpp +++ b/tests/auto/qml/qqmldirparser/tst_qqmldirparser.cpp @@ -125,6 +125,7 @@ void tst_qqmldirparser::parse_data() QTest::addColumn<QStringList>("plugins"); QTest::addColumn<QStringList>("components"); QTest::addColumn<QStringList>("scripts"); + QTest::addColumn<QStringList>("dependencies"); QTest::addColumn<bool>("designerSupported"); QTest::newRow("empty") @@ -133,6 +134,7 @@ void tst_qqmldirparser::parse_data() << QStringList() << QStringList() << QStringList() + << QStringList() << false; QTest::newRow("no-content") @@ -141,6 +143,7 @@ void tst_qqmldirparser::parse_data() << QStringList() << QStringList() << QStringList() + << QStringList() << false; QTest::newRow("one-section") @@ -149,6 +152,7 @@ void tst_qqmldirparser::parse_data() << QStringList() << QStringList() << QStringList() + << QStringList() << false; QTest::newRow("four-sections") @@ -157,6 +161,7 @@ void tst_qqmldirparser::parse_data() << QStringList() << QStringList() << QStringList() + << QStringList() << false; QTest::newRow("incomplete-module") @@ -165,6 +170,7 @@ void tst_qqmldirparser::parse_data() << QStringList() << QStringList() << QStringList() + << QStringList() << false; QTest::newRow("excessive-module") @@ -173,6 +179,7 @@ void tst_qqmldirparser::parse_data() << QStringList() << QStringList() << QStringList() + << QStringList() << false; QTest::newRow("repeated-module") @@ -181,6 +188,7 @@ void tst_qqmldirparser::parse_data() << QStringList() << QStringList() << QStringList() + << QStringList() << false; QTest::newRow("non-first-module") @@ -189,6 +197,7 @@ void tst_qqmldirparser::parse_data() << (QStringList() << "foo|") << QStringList() << QStringList() + << QStringList() << false; QTest::newRow("incomplete-plugin") @@ -197,6 +206,7 @@ void tst_qqmldirparser::parse_data() << QStringList() << QStringList() << QStringList() + << QStringList() << false; QTest::newRow("excessive-plugin") @@ -205,6 +215,7 @@ void tst_qqmldirparser::parse_data() << QStringList() << QStringList() << QStringList() + << QStringList() << false; QTest::newRow("name-plugin") @@ -213,6 +224,7 @@ void tst_qqmldirparser::parse_data() << (QStringList() << "foo|") << QStringList() << QStringList() + << QStringList() << false; QTest::newRow("name-path-plugin") @@ -221,6 +233,7 @@ void tst_qqmldirparser::parse_data() << (QStringList() << "foo|bar") << QStringList() << QStringList() + << QStringList() << false; QTest::newRow("unversioned-component") @@ -229,6 +242,7 @@ void tst_qqmldirparser::parse_data() << QStringList() << (QStringList() << "foo|bar|-1|-1|false") << QStringList() + << QStringList() << false; QTest::newRow("invalid-versioned-component") @@ -237,6 +251,7 @@ void tst_qqmldirparser::parse_data() << QStringList() << QStringList() << QStringList() + << QStringList() << false; QTest::newRow("versioned-component") @@ -245,6 +260,7 @@ void tst_qqmldirparser::parse_data() << QStringList() << (QStringList() << "foo|bar|33|66|false") << QStringList() + << QStringList() << false; QTest::newRow("versioned-script") @@ -253,6 +269,7 @@ void tst_qqmldirparser::parse_data() << QStringList() << QStringList() << (QStringList() << "foo|bar.js|33|66") + << QStringList() << false; QTest::newRow("multiple") @@ -263,6 +280,7 @@ void tst_qqmldirparser::parse_data() << "ComponentA|componenta-1_5.qml|1|5|false" << "ComponentB|componentb-1_5.qml|1|5|false") << (QStringList() << "ScriptA|scripta-1_0.js|1|0") + << QStringList() << false; QTest::newRow("designersupported-yes") @@ -271,6 +289,7 @@ void tst_qqmldirparser::parse_data() << (QStringList() << "foo|") << QStringList() << QStringList() + << QStringList() << true; QTest::newRow("designersupported-no") @@ -279,7 +298,17 @@ void tst_qqmldirparser::parse_data() << (QStringList() << "foo|") << QStringList() << QStringList() + << QStringList() << false; + + QTest::newRow("dependency") + << "dependency/qmldir" + << QStringList() + << (QStringList() << "foo|") + << QStringList() + << QStringList() + << (QStringList() << "bar||1|0|true") + << false; } void tst_qqmldirparser::parse() @@ -289,6 +318,7 @@ void tst_qqmldirparser::parse() QFETCH(QStringList, plugins); QFETCH(QStringList, components); QFETCH(QStringList, scripts); + QFETCH(QStringList, dependencies); QFETCH(bool, designerSupported); QFile f(testFile(file)); @@ -307,6 +337,8 @@ void tst_qqmldirparser::parse() QCOMPARE(toStringList(p.plugins()), plugins); QCOMPARE(toStringList(p.components()), components); QCOMPARE(toStringList(p.scripts()), scripts); + QCOMPARE(toStringList(p.dependencies()), dependencies); + QCOMPARE(p.designerSupported(), designerSupported); } |