more tests
This commit is contained in:
552
tests/core/TestSessionManager.cpp
Normal file
552
tests/core/TestSessionManager.cpp
Normal file
@@ -0,0 +1,552 @@
|
||||
#include <QtTest>
|
||||
#include <LocalSendCore/SessionManager.h>
|
||||
#include <LocalSendCore/Device.h>
|
||||
|
||||
class TestSessionManager : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
private slots:
|
||||
void testCreateReceiveSession();
|
||||
void testAcceptReceiveSession();
|
||||
void testDeclineReceiveSession();
|
||||
void testCancelReceiveSession();
|
||||
void testReceiveProgress();
|
||||
void testCompleteReceiveFile();
|
||||
void testCompleteAllReceiveFiles();
|
||||
void testFailReceiveFile();
|
||||
void testCreateSendSession();
|
||||
void testSetSendSessionTokens();
|
||||
void testStartSendSession();
|
||||
void testSendProgress();
|
||||
void testCompleteSendFile();
|
||||
void testCompleteAllSendFiles();
|
||||
void testCancelSendSession();
|
||||
void testHasSessionQueries();
|
||||
void testGenerateToken();
|
||||
void testDeclineRemovesSession();
|
||||
void testSetSendSessionTokensRekeys();
|
||||
};
|
||||
|
||||
void TestSessionManager::testCreateReceiveSession()
|
||||
{
|
||||
LocalSend::SessionManager mgr;
|
||||
|
||||
LocalSend::Device sender;
|
||||
sender.ip = QStringLiteral("10.0.0.1");
|
||||
sender.alias = QStringLiteral("Sender");
|
||||
|
||||
QMap<QString, LocalSend::FileDto> files;
|
||||
LocalSend::FileDto f1;
|
||||
f1.id = QStringLiteral("0");
|
||||
f1.fileName = QStringLiteral("a.txt");
|
||||
f1.size = 100;
|
||||
files.insert(QStringLiteral("0"), f1);
|
||||
|
||||
LocalSend::FileDto f2;
|
||||
f2.id = QStringLiteral("1");
|
||||
f2.fileName = QStringLiteral("b.txt");
|
||||
f2.size = 200;
|
||||
files.insert(QStringLiteral("1"), f2);
|
||||
|
||||
QSignalSpy spy(&mgr, &LocalSend::SessionManager::receiveSessionCreated);
|
||||
QString sessionId = mgr.createReceiveSession(sender, files);
|
||||
|
||||
QVERIFY(!sessionId.isEmpty());
|
||||
QCOMPARE(spy.count(), 1);
|
||||
|
||||
LocalSend::ReceiveSession session = mgr.receiveSession(sessionId);
|
||||
QCOMPARE(session.sessionId, sessionId);
|
||||
QCOMPARE(session.sender.alias, QStringLiteral("Sender"));
|
||||
QCOMPARE(session.files.size(), 2);
|
||||
QCOMPARE(session.status, LocalSend::SessionStatus::Waiting);
|
||||
QVERIFY(!session.files[QStringLiteral("0")].token.isEmpty());
|
||||
QVERIFY(!session.files[QStringLiteral("1")].token.isEmpty());
|
||||
}
|
||||
|
||||
void TestSessionManager::testAcceptReceiveSession()
|
||||
{
|
||||
LocalSend::SessionManager mgr;
|
||||
|
||||
LocalSend::Device sender;
|
||||
QMap<QString, LocalSend::FileDto> files;
|
||||
LocalSend::FileDto f1;
|
||||
f1.id = QStringLiteral("0");
|
||||
f1.fileName = QStringLiteral("a.txt");
|
||||
f1.size = 100;
|
||||
files.insert(QStringLiteral("0"), f1);
|
||||
|
||||
QString sessionId = mgr.createReceiveSession(sender, files);
|
||||
|
||||
QSignalSpy spy(&mgr, &LocalSend::SessionManager::receiveSessionAccepted);
|
||||
QMap<QString, QString> destPaths;
|
||||
destPaths.insert(QStringLiteral("0"), QStringLiteral("/tmp/a.txt"));
|
||||
mgr.acceptReceiveSession(sessionId, destPaths);
|
||||
|
||||
QCOMPARE(spy.count(), 1);
|
||||
QList<QVariant> args = spy.takeFirst();
|
||||
QCOMPARE(args.at(0).toString(), sessionId);
|
||||
|
||||
LocalSend::ReceiveSession session = mgr.receiveSession(sessionId);
|
||||
QCOMPARE(session.status, LocalSend::SessionStatus::Sending);
|
||||
QCOMPARE(session.files[QStringLiteral("0")].destinationPath, QStringLiteral("/tmp/a.txt"));
|
||||
|
||||
auto tokens = args.at(1).value<QMap<QString, QString>>();
|
||||
QVERIFY(!tokens.value(QStringLiteral("0")).isEmpty());
|
||||
}
|
||||
|
||||
void TestSessionManager::testDeclineReceiveSession()
|
||||
{
|
||||
LocalSend::SessionManager mgr;
|
||||
|
||||
LocalSend::Device sender;
|
||||
QMap<QString, LocalSend::FileDto> files;
|
||||
LocalSend::FileDto f1;
|
||||
f1.id = QStringLiteral("0");
|
||||
f1.fileName = QStringLiteral("a.txt");
|
||||
f1.size = 100;
|
||||
files.insert(QStringLiteral("0"), f1);
|
||||
|
||||
QString sessionId = mgr.createReceiveSession(sender, files);
|
||||
|
||||
QSignalSpy spy(&mgr, &LocalSend::SessionManager::receiveSessionDeclined);
|
||||
mgr.declineReceiveSession(sessionId);
|
||||
|
||||
QCOMPARE(spy.count(), 1);
|
||||
QVERIFY(!mgr.hasReceiveSession(sessionId));
|
||||
}
|
||||
|
||||
void TestSessionManager::testCancelReceiveSession()
|
||||
{
|
||||
LocalSend::SessionManager mgr;
|
||||
|
||||
LocalSend::Device sender;
|
||||
QMap<QString, LocalSend::FileDto> files;
|
||||
LocalSend::FileDto f1;
|
||||
f1.id = QStringLiteral("0");
|
||||
f1.fileName = QStringLiteral("a.txt");
|
||||
f1.size = 100;
|
||||
files.insert(QStringLiteral("0"), f1);
|
||||
|
||||
QString sessionId = mgr.createReceiveSession(sender, files);
|
||||
QMap<QString, QString> destPaths;
|
||||
destPaths.insert(QStringLiteral("0"), QStringLiteral("/tmp/a.txt"));
|
||||
mgr.acceptReceiveSession(sessionId, destPaths);
|
||||
|
||||
QSignalSpy spy(&mgr, &LocalSend::SessionManager::receiveSessionCanceled);
|
||||
mgr.cancelReceiveSession(sessionId);
|
||||
|
||||
QCOMPARE(spy.count(), 1);
|
||||
QVERIFY(!mgr.hasReceiveSession(sessionId));
|
||||
}
|
||||
|
||||
void TestSessionManager::testReceiveProgress()
|
||||
{
|
||||
LocalSend::SessionManager mgr;
|
||||
|
||||
LocalSend::Device sender;
|
||||
QMap<QString, LocalSend::FileDto> files;
|
||||
LocalSend::FileDto f1;
|
||||
f1.id = QStringLiteral("0");
|
||||
f1.fileName = QStringLiteral("a.txt");
|
||||
f1.size = 1000;
|
||||
files.insert(QStringLiteral("0"), f1);
|
||||
|
||||
QString sessionId = mgr.createReceiveSession(sender, files);
|
||||
QMap<QString, QString> destPaths;
|
||||
destPaths.insert(QStringLiteral("0"), QStringLiteral("/tmp/a.txt"));
|
||||
mgr.acceptReceiveSession(sessionId, destPaths);
|
||||
|
||||
QSignalSpy spy(&mgr, &LocalSend::SessionManager::receiveProgress);
|
||||
mgr.updateReceiveProgress(sessionId, QStringLiteral("0"), 500);
|
||||
|
||||
QCOMPARE(spy.count(), 1);
|
||||
double progress = spy.takeFirst().at(2).toDouble();
|
||||
QVERIFY(qFuzzyCompare(progress, 0.5));
|
||||
}
|
||||
|
||||
void TestSessionManager::testCompleteReceiveFile()
|
||||
{
|
||||
LocalSend::SessionManager mgr;
|
||||
|
||||
LocalSend::Device sender;
|
||||
QMap<QString, LocalSend::FileDto> files;
|
||||
LocalSend::FileDto f1;
|
||||
f1.id = QStringLiteral("0");
|
||||
f1.fileName = QStringLiteral("a.txt");
|
||||
f1.size = 1000;
|
||||
files.insert(QStringLiteral("0"), f1);
|
||||
|
||||
QString sessionId = mgr.createReceiveSession(sender, files);
|
||||
QMap<QString, QString> destPaths;
|
||||
destPaths.insert(QStringLiteral("0"), QStringLiteral("/tmp/a.txt"));
|
||||
mgr.acceptReceiveSession(sessionId, destPaths);
|
||||
|
||||
mgr.updateReceiveProgress(sessionId, QStringLiteral("0"), 1000);
|
||||
|
||||
QSignalSpy spy(&mgr, &LocalSend::SessionManager::receiveSessionCompleted);
|
||||
mgr.completeReceiveFile(sessionId, QStringLiteral("0"));
|
||||
|
||||
QCOMPARE(spy.count(), 1);
|
||||
QVERIFY(!mgr.hasReceiveSession(sessionId));
|
||||
}
|
||||
|
||||
void TestSessionManager::testCompleteAllReceiveFiles()
|
||||
{
|
||||
LocalSend::SessionManager mgr;
|
||||
|
||||
LocalSend::Device sender;
|
||||
QMap<QString, LocalSend::FileDto> files;
|
||||
LocalSend::FileDto f1;
|
||||
f1.id = QStringLiteral("0");
|
||||
f1.fileName = QStringLiteral("a.txt");
|
||||
f1.size = 100;
|
||||
files.insert(QStringLiteral("0"), f1);
|
||||
|
||||
LocalSend::FileDto f2;
|
||||
f2.id = QStringLiteral("1");
|
||||
f2.fileName = QStringLiteral("b.txt");
|
||||
f2.size = 200;
|
||||
files.insert(QStringLiteral("1"), f2);
|
||||
|
||||
QString sessionId = mgr.createReceiveSession(sender, files);
|
||||
QMap<QString, QString> destPaths;
|
||||
destPaths.insert(QStringLiteral("0"), QStringLiteral("/tmp/a.txt"));
|
||||
destPaths.insert(QStringLiteral("1"), QStringLiteral("/tmp/b.txt"));
|
||||
mgr.acceptReceiveSession(sessionId, destPaths);
|
||||
|
||||
QSignalSpy spy(&mgr, &LocalSend::SessionManager::receiveSessionCompleted);
|
||||
|
||||
mgr.completeReceiveFile(sessionId, QStringLiteral("0"));
|
||||
QCOMPARE(spy.count(), 0);
|
||||
QVERIFY(mgr.hasReceiveSession(sessionId));
|
||||
|
||||
mgr.completeReceiveFile(sessionId, QStringLiteral("1"));
|
||||
QCOMPARE(spy.count(), 1);
|
||||
QVERIFY(!mgr.hasReceiveSession(sessionId));
|
||||
}
|
||||
|
||||
void TestSessionManager::testFailReceiveFile()
|
||||
{
|
||||
LocalSend::SessionManager mgr;
|
||||
|
||||
LocalSend::Device sender;
|
||||
QMap<QString, LocalSend::FileDto> files;
|
||||
LocalSend::FileDto f1;
|
||||
f1.id = QStringLiteral("0");
|
||||
f1.fileName = QStringLiteral("a.txt");
|
||||
f1.size = 1000;
|
||||
files.insert(QStringLiteral("0"), f1);
|
||||
|
||||
QString sessionId = mgr.createReceiveSession(sender, files);
|
||||
|
||||
mgr.failReceiveFile(sessionId, QStringLiteral("0"));
|
||||
|
||||
LocalSend::ReceiveSession session = mgr.receiveSession(sessionId);
|
||||
QCOMPARE(session.files[QStringLiteral("0")].status, LocalSend::FileStatus::Failed);
|
||||
}
|
||||
|
||||
void TestSessionManager::testCreateSendSession()
|
||||
{
|
||||
LocalSend::SessionManager mgr;
|
||||
|
||||
LocalSend::Device target;
|
||||
target.ip = QStringLiteral("10.0.0.2");
|
||||
target.alias = QStringLiteral("Receiver");
|
||||
|
||||
QMap<QString, LocalSend::FileDto> files;
|
||||
LocalSend::FileDto f1;
|
||||
f1.id = QStringLiteral("0");
|
||||
f1.fileName = QStringLiteral("c.txt");
|
||||
f1.size = 500;
|
||||
files.insert(QStringLiteral("0"), f1);
|
||||
|
||||
QMap<QString, QString> localPaths;
|
||||
localPaths.insert(QStringLiteral("0"), QStringLiteral("/home/user/c.txt"));
|
||||
|
||||
QSignalSpy spy(&mgr, &LocalSend::SessionManager::sendSessionCreated);
|
||||
QString sessionId = mgr.createSendSession(target, files, localPaths);
|
||||
|
||||
QVERIFY(!sessionId.isEmpty());
|
||||
QCOMPARE(spy.count(), 1);
|
||||
|
||||
LocalSend::SendSession session = mgr.sendSession(sessionId);
|
||||
QCOMPARE(session.sessionId, sessionId);
|
||||
QCOMPARE(session.target.alias, QStringLiteral("Receiver"));
|
||||
QCOMPARE(session.files.size(), 1);
|
||||
QCOMPARE(session.files[QStringLiteral("0")].localPath, QStringLiteral("/home/user/c.txt"));
|
||||
QCOMPARE(session.status, LocalSend::SessionStatus::Waiting);
|
||||
}
|
||||
|
||||
void TestSessionManager::testSetSendSessionTokens()
|
||||
{
|
||||
LocalSend::SessionManager mgr;
|
||||
|
||||
LocalSend::Device target;
|
||||
QMap<QString, LocalSend::FileDto> files;
|
||||
LocalSend::FileDto f1;
|
||||
f1.id = QStringLiteral("0");
|
||||
f1.fileName = QStringLiteral("a.txt");
|
||||
f1.size = 100;
|
||||
files.insert(QStringLiteral("0"), f1);
|
||||
|
||||
QMap<QString, QString> localPaths;
|
||||
localPaths.insert(QStringLiteral("0"), QStringLiteral("/tmp/a.txt"));
|
||||
|
||||
QString origSessionId = mgr.createSendSession(target, files, localPaths);
|
||||
|
||||
QString responseSessionId = QStringLiteral("server-session-123");
|
||||
QMap<QString, QString> tokens;
|
||||
tokens.insert(QStringLiteral("0"), QStringLiteral("token-abc"));
|
||||
|
||||
mgr.setSendSessionTokens(origSessionId, responseSessionId, tokens);
|
||||
|
||||
QVERIFY(!mgr.hasSendSession(origSessionId));
|
||||
QVERIFY(mgr.hasSendSession(responseSessionId));
|
||||
|
||||
LocalSend::SendSession session = mgr.sendSession(responseSessionId);
|
||||
QCOMPARE(session.sessionId, responseSessionId);
|
||||
QCOMPARE(session.files[QStringLiteral("0")].token, QStringLiteral("token-abc"));
|
||||
}
|
||||
|
||||
void TestSessionManager::testStartSendSession()
|
||||
{
|
||||
LocalSend::SessionManager mgr;
|
||||
|
||||
LocalSend::Device target;
|
||||
QMap<QString, LocalSend::FileDto> files;
|
||||
LocalSend::FileDto f1;
|
||||
f1.id = QStringLiteral("0");
|
||||
f1.fileName = QStringLiteral("a.txt");
|
||||
f1.size = 100;
|
||||
files.insert(QStringLiteral("0"), f1);
|
||||
|
||||
QMap<QString, QString> localPaths;
|
||||
localPaths.insert(QStringLiteral("0"), QStringLiteral("/tmp/a.txt"));
|
||||
|
||||
QString sessionId = mgr.createSendSession(target, files, localPaths);
|
||||
|
||||
QSignalSpy spy(&mgr, &LocalSend::SessionManager::sendSessionStarted);
|
||||
mgr.startSendSession(sessionId);
|
||||
|
||||
QCOMPARE(spy.count(), 1);
|
||||
LocalSend::SendSession session = mgr.sendSession(sessionId);
|
||||
QCOMPARE(session.status, LocalSend::SessionStatus::Sending);
|
||||
}
|
||||
|
||||
void TestSessionManager::testSendProgress()
|
||||
{
|
||||
LocalSend::SessionManager mgr;
|
||||
|
||||
LocalSend::Device target;
|
||||
QMap<QString, LocalSend::FileDto> files;
|
||||
LocalSend::FileDto f1;
|
||||
f1.id = QStringLiteral("0");
|
||||
f1.fileName = QStringLiteral("a.txt");
|
||||
f1.size = 2000;
|
||||
files.insert(QStringLiteral("0"), f1);
|
||||
|
||||
QMap<QString, QString> localPaths;
|
||||
localPaths.insert(QStringLiteral("0"), QStringLiteral("/tmp/a.txt"));
|
||||
|
||||
QString sessionId = mgr.createSendSession(target, files, localPaths);
|
||||
mgr.startSendSession(sessionId);
|
||||
|
||||
QSignalSpy spy(&mgr, &LocalSend::SessionManager::sendProgress);
|
||||
mgr.updateSendProgress(sessionId, QStringLiteral("0"), 1000);
|
||||
|
||||
QCOMPARE(spy.count(), 1);
|
||||
double progress = spy.takeFirst().at(2).toDouble();
|
||||
QVERIFY(qFuzzyCompare(progress, 0.5));
|
||||
}
|
||||
|
||||
void TestSessionManager::testCompleteSendFile()
|
||||
{
|
||||
LocalSend::SessionManager mgr;
|
||||
|
||||
LocalSend::Device target;
|
||||
QMap<QString, LocalSend::FileDto> files;
|
||||
LocalSend::FileDto f1;
|
||||
f1.id = QStringLiteral("0");
|
||||
f1.fileName = QStringLiteral("a.txt");
|
||||
f1.size = 1000;
|
||||
files.insert(QStringLiteral("0"), f1);
|
||||
|
||||
QMap<QString, QString> localPaths;
|
||||
localPaths.insert(QStringLiteral("0"), QStringLiteral("/tmp/a.txt"));
|
||||
|
||||
QString sessionId = mgr.createSendSession(target, files, localPaths);
|
||||
mgr.startSendSession(sessionId);
|
||||
|
||||
QSignalSpy spy(&mgr, &LocalSend::SessionManager::sendSessionCompleted);
|
||||
mgr.completeSendFile(sessionId, QStringLiteral("0"));
|
||||
|
||||
QCOMPARE(spy.count(), 1);
|
||||
QVERIFY(!mgr.hasSendSession(sessionId));
|
||||
}
|
||||
|
||||
void TestSessionManager::testCompleteAllSendFiles()
|
||||
{
|
||||
LocalSend::SessionManager mgr;
|
||||
|
||||
LocalSend::Device target;
|
||||
QMap<QString, LocalSend::FileDto> files;
|
||||
LocalSend::FileDto f1;
|
||||
f1.id = QStringLiteral("0");
|
||||
f1.fileName = QStringLiteral("a.txt");
|
||||
f1.size = 100;
|
||||
files.insert(QStringLiteral("0"), f1);
|
||||
|
||||
LocalSend::FileDto f2;
|
||||
f2.id = QStringLiteral("1");
|
||||
f2.fileName = QStringLiteral("b.txt");
|
||||
f2.size = 200;
|
||||
files.insert(QStringLiteral("1"), f2);
|
||||
|
||||
QMap<QString, QString> localPaths;
|
||||
localPaths.insert(QStringLiteral("0"), QStringLiteral("/tmp/a.txt"));
|
||||
localPaths.insert(QStringLiteral("1"), QStringLiteral("/tmp/b.txt"));
|
||||
|
||||
QString sessionId = mgr.createSendSession(target, files, localPaths);
|
||||
mgr.startSendSession(sessionId);
|
||||
|
||||
QSignalSpy spy(&mgr, &LocalSend::SessionManager::sendSessionCompleted);
|
||||
|
||||
mgr.completeSendFile(sessionId, QStringLiteral("0"));
|
||||
QCOMPARE(spy.count(), 0);
|
||||
|
||||
mgr.completeSendFile(sessionId, QStringLiteral("1"));
|
||||
QCOMPARE(spy.count(), 1);
|
||||
QVERIFY(!mgr.hasSendSession(sessionId));
|
||||
}
|
||||
|
||||
void TestSessionManager::testCancelSendSession()
|
||||
{
|
||||
LocalSend::SessionManager mgr;
|
||||
|
||||
LocalSend::Device target;
|
||||
QMap<QString, LocalSend::FileDto> files;
|
||||
LocalSend::FileDto f1;
|
||||
f1.id = QStringLiteral("0");
|
||||
f1.fileName = QStringLiteral("a.txt");
|
||||
f1.size = 100;
|
||||
files.insert(QStringLiteral("0"), f1);
|
||||
|
||||
QMap<QString, QString> localPaths;
|
||||
localPaths.insert(QStringLiteral("0"), QStringLiteral("/tmp/a.txt"));
|
||||
|
||||
QString sessionId = mgr.createSendSession(target, files, localPaths);
|
||||
mgr.startSendSession(sessionId);
|
||||
|
||||
QSignalSpy spy(&mgr, &LocalSend::SessionManager::sendSessionCanceled);
|
||||
mgr.cancelSendSession(sessionId);
|
||||
|
||||
QCOMPARE(spy.count(), 1);
|
||||
QVERIFY(!mgr.hasSendSession(sessionId));
|
||||
}
|
||||
|
||||
void TestSessionManager::testHasSessionQueries()
|
||||
{
|
||||
LocalSend::SessionManager mgr;
|
||||
|
||||
QVERIFY(!mgr.hasReceiveSession(QStringLiteral("nonexistent")));
|
||||
QVERIFY(!mgr.hasSendSession(QStringLiteral("nonexistent")));
|
||||
|
||||
LocalSend::Device sender;
|
||||
QMap<QString, LocalSend::FileDto> files;
|
||||
LocalSend::FileDto f1;
|
||||
f1.id = QStringLiteral("0");
|
||||
f1.fileName = QStringLiteral("a.txt");
|
||||
f1.size = 100;
|
||||
files.insert(QStringLiteral("0"), f1);
|
||||
|
||||
QString recvSessionId = mgr.createReceiveSession(sender, files);
|
||||
QVERIFY(mgr.hasReceiveSession(recvSessionId));
|
||||
|
||||
QMap<QString, QString> localPaths;
|
||||
localPaths.insert(QStringLiteral("0"), QStringLiteral("/tmp/a.txt"));
|
||||
QString sendSessionId = mgr.createSendSession(sender, files, localPaths);
|
||||
QVERIFY(mgr.hasSendSession(sendSessionId));
|
||||
|
||||
LocalSend::ReceiveSession emptyRecv = mgr.receiveSession(QStringLiteral("nope"));
|
||||
QVERIFY(emptyRecv.sessionId.isEmpty());
|
||||
|
||||
LocalSend::SendSession emptySend = mgr.sendSession(QStringLiteral("nope"));
|
||||
QVERIFY(emptySend.sessionId.isEmpty());
|
||||
}
|
||||
|
||||
void TestSessionManager::testGenerateToken()
|
||||
{
|
||||
LocalSend::SessionManager mgr;
|
||||
|
||||
QString token1 = mgr.generateToken();
|
||||
QString token2 = mgr.generateToken();
|
||||
|
||||
QVERIFY(!token1.isEmpty());
|
||||
QVERIFY(!token2.isEmpty());
|
||||
QVERIFY(token1 != token2);
|
||||
}
|
||||
|
||||
void TestSessionManager::testDeclineRemovesSession()
|
||||
{
|
||||
LocalSend::SessionManager mgr;
|
||||
|
||||
LocalSend::Device sender;
|
||||
QMap<QString, LocalSend::FileDto> files;
|
||||
LocalSend::FileDto f1;
|
||||
f1.id = QStringLiteral("0");
|
||||
f1.fileName = QStringLiteral("a.txt");
|
||||
f1.size = 100;
|
||||
files.insert(QStringLiteral("0"), f1);
|
||||
|
||||
QString sessionId = mgr.createReceiveSession(sender, files);
|
||||
QVERIFY(mgr.hasReceiveSession(sessionId));
|
||||
|
||||
mgr.declineReceiveSession(sessionId);
|
||||
QVERIFY(!mgr.hasReceiveSession(sessionId));
|
||||
}
|
||||
|
||||
void TestSessionManager::testSetSendSessionTokensRekeys()
|
||||
{
|
||||
LocalSend::SessionManager mgr;
|
||||
|
||||
LocalSend::Device target;
|
||||
QMap<QString, LocalSend::FileDto> files;
|
||||
LocalSend::FileDto f1;
|
||||
f1.id = QStringLiteral("0");
|
||||
f1.fileName = QStringLiteral("a.txt");
|
||||
f1.size = 100;
|
||||
files.insert(QStringLiteral("0"), f1);
|
||||
|
||||
LocalSend::FileDto f2;
|
||||
f2.id = QStringLiteral("1");
|
||||
f2.fileName = QStringLiteral("b.txt");
|
||||
f2.size = 200;
|
||||
files.insert(QStringLiteral("1"), f2);
|
||||
|
||||
QMap<QString, QString> localPaths;
|
||||
localPaths.insert(QStringLiteral("0"), QStringLiteral("/tmp/a.txt"));
|
||||
localPaths.insert(QStringLiteral("1"), QStringLiteral("/tmp/b.txt"));
|
||||
|
||||
QString origId = mgr.createSendSession(target, files, localPaths);
|
||||
|
||||
QString newId = QStringLiteral("response-session-id");
|
||||
QMap<QString, QString> tokens;
|
||||
tokens.insert(QStringLiteral("0"), QStringLiteral("tok0"));
|
||||
tokens.insert(QStringLiteral("1"), QStringLiteral("tok1"));
|
||||
|
||||
mgr.setSendSessionTokens(origId, newId, tokens);
|
||||
|
||||
QVERIFY(!mgr.hasSendSession(origId));
|
||||
QVERIFY(mgr.hasSendSession(newId));
|
||||
|
||||
LocalSend::SendSession session = mgr.sendSession(newId);
|
||||
QCOMPARE(session.sessionId, newId);
|
||||
QCOMPARE(session.files[QStringLiteral("0")].token, QStringLiteral("tok0"));
|
||||
QCOMPARE(session.files[QStringLiteral("1")].token, QStringLiteral("tok1"));
|
||||
QCOMPARE(session.files[QStringLiteral("0")].localPath, QStringLiteral("/tmp/a.txt"));
|
||||
QCOMPARE(session.files[QStringLiteral("1")].localPath, QStringLiteral("/tmp/b.txt"));
|
||||
}
|
||||
|
||||
QTEST_MAIN(TestSessionManager)
|
||||
#include "TestSessionManager.moc"
|
||||
Reference in New Issue
Block a user