Browse Source

Check desktop address rendering with compact NAT profiles

master
evgeny 6 days ago
parent
commit
a97589e4a6
  1. 2
      tools/chatgui/CMakeLists.txt
  2. 21
      tools/chatgui/tests/test_channel_replies.cpp

2
tools/chatgui/CMakeLists.txt

@ -354,7 +354,7 @@ target_link_libraries(test_file_drop PRIVATE ${QT_LIBS} ${QT_TEST_LIB} rlottie::
add_test(NAME test_file_drop COMMAND test_file_drop)
set_tests_properties(test_file_drop PROPERTIES ENVIRONMENT "QT_QPA_PLATFORM=offscreen" TIMEOUT 30)
add_executable(test_channel_replies tests/test_channel_replies.cpp db/db_manager.cpp)
add_executable(test_channel_replies tests/test_channel_replies.cpp db/db_manager.cpp src/nodespage.cpp)
target_include_directories(test_channel_replies PRIVATE ${UTUN_INCLUDE_DIRS})
target_link_libraries(test_channel_replies PRIVATE ${QT_LIBS} ${QT_TEST_LIB} utun utun_voice pthread ${CMAKE_DL_LIBS})
add_test(NAME test_channel_replies COMMAND test_channel_replies)

21
tools/chatgui/tests/test_channel_replies.cpp

@ -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");

Loading…
Cancel
Save