Verify deleted-device exclusion in owner view and capture pairing guidance

This commit is contained in:
evgeny committed 2026-11-03 00:45:57 +01:00
1 parent eb6ec1f2ca
commit 891e580b7c
1 file changed
+7
@@ -15,6 +15,7 @@
#include <QAbstractItemModelTester>
#include <QMenu>
#include <QMessageBox>
#include <QDir>
#include <QPainter>
#include <QMouseEvent>
#include <QScopeGuard>
@@ -194,6 +195,7 @@ private slots:
auto* dialog = window.findChild<QInputDialog*>("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<QDialogButtonBox*>(); 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<const uint8_t*>(member.constData()), member.size());
}
auto* view = panel.findChild<QListView*>();
auto* grouped = qobject_cast<GroupedMemberModel*>(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<QMessageBox*>("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<QPushButton*>(button);
QVERIFY(link && link->isEnabled());