From a54d734326256472da0946f27362277e73069978 Mon Sep 17 00:00:00 2001
From: Nicolas Werner <nicolas.werner@hotmail.de>
Date: Thu, 12 Dec 2019 18:20:30 +0100
Subject: [PATCH] fix trivial bug in unimplemented knock push rule

---
 lib/structs/events/join_rules.cpp |  2 +-
 tests/events.cpp                  | 48 +++++++++++++++++++++++++++++++
 2 files changed, 49 insertions(+), 1 deletion(-)

diff --git a/lib/structs/events/join_rules.cpp b/lib/structs/events/join_rules.cpp
index 427c674b9..6b444b9fd 100644
--- a/lib/structs/events/join_rules.cpp
+++ b/lib/structs/events/join_rules.cpp
@@ -33,7 +33,7 @@ stringToJoinRule(const std::string &rule)
                 return JoinRule::Public;
         else if (rule == "invite")
                 return JoinRule::Invite;
-        else if (rule == "Knock")
+        else if (rule == "knock")
                 return JoinRule::Knock;
 
         return JoinRule::Private;
diff --git a/tests/events.cpp b/tests/events.cpp
index 86ca1ced4..62de2d710 100644
--- a/tests/events.cpp
+++ b/tests/events.cpp
@@ -332,6 +332,54 @@ TEST(StateEvents, JoinRules)
         EXPECT_EQ(event.content.join_rule, ns::state::JoinRule::Invite);
 
         EXPECT_EQ(data, json(event));
+
+        data = R"({
+          "origin_server_ts": 1506761924018,
+          "sender": "@mujx:matrix.org",
+          "event_id": "$15067619241414401ASocy:matrix.org",
+          "unsigned": {
+            "age": 3715756273
+	  },
+          "state_key": "",
+          "content": {
+            "join_rule": "public"
+	  },
+          "type": "m.room.join_rules"
+        })"_json;
+
+	EXPECT_EQ(data, json(ns::StateEvent<ns::state::JoinRules>(data)));
+
+        data = R"({
+          "origin_server_ts": 1506761924018,
+          "sender": "@mujx:matrix.org",
+          "event_id": "$15067619241414401ASocy:matrix.org",
+          "unsigned": {
+            "age": 3715756273
+	  },
+          "state_key": "",
+          "content": {
+            "join_rule": "knock"
+	  },
+          "type": "m.room.join_rules"
+        })"_json;
+
+	EXPECT_EQ(data, json(ns::StateEvent<ns::state::JoinRules>(data)));
+
+        data = R"({
+          "origin_server_ts": 1506761924018,
+          "sender": "@mujx:matrix.org",
+          "event_id": "$15067619241414401ASocy:matrix.org",
+          "unsigned": {
+            "age": 3715756273
+	  },
+          "state_key": "",
+          "content": {
+            "join_rule": "private"
+	  },
+          "type": "m.room.join_rules"
+        })"_json;
+
+	EXPECT_EQ(data, json(ns::StateEvent<ns::state::JoinRules>(data)));
 }
 
 TEST(StateEvents, Member)
-- 
GitLab