diff --git a/src/http.cpp b/src/http.cpp index ec5f6426a1633b4a8529a87ea9276101bad2078d..051143339a605953ce245426926b8a837cd2655b 100644 --- a/src/http.cpp +++ b/src/http.cpp @@ -43,8 +43,10 @@ Url::Url(const std::string& url): url(url) const size_t proto_end = url.find("://"); if (proto_end != std::string::npos){ addr_begin = proto_end + 3; - if (url.substr(0, proto_end) == "https") + if (url.substr(0, proto_end) == "https"){ protocol = "https"; + service = protocol; + } } // host and service size_t addr_size = url.substr(addr_begin).find("/"); diff --git a/tests/httptester.cpp b/tests/httptester.cpp index 7021cdc8dfb0cf50861d930713cfa9e55063ad23..0a6a861573625432bf89006cf6999adf7a13a34b 100644 --- a/tests/httptester.cpp +++ b/tests/httptester.cpp @@ -53,6 +53,20 @@ HttpTester::test_parse_url() { CPPUNIT_ASSERT(parsed.target == "/"); } +void +HttpTester::test_parse_https_url_no_service() { + // Arrange + std::string url = "https://jami.net/"; + // Act + dht::http::Url parsed (url); + // Assert + CPPUNIT_ASSERT(parsed.url == url); + CPPUNIT_ASSERT(parsed.protocol == "https"); + CPPUNIT_ASSERT(parsed.host == "jami.net"); + CPPUNIT_ASSERT(parsed.service == "https"); + CPPUNIT_ASSERT(parsed.target == "/"); +} + void HttpTester::test_parse_url_no_prefix_no_target() { // Arrange diff --git a/tests/httptester.h b/tests/httptester.h index 14cab3872177ce50ff77a889a02dc46476c90870..83df193f544c85bb45f716aacad4a2ee98dec183 100644 --- a/tests/httptester.h +++ b/tests/httptester.h @@ -31,6 +31,7 @@ namespace test { class HttpTester : public CppUnit::TestFixture { CPPUNIT_TEST_SUITE(HttpTester); CPPUNIT_TEST(test_parse_url); + CPPUNIT_TEST(test_parse_https_url_no_service); CPPUNIT_TEST(test_parse_url_no_prefix_no_target); CPPUNIT_TEST(test_parse_url_target); CPPUNIT_TEST(test_parse_url_query); @@ -57,6 +58,7 @@ class HttpTester : public CppUnit::TestFixture { * Test parse urls */ void test_parse_url(); + void test_parse_https_url_no_service(); void test_parse_url_no_prefix_no_target(); void test_parse_url_target(); void test_parse_url_query();