|
19 | 19 | #include "accountstate.h" |
20 | 20 | #include <accountmanager.h> |
21 | 21 | #include "configfile.h" |
| 22 | +#include "socketapi/socketapi.h" |
22 | 23 | #include "syncenginetestutils.h" |
23 | 24 | #include "testhelper.h" |
24 | 25 |
|
@@ -554,6 +555,39 @@ private slots: |
554 | 555 | verifyFolderSyncChangesOnReceivedFileIdNotification(user2, {50}, {"2"}); |
555 | 556 | verifyFolderSyncChangesOnReceivedFileIdNotification(user2, {10, 11, 17, 18, 404}, {}); |
556 | 557 | } |
| 558 | + |
| 559 | + void testUnloadAndDeleteAllFolders() |
| 560 | + { |
| 561 | + _fm.reset({}); |
| 562 | + _fm.reset(new FolderMan{}); |
| 563 | + |
| 564 | + QTemporaryDir dir; |
| 565 | + ConfigFile::setConfDir(dir.path()); |
| 566 | + QVERIFY(dir.isValid()); |
| 567 | + QVERIFY(QDir(dir.path()).mkpath(QStringLiteral("folder1"))); |
| 568 | + QVERIFY(QDir(dir.path()).mkpath(QStringLiteral("folder2"))); |
| 569 | + |
| 570 | + auto account = Account::create(); |
| 571 | + account->setCredentials(new FakeCredentials{new FakeQNAM({})}); |
| 572 | + account->setUrl(QUrl(QStringLiteral("http://example.de"))); |
| 573 | + auto accountState = new FakeAccountState(account); |
| 574 | + |
| 575 | + const auto folder1 = FolderMan::instance()->addFolder(accountState, folderDefinition(dir.path() + QStringLiteral("/folder1"))); |
| 576 | + const auto folder2 = FolderMan::instance()->addFolder(accountState, folderDefinition(dir.path() + QStringLiteral("/folder2"))); |
| 577 | + QVERIFY(folder1); |
| 578 | + QVERIFY(folder2); |
| 579 | + QCOMPARE(FolderMan::instance()->map().count(), 2); |
| 580 | + |
| 581 | + auto socketApi = FolderMan::instance()->socketApi(); |
| 582 | + |
| 583 | + // verifies that calling slotUnregisterPath twice on the same alias doesn't crash |
| 584 | + socketApi->slotUnregisterPath(folder1->alias()); |
| 585 | + socketApi->slotUnregisterPath(folder1->alias()); |
| 586 | + |
| 587 | + FolderMan::instance()->unloadAndDeleteAllFolders(); |
| 588 | + |
| 589 | + QCOMPARE(FolderMan::instance()->map().count(), 0); |
| 590 | + } |
557 | 591 | }; |
558 | 592 |
|
559 | 593 | QTEST_GUILESS_MAIN(TestFolderMan) |
|
0 commit comments