[Libreoffice-commits] online.git: loolwsd/test

Pranav Kant pranavk at collabora.com
Fri Feb 19 22:37:22 UTC 2016


 loolwsd/test/httpwstest.cpp |  101 +++++++++++++++++++++++---------------------
 1 file changed, 54 insertions(+), 47 deletions(-)

New commits:
commit d05f42df08a429e18e7b1d8ff0c74b46612a9825
Author: Pranav Kant <pranavk at collabora.com>
Date:   Sat Feb 20 03:52:22 2016 +0530

    loolwsd: Rework document password unit test
    
    Our unit test structure changed with
    7037f07a3861d0835fc6f2648e91d48f99ded4a6 . Restructure this one
    too.
    
    Change-Id: I1a14dd0ab0d631fd447edf620b6c24fe3730c843

diff --git a/loolwsd/test/httpwstest.cpp b/loolwsd/test/httpwstest.cpp
index 351031d..8e52976 100644
--- a/loolwsd/test/httpwstest.cpp
+++ b/loolwsd/test/httpwstest.cpp
@@ -222,59 +222,66 @@ void HTTPWSTest::testRenderingOptions()
 
 void HTTPWSTest::testPasswordProtectedDocument()
 {
-    // Load a password protected document
-    const std::string documentPath = TDOC "/password-protected.ods";
-    const std::string documentURL = "file://" + Poco::Path(documentPath).makeAbsolute().toString();
-    // Send a load request without password first
-    sendTextFrame(_socket, "load url=" + documentURL);
-
-    int flags;
-    int n;
-    int counter = 0;
-    do
-    {
-        char buffer[READ_BUFFER_SIZE];
-        n = _socket.receiveFrame(buffer, sizeof(buffer), flags);
-        if (n > 0)
+    try {
+
+        Poco::Net::WebSocket socket(_session, _request, _response);
+
+        // Load a password protected document
+        const std::string documentPath = TDOC "/password-protected.ods";
+        const std::string documentURL = "file://" + Poco::Path(documentPath).makeAbsolute().toString();
+        // Send a load request without password first
+        sendTextFrame(socket, "load url=" + documentURL);
+
+        int flags;
+        int n;
+        int counter = 0;
+        do
         {
-            std::string line = LOOLProtocol::getFirstLine(buffer, n);
-            StringTokenizer tokens(line, " ", StringTokenizer::TOK_IGNORE_EMPTY | StringTokenizer::TOK_TRIM);
-            std::string errorCommand;
-            std::string errorKind;
-            if (counter == 0 &&
-                tokens[0] == "error:" &&
-                LOOLProtocol::getTokenString(tokens[1], "cmd", errorCommand) &&
-                LOOLProtocol::getTokenString(tokens[2], "kind", errorKind) )
+            char buffer[READ_BUFFER_SIZE];
+            n = socket.receiveFrame(buffer, sizeof(buffer), flags);
+            if (n > 0)
             {
-                CPPUNIT_ASSERT_EQUAL(std::string("load"), errorCommand);
-                // TODO: Do a test for document requiring password to edit
-                CPPUNIT_ASSERT_EQUAL(std::string("passwordrequired:to-view"), errorKind);
+                std::string line = LOOLProtocol::getFirstLine(buffer, n);
+                StringTokenizer tokens(line, " ", StringTokenizer::TOK_IGNORE_EMPTY | StringTokenizer::TOK_TRIM);
+                std::string errorCommand;
+                std::string errorKind;
+                if (counter == 0 &&
+                    tokens[0] == "error:" &&
+                    LOOLProtocol::getTokenString(tokens[1], "cmd", errorCommand) &&
+                    LOOLProtocol::getTokenString(tokens[2], "kind", errorKind) )
+                {
+                    CPPUNIT_ASSERT_EQUAL(std::string("load"), errorCommand);
+                    // TODO: Do a test for document requiring password to edit
+                    CPPUNIT_ASSERT_EQUAL(std::string("passwordrequired:to-view"), errorKind);
 
-                // Send another load request with incorrect password
-                sendTextFrame(_socket, "load url=" + documentURL + " password=2");
-                counter++;
-            }
-            else if (counter == 1 &&
-                tokens[0] == "error:" &&
-                LOOLProtocol::getTokenString(tokens[1], "cmd", errorCommand) &&
-                LOOLProtocol::getTokenString(tokens[2], "kind", errorKind) )
-            {
-                CPPUNIT_ASSERT_EQUAL(std::string("load"), errorCommand);
-                CPPUNIT_ASSERT_EQUAL(std::string("wrongpassword"), errorKind);
+                    // Send another load request with incorrect password
+                    sendTextFrame(socket, "load url=" + documentURL + " password=2");
+                    counter++;
+                }
+                else if (counter == 1 &&
+                         tokens[0] == "error:" &&
+                         LOOLProtocol::getTokenString(tokens[1], "cmd", errorCommand) &&
+                         LOOLProtocol::getTokenString(tokens[2], "kind", errorKind) )
+                {
+                    CPPUNIT_ASSERT_EQUAL(std::string("load"), errorCommand);
+                    CPPUNIT_ASSERT_EQUAL(std::string("wrongpassword"), errorKind);
 
-                // Send another load request with correct password
-                sendTextFrame(_socket, "load url=" + documentURL + " password=1");
-                counter++;
-            }
-            else if (counter == 2 &&
-                     tokens[0] == "status:")
-            {
-                // Entering correct password opened the document
-                break;
+                    // Send another load request with correct password
+                    sendTextFrame(socket, "load url=" + documentURL + " password=1");
+                    counter++;
+                }
+                else if (counter == 2 &&
+                         tokens[0] == "status:")
+                {
+                    // Entering correct password opened the document
+                    break;
+                }
             }
-        }
+        } while (n > 0 && (flags & Poco::Net::WebSocket::FRAME_OP_BITMASK) != Poco::Net::WebSocket::FRAME_OP_CLOSE);
+    }
+    catch (const Poco::Exception& exc) {
+        CPPUNIT_ASSERT_MESSAGE(exc.displayText(), false);
     }
-    while (n > 0 && (flags & Poco::Net::WebSocket::FRAME_OP_BITMASK) != Poco::Net::WebSocket::FRAME_OP_CLOSE);
 }
 
 void HTTPWSTest::sendTextFrame(Poco::Net::WebSocket& socket, const std::string& string)


More information about the Libreoffice-commits mailing list