void tst_FileFormat::testFileFilter() { // // Search for qml files in directory + subdirectories // QString projectFile = QLatin1String( "import QmlProject 1.0\n" "Project {\n" " QmlFiles {" " }" "}\n"); { QDeclarativeEngine engine; QDeclarativeComponent component(&engine); component.setData(projectFile.toUtf8(), QUrl()); if (!component.isReady()) qDebug() << component.errorString(); QVERIFY(component.isReady()); QmlProjectItem *project = qobject_cast<QmlProjectItem*>(component.create()); QVERIFY(project); project->setSourceDirectory(testDataDir); QStringList expectedFiles(QStringList() << testDataDir + "/file1.qml" << testDataDir + "/file2.qml" << testDataDir + "/subdir/file3.qml"); QCOMPARE(project->files().toSet(), expectedFiles.toSet()); } // // search for all qml files in directory // projectFile = QLatin1String( "import QmlProject 1.0\n" "Project {\n" " QmlFiles {\n" " recursive: false\n" " }\n" "}\n"); { QDeclarativeEngine engine; QDeclarativeComponent component(&engine); component.setData(projectFile.toUtf8(), QUrl()); if (!component.isReady()) qDebug() << component.errorString(); QVERIFY(component.isReady()); QmlProjectItem *project = qobject_cast<QmlProjectItem*>(component.create()); QVERIFY(project); project->setSourceDirectory(testDataDir); QStringList expectedFiles(QStringList() << testDataDir + "/file1.qml" << testDataDir + "/file2.qml"); QCOMPARE(project->files().toSet(), expectedFiles.toSet()); } // // search for all qml files in subdirectory // projectFile = QLatin1String( "import QmlProject 1.0\n" "Project {\n" " QmlFiles {\n" " directory: \"subdir\"\n" " }\n" "}\n"); { QDeclarativeEngine engine; QDeclarativeComponent component(&engine); component.setData(projectFile.toUtf8(), QUrl()); QVERIFY(component.isReady()); QmlProjectItem *project = qobject_cast<QmlProjectItem*>(component.create()); QVERIFY(project); project->setSourceDirectory(testDataDir); QStringList expectedFiles(QStringList() << testDataDir + "/subdir/file3.qml"); QCOMPARE(project->files().toSet(), expectedFiles.toSet()); } // // multiple entries // projectFile = QLatin1String( "import QmlProject 1.0\n" "Project {\n" " QmlFiles {\n" " directory: \".\"\n" " recursive: false\n" " }" " QmlFiles {\n" " directory: \"subdir\"\n" " }\n" "}\n"); { QDeclarativeEngine engine; QDeclarativeComponent component(&engine); component.setData(projectFile.toUtf8(), QUrl()); if (!component.isReady()) qDebug() << component.errorString(); QVERIFY(component.isReady()); QmlProjectItem *project = qobject_cast<QmlProjectItem*>(component.create()); QVERIFY(project); project->setSourceDirectory(testDataDir); QStringList expectedFiles(QStringList() << testDataDir + "/file1.qml" << testDataDir + "/file2.qml" << testDataDir + "/subdir/file3.qml"); QCOMPARE(project->files().size(), 3); QCOMPARE(project->files().toSet(), expectedFiles.toSet()); } // // include specific list // projectFile = QLatin1String( "import QmlProject 1.0\n" "Project {\n" " QmlFiles {\n" " paths: [ \"file1.qml\",\n" "\"file2.qml\" ]\n" " }\n" "}\n"); { QDeclarativeEngine engine; QDeclarativeComponent component(&engine); component.setData(projectFile.toUtf8(), QUrl()); if (!component.isReady()) qDebug() << component.errorString(); QVERIFY(component.isReady()); QmlProjectItem *project = qobject_cast<QmlProjectItem*>(component.create()); QVERIFY(project); project->setSourceDirectory(testDataDir); QStringList expectedFiles(QStringList() << testDataDir + "/file1.qml" << testDataDir + "/file2.qml"); QCOMPARE(project->files().toSet(), expectedFiles.toSet()); } // // include specific list // projectFile = QLatin1String( "import QmlProject 1.0\n" "Project {\n" " ImageFiles {\n" " directory: \".\"\n" " }\n" "}\n"); { QDeclarativeEngine engine; QDeclarativeComponent component(&engine); component.setData(projectFile.toUtf8(), QUrl()); if (!component.isReady()) qDebug() << component.errorString(); QVERIFY(component.isReady()); QmlProjectItem *project = qobject_cast<QmlProjectItem*>(component.create()); QVERIFY(project); project->setSourceDirectory(testDataDir); QStringList expectedFiles(QStringList() << testDataDir + "/image.gif"); qDebug() << project->files().toSet() << expectedFiles.toSet(); QCOMPARE(project->files().toSet(), expectedFiles.toSet()); } // // use wildcards // projectFile = QLatin1String( "import QmlProject 1.0\n" "Project {\n" " ImageFiles {\n" " filter: \"?mage.[gf]if\"\n" " }\n" "}\n"); { QDeclarativeEngine engine; QDeclarativeComponent component(&engine); component.setData(projectFile.toUtf8(), QUrl()); if (!component.isReady()) qDebug() << component.errorString(); QVERIFY(component.isReady()); QmlProjectItem *project = qobject_cast<QmlProjectItem*>(component.create()); QVERIFY(project); project->setSourceDirectory(testDataDir); QStringList expectedFiles(QStringList() << testDataDir + "/image.gif"); qDebug() << project->files().toSet() << expectedFiles.toSet(); QCOMPARE(project->files().toSet(), expectedFiles.toSet()); } // // use Files element (1.1) // projectFile = QLatin1String( "import QmlProject 1.1\n" "Project {\n" " Files {\n" " filter: \"image.gif\"\n" " }\n" "}\n"); { QDeclarativeEngine engine; QDeclarativeComponent component(&engine); component.setData(projectFile.toUtf8(), QUrl()); if (!component.isReady()) qDebug() << component.errorString(); QVERIFY(component.isReady()); QmlProjectItem *project = qobject_cast<QmlProjectItem*>(component.create()); QVERIFY(project); project->setSourceDirectory(testDataDir); QStringList expectedFiles(QStringList() << testDataDir + "/image.gif"); qDebug() << project->files().toSet() << expectedFiles.toSet(); QCOMPARE(project->files().toSet(), expectedFiles.toSet()); } }
void tst_FileFormat::testFileFilter() { QString error; // // Search for qml files in directory + subdirectories // { QmlProjectItem *project = loadQmlProject(QLatin1String("testFileFilter1"), &error); QVERIFY(project); QVERIFY(error.isEmpty()); project->setSourceDirectory(testDataDir); QStringList expectedFiles(QStringList() << testDataDir + "/file1.qml" << testDataDir + "/file2.qml" << testDataDir + "/subdir/file3.qml"); QCOMPARE(project->files().toSet(), expectedFiles.toSet()); delete project; } // // search for all qml files in directory // { QmlProjectItem *project = loadQmlProject(QLatin1String("testFileFilter2"), &error); QVERIFY(project); QVERIFY(error.isEmpty()); project->setSourceDirectory(testDataDir); QStringList expectedFiles(QStringList() << testDataDir + "/file1.qml" << testDataDir + "/file2.qml"); QCOMPARE(project->files().toSet(), expectedFiles.toSet()); delete project; } // // search for all qml files in subdirectory // { QmlProjectItem *project = loadQmlProject(QLatin1String("testFileFilter3"), &error); QVERIFY(project); QVERIFY(error.isEmpty()); project->setSourceDirectory(testDataDir); QStringList expectedFiles(QStringList() << testDataDir + "/subdir/file3.qml"); QCOMPARE(project->files().toSet(), expectedFiles.toSet()); delete project; } // // multiple entries // { QmlProjectItem *project = loadQmlProject(QLatin1String("testFileFilter4"), &error); QVERIFY(project); QVERIFY(error.isEmpty()); project->setSourceDirectory(testDataDir); QStringList expectedFiles(QStringList() << testDataDir + "/file1.qml" << testDataDir + "/file2.qml" << testDataDir + "/subdir/file3.qml"); QCOMPARE(project->files().size(), 3); QCOMPARE(project->files().toSet(), expectedFiles.toSet()); delete project; } // // include specific list // { QmlProjectItem *project = loadQmlProject(QLatin1String("testFileFilter5"), &error); QVERIFY(project); QVERIFY(error.isEmpty()); project->setSourceDirectory(testDataDir); QStringList expectedFiles(QStringList() << testDataDir + "/file1.qml" << testDataDir + "/file2.qml"); QCOMPARE(project->files().toSet(), expectedFiles.toSet()); delete project; } // // include specific list // { QmlProjectItem *project = loadQmlProject(QLatin1String("testFileFilter6"), &error); QVERIFY(project); QVERIFY(error.isEmpty()); project->setSourceDirectory(testDataDir); QStringList expectedFiles(QStringList() << testDataDir + "/image.gif"); qDebug() << project->files().toSet() << expectedFiles.toSet(); QCOMPARE(project->files().toSet(), expectedFiles.toSet()); delete project; } // // use wildcards // { QmlProjectItem *project = loadQmlProject(QLatin1String("testFileFilter7"), &error); QVERIFY(project); QVERIFY(error.isEmpty()); project->setSourceDirectory(testDataDir); QStringList expectedFiles(QStringList() << testDataDir + "/image.gif"); qDebug() << project->files().toSet() << expectedFiles.toSet(); QCOMPARE(project->files().toSet(), expectedFiles.toSet()); delete project; } // // use Files element (1.1) // { QmlProjectItem *project = loadQmlProject(QLatin1String("testFileFilter8"), &error); QVERIFY(project); QVERIFY(error.isEmpty()); project->setSourceDirectory(testDataDir); QStringList expectedFiles(QStringList() << testDataDir + "/image.gif"); qDebug() << project->files().toSet() << expectedFiles.toSet(); QCOMPARE(project->files().toSet(), expectedFiles.toSet()); delete project; } }