diff --git a/autotests/syntaxrepository_test.cpp b/autotests/syntaxrepository_test.cpp --- a/autotests/syntaxrepository_test.cpp +++ b/autotests/syntaxrepository_test.cpp @@ -222,6 +222,33 @@ QCOMPARE(definitionNames, expectedDefinitionNames); } + void testIncludedFormats() + { + QStringList definitionNames; + foreach (const auto &def, m_repo.definitions()) { + definitionNames.push_back(def.name()); + } + + foreach (const QString & name, definitionNames) { + Repository repo; + auto def = repo.definitionForName(name); + auto includedDefs = def.includedDefinitions(); + includedDefs.push_front(def); + QVector formatIds; + for (auto d : qAsConst(includedDefs)) { + const auto formats = d.formats(); + for (const auto format : formats) + formatIds.push_back(format.id()); + } + std::sort(formatIds.begin(), formatIds.end()); + QVector expectedIds((int)formatIds.size()); + std::iota(expectedIds.begin(), expectedIds.end(), 1); + qDebug() << formatIds << name; + qDebug() << expectedIds; + QCOMPARE(formatIds, expectedIds); + } + } + void testReload() { auto def = m_repo.definitionForName(QLatin1String("QML"));