diff --git a/sflphone-common/src/sip/im/InstantMessaging.cpp b/sflphone-common/src/sip/im/InstantMessaging.cpp index 7f48c721c3e624add2da6c9bcfa52e4e23d28e84..76bbdd0b7baa48d7f4b0fd22fba0a34325ca3a71 100644 --- a/sflphone-common/src/sip/im/InstantMessaging.cpp +++ b/sflphone-common/src/sip/im/InstantMessaging.cpp @@ -311,9 +311,9 @@ std::string InstantMessaging::findTextUriList (std::string text) size_t begin = pos+cdispo.size(); - size_t end = text.find ("--boundary1--", begin); + size_t end = text.find ("--boundary--", begin); - return text.substr (begin, end); + return text.substr (begin, end-begin); } std::string InstantMessaging::findTextMessage (std::string text) @@ -327,7 +327,7 @@ std::string InstantMessaging::findTextMessage (std::string text) size_t end = text.find (boundary, begin); - return text.substr (begin, end); + return text.substr (begin, end-begin); } diff --git a/sflphone-common/test/instantmessagingtest.cpp b/sflphone-common/test/instantmessagingtest.cpp index 4b60cd4a37d12c98a56d3682085c7c9707232abf..2ccea41ed99fae459a91a774d69b22ff3745e4df 100644 --- a/sflphone-common/test/instantmessagingtest.cpp +++ b/sflphone-common/test/instantmessagingtest.cpp @@ -265,6 +265,51 @@ void InstantMessagingTest::testXmlUriListParsing () } } +void InstantMessagingTest::testGetTextArea () +{ + + std::string formatedText = "--boundary\n Content-Type: text/plain\n\n"; + formatedText.append ("Here is the text area"); + + formatedText.append ("\n--boundary\nContent-Type: application/resource-lists+xml\n"); + formatedText.append ("Content-Disposition: recipient-list\n\n"); + formatedText.append ("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); + formatedText.append ("<resource-lists xmlns=\"urn:ietf:params:xml:ns:resource-lists\" xmlns:cp=\"urn:ietf:params:xml:ns:copycontrol\">"); + formatedText.append ("<list>"); + formatedText.append ("<entry uri=\"sip:alex@example.com\" cp:copyControl=\"to\" />"); + formatedText.append ("<entry uri=\"sip:manu@example.com\" cp:copyControl=\"to\" />"); + formatedText.append ("</list>"); + formatedText.append ("</resource-lists>"); + formatedText.append ("--boundary--"); + + std::string message = _im->findTextMessage(formatedText); + + std::cout << "message: " << message << std::endl; +} + + +void InstantMessagingTest::testGetUriListArea () +{ + std::string formatedText = "--boundary\n Content-Type: text/plain\n\n"; + formatedText.append ("Here is the text area"); + + formatedText.append ("\n--boundary\nContent-Type: application/resource-lists+xml\n"); + formatedText.append ("Content-Disposition: recipient-list\n\n"); + formatedText.append ("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); + formatedText.append ("<resource-lists xmlns=\"urn:ietf:params:xml:ns:resource-lists\" xmlns:cp=\"urn:ietf:params:xml:ns:copycontrol\">"); + formatedText.append ("<list>"); + formatedText.append ("<entry uri=\"sip:alex@example.com\" cp:copyControl=\"to\" />"); + formatedText.append ("<entry uri=\"sip:manu@example.com\" cp:copyControl=\"to\" />"); + formatedText.append ("</list>"); + formatedText.append ("</resource-lists>"); + formatedText.append ("--boundary--"); + + std::string urilist = _im->findTextUriList(formatedText); + + std::cout << "urilist: " << urilist << std::endl; +} + + void InstantMessagingTest::tearDown() { delete _im; diff --git a/sflphone-common/test/instantmessagingtest.h b/sflphone-common/test/instantmessagingtest.h index 9194cb3f6b34a4953bd16ff95563dd06ffe7fa44..d96211fa618e2907b5e8337358cb05442e6ba17a 100644 --- a/sflphone-common/test/instantmessagingtest.h +++ b/sflphone-common/test/instantmessagingtest.h @@ -58,6 +58,8 @@ class InstantMessagingTest : public CppUnit::TestCase { CPPUNIT_TEST (testSplitMessage); CPPUNIT_TEST (testGenerateXmlUriList); CPPUNIT_TEST (testXmlUriListParsing); + CPPUNIT_TEST (testGetTextArea); + CPPUNIT_TEST (testGetUriListArea); CPPUNIT_TEST_SUITE_END(); public: @@ -84,6 +86,10 @@ class InstantMessagingTest : public CppUnit::TestCase { void testGenerateXmlUriList (); void testXmlUriListParsing (); + + void testGetTextArea (); + + void testGetUriListArea (); private: sfl::InstantMessaging *_im;