From 3a6fe5193901e0abe538fb4a49beff17bb2a0b33 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 26 Mar 2018 15:58:51 +0200 Subject: [PATCH] Fixed content type parsing + added test --- src/content/content-type.cpp | 2 +- tester/content-manager-tester.cpp | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/content/content-type.cpp b/src/content/content-type.cpp index e34241a40..f8e5be8ca 100644 --- a/src/content/content-type.cpp +++ b/src/content/content-type.cpp @@ -79,7 +79,7 @@ ContentType::ContentType (const string &contentType) : Header(*new ContentTypePr token = params.substr(0, posParam); } addParameter(HeaderParam(token)); - params.erase(0, pos + 1); + params.erase(0, posParam + 1); } while (posParam != std::string::npos); } } diff --git a/tester/content-manager-tester.cpp b/tester/content-manager-tester.cpp index de371dfb4..9509b5442 100644 --- a/tester/content-manager-tester.cpp +++ b/tester/content-manager-tester.cpp @@ -352,9 +352,18 @@ void list_to_multipart () { BC_ASSERT_TRUE(originalStr == generatedStr); } +static void content_type_parsing(void) { + const string type = "message/external-body;access-type=URL;URL=\"https://www.linphone.org/img/linphone-open-source-voip-projectX2.png\""; + ContentType contentType = ContentType(type); + BC_ASSERT_STRING_EQUAL("message", contentType.getType().c_str()); + BC_ASSERT_STRING_EQUAL("external-body", contentType.getSubType().c_str()); + BC_ASSERT_TRUE(type == contentType.asString()); +} + test_t content_manager_tests[] = { TEST_NO_TAG("Multipart to list", multipart_to_list), - TEST_NO_TAG("List to multipart", list_to_multipart) + TEST_NO_TAG("List to multipart", list_to_multipart), + TEST_NO_TAG("Content type parsing", content_type_parsing) }; test_suite_t content_manager_test_suite = {