From 6eee767cc25a9db9f125843e584656cde1ebb6c5 Mon Sep 17 00:00:00 2001 From: Nicolas Werner <nicolas.werner@hotmail.de> Date: Sun, 18 Aug 2019 21:01:13 +0200 Subject: [PATCH] hom_server in login response is optional Since it is depreated it will also be removed in the future. Fixes #7 --- lib/structs/responses/login.cpp | 4 +++- tests/responses.cpp | 10 ++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/structs/responses/login.cpp b/lib/structs/responses/login.cpp index f63763daf..4091e9baa 100644 --- a/lib/structs/responses/login.cpp +++ b/lib/structs/responses/login.cpp @@ -12,7 +12,9 @@ from_json(const json &obj, Login &response) response.user_id = obj.at("user_id").get<User>(); response.access_token = obj.at("access_token").get<std::string>(); - response.home_server = obj.at("home_server").get<std::string>(); + + if (obj.count("home_server") != 0) + response.home_server = obj.at("home_server").get<std::string>(); if (obj.count("device_id") != 0) response.device_id = obj.at("device_id").get<std::string>(); diff --git a/tests/responses.cpp b/tests/responses.cpp index d4f598792..0618d704f 100644 --- a/tests/responses.cpp +++ b/tests/responses.cpp @@ -524,6 +524,16 @@ TEST(Responses, Login) EXPECT_EQ(login2.access_token, "abc123"); EXPECT_EQ(login2.home_server, "matrix.org"); EXPECT_EQ(login2.device_id, ""); + + json data3 = R"({ + "user_id": "@cheeky_monkey:matrix.org", + "access_token": "abc123" + })"_json; + Login login3 = data3; + EXPECT_EQ(login3.user_id.to_string(), "@cheeky_monkey:matrix.org"); + EXPECT_EQ(login3.access_token, "abc123"); + EXPECT_EQ(login3.home_server, ""); + EXPECT_EQ(login3.device_id, ""); } TEST(Responses, Messages) -- GitLab