|
14 | 14 | #include <localdiscoverytracker.h> |
15 | 15 |
|
16 | 16 | using namespace OCC; |
| 17 | +using namespace Qt::StringLiterals; |
17 | 18 |
|
18 | 19 | class TestLocalDiscovery : public QObject |
19 | 20 | { |
@@ -971,6 +972,72 @@ private slots: |
971 | 972 | QVERIFY(!fakeFolder.syncOnce()); |
972 | 973 | QCOMPARE(syncSpy.findItem(fileNameE)->_status, SyncFileItem::Status::Success); |
973 | 974 | } |
| 975 | + |
| 976 | + void testMissingInodeAndFixThem() |
| 977 | + { |
| 978 | + FakeFolder fakeFolder{FileInfo{}}; |
| 979 | + |
| 980 | + fakeFolder.remoteModifier().mkdir(u"A"_s); |
| 981 | + fakeFolder.remoteModifier().mkdir(u"A/B"_s); |
| 982 | + fakeFolder.remoteModifier().insert(u"textFile.txt"_s); |
| 983 | + fakeFolder.remoteModifier().insert(u"document.md"_s); |
| 984 | + fakeFolder.remoteModifier().insert(u"A/B/sub-folder.md"_s); |
| 985 | + |
| 986 | + QVERIFY(fakeFolder.syncOnce()); |
| 987 | + |
| 988 | + auto documentFileRecord = SyncJournalFileRecord{}; |
| 989 | + QVERIFY(fakeFolder.syncJournal().getFileRecord(u"document.md"_s, &documentFileRecord)); |
| 990 | + QCOMPARE_GT(documentFileRecord._inode, 0); |
| 991 | + documentFileRecord._inode = 0; |
| 992 | + QVERIFY(fakeFolder.syncJournal().setFileRecord(documentFileRecord).isValid()); |
| 993 | + |
| 994 | + auto textFileFileRecord = SyncJournalFileRecord{}; |
| 995 | + QVERIFY(fakeFolder.syncJournal().getFileRecord(u"textFile.txt"_s, &textFileFileRecord)); |
| 996 | + QCOMPARE_GT(textFileFileRecord._inode, 0); |
| 997 | + textFileFileRecord._inode = 0; |
| 998 | + QVERIFY(fakeFolder.syncJournal().setFileRecord(textFileFileRecord).isValid()); |
| 999 | + |
| 1000 | + auto aFolderFileRecord = SyncJournalFileRecord{}; |
| 1001 | + QVERIFY(fakeFolder.syncJournal().getFileRecord(u"A"_s, &aFolderFileRecord)); |
| 1002 | + QCOMPARE_GT(aFolderFileRecord._inode, 0); |
| 1003 | + aFolderFileRecord._inode = 0; |
| 1004 | + QVERIFY(fakeFolder.syncJournal().setFileRecord(aFolderFileRecord).isValid()); |
| 1005 | + |
| 1006 | + auto bFolderFileRecord = SyncJournalFileRecord{}; |
| 1007 | + QVERIFY(fakeFolder.syncJournal().getFileRecord(u"A/B"_s, &bFolderFileRecord)); |
| 1008 | + QCOMPARE_GT(bFolderFileRecord._inode, 0); |
| 1009 | + bFolderFileRecord._inode = 0; |
| 1010 | + QVERIFY(fakeFolder.syncJournal().setFileRecord(bFolderFileRecord).isValid()); |
| 1011 | + |
| 1012 | + auto subFolderFileRecord = SyncJournalFileRecord{}; |
| 1013 | + QVERIFY(fakeFolder.syncJournal().getFileRecord(u"A/B/sub-folder.md"_s, &subFolderFileRecord)); |
| 1014 | + QCOMPARE_GT(subFolderFileRecord._inode, 0); |
| 1015 | + subFolderFileRecord._inode = 0; |
| 1016 | + QVERIFY(fakeFolder.syncJournal().setFileRecord(subFolderFileRecord).isValid()); |
| 1017 | + |
| 1018 | + fakeFolder.syncEngine().setLocalDiscoveryOptions(LocalDiscoveryStyle::FilesystemOnly); |
| 1019 | + QVERIFY(fakeFolder.syncOnce()); |
| 1020 | + |
| 1021 | + documentFileRecord = SyncJournalFileRecord{}; |
| 1022 | + QVERIFY(fakeFolder.syncJournal().getFileRecord(u"document.md"_s, &documentFileRecord)); |
| 1023 | + QCOMPARE_GT(documentFileRecord._inode, 0); |
| 1024 | + |
| 1025 | + textFileFileRecord = SyncJournalFileRecord{}; |
| 1026 | + QVERIFY(fakeFolder.syncJournal().getFileRecord(u"textFile.txt"_s, &textFileFileRecord)); |
| 1027 | + QCOMPARE_GT(textFileFileRecord._inode, 0); |
| 1028 | + |
| 1029 | + aFolderFileRecord = SyncJournalFileRecord{}; |
| 1030 | + QVERIFY(fakeFolder.syncJournal().getFileRecord(u"A"_s, &aFolderFileRecord)); |
| 1031 | + QCOMPARE_GT(aFolderFileRecord._inode, 0); |
| 1032 | + |
| 1033 | + bFolderFileRecord = SyncJournalFileRecord{}; |
| 1034 | + QVERIFY(fakeFolder.syncJournal().getFileRecord(u"A/B"_s, &bFolderFileRecord)); |
| 1035 | + QCOMPARE_GT(bFolderFileRecord._inode, 0); |
| 1036 | + |
| 1037 | + subFolderFileRecord = SyncJournalFileRecord{}; |
| 1038 | + QVERIFY(fakeFolder.syncJournal().getFileRecord(u"A/B/sub-folder.md"_s, &subFolderFileRecord)); |
| 1039 | + QCOMPARE_GT(subFolderFileRecord._inode, 0); |
| 1040 | + } |
974 | 1041 | }; |
975 | 1042 |
|
976 | 1043 | QTEST_GUILESS_MAIN(TestLocalDiscovery) |
|
0 commit comments