loolwsd/test/httpwserror.cpp |   65 +++++++++++++++++++++++++++++++------------
 1 file changed, 47 insertions(+), 18 deletions(-)

New commits:
commit 5ba6ce1a3346777012b0ccd377eca99b4ee92f75
Author: Ashod Nakashian <ashod.nakash...@collabora.co.uk>
Date:   Sat Oct 15 17:41:53 2016 -0400

    loolwsd: fix and cleanup HTTPWSError unittests
    
    Change-Id: Ib730c8b3c1eac56bd24c97b62bc12060e437205f
    Reviewed-on: https://gerrit.libreoffice.org/29950
    Reviewed-by: Ashod Nakashian <ashnak...@gmail.com>
    Tested-by: Ashod Nakashian <ashnak...@gmail.com>

diff --git a/loolwsd/test/httpwserror.cpp b/loolwsd/test/httpwserror.cpp
index 509046c..75ccc67 100644
--- a/loolwsd/test/httpwserror.cpp
+++ b/loolwsd/test/httpwserror.cpp
@@ -25,6 +25,7 @@
 #include "Common.hpp"
 #include "LOOLProtocol.hpp"
 #include "helpers.hpp"
+#include "countloolkits.hpp"
 
 using namespace helpers;
 
@@ -32,6 +33,7 @@ class HTTPWSError : public CPPUNIT_NS::TestFixture
 {
     const Poco::URI _uri;
     Poco::Net::HTTPResponse _response;
+    static int InitialLoolKitCount;
 
     CPPUNIT_TEST_SUITE(HTTPWSError);
 
@@ -40,6 +42,8 @@ class HTTPWSError : public CPPUNIT_NS::TestFixture
 
     CPPUNIT_TEST_SUITE_END();
 
+    void testCountHowManyLoolkits();
+    void testNoExtraLoolKitsLeft();
     void testMaxDocuments();
     void testMaxConnections();
 
@@ -66,30 +70,46 @@ public:
 
     void setUp()
     {
+        testCountHowManyLoolkits();
     }
 
     void tearDown()
     {
+        testNoExtraLoolKitsLeft();
     }
 };
 
+int HTTPWSError::InitialLoolKitCount = 1;
+
+void HTTPWSError::testCountHowManyLoolkits()
+{
+    InitialLoolKitCount = countLoolKitProcesses(InitialLoolKitCount);
+    CPPUNIT_ASSERT(InitialLoolKitCount > 0);
+}
+
+void HTTPWSError::testNoExtraLoolKitsLeft()
+{
+    const auto countNow = countLoolKitProcesses(InitialLoolKitCount);
+
+    CPPUNIT_ASSERT_EQUAL(InitialLoolKitCount, countNow);
+}
+
 void HTTPWSError::testMaxDocuments()
 {
 #if MAX_DOCUMENTS > 0
+    const auto testname = "maxDocuments ";
     try
     {
         // Load a document.
         std::string docPath;
         std::string docURL;
-        std::string message;
-        Poco::UInt16 statusCode;
         std::vector<std::shared_ptr<Poco::Net::WebSocket>> docs;
 
-        for(int it = 1; it <= MAX_DOCUMENTS; it++)
+        for (int it = 1; it <= MAX_DOCUMENTS; ++it)
         {
             getDocumentPathAndURL("empty.odt", docPath, docURL);
             Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_GET, 
docURL);
-            docs.emplace_back(connectLOKit(_uri, request, _response));
+            docs.emplace_back(loadDocAndGetSocket("empty.odt", _uri, 
testname));
         }
 
         // try to open MAX_DOCUMENTS + 1
@@ -97,12 +117,17 @@ void HTTPWSError::testMaxDocuments()
         Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_GET, 
docURL);
         std::unique_ptr<Poco::Net::HTTPClientSession> 
session(helpers::createSession(_uri));
         Poco::Net::WebSocket socket(*session, request, _response);
+
         // send loolclient, load and partpagerectangles
-        sendTextFrame(socket, "loolclient ");
-        sendTextFrame(socket, "load ");
-        sendTextFrame(socket, "partpagerectangles ");
-        statusCode = getErrorCode(socket, message);
-        
CPPUNIT_ASSERT_EQUAL(static_cast<Poco::UInt16>(Poco::Net::WebSocket::WS_POLICY_VIOLATION),
 statusCode);
+        sendTextFrame(socket, "loolclient ", testname);
+        sendTextFrame(socket, "load ", testname);
+        sendTextFrame(socket, "partpagerectangles ", testname);
+
+        std::string message;
+        const auto statusCode = getErrorCode(socket, message);
+        
CPPUNIT_ASSERT_EQUAL(static_cast<int>(Poco::Net::WebSocket::WS_POLICY_VIOLATION),
 statusCode);
+
+        socket.shutdown();
     }
     catch (const Poco::Exception& exc)
     {
@@ -114,18 +139,17 @@ void HTTPWSError::testMaxDocuments()
 void HTTPWSError::testMaxConnections()
 {
 #if MAX_CONNECTIONS > 0
+    const auto testname = "maxConnections ";
     try
     {
         // Load a document.
         std::string docPath;
         std::string docURL;
-        std::string message;
-        Poco::UInt16 statusCode;
         std::vector<std::shared_ptr<Poco::Net::WebSocket>> views;
 
         getDocumentPathAndURL("empty.odt", docPath, docURL);
         Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_GET, 
docURL);
-        auto socket = loadDocAndGetSocket(_uri, docURL, "testMaxConnections ");
+        auto socket = loadDocAndGetSocket(_uri, docURL, testname);
 
         for(int it = 1; it < MAX_CONNECTIONS; it++)
         {
@@ -136,13 +160,18 @@ void HTTPWSError::testMaxConnections()
 
         // try to connect MAX_CONNECTIONS + 1
         std::unique_ptr<Poco::Net::HTTPClientSession> 
session(createSession(_uri));
-        auto socketN = std::make_shared<Poco::Net::WebSocket>(*session, 
request, _response);
+        Poco::Net::WebSocket socketN(*session, request, _response);
+
         // send loolclient, load and partpagerectangles
-        sendTextFrame(socketN, "loolclient ");
-        sendTextFrame(socketN, "load ");
-        sendTextFrame(socketN, "partpagerectangles ");
-        statusCode = getErrorCode(*socketN, message);
-        
CPPUNIT_ASSERT_EQUAL(static_cast<Poco::UInt16>(Poco::Net::WebSocket::WS_POLICY_VIOLATION),
 statusCode);
+        sendTextFrame(socketN, "loolclient ", testname);
+        sendTextFrame(socketN, "load ", testname);
+        sendTextFrame(socketN, "partpagerectangles ", testname);
+
+        std::string message;
+        const auto statusCode = getErrorCode(socketN, message);
+        
CPPUNIT_ASSERT_EQUAL(static_cast<int>(Poco::Net::WebSocket::WS_POLICY_VIOLATION),
 statusCode);
+
+        socketN.shutdown();
     }
     catch (const Poco::Exception& exc)
     {
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to