void TestLanguageFiles::checkIdUniqueness() { ResourceManager manager; QStringList languageFiles = QStandardPaths::locateAll(QStandardPaths::DataLocation, QString("data/languages/*.xml")); foreach (const QString &file, languageFiles) { qDebug() << "File being parsed: " << file; QStringList idList; const QUrl &languageFile = QUrl::fromLocalFile(file); QVERIFY(languageFile.isLocalFile()); QXmlSchema schema = loadXmlSchema("language"); QVERIFY(schema.isValid()); QDomDocument document = loadDomDocument(languageFile, schema); QVERIFY(!document.isNull()); QDomElement root(document.documentElement()); Language *language = new Language(this); language->setFile(languageFile); language->setId(root.firstChildElement("id").text()); language->setTitle(root.firstChildElement("title").text()); // create phoneme groups for (QDomElement groupNode = root.firstChildElement("phonemeGroups").firstChildElement(); !groupNode.isNull(); groupNode = groupNode.nextSiblingElement()) { for (QDomElement phonemeNode = groupNode.firstChildElement("phonemes").firstChildElement(); !phonemeNode.isNull(); phonemeNode = phonemeNode.nextSiblingElement()) { QString id = phonemeNode.firstChildElement("id").text(); qDebug() << "ID: " << id; QVERIFY2(!idList.contains(id),"Phoneme ID used more than once in the tested file"); idList.append(id); } } }