loolwsd/LOOLWSD.cpp | 5 ++-- loolwsd/test/integration-http-server.cpp | 37 +++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 2 deletions(-)
New commits: commit bbf8e4033d4ab99b1938ad5ebe1600126aaa5b42 Author: Pranav Kant <pran...@collabora.co.uk> Date: Thu Jul 21 12:52:14 2016 +0530 loolwsd: Restore test for convert-to API This got accidently removed in 8e266391f13a7daa3b074ba2ae33ac4958d39ae0 Change-Id: I3d03b1b75f05f5855397e46a7fccc30c794ca151 (cherry picked from commit f684e505da11f0c800910cafde7d49de0bb5a568) diff --git a/loolwsd/test/integration-http-server.cpp b/loolwsd/test/integration-http-server.cpp index 09482e1..13b4213 100644 --- a/loolwsd/test/integration-http-server.cpp +++ b/loolwsd/test/integration-http-server.cpp @@ -45,6 +45,7 @@ class HTTPServerTest : public CPPUNIT_NS::TestFixture CPPUNIT_TEST(testLoleafletPost); CPPUNIT_TEST(testScriptsAndLinksGet); CPPUNIT_TEST(testScriptsAndLinksPost); + CPPUNIT_TEST(testConvertTo); // This should be the last test: CPPUNIT_TEST(testNoExtraLoolKitsLeft); @@ -58,6 +59,7 @@ class HTTPServerTest : public CPPUNIT_NS::TestFixture void testLoleafletPost(); void testScriptsAndLinksGet(); void testScriptsAndLinksPost(); + void testConvertTo(); void testNoExtraLoolKitsLeft(); @@ -231,6 +233,41 @@ void HTTPServerTest::testScriptsAndLinksPost() assertHTTPFilesExist(_uri, link, html); } +void HTTPServerTest::testConvertTo() +{ + const auto srcPath = Util::getTempFilePath(TDOC, "hello.odt"); + std::unique_ptr<Poco::Net::HTTPClientSession> session(helpers::createSession(_uri)); + + Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_POST, "/lool/convert-to"); + Poco::Net::HTMLForm form; + form.setEncoding(Poco::Net::HTMLForm::ENCODING_MULTIPART); + form.set("format", "txt"); + form.addPart("data", new Poco::Net::FilePartSource(srcPath)); + form.prepareSubmit(request); + // If this results in a Poco::Net::ConnectionRefusedException, loolwsd is not running. + form.write(session->sendRequest(request)); + + Poco::Net::HTTPResponse response; + std::stringstream actualStream; + // receiveResponse() resulted in a Poco::Net::NoMessageException. + std::istream& responseStream = session->receiveResponse(response); + Poco::StreamCopier::copyStream(responseStream, actualStream); + + std::ifstream fileStream(TDOC "/hello.txt"); + std::stringstream expectedStream; + expectedStream << fileStream.rdbuf(); + + // Remove the temp files. + Util::removeFile(srcPath); + + // In some cases the result is prefixed with (the UTF-8 encoding of) the Unicode BOM + // (U+FEFF). Skip that. + std::string actualString = actualStream.str(); + if (actualString.size() > 3 && actualString[0] == '\xEF' && actualString[1] == '\xBB' && actualString[2] == '\xBF') + actualString = actualString.substr(3); + CPPUNIT_ASSERT_EQUAL(expectedStream.str(), actualString); +} + void HTTPServerTest::testNoExtraLoolKitsLeft() { const auto countNow = countLoolKitProcesses(_initialLoolKitCount); commit 4ef0788cf34f23c6f2aa9d6feb499966938bc8c5 Author: Pranav Kant <pran...@collabora.co.uk> Date: Thu Jul 21 12:33:14 2016 +0530 loolwsd: Fix convert-to regression; fix incorrect filepath formed Regressed with 886af28bc2f6d1d27bf78de09978f3858d2db705 Poco::URI::encode appends to given string, and encodedTo already had content leading to incorrect path. Use a new std::string variable. Change-Id: Ia72ff60ed9cf7f14ff649416a2ceeeda13ff6197 (cherry picked from commit 39645c974d38c9494ec773ac493b2b7590e803fd) diff --git a/loolwsd/LOOLWSD.cpp b/loolwsd/LOOLWSD.cpp index e5d41cc..7583537 100644 --- a/loolwsd/LOOLWSD.cpp +++ b/loolwsd/LOOLWSD.cpp @@ -417,8 +417,9 @@ private: if (!resultURL.getPath().empty()) { const std::string mimeType = "application/octet-stream"; - URI::encode(resultURL.getPath(), "", encodedTo); - response.sendFile(encodedTo, mimeType); + std::string encodedFilePath; + URI::encode(resultURL.getPath(), "", encodedFilePath); + response.sendFile(encodedFilePath, mimeType); sent = true; } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits