2026-10-12 13:14:08 +03:00
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
|
|
// Помощники для тестов сетевых сервисов.
|
|
|
|
|
|
|
|
|
|
|
|
#include "fakeinternet.h"
|
|
|
|
|
|
|
|
|
|
|
|
#include <QString>
|
|
|
|
|
|
#include <QtTest/QTest>
|
|
|
|
|
|
|
|
|
|
|
|
// В initTestCase(): поднять FakeInternet или пропустить весь тест-класс.
|
2026-11-01 21:07:03 +03:00
|
|
|
|
// С BILAUNCHER_REQUIRE_FAKE_INTERNET=1 (так в CI на всех ОС) недоступность —
|
2026-10-12 13:14:08 +03:00
|
|
|
|
// ошибка, а не пропуск: иначе сломанный перехват тихо выключил бы все сетевые тесты.
|
|
|
|
|
|
#define BILAUNCHER_START_FAKE_INTERNET(net) \
|
|
|
|
|
|
do { \
|
|
|
|
|
|
QString startError_; \
|
|
|
|
|
|
if (!(net).start(&startError_)) { \
|
|
|
|
|
|
const QString message_ = QStringLiteral("FakeInternet недоступен: ") + startError_; \
|
|
|
|
|
|
if (qEnvironmentVariableIntValue("BILAUNCHER_REQUIRE_FAKE_INTERNET")) \
|
|
|
|
|
|
QFAIL(qPrintable(message_)); \
|
|
|
|
|
|
QSKIP(qPrintable(message_)); \
|
|
|
|
|
|
} \
|
|
|
|
|
|
} while (false)
|
|
|
|
|
|
|
|
|
|
|
|
// Результат колбэка вида (bool ok, QString warning).
|
|
|
|
|
|
struct CallResult
|
|
|
|
|
|
{
|
|
|
|
|
|
int calls = 0;
|
|
|
|
|
|
bool ok = false;
|
|
|
|
|
|
QString warning;
|
|
|
|
|
|
|
|
|
|
|
|
auto callback()
|
|
|
|
|
|
{
|
|
|
|
|
|
return [this](bool okValue, const QString &warningValue) {
|
|
|
|
|
|
++calls;
|
|
|
|
|
|
ok = okValue;
|
|
|
|
|
|
warning = warningValue;
|
|
|
|
|
|
};
|
|
|
|
|
|
}
|
|
|
|
|
|
};
|