diff options
-rw-r--r-- | src/irc/iid.cpp | 3 | ||||
-rw-r--r-- | tests/iid.cpp | 6 |
2 files changed, 8 insertions, 1 deletions
diff --git a/src/irc/iid.cpp b/src/irc/iid.cpp index a63a1c3..131c18c 100644 --- a/src/irc/iid.cpp +++ b/src/irc/iid.cpp @@ -35,7 +35,8 @@ Iid::Iid(const std::string& iid, const Bridge *bridge) void Iid::set_type(const std::set<char>& chantypes) { - if (this->local.empty() && this->server.empty()) + if (this->local.empty() && ( + !Config::get("fixed_irc_server", "").empty() || this->server.empty())) this->type = Iid::Type::None; if (this->local.empty()) return; diff --git a/tests/iid.cpp b/tests/iid.cpp index 3da0396..63b2ba3 100644 --- a/tests/iid.cpp +++ b/tests/iid.cpp @@ -125,4 +125,10 @@ TEST_CASE("Iid creation in fixed_server mode") CHECK(iid6.get_local() == "##channel%"); CHECK(iid6.get_server() == "fixed.example.com"); CHECK(iid6.type == Iid::Type::Channel); + + Iid iid7("", chantypes); + CHECK(std::to_string(iid7) == ""); + CHECK(iid7.get_local() == ""); + CHECK(iid7.get_server() == "fixed.example.com"); + CHECK(iid7.type == Iid::Type::None); } |