diff options
author | Hannah von Reth <hannah.vonreth@owncloud.com> | 2022-10-25 19:02:34 +0300 |
---|---|---|
committer | Hannah von Reth <vonreth@kde.org> | 2022-10-26 12:44:21 +0300 |
commit | 709f22e78c47632329f78628cb5d46a467375540 (patch) | |
tree | 8156ab544447f49b332cb71173e6c5c4ae4c853b | |
parent | 3c694c768d21f8c65605e8ce30e01c336abe00e2 (diff) |
Ensure we recieve the correct range
-rw-r--r-- | test/testdownload.cpp | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/test/testdownload.cpp b/test/testdownload.cpp index b8b89eb5e..2e4dbb38e 100644 --- a/test/testdownload.cpp +++ b/test/testdownload.cpp @@ -110,16 +110,28 @@ private slots: QVERIFY(fakeFolder.syncEngine().isAnotherSyncNeeded()); // Now, we need to restart, this time, it should resume. - QByteArray ranges; - fakeFolder.setServerOverride([&](QNetworkAccessManager::Operation op, const QNetworkRequest &request, QIODevice *) -> QNetworkReply * { + QByteArray rangeRequest; + QByteArray rangeReply; + OperationCounter counter; + + fakeFolder.setServerOverride([&](QNetworkAccessManager::Operation op, const QNetworkRequest &request, QIODevice *device) -> QNetworkReply * { + counter.serverOverride(op, request, device); if (op == QNetworkAccessManager::GetOperation && request.url().path().endsWith("A/a0")) { - ranges = request.rawHeader("Range"); + rangeRequest = request.rawHeader("Range"); + auto reply = new FakeGetReply(fakeFolder.remoteModifier(), op, request, this); + connect(reply, &FakeGetReply::metaDataChanged, reply, [&, reply] { + rangeReply = reply->rawHeader("Content-Range"); + }); + return reply; } return nullptr; }); fakeFolder.syncJournal().wipeErrorBlacklist(); QVERIFY(fakeFolder.applyLocalModificationsAndSync()); // now this should succeed - QCOMPARE(ranges, QByteArray("bytes=" + QByteArray::number(stopAfter) + "-")); + QCOMPARE(rangeRequest, QByteArrayLiteral("bytes=") + QByteArray::number(stopAfter) + '-'); + QCOMPARE(rangeReply, QByteArrayLiteral("bytes ") + QByteArray::number(stopAfter) + '-'); + QCOMPARE(counter.nGET, 1); + QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState()); } } |