Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/owncloud/client.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlivier Goffart <ogoffart@woboq.com>2017-03-09 11:54:14 +0300
committerOlivier Goffart <ogoffart@woboq.com>2017-03-09 11:54:14 +0300
commit0e8f0481d434272ad593f14e37db1774cf568c47 (patch)
tree43fba054024d4a761c8a8495e97733e9d6922cb1 /test/testsyncengine.cpp
parentcdf16dd90536e001afb1ee781bd61aada231a0eb (diff)
parent1d0ef8307888f2b74d5cd76d51d3ed59881f923a (diff)
Merge remote-tracking branch 'origin/2.3'
Conflicts: src/libsync/owncloudpropagator.cpp
Diffstat (limited to 'test/testsyncengine.cpp')
-rw-r--r--test/testsyncengine.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/test/testsyncengine.cpp b/test/testsyncengine.cpp
index 31f15df8e..5567608d5 100644
--- a/test/testsyncengine.cpp
+++ b/test/testsyncengine.cpp
@@ -224,6 +224,40 @@ private slots:
QCOMPARE(finishedSpy.size(), 1);
QCOMPARE(finishedSpy.first().first().toBool(), false);
}
+
+ void testDirDownloadWithError() {
+ FakeFolder fakeFolder{FileInfo::A12_B12_C12_S12()};
+ QSignalSpy completeSpy(&fakeFolder.syncEngine(), SIGNAL(itemCompleted(const SyncFileItemPtr &)));
+ fakeFolder.remoteModifier().mkdir("Y");
+ fakeFolder.remoteModifier().mkdir("Y/Z");
+ fakeFolder.remoteModifier().insert("Y/Z/d0");
+ fakeFolder.remoteModifier().insert("Y/Z/d1");
+ fakeFolder.remoteModifier().insert("Y/Z/d2");
+ fakeFolder.remoteModifier().insert("Y/Z/d3");
+ fakeFolder.remoteModifier().insert("Y/Z/d4");
+ fakeFolder.remoteModifier().insert("Y/Z/d5");
+ fakeFolder.remoteModifier().insert("Y/Z/d6");
+ fakeFolder.remoteModifier().insert("Y/Z/d7");
+ fakeFolder.remoteModifier().insert("Y/Z/d8");
+ fakeFolder.remoteModifier().insert("Y/Z/d9");
+ fakeFolder.serverErrorPaths().append("Y/Z/d2", 503); // 503 is a fatal error
+ fakeFolder.serverErrorPaths().append("Y/Z/d3", 503); // 503 is a fatal error
+ QVERIFY(!fakeFolder.syncOnce());
+ QCoreApplication::processEvents(); // should not crash
+
+ QSet<QString> seen;
+ for(const QList<QVariant> &args : completeSpy) {
+ auto item = args[0].value<SyncFileItemPtr>();
+ qDebug() << item->_file << item->_isDirectory << item->_status;
+ QVERIFY(!seen.contains(item->_file)); // signal only sent once per item
+ seen.insert(item->_file);
+ if (item->_file == "Y/Z/d2" || item->_file == "Y/Z/d3") {
+ QVERIFY(item->_status == SyncFileItem::FatalError);
+ }
+ QVERIFY(item->_file != "Y/Z/d9"); // we should have aborted the sync before d9 starts
+ }
+ }
+
};
QTEST_GUILESS_MAIN(TestSyncEngine)