Test desktop composer edit confirmation cancel failure and channel changes

This commit is contained in:
evgeny committed 2026-10-26 22:47:58 +01:00
1 parent 48bdb85ff9
commit 5b6c96d3d8
1 file changed
+24
+24
View File
@@ -181,6 +181,30 @@ private slots:
QVERIFY(!encrypt->isVisible()); QVERIFY(!encrypt->isChecked());
}
void editDraftSaveCancelAndFailure() {
InputBar bar(nullptr, nullptr); bar.resize(600, 160); bar.show(); bar.setRecordingContext("/tmp", "123");
auto* editor = bar.findChild<QTextEdit*>(); QVERIFY(editor);
const QByteArray id(32, 'm'), reply(32, 'r');
QSignalSpy edits(&bar, &InputBar::saveEdit), sends(&bar, &InputBar::sendMessage), errors(&bar, &InputBar::attachmentRejected);
bar.setReply(reply, "Alice", "original"); editor->setPlainText("draft");
bar.editMessage(id, 2, "old"); QCOMPARE(editor->toPlainText(), QString("old"));
QTest::keyClick(editor, Qt::Key_Escape); QCOMPARE(editor->toPlainText(), QString("draft"));
bar.editMessage(id, 2, "old"); editor->setPlainText("new"); QTest::keyClick(editor, Qt::Key_Return);
QCOMPARE(edits.size(), 1); QVERIFY(sends.isEmpty());
QCOMPARE(edits[0][0].toString(), QString("123")); QCOMPARE(edits[0][1].toByteArray(), id);
QCOMPARE(edits[0][2].toULongLong(), quint64(2)); QCOMPARE(edits[0][3].toString(), QString("new"));
QVERIFY(editor->isReadOnly()); const auto request = edits[0][4].toULongLong(); QVERIFY(request);
QTest::keyClick(editor, Qt::Key_Return); QCOMPARE(edits.size(), 1);
bar.submissionResult(request, false); QCOMPARE(errors.size(), 1); QVERIFY(!editor->isReadOnly());
QCOMPARE(editor->toPlainText(), QString("new")); QTest::keyClick(editor, Qt::Key_Return); QCOMPARE(edits.size(), 2);
bar.submissionResult(edits[1][4].toULongLong(), true); QCOMPARE(editor->toPlainText(), QString("draft"));
QTest::keyClick(editor, Qt::Key_Return); QCOMPARE(sends.size(), 1); QCOMPARE(sends[0][1].toByteArray(), reply);
bar.submissionResult(sends[0][2].toULongLong(), true);
editor->setPlainText("another draft"); bar.editMessage(id, 3, "edit"); QTest::keyClick(editor, Qt::Key_Return);
bar.setRecordingContext("/tmp", "456"); editor->setPlainText("new channel draft");
bar.submissionResult(edits.last()[4].toULongLong(), true); QCOMPARE(editor->toPlainText(), QString("new channel draft"));
}
void replyDraftAndLateResults() {
InputBar bar(nullptr, nullptr); bar.resize(600, 160); bar.show(); bar.setRecordingContext("/tmp", "123");
auto* editor = bar.findChild<QTextEdit*>(); QVERIFY(editor);