[network/neochat] /: Add Test
Tobias Fella <[email protected]>
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
Git commit a21d8c5860b5965f18d40d9bd196824f3447ce41 by Tobias Fella.
Committed on 08/08/2026 at 20:38.
Pushed by tfella into branch 'master'.
Add Test
M +15 -1 autotests/chatbarmessagecontentmodeltest.cpp
M +2 -2 src/messagecontent/models/chatbarmessagecontentmodel.cpp
M +3 -3 src/messagecontent/models/chatbarmessagecontentmodel.h
https://invent.kde.org/network/neochat/-/commit/a21d8c5860b5965f18d40d9bd196824f3447ce41
diff --git a/autotests/chatbarmessagecontentmodeltest.cpp b/autotests/chatbarmessagecontentmodeltest.cpp
index dd8acab47..5d5ef3337 100644
--- a/autotests/chatbarmessagecontentmodeltest.cpp
+++ b/autotests/chatbarmessagecontentmodeltest.cpp
@@ -31,6 +31,7 @@ private Q_SLOTS:
void missingEvent();
void addLocationTest();
+ void addAttachmentToReply();
};
void ChatBarMessageContentModelTest::checkEmptyChatbar(const ChatBarMessageContentModel &model)
@@ -43,7 +44,7 @@ void ChatBarMessageContentModelTest::checkEmptyChatbar(const ChatBarMessageConte
void ChatBarMessageContentModelTest::initTestCase()
{
connection = std::make_unique<NeoChatConnection>();
- room = std::make_unique<TestUtils::TestRoom>(connection.get(), u"#firstRoom:kde.org"_s);
+ room = std::make_unique<TestUtils::TestRoom>(connection.get(), u"#firstRoom:kde.org"_s, u"test-messageventmodel-sync.json"_s);
}
void ChatBarMessageContentModelTest::missingEvent()
@@ -73,6 +74,19 @@ void ChatBarMessageContentModelTest::addLocationTest()
checkEmptyChatbar(model);
}
+void ChatBarMessageContentModelTest::addAttachmentToReply()
+{
+ auto model = ChatBarMessageContentModel(this);
+ model.setType(ChatBarType::Room);
+ model.setRoom(room.get());
+ QCOMPARE(model.rowCount(), 1);
+ QVERIFY(room->timelineSize() > 0);
+ model.addReply(room->messageEvents()[0].event()->id());
+ QCOMPARE(model.rowCount(), 2);
+ model.addAttachment(QUrl(QString::fromUtf8(__FILE__)));
+ QCOMPARE(model.rowCount(), 3);
+}
+
QTEST_MAIN(ChatBarMessageContentModelTest)
#include "chatbarmessagecontentmodeltest.moc"
diff --git a/src/messagecontent/models/chatbarmessagecontentmodel.cpp b/src/messagecontent/models/chatbarmessagecontentmodel.cpp
index f904e289f..cce9bd71e 100644
--- a/src/messagecontent/models/chatbarmessagecontentmodel.cpp
+++ b/src/messagecontent/models/chatbarmessagecontentmodel.cpp
@@ -457,7 +457,7 @@ void ChatBarMessageContentModel::addAttachment(const QUrl &path)
}
}
- clearModel(KeepReply);
+ clearModel(ClearModelOptions::KeepReply);
initializeModel(plainText);
auto it = insertComponent(m_components.front()->type() == Blocks::Reply ? 1 : 0, blockForFile(path));
@@ -889,7 +889,7 @@ void ChatBarMessageContentModel::clearModel(ClearModelOptions options)
}
}
std::erase_if(m_components, [options](const auto &component) {
- return component->type() != Blocks::Reply || !(options & KeepReply);
+ return component->type() != Blocks::Reply || options == ClearModelOptions::RemoveReply;
});
endResetModel();
diff --git a/src/messagecontent/models/chatbarmessagecontentmodel.h b/src/messagecontent/models/chatbarmessagecontentmodel.h
index 22199b242..cc08838f2 100644
--- a/src/messagecontent/models/chatbarmessagecontentmodel.h
+++ b/src/messagecontent/models/chatbarmessagecontentmodel.h
@@ -89,8 +89,8 @@ class ChatBarMessageContentModel : public MessageContentModel
Q_PROPERTY(bool hasAnyContent READ hasAnyContent NOTIFY contentChanged)
public:
- enum ClearModelOptions {
- None = 0,
+ enum class ClearModelOptions {
+ RemoveReply = 0,
KeepReply = 1,
};
Q_ENUM(ClearModelOptions);
@@ -182,5 +182,5 @@ private:
bool m_sendMessageWithEnter = true;
- void clearModel(ClearModelOptions options = None);
+ void clearModel(ClearModelOptions options = ClearModelOptions::RemoveReply);
};