From 891e580b7ceddf00cec7041fb2849076f7ef0eb8 Mon Sep 17 00:00:00 2001 From: evgeny Date: Tue, 3 Nov 2026 00:45:57 +0100 Subject: [PATCH] Verify deleted-device exclusion in owner view and capture pairing guidance --- tools/chatgui/tests/test_member_detail.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tools/chatgui/tests/test_member_detail.cpp b/tools/chatgui/tests/test_member_detail.cpp index 7a954dc80..d64181444 100644 --- a/tools/chatgui/tests/test_member_detail.cpp +++ b/tools/chatgui/tests/test_member_detail.cpp @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include @@ -194,6 +195,7 @@ private slots: auto* dialog = window.findChild("devgroupIncomingPin"); QVERIFY(dialog && dialog->isVisible()); QVERIFY(dialog->labelText().contains("personal device subgroup")); QVERIFY(dialog->labelText().contains("simply close this window")); + QVERIFY(dialog->grab().save(QDir::tempPath() + "/device-link-pin-help.png")); auto* box = dialog->findChild(); QVERIFY(box); QVERIFY(!box->button(QDialogButtonBox::Ok)->isEnabled()); dialog->setTextValue("1234"); QVERIFY(box->button(QDialogButtonBox::Ok)->isEnabled()); dialog->accept(); QCOMPARE(devgroupRequests.back().action, CHAT_DEVGROUP_ACCEPT); @@ -233,6 +235,10 @@ private slots: if (scenario == "grouped" || scenario == "unnamed-group") member[164] = 42; if (scenario == "grouped") memcpy(member.data() + 196, "Devices", 8); fill(panel, "123", member); + if (scenario == "deleted") { // Владелец канала видит удалённую строку, но связывать её также нельзя. + panel.model()->setChannel("123", true); + panel.onMemberList("123", 1, reinterpret_cast(member.constData()), member.size()); + } auto* view = panel.findChild(); auto* grouped = qobject_cast(view->model()); QVERIFY(grouped); if (grouped->index(0, 0).data(GroupedMemberModel::GroupHeaderRole).toBool()) QVERIFY(grouped->toggle(0)); @@ -264,6 +270,7 @@ private slots: auto* dialog = panel.findChild("linkMyDeviceConfirmation"); QVERIFY(dialog); const auto close = qScopeGuard([dialog] { dialog->reject(); }); QVERIFY(devgroupRequests.empty()); QVERIFY(dialog->text().contains("shared keys")); + if (scenario == "cancel") QVERIFY(dialog->grab().save(QDir::tempPath() + "/device-link-confirmation.png")); QPushButton* link = nullptr; for (auto* button : dialog->buttons()) if (button->text() == "Start linking") link = qobject_cast(button); QVERIFY(link && link->isEnabled());