[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);
 };
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.