diff --git a/autotests/kautosavefiletest.cpp b/autotests/kautosavefiletest.cpp --- a/autotests/kautosavefiletest.cpp +++ b/autotests/kautosavefiletest.cpp @@ -80,7 +80,16 @@ void KAutoSaveFileTest::test_fileStaleFiles() { - // TODO + QUrl normalFile = QUrl::fromLocalFile(QStringLiteral("/tmp/test directory/tîst me.txt")); + + KAutoSaveFile saveFile(normalFile); + QVERIFY(saveFile.open(QIODevice::ReadWrite)); + saveFile.write(QStringLiteral("testdata").toUtf8()); + // Make sure the stale file is found + QVERIFY(saveFile.staleFiles(normalFile, QStringLiteral("qttest")).count() == 1); + saveFile.releaseLock(); + // Make sure the stale file is deleted + QVERIFY(saveFile.staleFiles(normalFile, QStringLiteral("qttest")).isEmpty()); } void KAutoSaveFileTest::test_applicationStaleFiles() diff --git a/src/lib/io/kautosavefile.cpp b/src/lib/io/kautosavefile.cpp --- a/src/lib/io/kautosavefile.cpp +++ b/src/lib/io/kautosavefile.cpp @@ -177,7 +177,7 @@ QUrl managedFileName; //name.setScheme(file.mid(sepPos + 3, pathPos - sep.size() - 3)); QByteArray encodedPath = staleFileName.midRef(pathPos+1, staleFileName.length()-pathPos-1-KAutoSaveFilePrivate::NamePadding).toLatin1(); - managedFileName.setPath(QUrl::fromPercentEncoding(encodedPath) + QLatin1Char('/') + QFileInfo(staleFileName.left(sepPos)).fileName()); + managedFileName.setPath(QUrl::fromPercentEncoding(encodedPath) + QLatin1Char('/') + QFileInfo(QUrl::fromPercentEncoding(staleFileName.left(sepPos).toLatin1())).fileName()); return managedFileName; }