tst_QItemModel: Use a QTemporaryDir for test data of QDirModel.
Change-Id: I5943c6656da93d36e1955ac038bf656831da0c5c Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
This commit is contained in:
parent
fb69a09a24
commit
884e3bdd5d
@ -78,6 +78,9 @@ public:
|
||||
QList<test> tests;
|
||||
|
||||
static void setupDatabase();
|
||||
|
||||
private:
|
||||
QScopedPointer<QTemporaryDir> m_dirModelTempDir;
|
||||
};
|
||||
|
||||
|
||||
@ -306,18 +309,20 @@ QModelIndex ModelsToTest::populateTestArea(QAbstractItemModel *model)
|
||||
}
|
||||
|
||||
if (QDirModel *dirModel = qobject_cast<QDirModel *>(model)) {
|
||||
if (!QDir::current().mkdir("test"))
|
||||
qFatal("%s: cannot create directory %s",
|
||||
Q_FUNC_INFO,
|
||||
qPrintable(QDir::toNativeSeparators(QDir::currentPath()+"/test")));
|
||||
m_dirModelTempDir.reset(new QTemporaryDir);
|
||||
if (!m_dirModelTempDir->isValid())
|
||||
qFatal("Cannot create temporary directory \"%s\": %s",
|
||||
qPrintable(QDir::toNativeSeparators(m_dirModelTempDir->path())),
|
||||
qPrintable(m_dirModelTempDir->errorString()));
|
||||
|
||||
QDir tempDir(m_dirModelTempDir->path());
|
||||
for (int i = 0; i < 26; ++i) {
|
||||
QString subdir = QString("test/foo_%1").arg(i);
|
||||
if (!QDir::current().mkdir(subdir))
|
||||
qFatal("%s: cannot create directory %s",
|
||||
Q_FUNC_INFO,
|
||||
qPrintable(QDir::toNativeSeparators(QDir::currentPath()+"/"+subdir)));
|
||||
const QString subdir = QString("foo_") + QString::number(i);
|
||||
if (!tempDir.mkdir(subdir))
|
||||
qFatal("Cannot create directory %s",
|
||||
qPrintable(QDir::toNativeSeparators(tempDir.path() + QLatin1Char('/') +subdir)));
|
||||
}
|
||||
return dirModel->index(QDir::currentPath()+"/test");
|
||||
return dirModel->index(tempDir.path());
|
||||
}
|
||||
|
||||
if (QSqlQueryModel *queryModel = qobject_cast<QSqlQueryModel *>(model)) {
|
||||
@ -382,22 +387,8 @@ QModelIndex ModelsToTest::populateTestArea(QAbstractItemModel *model)
|
||||
*/
|
||||
void ModelsToTest::cleanupTestArea(QAbstractItemModel *model)
|
||||
{
|
||||
if (qobject_cast<QDirModel *>(model))
|
||||
{
|
||||
if (QDir(QDir::currentPath()+"/test").exists())
|
||||
{
|
||||
for (int i = 0; i < 26; ++i) {
|
||||
QString subdir(QString("test/foo_%1").arg(i));
|
||||
if (!QDir::current().rmdir(subdir))
|
||||
qFatal("%s: cannot remove directory %s",
|
||||
Q_FUNC_INFO,
|
||||
qPrintable(QDir::toNativeSeparators(QDir::currentPath()+"/"+subdir)));
|
||||
}
|
||||
if (!QDir::current().rmdir("test"))
|
||||
qFatal("%s: cannot remove directory %s",
|
||||
Q_FUNC_INFO,
|
||||
qPrintable(QDir::toNativeSeparators(QDir::currentPath()+"/test")));
|
||||
}
|
||||
if (qobject_cast<QDirModel *>(model)) {
|
||||
m_dirModelTempDir.reset();
|
||||
} else if (qobject_cast<QSqlQueryModel *>(model)) {
|
||||
QSqlQuery q("DROP TABLE test");
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user