|
|
|
|
@ -1,5 +1,6 @@
|
|
|
|
|
/* Настоящее ядро и SQLite: подписанные ответы, сохранение, медиа и окно старой истории. */ |
|
|
|
|
#include "../db/db_manager.h" |
|
|
|
|
#include "../src/nodespage.h" |
|
|
|
|
#include <QtTest> |
|
|
|
|
#include <QTemporaryDir> |
|
|
|
|
extern "C" { |
|
|
|
|
@ -8,6 +9,8 @@ extern "C" {
|
|
|
|
|
#include "chat/chat_event.h" |
|
|
|
|
#include "chat/db_sync.h" |
|
|
|
|
#include "media_async/attachment_send.h" |
|
|
|
|
#include "routing_layer/topo_node_sqlite.h" |
|
|
|
|
#include "config_parser.h" |
|
|
|
|
#include "mem.h" |
|
|
|
|
#include "debug_config.h" |
|
|
|
|
} |
|
|
|
|
@ -74,6 +77,24 @@ private slots:
|
|
|
|
|
reader.setDb(nullptr); QCOMPARE(sqlite3_close(reopened), SQLITE_OK); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void addressPresentation() { |
|
|
|
|
TOPO_SOCKMETA4 meta4{}; meta4.id = 5; meta4.config_type = CFG_SERVER_TYPE_PUBLIC; |
|
|
|
|
TOPO_SOCKMETA6 meta6{}; meta6.id = 6; meta6.config_type = CFG_SERVER_TYPE_PUBLIC; |
|
|
|
|
meta6.address_profile = {ADDRESS_MAP_UNCHANGED, ADDRESS_IN_OPEN, ADDRESS_SOURCE_ETCP}; |
|
|
|
|
TOPO_ADDR4 addr4{}; memcpy(addr4.addr, (uint8_t[]){194,63,142,140}, 4); |
|
|
|
|
addr4.port = 1333; addr4.socket_id = 5; addr4.protocol = TOPO_PROTO_UDP; |
|
|
|
|
TOPO_ADDR6 addr6{}; addr6.addr[0] = 0x2a; addr6.addr[1] = 0x04; addr6.addr[2] = 0x52; addr6.addr[15] = 0xf; |
|
|
|
|
addr6.port = 443; addr6.socket_id = 6; addr6.protocol = TOPO_PROTO_TCP | TOPO_PROTO_REALITY; |
|
|
|
|
TOPO_NODE node{}; node.node_id = inst->node_id; |
|
|
|
|
node.v4_sock_meta = &meta4; node.v4_addrs = &addr4; node.v6_sock_meta = &meta6; node.v6_addrs = &addr6; |
|
|
|
|
QCOMPARE(topo_node_sqlite_addrs_put(inst->topo_sqlite_db, inst->node_id, &node), 0); |
|
|
|
|
NodesPage page(&db); page.refreshNodes(); |
|
|
|
|
const auto* dump = page.findChild<QPlainTextEdit*>(); QVERIFY(dump); |
|
|
|
|
const QString text = dump->toPlainText(); |
|
|
|
|
QVERIFY2(text.contains("194.63.142.140:1333 UDP UNKNOWN"), qPrintable(text)); |
|
|
|
|
QVERIFY2(text.contains("2a04:5200:0:0:0:0:0:f:443 TCP+REALITY DIRECT"), qPrintable(text)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void unavailableAndForeignReferencesFail() { |
|
|
|
|
QVERIFY(send("missing", QByteArray(32, 'z')).isEmpty()); |
|
|
|
|
const QString saved = channel; chat_core_create_channel_auto(inst, "Other channel"); |
|
|
|
|
|