~singpolyma/biboumi

1320dc6db48ebde28f5c0791cfc87cfe392d106e — louiz’ 4 years ago 0de282a
Don’t reflect an empty id if it was not included

Instead, generate a uuid for that message
2 files changed, 8 insertions(+), 1 deletions(-)

M src/bridge/bridge.cpp
M tests/end_to_end/__main__.py
M src/bridge/bridge.cpp => src/bridge/bridge.cpp +1 -1
@@ 233,7 233,7 @@ void Bridge::send_channel_message(const Iid& iid, const std::string& body, std::
        uuid = Database::store_muc_message(this->get_bare_jid(), iid.get_local(), iid.get_server(), std::chrono::system_clock::now(),
                                    std::get<0>(xmpp_body), irc->get_own_nick());
#endif
      if (!first)
      if (!first || id.empty())
        id = utils::gen_uuid();
      for (const auto& resource: this->resources_in_chan[iid.to_tuple()])
        this->xmpp.send_muc_message(std::to_string(iid), irc->get_own_nick(), this->make_xmpp_body(line),

M tests/end_to_end/__main__.py => tests/end_to_end/__main__.py +7 -0
@@ 1227,6 1227,13 @@ if __name__ == '__main__':
                     partial(expect_stanza,
                         "/message[@from='#foo%{irc_server_one}/{nick_one}'][@id][@to='{jid_one}/{resource_one}'][@type='groupchat']/body[text()='trois']"),

                     # Send a simple message, with no id
                     partial(send_stanza, "<message from='{jid_one}/{resource_one}' to='#foo%{irc_server_one}' type='groupchat'><body>hello</body></message>"),

                     # Expect a non-empty id as a result (should be a uuid)
                     partial(expect_stanza,
                         "!/message[@id='']/body[text()='hello']"),

                     # Second user joins
                     partial(send_stanza,
                     "<presence from='{jid_two}/{resource_one}' to='#foo%{irc_server_one}/{nick_two}' />"),