diff options
author | Olivier Goffart <ogoffart@woboq.com> | 2020-03-25 13:37:03 +0300 |
---|---|---|
committer | Olivier Goffart <olivier@woboq.com> | 2020-03-26 11:10:34 +0300 |
commit | 242e4e1d702ca8a74ffeb6e266c5dd8f7088e46c (patch) | |
tree | 8671f4f172b518542597b1477af9b9b7fcd50287 /test | |
parent | 6a424685130d4ffb1d2c96512932506d60e830ae (diff) |
SocketAPI: fix status after a failure to move
Issue #7759
Diffstat (limited to 'test')
-rw-r--r-- | test/testsyncfilestatustracker.cpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/test/testsyncfilestatustracker.cpp b/test/testsyncfilestatustracker.cpp index 29143be6b..f1b27447c 100644 --- a/test/testsyncfilestatustracker.cpp +++ b/test/testsyncfilestatustracker.cpp @@ -465,6 +465,50 @@ private slots: QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState()); } + + void renameError() { + FakeFolder fakeFolder{FileInfo::A12_B12_C12_S12()}; + fakeFolder.serverErrorPaths().append("A/a1"); + fakeFolder.localModifier().rename("A/a1", "A/a1m"); + fakeFolder.localModifier().rename("B/b1", "B/b1m"); + StatusPushSpy statusSpy(fakeFolder.syncEngine()); + + fakeFolder.scheduleSync(); + fakeFolder.execUntilBeforePropagation(); + + verifyThatPushMatchesPull(fakeFolder, statusSpy); + + QCOMPARE(statusSpy.statusOf("A/a1m"), SyncFileStatus(SyncFileStatus::StatusSync)); + QCOMPARE(statusSpy.statusOf("A/a1"), statusSpy.statusOf("A/a1notexist")); + QCOMPARE(statusSpy.statusOf("A"), SyncFileStatus(SyncFileStatus::StatusSync)); + QCOMPARE(statusSpy.statusOf(""), SyncFileStatus(SyncFileStatus::StatusSync)); + QCOMPARE(statusSpy.statusOf("B"), SyncFileStatus(SyncFileStatus::StatusSync)); + QCOMPARE(statusSpy.statusOf("B/b1m"), SyncFileStatus(SyncFileStatus::StatusSync)); + + fakeFolder.execUntilFinished(); + verifyThatPushMatchesPull(fakeFolder, statusSpy); + QCOMPARE(statusSpy.statusOf("A/a1m"), SyncFileStatus(SyncFileStatus::StatusError)); + QCOMPARE(statusSpy.statusOf("A/a1"), statusSpy.statusOf("A/a1notexist")); + QCOMPARE(statusSpy.statusOf("A"), SyncFileStatus(SyncFileStatus::StatusWarning)); + QCOMPARE(statusSpy.statusOf(""), SyncFileStatus(SyncFileStatus::StatusWarning)); + QCOMPARE(statusSpy.statusOf("B"), SyncFileStatus(SyncFileStatus::StatusUpToDate)); + QCOMPARE(statusSpy.statusOf("B/b1m"), SyncFileStatus(SyncFileStatus::StatusUpToDate)); + statusSpy.clear(); + + QVERIFY(!fakeFolder.syncOnce()); + verifyThatPushMatchesPull(fakeFolder, statusSpy); + statusSpy.clear(); + QVERIFY(!fakeFolder.syncOnce()); + verifyThatPushMatchesPull(fakeFolder, statusSpy); + QCOMPARE(statusSpy.statusOf("A/a1m"), SyncFileStatus(SyncFileStatus::StatusError)); + QCOMPARE(statusSpy.statusOf("A/a1"), statusSpy.statusOf("A/a1notexist")); + QCOMPARE(statusSpy.statusOf("A"), SyncFileStatus(SyncFileStatus::StatusWarning)); + QCOMPARE(statusSpy.statusOf(""), SyncFileStatus(SyncFileStatus::StatusWarning)); + QCOMPARE(statusSpy.statusOf("B"), SyncFileStatus(SyncFileStatus::StatusNone)); + QCOMPARE(statusSpy.statusOf("B/b1m"), SyncFileStatus(SyncFileStatus::StatusNone)); + statusSpy.clear(); + } + }; QTEST_GUILESS_MAIN(TestSyncFileStatusTracker) |