Fix removing unnamed quick tests...

...this was wrong especially when closing (the last) open project
that contained unnamed quick tests.

Change-Id: I6d030b6219d9f397a6ffb51a985ef4147eebec8a
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
This commit is contained in:
Christian Stenger
2015-03-03 13:14:31 +01:00
parent aba2844a5a
commit 535f1eec18
3 changed files with 12 additions and 15 deletions

View File

@@ -672,14 +672,16 @@ void TestCodeParser::removeTestsIfNecessary(const QString &fileName)
emit testItemsRemoved(file, TestTreeModel::QuickTest);
}
// unnamed Quick Tests must be handled separately
removeUnnamedQuickTestsByName(fileName);
QSet<QString> filePaths;
QList<QString> functionNames;
if (m_model->hasUnnamedQuickTests()) {
m_model->qmlFilesAndFunctionNamesForMainFile(fileName, &filePaths, &functionNames);
foreach (const QString &file, filePaths)
emit testItemsRemoved(file, TestTreeModel::QuickTest);
if (fileName.endsWith(QLatin1String(".qml"))) {
removeUnnamedQuickTestsByName(fileName);
emit unnamedQuickTestsRemoved(fileName);
} else {
m_model->qmlFilesForMainFile(fileName, &filePaths);
foreach (const QString &file, filePaths) {
removeUnnamedQuickTestsByName(file);
emit unnamedQuickTestsRemoved(file);
}
}
}
}

View File

@@ -615,19 +615,15 @@ QString TestTreeModel::getMainFileForUnnamedQuickTest(const QString &qmlFile) co
return QString();
}
void TestTreeModel::qmlFilesAndFunctionNamesForMainFile(const QString &mainFile,
QSet<QString> *filePaths,
QList<QString> *functionNames) const
void TestTreeModel::qmlFilesForMainFile(const QString &mainFile, QSet<QString> *filePaths) const
{
TestTreeItem *unnamed = unnamedQuickTests();
if (!unnamed)
return;
for (int i = 0; i < unnamed->childCount(); ++i) {
const TestTreeItem *child = unnamed->child(i);
if (child->mainFile() == mainFile) {
if (child->mainFile() == mainFile)
filePaths->insert(child->filePath());
functionNames->append(child->name());
}
}
}

View File

@@ -72,8 +72,7 @@ public:
QList<TestConfiguration *> getAllTestCases() const;
QList<TestConfiguration *> getSelectedTests() const;
QString getMainFileForUnnamedQuickTest(const QString &qmlFile) const;
void qmlFilesAndFunctionNamesForMainFile(const QString &mainFile, QSet<QString> *filePaths,
QList<QString> *functionNames) const;
void qmlFilesForMainFile(const QString &mainFile, QSet<QString> *filePaths) const;
QList<QString> getUnnamedQuickTestFunctions() const;
QSet<QString> qmlFilesForProFile(const QString &proFile) const;
bool hasUnnamedQuickTests() const;