From 24dd76ee0bca1a593781d366a41017f5b1d9ec07 Mon Sep 17 00:00:00 2001 From: Konstantinos Sideris Date: Mon, 6 Nov 2017 22:14:16 +0200 Subject: [PATCH] Parse unsigned key --- include/events/Event.h | 26 +++++ src/events/Event.cc | 26 +++++ tests/events.cc | 246 +++++++++++++++++++++-------------------- 3 files changed, 181 insertions(+), 117 deletions(-) diff --git a/include/events/Event.h b/include/events/Event.h index 84c21907..f6620a2c 100644 --- a/include/events/Event.h +++ b/include/events/Event.h @@ -60,6 +60,24 @@ isMessageEvent(EventType type); bool isStateEvent(EventType type); +class UnsignedData + : public Deserializable + , public Serializable +{ +public: + double age() const { return age_; } + QString transactionId() const { return transaction_id_; } + + bool isEmpty() const { return age_ <= 0 && transaction_id_.isEmpty(); } + + void deserialize(const QJsonValue &data) override; + QJsonObject serialize() const override; + +private: + double age_ = 0; + QString transaction_id_; +}; + template class Event : public Deserializable @@ -68,6 +86,7 @@ class Event public: Content content() const; EventType eventType() const; + UnsignedData unsignedData() const { return unsignedData_; } void deserialize(const QJsonValue &data) override; QJsonObject serialize() const override; @@ -75,6 +94,7 @@ public: private: Content content_; EventType type_; + UnsignedData unsignedData_; }; template @@ -102,6 +122,9 @@ Event::deserialize(const QJsonValue &data) content_.deserialize(object.value("content")); type_ = extractEventType(object); + + if (object.contains("unsigned")) + unsignedData_.deserialize(object.value("unsigned")); } template @@ -151,6 +174,9 @@ Event::serialize() const object["content"] = content_.serialize(); + if (!unsignedData_.isEmpty()) + object["unsigned"] = unsignedData_.serialize(); + return object; } } // namespace events diff --git a/src/events/Event.cc b/src/events/Event.cc index 1b03e1e6..7e5bd1db 100644 --- a/src/events/Event.cc +++ b/src/events/Event.cc @@ -78,3 +78,29 @@ matrix::events::isMessageEvent(EventType type) { return type == EventType::RoomMessage; } + +void +matrix::events::UnsignedData::deserialize(const QJsonValue &data) +{ + if (!data.isObject()) + throw DeserializationException("UnsignedData is not a JSON object"); + + auto object = data.toObject(); + + transaction_id_ = object.value("transaction_id").toString(); + age_ = object.value("age").toDouble(); +} + +QJsonObject +matrix::events::UnsignedData::serialize() const +{ + QJsonObject object; + + if (!transaction_id_.isEmpty()) + object["transaction_id"] = transaction_id_; + + if (age_ > 0) + object["age"] = age_; + + return object; +} diff --git a/tests/events.cc b/tests/events.cc index ee1f9560..a4f6fedf 100644 --- a/tests/events.cc +++ b/tests/events.cc @@ -22,8 +22,8 @@ using namespace matrix::events; TEST(BaseEvent, Deserialization) { // NameEventContent - auto data = QJsonObject{ { "content", QJsonObject{ { "name", "Room Name" } } }, - { "type", "m.room.name" } }; + auto data = + QJsonObject{{"content", QJsonObject{{"name", "Room Name"}}}, {"type", "m.room.name"}}; Event name_event; name_event.deserialize(data); @@ -31,47 +31,57 @@ TEST(BaseEvent, Deserialization) EXPECT_EQ(name_event.serialize(), data); // TopicEventContent - data = QJsonObject{ { "content", QJsonObject{ { "topic", "Room Topic" } } }, - { "type", "m.room.topic" } }; + data = QJsonObject{{"content", QJsonObject{{"topic", "Room Topic"}}}, + {"unsigned", QJsonObject{{"age", 22}, {"transaction_id", "randomid"}}}, + {"type", "m.room.topic"}}; Event topic_event; topic_event.deserialize(data); EXPECT_EQ(topic_event.content().topic(), "Room Topic"); + EXPECT_EQ(topic_event.unsignedData().age(), 22); + EXPECT_EQ(topic_event.unsignedData().transactionId(), "randomid"); EXPECT_EQ(topic_event.serialize(), data); // AvatarEventContent - data = QJsonObject{ { "content", QJsonObject{ { "url", "https://matrix.org" } } }, - { "type", "m.room.avatar" } }; + data = QJsonObject{ + {"content", QJsonObject{{"url", "https://matrix.org"}}}, + {"unsigned", QJsonObject{{"age", 1343434343}, {"transaction_id", "m33434.33"}}}, + {"type", "m.room.avatar"}}; Event avatar_event; avatar_event.deserialize(data); EXPECT_EQ(avatar_event.content().url().toString(), "https://matrix.org"); + EXPECT_EQ(avatar_event.unsignedData().age(), 1343434343); + EXPECT_EQ(avatar_event.unsignedData().transactionId(), "m33434.33"); EXPECT_EQ(avatar_event.serialize(), data); // AliasesEventContent - data = - QJsonObject{ { "content", - QJsonObject{ - { "aliases", QJsonArray{ "#test:matrix.org", "#test2:matrix.org" } } } }, - { "type", "m.room.aliases" } }; + data = QJsonObject{ + {"content", + QJsonObject{{"aliases", QJsonArray{"#test:matrix.org", "#test2:matrix.org"}}}}, + {"unsigned", QJsonObject{{"transaction_id", "m33434.33"}}}, + {"type", "m.room.aliases"}}; Event aliases_event; aliases_event.deserialize(data); EXPECT_EQ(aliases_event.content().aliases().size(), 2); + EXPECT_EQ(aliases_event.unsignedData().transactionId(), "m33434.33"); EXPECT_EQ(aliases_event.serialize(), data); // CreateEventContent - data = QJsonObject{ { "content", QJsonObject{ { "creator", "@alice:matrix.org" } } }, - { "type", "m.room.create" } }; + data = QJsonObject{{"content", QJsonObject{{"creator", "@alice:matrix.org"}}}, + {"unsigned", QJsonObject{{"age", 2233}}}, + {"type", "m.room.create"}}; Event create_event; create_event.deserialize(data); EXPECT_EQ(create_event.content().creator(), "@alice:matrix.org"); + EXPECT_EQ(create_event.unsignedData().age(), 2233); EXPECT_EQ(create_event.serialize(), data); // JoinRulesEventContent - data = QJsonObject{ { "content", QJsonObject{ { "join_rule", "private" } } }, - { "type", "m.room.join_rules" } }; + data = QJsonObject{{"content", QJsonObject{{"join_rule", "private"}}}, + {"type", "m.room.join_rules"}}; Event join_rules_event; join_rules_event.deserialize(data); @@ -81,27 +91,34 @@ TEST(BaseEvent, Deserialization) TEST(BaseEvent, DeserializationException) { - auto data = QJsonObject{ { "content", QJsonObject{ { "rule", "private" } } }, - { "type", "m.room.join_rules" } }; + auto data = + QJsonObject{{"content", QJsonObject{{"rule", "private"}}}, {"type", "m.room.join_rules"}}; Event event1; ASSERT_THROW(event1.deserialize(data), DeserializationException); - data = QJsonObject{ { "contents", QJsonObject{ { "join_rule", "private" } } }, - { "type", "m.room.join_rules" } }; + data = QJsonObject{{"contents", QJsonObject{{"join_rule", "private"}}}, + {"type", "m.room.join_rules"}}; Event event2; ASSERT_THROW(event2.deserialize(data), DeserializationException); + + data = QJsonObject{{"contents", QJsonObject{{"join_rule", "private"}}}, + {"unsigned", QJsonObject{{"age", "222"}}}, + {"type", "m.room.join_rules"}}; + + Event event3; + ASSERT_THROW(event3.deserialize(data), DeserializationException); } TEST(RoomEvent, Deserialization) { - auto data = QJsonObject{ { "content", QJsonObject{ { "name", "Name" } } }, - { "event_id", "$asdfafdf8af:matrix.org" }, - { "room_id", "!aasdfaeae23r9:matrix.org" }, - { "sender", "@alice:matrix.org" }, - { "origin_server_ts", 1323238293289323LL }, - { "type", "m.room.name" } }; + auto data = QJsonObject{{"content", QJsonObject{{"name", "Name"}}}, + {"event_id", "$asdfafdf8af:matrix.org"}, + {"room_id", "!aasdfaeae23r9:matrix.org"}, + {"sender", "@alice:matrix.org"}, + {"origin_server_ts", 1323238293289323LL}, + {"type", "m.room.name"}}; RoomEvent event; event.deserialize(data); @@ -116,11 +133,11 @@ TEST(RoomEvent, Deserialization) TEST(RoomEvent, DeserializationException) { - auto data = QJsonObject{ { "content", QJsonObject{ { "name", "Name" } } }, - { "event_id", "$asdfafdf8af:matrix.org" }, - { "room_id", "!aasdfaeae23r9:matrix.org" }, - { "origin_server_ts", 1323238293289323LL }, - { "type", "m.room.name" } }; + auto data = QJsonObject{{"content", QJsonObject{{"name", "Name"}}}, + {"event_id", "$asdfafdf8af:matrix.org"}, + {"room_id", "!aasdfaeae23r9:matrix.org"}, + {"origin_server_ts", 1323238293289323LL}, + {"type", "m.room.name"}}; RoomEvent event; @@ -133,14 +150,14 @@ TEST(RoomEvent, DeserializationException) TEST(StateEvent, Deserialization) { - auto data = QJsonObject{ { "content", QJsonObject{ { "name", "Name" } } }, - { "event_id", "$asdfafdf8af:matrix.org" }, - { "state_key", "some_state_key" }, - { "prev_content", QJsonObject{ { "name", "Previous Name" } } }, - { "room_id", "!aasdfaeae23r9:matrix.org" }, - { "sender", "@alice:matrix.org" }, - { "origin_server_ts", 1323238293289323LL }, - { "type", "m.room.name" } }; + auto data = QJsonObject{{"content", QJsonObject{{"name", "Name"}}}, + {"event_id", "$asdfafdf8af:matrix.org"}, + {"state_key", "some_state_key"}, + {"prev_content", QJsonObject{{"name", "Previous Name"}}}, + {"room_id", "!aasdfaeae23r9:matrix.org"}, + {"sender", "@alice:matrix.org"}, + {"origin_server_ts", 1323238293289323LL}, + {"type", "m.room.name"}}; StateEvent event; event.deserialize(data); @@ -157,13 +174,13 @@ TEST(StateEvent, Deserialization) TEST(StateEvent, DeserializationException) { - auto data = QJsonObject{ { "content", QJsonObject{ { "name", "Name" } } }, - { "event_id", "$asdfafdf8af:matrix.org" }, - { "prev_content", QJsonObject{ { "name", "Previous Name" } } }, - { "room_id", "!aasdfaeae23r9:matrix.org" }, - { "sender", "@alice:matrix.org" }, - { "origin_server_ts", 1323238293289323LL }, - { "type", "m.room.name" } }; + auto data = QJsonObject{{"content", QJsonObject{{"name", "Name"}}}, + {"event_id", "$asdfafdf8af:matrix.org"}, + {"prev_content", QJsonObject{{"name", "Previous Name"}}}, + {"room_id", "!aasdfaeae23r9:matrix.org"}, + {"sender", "@alice:matrix.org"}, + {"origin_server_ts", 1323238293289323LL}, + {"type", "m.room.name"}}; StateEvent event; @@ -176,35 +193,30 @@ TEST(StateEvent, DeserializationException) TEST(EventType, Mapping) { - EXPECT_EQ(extractEventType(QJsonObject{ { "type", "m.room.aliases" } }), + EXPECT_EQ(extractEventType(QJsonObject{{"type", "m.room.aliases"}}), EventType::RoomAliases); - EXPECT_EQ(extractEventType(QJsonObject{ { "type", "m.room.avatar" } }), - EventType::RoomAvatar); - EXPECT_EQ(extractEventType(QJsonObject{ { "type", "m.room.canonical_alias" } }), + EXPECT_EQ(extractEventType(QJsonObject{{"type", "m.room.avatar"}}), EventType::RoomAvatar); + EXPECT_EQ(extractEventType(QJsonObject{{"type", "m.room.canonical_alias"}}), EventType::RoomCanonicalAlias); - EXPECT_EQ(extractEventType(QJsonObject{ { "type", "m.room.create" } }), - EventType::RoomCreate); - EXPECT_EQ(extractEventType(QJsonObject{ { "type", "m.room.history_visibility" } }), + EXPECT_EQ(extractEventType(QJsonObject{{"type", "m.room.create"}}), EventType::RoomCreate); + EXPECT_EQ(extractEventType(QJsonObject{{"type", "m.room.history_visibility"}}), EventType::RoomHistoryVisibility); - EXPECT_EQ(extractEventType(QJsonObject{ { "type", "m.room.join_rules" } }), + EXPECT_EQ(extractEventType(QJsonObject{{"type", "m.room.join_rules"}}), EventType::RoomJoinRules); - EXPECT_EQ(extractEventType(QJsonObject{ { "type", "m.room.member" } }), - EventType::RoomMember); - EXPECT_EQ(extractEventType(QJsonObject{ { "type", "m.room.message" } }), + EXPECT_EQ(extractEventType(QJsonObject{{"type", "m.room.member"}}), EventType::RoomMember); + EXPECT_EQ(extractEventType(QJsonObject{{"type", "m.room.message"}}), EventType::RoomMessage); - EXPECT_EQ(extractEventType(QJsonObject{ { "type", "m.room.name" } }), EventType::RoomName); - EXPECT_EQ(extractEventType(QJsonObject{ { "type", "m.room.power_levels" } }), + EXPECT_EQ(extractEventType(QJsonObject{{"type", "m.room.name"}}), EventType::RoomName); + EXPECT_EQ(extractEventType(QJsonObject{{"type", "m.room.power_levels"}}), EventType::RoomPowerLevels); - EXPECT_EQ(extractEventType(QJsonObject{ { "type", "m.room.topic" } }), - EventType::RoomTopic); - EXPECT_EQ(extractEventType(QJsonObject{ { "type", "m.room.unknown" } }), + EXPECT_EQ(extractEventType(QJsonObject{{"type", "m.room.topic"}}), EventType::RoomTopic); + EXPECT_EQ(extractEventType(QJsonObject{{"type", "m.room.unknown"}}), EventType::Unsupported); } TEST(AliasesEventContent, Deserialization) { - auto data = - QJsonObject{ { "aliases", QJsonArray{ "#test:matrix.org", "#test2:matrix.org" } } }; + auto data = QJsonObject{{"aliases", QJsonArray{"#test:matrix.org", "#test2:matrix.org"}}}; AliasesEventContent content; content.deserialize(data); @@ -215,7 +227,7 @@ TEST(AliasesEventContent, Deserialization) TEST(AliasesEventContent, NotAnObject) { - auto data = QJsonArray{ "#test:matrix.org", "#test2:matrix.org" }; + auto data = QJsonArray{"#test:matrix.org", "#test2:matrix.org"}; AliasesEventContent content; ASSERT_THROW(content.deserialize(data), DeserializationException); @@ -223,7 +235,7 @@ TEST(AliasesEventContent, NotAnObject) TEST(AliasesEventContent, MissingKey) { - auto data = QJsonObject{ { "key", QJsonArray{ "#test:matrix.org", "#test2:matrix.org" } } }; + auto data = QJsonObject{{"key", QJsonArray{"#test:matrix.org", "#test2:matrix.org"}}}; AliasesEventContent content; ASSERT_THROW(content.deserialize(data), DeserializationException); @@ -237,7 +249,7 @@ TEST(AliasesEventContent, MissingKey) TEST(AvatarEventContent, Deserialization) { - auto data = QJsonObject{ { "url", "https://matrix.org/avatar.png" } }; + auto data = QJsonObject{{"url", "https://matrix.org/avatar.png"}}; AvatarEventContent content; content.deserialize(data); @@ -248,7 +260,7 @@ TEST(AvatarEventContent, Deserialization) TEST(AvatarEventContent, NotAnObject) { - auto data = QJsonArray{ "key", "url" }; + auto data = QJsonArray{"key", "url"}; AvatarEventContent content; ASSERT_THROW(content.deserialize(data), DeserializationException); @@ -256,7 +268,7 @@ TEST(AvatarEventContent, NotAnObject) TEST(AvatarEventContent, MissingKey) { - auto data = QJsonObject{ { "key", "https://matrix.org" } }; + auto data = QJsonObject{{"key", "https://matrix.org"}}; AvatarEventContent content; ASSERT_THROW(content.deserialize(data), DeserializationException); @@ -270,7 +282,7 @@ TEST(AvatarEventContent, MissingKey) TEST(CreateEventContent, Deserialization) { - auto data = QJsonObject{ { "creator", "@alice:matrix.org" } }; + auto data = QJsonObject{{"creator", "@alice:matrix.org"}}; CreateEventContent content; content.deserialize(data); @@ -281,7 +293,7 @@ TEST(CreateEventContent, Deserialization) TEST(CreateEventContent, NotAnObject) { - auto data = QJsonArray{ "creator", "alice" }; + auto data = QJsonArray{"creator", "alice"}; CreateEventContent content; @@ -290,7 +302,7 @@ TEST(CreateEventContent, NotAnObject) TEST(CreateEventContent, MissingKey) { - auto data = QJsonObject{ { "key", "@alice:matrix.org" } }; + auto data = QJsonObject{{"key", "@alice:matrix.org"}}; CreateEventContent content; ASSERT_THROW(content.deserialize(data), DeserializationException); @@ -304,23 +316,23 @@ TEST(CreateEventContent, MissingKey) TEST(HistoryVisibilityEventContent, Deserialization) { - auto data = QJsonObject{ { "history_visibility", "invited" } }; + auto data = QJsonObject{{"history_visibility", "invited"}}; HistoryVisibilityEventContent content; content.deserialize(data); EXPECT_EQ(content.historyVisibility(), HistoryVisibility::Invited); - data = QJsonObject{ { "history_visibility", "joined" } }; + data = QJsonObject{{"history_visibility", "joined"}}; content.deserialize(data); EXPECT_EQ(content.historyVisibility(), HistoryVisibility::Joined); - data = QJsonObject{ { "history_visibility", "shared" } }; + data = QJsonObject{{"history_visibility", "shared"}}; content.deserialize(data); EXPECT_EQ(content.historyVisibility(), HistoryVisibility::Shared); - data = QJsonObject{ { "history_visibility", "world_readable" } }; + data = QJsonObject{{"history_visibility", "world_readable"}}; content.deserialize(data); EXPECT_EQ(content.historyVisibility(), HistoryVisibility::WorldReadable); @@ -328,7 +340,7 @@ TEST(HistoryVisibilityEventContent, Deserialization) TEST(HistoryVisibilityEventContent, NotAnObject) { - auto data = QJsonArray{ "history_visibility", "alice" }; + auto data = QJsonArray{"history_visibility", "alice"}; HistoryVisibilityEventContent content; @@ -337,7 +349,7 @@ TEST(HistoryVisibilityEventContent, NotAnObject) TEST(HistoryVisibilityEventContent, InvalidHistoryVisibility) { - auto data = QJsonObject{ { "history_visibility", "wrong" } }; + auto data = QJsonObject{{"history_visibility", "wrong"}}; HistoryVisibilityEventContent content; ASSERT_THROW(content.deserialize(data), DeserializationException); @@ -351,7 +363,7 @@ TEST(HistoryVisibilityEventContent, InvalidHistoryVisibility) TEST(HistoryVisibilityEventContent, MissingKey) { - auto data = QJsonObject{ { "key", "joined" } }; + auto data = QJsonObject{{"key", "joined"}}; HistoryVisibilityEventContent content; ASSERT_THROW(content.deserialize(data), DeserializationException); @@ -365,23 +377,23 @@ TEST(HistoryVisibilityEventContent, MissingKey) TEST(JoinRulesEventContent, Deserialization) { - auto data = QJsonObject{ { "join_rule", "invite" } }; + auto data = QJsonObject{{"join_rule", "invite"}}; JoinRulesEventContent content; content.deserialize(data); EXPECT_EQ(content.joinRule(), JoinRule::Invite); - data = QJsonObject{ { "join_rule", "knock" } }; + data = QJsonObject{{"join_rule", "knock"}}; content.deserialize(data); EXPECT_EQ(content.joinRule(), JoinRule::Knock); - data = QJsonObject{ { "join_rule", "private" } }; + data = QJsonObject{{"join_rule", "private"}}; content.deserialize(data); EXPECT_EQ(content.joinRule(), JoinRule::Private); - data = QJsonObject{ { "join_rule", "public" } }; + data = QJsonObject{{"join_rule", "public"}}; content.deserialize(data); EXPECT_EQ(content.joinRule(), JoinRule::Public); @@ -389,7 +401,7 @@ TEST(JoinRulesEventContent, Deserialization) TEST(JoinRulesEventContent, NotAnObject) { - auto data = QJsonArray{ "rule", "alice" }; + auto data = QJsonArray{"rule", "alice"}; JoinRulesEventContent content; @@ -398,7 +410,7 @@ TEST(JoinRulesEventContent, NotAnObject) TEST(JoinRulesEventContent, InvalidHistoryVisibility) { - auto data = QJsonObject{ { "join_rule", "wrong" } }; + auto data = QJsonObject{{"join_rule", "wrong"}}; JoinRulesEventContent content; ASSERT_THROW(content.deserialize(data), DeserializationException); @@ -412,7 +424,7 @@ TEST(JoinRulesEventContent, InvalidHistoryVisibility) TEST(JoinRulesEventContent, MissingKey) { - auto data = QJsonObject{ { "key", "invite" } }; + auto data = QJsonObject{{"key", "invite"}}; JoinRulesEventContent content; ASSERT_THROW(content.deserialize(data), DeserializationException); @@ -426,7 +438,7 @@ TEST(JoinRulesEventContent, MissingKey) TEST(CanonicalAliasEventContent, Deserialization) { - auto data = QJsonObject{ { "alias", "Room Alias" } }; + auto data = QJsonObject{{"alias", "Room Alias"}}; CanonicalAliasEventContent content; content.deserialize(data); @@ -437,7 +449,7 @@ TEST(CanonicalAliasEventContent, Deserialization) TEST(CanonicalAliasEventContent, NotAnObject) { - auto data = QJsonArray{ "alias", "Room Alias" }; + auto data = QJsonArray{"alias", "Room Alias"}; CanonicalAliasEventContent content; @@ -446,7 +458,7 @@ TEST(CanonicalAliasEventContent, NotAnObject) TEST(CanonicalAliasEventContent, MissingKey) { - auto data = QJsonObject{ { "key", "alias" } }; + auto data = QJsonObject{{"key", "alias"}}; CanonicalAliasEventContent content; ASSERT_THROW(content.deserialize(data), DeserializationException); @@ -462,29 +474,29 @@ TEST(MemberEventContent, Deserialization) { MemberEventContent content; - auto data = QJsonObject{ { "membership", "join" } }; + auto data = QJsonObject{{"membership", "join"}}; content.deserialize(data); EXPECT_EQ(content.membershipState(), Membership::Join); - data = QJsonObject{ { "membership", "invite" }, { "displayname", "Username" } }; + data = QJsonObject{{"membership", "invite"}, {"displayname", "Username"}}; content.deserialize(data); EXPECT_EQ(content.membershipState(), Membership::Invite); EXPECT_EQ(content.displayName(), "Username"); - data = QJsonObject{ { "membership", "leave" }, { "avatar_url", "https://matrix.org" } }; + data = QJsonObject{{"membership", "leave"}, {"avatar_url", "https://matrix.org"}}; content.deserialize(data); EXPECT_EQ(content.membershipState(), Membership::Leave); EXPECT_EQ(content.avatarUrl().toString(), "https://matrix.org"); - data = QJsonObject{ { "membership", "ban" } }; + data = QJsonObject{{"membership", "ban"}}; content.deserialize(data); EXPECT_EQ(content.membershipState(), Membership::Ban); - data = QJsonObject{ { "membership", "knock" } }; + data = QJsonObject{{"membership", "knock"}}; content.deserialize(data); EXPECT_EQ(content.membershipState(), Membership::Knock); @@ -492,7 +504,7 @@ TEST(MemberEventContent, Deserialization) TEST(MemberEventContent, InvalidMembership) { - auto data = QJsonObject{ { "membership", "wrong" } }; + auto data = QJsonObject{{"membership", "wrong"}}; MemberEventContent content; ASSERT_THROW(content.deserialize(data), DeserializationException); @@ -506,7 +518,7 @@ TEST(MemberEventContent, InvalidMembership) TEST(MemberEventContent, NotAnObject) { - auto data = QJsonArray{ "name", "join" }; + auto data = QJsonArray{"name", "join"}; MemberEventContent content; @@ -515,7 +527,7 @@ TEST(MemberEventContent, NotAnObject) TEST(MemberEventContent, MissingName) { - auto data = QJsonObject{ { "key", "random" } }; + auto data = QJsonObject{{"key", "random"}}; MemberEventContent content; ASSERT_THROW(content.deserialize(data), DeserializationException); @@ -529,7 +541,7 @@ TEST(MemberEventContent, MissingName) TEST(NameEventContent, Deserialization) { - auto data = QJsonObject{ { "name", "Room Name" } }; + auto data = QJsonObject{{"name", "Room Name"}}; NameEventContent content; content.deserialize(data); @@ -540,7 +552,7 @@ TEST(NameEventContent, Deserialization) TEST(NameEventContent, NotAnObject) { - auto data = QJsonArray{ "name", "Room Name" }; + auto data = QJsonArray{"name", "Room Name"}; NameEventContent content; @@ -549,7 +561,7 @@ TEST(NameEventContent, NotAnObject) TEST(NameEventContent, MissingName) { - auto data = QJsonObject{ { "key", "Room Name" } }; + auto data = QJsonObject{{"key", "Room Name"}}; NameEventContent content; ASSERT_THROW(content.deserialize(data), DeserializationException); @@ -582,17 +594,17 @@ TEST(PowerLevelsEventContent, DefaultValues) TEST(PowerLevelsEventContent, FullDeserialization) { auto data = QJsonObject{ - { "ban", 1 }, - { "invite", 2 }, - { "kick", 3 }, - { "redact", 4 }, + {"ban", 1}, + {"invite", 2}, + {"kick", 3}, + {"redact", 4}, - { "events_default", 5 }, - { "state_default", 6 }, - { "users_default", 7 }, + {"events_default", 5}, + {"state_default", 6}, + {"users_default", 7}, - { "events", QJsonObject{ { "m.message.text", 8 }, { "m.message.image", 9 } } }, - { "users", QJsonObject{ { "@alice:matrix.org", 10 }, { "@bob:matrix.org", 11 } } }, + {"events", QJsonObject{{"m.message.text", 8}, {"m.message.image", 9}}}, + {"users", QJsonObject{{"@alice:matrix.org", 10}, {"@bob:matrix.org", 11}}}, }; PowerLevelsEventContent power_levels; @@ -621,13 +633,13 @@ TEST(PowerLevelsEventContent, FullDeserialization) TEST(PowerLevelsEventContent, PartialDeserialization) { auto data = QJsonObject{ - { "ban", 1 }, - { "invite", 2 }, + {"ban", 1}, + {"invite", 2}, - { "events_default", 5 }, - { "users_default", 7 }, + {"events_default", 5}, + {"users_default", 7}, - { "users", QJsonObject{ { "@alice:matrix.org", 10 }, { "@bob:matrix.org", 11 } } }, + {"users", QJsonObject{{"@alice:matrix.org", 10}, {"@bob:matrix.org", 11}}}, }; PowerLevelsEventContent power_levels; @@ -653,7 +665,7 @@ TEST(PowerLevelsEventContent, PartialDeserialization) TEST(PowerLevelsEventContent, NotAnObject) { - auto data = QJsonArray{ "test", "test2" }; + auto data = QJsonArray{"test", "test2"}; PowerLevelsEventContent power_levels; @@ -662,7 +674,7 @@ TEST(PowerLevelsEventContent, NotAnObject) TEST(TopicEventContent, Deserialization) { - auto data = QJsonObject{ { "topic", "Room Topic" } }; + auto data = QJsonObject{{"topic", "Room Topic"}}; TopicEventContent content; content.deserialize(data); @@ -673,7 +685,7 @@ TEST(TopicEventContent, Deserialization) TEST(TopicEventContent, NotAnObject) { - auto data = QJsonArray{ "topic", "Room Topic" }; + auto data = QJsonArray{"topic", "Room Topic"}; TopicEventContent content; @@ -682,7 +694,7 @@ TEST(TopicEventContent, NotAnObject) TEST(TopicEventContent, MissingName) { - auto data = QJsonObject{ { "key", "Room Name" } }; + auto data = QJsonObject{{"key", "Room Name"}}; TopicEventContent content; ASSERT_THROW(content.deserialize(data), DeserializationException);