loolwsd/test/httpgettest.cpp | 60 ++------------------------------------ loolwsd/test/httpposttest.cpp | 60 +------------------------------------- loolwsd/test/httptestutils.hpp | 64 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 71 insertions(+), 113 deletions(-)
New commits: commit 2f561802b3cdb75367cf63bf267be920ec6c3bd3 Author: Jan Holesovsky <ke...@collabora.com> Date: Tue Apr 26 11:32:01 2016 +0200 The branding files do not have to be present, skip them. Clean up tons of copy'n'paste when at that... diff --git a/loolwsd/test/httpgettest.cpp b/loolwsd/test/httpgettest.cpp index bb1862a..1daab67 100644 --- a/loolwsd/test/httpgettest.cpp +++ b/loolwsd/test/httpgettest.cpp @@ -26,6 +26,8 @@ #include <Common.hpp> #include <Util.hpp> +#include "httptestutils.hpp" + /// Tests the HTTP GET API of loolwsd. class HTTPGetTest : public CPPUNIT_NS::TestFixture { @@ -148,36 +150,8 @@ void HTTPGetTest::testScripts() Poco::StreamCopier::copyToString(rs, html); Poco::RegularExpression script("<script.*?src=\"(.*?)\""); - Poco::RegularExpression::MatchVec matches; - int offset = 0; - while (script.match(html, offset, matches) > 0) - { - CPPUNIT_ASSERT_EQUAL(2, (int)matches.size()); - Poco::URI uriScript(html.substr(matches[1].offset, matches[1].length)); - if (uriScript.getHost().empty()) - { -#if ENABLE_SSL - Poco::Net::HTTPSClientSession sessionScript(uri.getHost(), uri.getPort()); -#else - Poco::Net::HTTPClientSession sessionScript(uri.getHost(), uri.getPort()); -#endif - std::cout << "checking... " << uriScript.toString(); - Poco::Net::HTTPRequest requestScript(Poco::Net::HTTPRequest::HTTP_GET, uriScript.toString()); - sessionScript.sendRequest(requestScript); - - Poco::Net::HTTPResponse responseScript; - sessionScript.receiveResponse(responseScript); - CPPUNIT_ASSERT_EQUAL(Poco::Net::HTTPResponse::HTTP_OK, responseScript.getStatus()); - CPPUNIT_ASSERT_EQUAL(std::string("application/javascript"), responseScript.getContentType()); - std::cout << " OK" << std::endl; - } - else - { - std::cout << "skip " << uriScript.toString() << std::endl; - } - offset = static_cast<int>(matches[0].offset + matches[0].length); - } + httptest::assertHTTPFilesExist(uri, script, html, "application/javascript"); } void HTTPGetTest::testLinks() @@ -201,34 +175,8 @@ void HTTPGetTest::testLinks() Poco::RegularExpression link("<link.*?href=\"(.*?)\""); Poco::RegularExpression::MatchVec matches; - int offset = 0; - while (link.match(html, offset, matches) > 0) - { - CPPUNIT_ASSERT_EQUAL(2, (int)matches.size()); - Poco::URI uriLink(html.substr(matches[1].offset, matches[1].length)); - if (uriLink.getHost().empty()) - { -#if ENABLE_SSL - Poco::Net::HTTPSClientSession sessionLink(uri.getHost(), uri.getPort()); -#else - Poco::Net::HTTPClientSession sessionLink(uri.getHost(), uri.getPort()); -#endif - std::cout << "checking... " << uriLink.toString(); - Poco::Net::HTTPRequest requestLink(Poco::Net::HTTPRequest::HTTP_GET, uriLink.toString()); - sessionLink.sendRequest(requestLink); - - Poco::Net::HTTPResponse responseLink; - sessionLink.receiveResponse(responseLink); - CPPUNIT_ASSERT_EQUAL(Poco::Net::HTTPResponse::HTTP_OK, responseLink.getStatus()); - std::cout << " OK" << std::endl; - } - else - { - std::cout << "skip " << uriLink.toString() << std::endl; - } - offset = static_cast<int>(matches[0].offset + matches[0].length); - } + httptest::assertHTTPFilesExist(uri, link, html); } CPPUNIT_TEST_SUITE_REGISTRATION(HTTPGetTest); diff --git a/loolwsd/test/httpposttest.cpp b/loolwsd/test/httpposttest.cpp index b8756d5..ce4f460 100644 --- a/loolwsd/test/httpposttest.cpp +++ b/loolwsd/test/httpposttest.cpp @@ -27,6 +27,7 @@ #include <Util.hpp> #include "countloolkits.hpp" +#include "httptestutils.hpp" /// Tests the HTTP POST API of loolwsd. The server has to be started manually before running this test. class HTTPPostTest : public CPPUNIT_NS::TestFixture @@ -157,36 +158,8 @@ void HTTPPostTest::testScripts() Poco::StreamCopier::copyToString(rs, html); Poco::RegularExpression script("<script.*?src=\"(.*?)\""); - Poco::RegularExpression::MatchVec matches; - int offset = 0; - while (script.match(html, offset, matches) > 0) - { - CPPUNIT_ASSERT_EQUAL(2, (int)matches.size()); - Poco::URI uriScript(html.substr(matches[1].offset, matches[1].length)); - if (uriScript.getHost().empty()) - { -#if ENABLE_SSL - Poco::Net::HTTPSClientSession sessionScript(uri.getHost(), uri.getPort()); -#else - Poco::Net::HTTPClientSession sessionScript(uri.getHost(), uri.getPort()); -#endif - std::cout << "checking... " << uriScript.toString(); - Poco::Net::HTTPRequest requestScript(Poco::Net::HTTPRequest::HTTP_GET, uriScript.toString()); - sessionScript.sendRequest(requestScript); - - Poco::Net::HTTPResponse responseScript; - sessionScript.receiveResponse(responseScript); - CPPUNIT_ASSERT_EQUAL(Poco::Net::HTTPResponse::HTTP_OK, responseScript.getStatus()); - CPPUNIT_ASSERT_EQUAL(std::string("application/javascript"), responseScript.getContentType()); - std::cout << " OK" << std::endl; - } - else - { - std::cout << "skip " << uriScript.toString() << std::endl; - } - offset = static_cast<int>(matches[0].offset + matches[0].length); - } + httptest::assertHTTPFilesExist(uri, script, html, "application/javascript"); } void HTTPPostTest::testLinks() @@ -212,35 +185,8 @@ void HTTPPostTest::testLinks() Poco::StreamCopier::copyToString(rs, html); Poco::RegularExpression link("<link.*?href=\"(.*?)\""); - Poco::RegularExpression::MatchVec matches; - int offset = 0; - while (link.match(html, offset, matches) > 0) - { - CPPUNIT_ASSERT_EQUAL(2, (int)matches.size()); - Poco::URI uriLink(html.substr(matches[1].offset, matches[1].length)); - if (uriLink.getHost().empty()) - { -#if ENABLE_SSL - Poco::Net::HTTPSClientSession sessionLink(uri.getHost(), uri.getPort()); -#else - Poco::Net::HTTPClientSession sessionLink(uri.getHost(), uri.getPort()); -#endif - std::cout << "checking... " << uriLink.toString(); - Poco::Net::HTTPRequest requestLink(Poco::Net::HTTPRequest::HTTP_GET, uriLink.toString()); - sessionLink.sendRequest(requestLink); - - Poco::Net::HTTPResponse responseLink; - sessionLink.receiveResponse(responseLink); - CPPUNIT_ASSERT_EQUAL(Poco::Net::HTTPResponse::HTTP_OK, responseLink.getStatus()); - std::cout << " OK" << std::endl; - } - else - { - std::cout << "skip " << uriLink.toString() << std::endl; - } - offset = static_cast<int>(matches[0].offset + matches[0].length); - } + httptest::assertHTTPFilesExist(uri, link, html); } void HTTPPostTest::testConvertTo() diff --git a/loolwsd/test/httptestutils.hpp b/loolwsd/test/httptestutils.hpp new file mode 100644 index 0000000..c6fa398 --- /dev/null +++ b/loolwsd/test/httptestutils.hpp @@ -0,0 +1,64 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#ifndef TEST_HTTPTESTUTILS_HPP +#define TEST_HTTPTESTUTILS_HPP + +namespace httptest +{ + +inline void assertHTTPFilesExist(const Poco::URI& uri, Poco::RegularExpression& expr, const std::string& html, const std::string& mimetype = std::string()) +{ + Poco::RegularExpression::MatchVec matches; + + for (int offset = 0; expr.match(html, offset, matches) > 0; offset = static_cast<int>(matches[0].offset + matches[0].length)) + { + CPPUNIT_ASSERT_EQUAL(2, (int)matches.size()); + Poco::URI uriScript(html.substr(matches[1].offset, matches[1].length)); + if (uriScript.getHost().empty()) + { + std::string scriptString(uriScript.toString()); + + // ignore the branding bits, they do not have to be there + if (scriptString.find("/branding.") != std::string::npos) + { + std::cout << "skipping test for... " << scriptString << std::endl; + continue; + } + +#if ENABLE_SSL + Poco::Net::HTTPSClientSession sessionScript(uri.getHost(), uri.getPort()); +#else + Poco::Net::HTTPClientSession sessionScript(uri.getHost(), uri.getPort()); +#endif + std::cout << "checking... " << scriptString; + Poco::Net::HTTPRequest requestScript(Poco::Net::HTTPRequest::HTTP_GET, scriptString); + sessionScript.sendRequest(requestScript); + + Poco::Net::HTTPResponse responseScript; + sessionScript.receiveResponse(responseScript); + CPPUNIT_ASSERT_EQUAL(Poco::Net::HTTPResponse::HTTP_OK, responseScript.getStatus()); + + if (!mimetype.empty()) + CPPUNIT_ASSERT_EQUAL(mimetype, responseScript.getContentType()); + + std::cout << " OK" << std::endl; + } + else + { + std::cout << "skip " << uriScript.toString() << std::endl; + } + } +} + +} + +#endif // TEST_HTTPTESTUTILS_HPP + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits