[Libreoffice-commits] online.git: test/httpwstest.cpp test/Makefile.am test/UnitCursor.cpp

Miklos Vajna (via logerrit) logerrit at kemper.freedesktop.org
Mon Dec 2 08:12:00 UTC 2019


 test/Makefile.am    |    4 
 test/UnitCursor.cpp |  410 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 test/httpwstest.cpp |  326 -----------------------------------------
 3 files changed, 414 insertions(+), 326 deletions(-)

New commits:
commit fe04d685dbed3048c74a7ffdc0cb84d6e6824162
Author:     Miklos Vajna <vmiklos at collabora.com>
AuthorDate: Mon Dec 2 09:11:32 2019 +0100
Commit:     Miklos Vajna <vmiklos at collabora.com>
CommitDate: Mon Dec 2 09:11:39 2019 +0100

    Convert cursor tests to a new-style one
    
    So that they are in-process, which means it's easier to debug when they
    fail.
    
    Change-Id: I0fb1e798875c479e0aeb5f709ef630def5349126

diff --git a/test/Makefile.am b/test/Makefile.am
index 48da1f182..61fd8a142 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -32,6 +32,7 @@ noinst_LTLIBRARIES = \
 	unit-session.la \
 	unit-uno-command.la \
 	unit-load.la \
+	unit-cursor.la \
 	unit-wopi-loadencoded.la unit-wopi-temp.la
 
 MAGIC_TO_FORCE_SHLIB_CREATION = -rpath /dummy
@@ -155,6 +156,8 @@ unit_uno_command_la_SOURCES = UnitUNOCommand.cpp
 unit_uno_command_la_LIBADD = $(CPPUNIT_LIBS)
 unit_load_la_SOURCES = UnitLoad.cpp
 unit_load_la_LIBADD = $(CPPUNIT_LIBS)
+unit_cursor_la_SOURCES = UnitCursor.cpp
+unit_cursor_la_LIBADD = $(CPPUNIT_LIBS)
 
 if HAVE_LO_PATH
 SYSTEM_STAMP = @SYSTEMPLATE_PATH@/system_stamp
@@ -185,6 +188,7 @@ TESTS = unit-copy-paste.la unit-typing.la unit-convert.la unit-prefork.la unit-t
 	unit-session.la \
 	unit-uno-command.la \
 	unit-load.la \
+	unit-cursor.la \
 	unit-wopi-loadencoded.la unit-wopi-temp.la
 # TESTS = unit-client.la
 # TESTS += unit-admin.la
diff --git a/test/UnitCursor.cpp b/test/UnitCursor.cpp
new file mode 100644
index 000000000..a70ef749e
--- /dev/null
+++ b/test/UnitCursor.cpp
@@ -0,0 +1,410 @@
+/* -*- 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/.
+ */
+
+#include <memory>
+#include <ostream>
+#include <set>
+#include <string>
+
+#include <Poco/Exception.h>
+#include <Poco/RegularExpression.h>
+#include <Poco/URI.h>
+#include <cppunit/TestAssert.h>
+
+#include <Unit.hpp>
+#include <helpers.hpp>
+
+class LOOLWebSocket;
+
+namespace
+{
+void getCursor(const std::string& message, int& cursorX, int& cursorY, int& cursorWidth,
+               int& cursorHeight)
+{
+    Poco::JSON::Parser parser;
+    const Poco::Dynamic::Var result = parser.parse(message);
+    const auto& command = result.extract<Poco::JSON::Object::Ptr>();
+    std::string text = command->get("commandName").toString();
+    CPPUNIT_ASSERT_EQUAL(std::string(".uno:CellCursor"), text);
+    text = command->get("commandValues").toString();
+    CPPUNIT_ASSERT(!text.empty());
+    std::vector<std::string> position(LOOLProtocol::tokenize(text, ','));
+    cursorX = std::stoi(position[0]);
+    cursorY = std::stoi(position[1]);
+    cursorWidth = std::stoi(position[2]);
+    cursorHeight = std::stoi(position[3]);
+    CPPUNIT_ASSERT(cursorX >= 0);
+    CPPUNIT_ASSERT(cursorY >= 0);
+    CPPUNIT_ASSERT(cursorWidth >= 0);
+    CPPUNIT_ASSERT(cursorHeight >= 0);
+}
+
+void limitCursor(const std::function<void(const std::shared_ptr<LOOLWebSocket>& socket, int cursorX,
+                                          int cursorY, int cursorWidth, int cursorHeight,
+                                          int docWidth, int docHeight)>& keyhandler,
+                 const std::function<void(int docWidth, int docHeight, int newWidth,
+                                          int newHeight)>& checkhandler,
+                 const std::string& testname)
+{
+    int docSheet = -1;
+    int docSheets = 0;
+    int docHeight = 0;
+    int docWidth = 0;
+    int docViewId = -1;
+    int newSheet = -1;
+    int newSheets = 0;
+    int newHeight = 0;
+    int newWidth = 0;
+    int cursorX = 0;
+    int cursorY = 0;
+    int cursorWidth = 0;
+    int cursorHeight = 0;
+
+    std::string response;
+
+    Poco::URI uri(helpers::getTestServerURI());
+    std::shared_ptr<LOOLWebSocket> socket
+        = helpers::loadDocAndGetSocket("empty.ods", uri, testname);
+
+    // check document size
+    helpers::sendTextFrame(socket, "status", testname);
+    response = helpers::assertResponseString(socket, "status:", testname);
+    helpers::parseDocSize(response.substr(7), "spreadsheet", docSheet, docSheets, docWidth,
+                          docHeight, docViewId);
+
+    // Send an arrow key to initialize the CellCursor, otherwise we get "EMPTY".
+    helpers::sendTextFrame(socket, "key type=input char=0 key=1027", testname);
+
+    std::string text;
+    Poco::format(text,
+                 "commandvalues "
+                 "command=.uno:CellCursor?outputHeight=%d&outputWidth=%d&tileHeight=%d&tileWidth=%"
+                 "d",
+                 256, 256, 3840, 3840);
+    helpers::sendTextFrame(socket, text, testname);
+    const auto cursor = helpers::getResponseString(socket, "commandvalues:", testname);
+    getCursor(cursor.substr(14), cursorX, cursorY, cursorWidth, cursorHeight);
+
+    // move cursor
+    keyhandler(socket, cursorX, cursorY, cursorWidth, cursorHeight, docWidth, docHeight);
+
+    // filter messages, and expect to receive new document size
+    response = helpers::assertResponseString(socket, "status:", testname);
+    helpers::parseDocSize(response.substr(7), "spreadsheet", newSheet, newSheets, newWidth,
+                          newHeight, docViewId);
+
+    CPPUNIT_ASSERT_EQUAL(docSheets, newSheets);
+    CPPUNIT_ASSERT_EQUAL(docSheet, newSheet);
+
+    // check new document size
+    checkhandler(docWidth, docHeight, newWidth, newHeight);
+}
+}
+
+/// Test suite for cursor handling.
+class UnitCursor : public UnitWSD
+{
+    TestResult testMaxColumn();
+    TestResult testMaxRow();
+    TestResult testInsertAnnotationWriter();
+    TestResult testEditAnnotationWriter();
+    TestResult testInsertAnnotationCalc();
+
+public:
+    void invokeTest() override;
+};
+
+UnitBase::TestResult UnitCursor::testMaxColumn()
+{
+    try
+    {
+        limitCursor(
+            // move cursor to last column
+            [](const std::shared_ptr<LOOLWebSocket>& socket, int cursorX, int cursorY,
+               int cursorWidth, int cursorHeight, int docWidth, int docHeight) {
+                CPPUNIT_ASSERT(cursorX >= 0);
+                CPPUNIT_ASSERT(cursorY >= 0);
+                CPPUNIT_ASSERT(cursorWidth >= 0);
+                CPPUNIT_ASSERT(cursorHeight >= 0);
+                CPPUNIT_ASSERT(docWidth >= 0);
+                CPPUNIT_ASSERT(docHeight >= 0);
+
+                const std::string text = "key type=input char=0 key=1027";
+                while (cursorX <= docWidth)
+                {
+                    helpers::sendTextFrame(socket, text);
+                    cursorX += cursorWidth;
+                }
+            },
+            // check new document width
+            [](int docWidth, int docHeight, int newWidth, int newHeight) {
+                CPPUNIT_ASSERT_EQUAL(docHeight, newHeight);
+                CPPUNIT_ASSERT(newWidth > docWidth);
+            },
+            "maxColumn");
+    }
+    catch (const Poco::Exception& exc)
+    {
+        CPPUNIT_FAIL(exc.displayText());
+    }
+    return TestResult::Ok;
+}
+
+UnitBase::TestResult UnitCursor::testMaxRow()
+{
+    try
+    {
+        limitCursor(
+            // move cursor to last row
+            [](const std::shared_ptr<LOOLWebSocket>& socket, int cursorX, int cursorY,
+               int cursorWidth, int cursorHeight, int docWidth, int docHeight) {
+                CPPUNIT_ASSERT(cursorX >= 0);
+                CPPUNIT_ASSERT(cursorY >= 0);
+                CPPUNIT_ASSERT(cursorWidth >= 0);
+                CPPUNIT_ASSERT(cursorHeight >= 0);
+                CPPUNIT_ASSERT(docWidth >= 0);
+                CPPUNIT_ASSERT(docHeight >= 0);
+
+                const std::string text = "key type=input char=0 key=1024";
+                while (cursorY <= docHeight)
+                {
+                    helpers::sendTextFrame(socket, text);
+                    cursorY += cursorHeight;
+                }
+            },
+            // check new document height
+            [](int docWidth, int docHeight, int newWidth, int newHeight) {
+                CPPUNIT_ASSERT_EQUAL(docWidth, newWidth);
+                CPPUNIT_ASSERT(newHeight > docHeight);
+            },
+            "maxRow");
+    }
+    catch (const Poco::Exception& exc)
+    {
+        CPPUNIT_FAIL(exc.displayText());
+    }
+    return TestResult::Ok;
+}
+
+UnitBase::TestResult UnitCursor::testInsertAnnotationWriter()
+{
+    const char* testname = "insertAnnotationWriter ";
+
+    std::string documentPath, documentURL;
+    helpers::getDocumentPathAndURL("hello.odt", documentPath, documentURL, testname);
+    Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_GET, documentURL);
+
+    Poco::URI uri(helpers::getTestServerURI());
+    std::shared_ptr<LOOLWebSocket> socket
+        = helpers::loadDocAndGetSocket(uri, documentURL, testname);
+
+    // Insert comment.
+    helpers::sendTextFrame(socket, "uno .uno:InsertAnnotation", testname);
+    helpers::assertResponseString(socket, "invalidatetiles:", testname);
+
+    // Paste some text.
+    helpers::sendTextFrame(socket, "paste mimetype=text/plain;charset=utf-8\nxxx yyy zzzz",
+                           testname);
+
+    // Read it back.
+    std::string res = helpers::getAllText(socket, testname);
+    CPPUNIT_ASSERT_EQUAL(std::string("textselectioncontent: xxx yyy zzzz"), res);
+    // Can we edit the comment?
+    helpers::sendTextFrame(socket, "paste mimetype=text/plain;charset=utf-8\naaa bbb ccc",
+                           testname);
+    res = helpers::getAllText(socket, testname);
+    CPPUNIT_ASSERT_EQUAL(std::string("textselectioncontent: aaa bbb ccc"), res);
+
+    // Confirm that the text is in the comment and not doc body.
+    // Click in the body.
+    helpers::sendTextFrame(
+        socket, "mouse type=buttondown x=1600 y=1600 count=1 buttons=1 modifier=0", testname);
+    helpers::sendTextFrame(socket, "mouse type=buttonup x=1600 y=1600 count=1 buttons=1 modifier=0",
+                           testname);
+    // Read body text.
+    res = helpers::getAllText(socket, testname);
+    CPPUNIT_ASSERT_EQUAL(std::string("textselectioncontent: Hello world"), res);
+
+    // Confirm that the comment is still intact.
+    helpers::sendTextFrame(
+        socket, "mouse type=buttondown x=13855 y=1893 count=1 buttons=1 modifier=0", testname);
+    helpers::sendTextFrame(
+        socket, "mouse type=buttonup x=13855 y=1893 count=1 buttons=1 modifier=0", testname);
+    res = helpers::getAllText(socket, testname);
+    CPPUNIT_ASSERT_EQUAL(std::string("textselectioncontent: aaa bbb ccc"), res);
+
+    // Can we still edit the comment?
+    helpers::sendTextFrame(
+        socket,
+        "paste mimetype=text/plain;charset=utf-8\nand now for something completely different",
+        testname);
+    res = helpers::getAllText(socket, testname);
+    CPPUNIT_ASSERT_EQUAL(
+        std::string("textselectioncontent: and now for something completely different"), res);
+
+    // Close and reopen the same document and test again.
+    socket->shutdown();
+
+    // Make sure the document is fully unloaded.
+    // testNoExtraLoolKitsLeft();
+
+    TST_LOG("Reloading ");
+    socket = helpers::loadDocAndGetSocket(uri, documentURL, testname);
+
+    // Confirm that the text is in the comment and not doc body.
+    // Click in the body.
+    helpers::sendTextFrame(
+        socket, "mouse type=buttondown x=1600 y=1600 count=1 buttons=1 modifier=0", testname);
+    helpers::sendTextFrame(socket, "mouse type=buttonup x=1600 y=1600 count=1 buttons=1 modifier=0",
+                           testname);
+    // Read body text.
+    res = helpers::getAllText(socket, testname);
+    CPPUNIT_ASSERT_EQUAL(std::string("textselectioncontent: Hello world"), res);
+
+    // Confirm that the comment is still intact.
+    helpers::sendTextFrame(
+        socket, "mouse type=buttondown x=13855 y=1893 count=1 buttons=1 modifier=0", testname);
+    helpers::sendTextFrame(
+        socket, "mouse type=buttonup x=13855 y=1893 count=1 buttons=1 modifier=0", testname);
+    res = helpers::getAllText(socket, testname);
+    CPPUNIT_ASSERT_EQUAL(
+        std::string("textselectioncontent: and now for something completely different"), res);
+
+    // Can we still edit the comment?
+    helpers::sendTextFrame(socket, "paste mimetype=text/plain;charset=utf-8\nblah blah xyz",
+                           testname);
+    res = helpers::getAllText(socket, testname);
+    CPPUNIT_ASSERT_EQUAL(std::string("textselectioncontent: blah blah xyz"), res);
+    return TestResult::Ok;
+}
+
+UnitBase::TestResult UnitCursor::testEditAnnotationWriter()
+{
+    const char* testname = "editAnnotationWriter ";
+
+    std::string documentPath, documentURL;
+    helpers::getDocumentPathAndURL("with_comment.odt", documentPath, documentURL, testname);
+
+    Poco::URI uri(helpers::getTestServerURI());
+    std::shared_ptr<LOOLWebSocket> socket
+        = helpers::loadDocAndGetSocket(uri, documentURL, testname);
+
+    // Click in the body.
+    helpers::sendTextFrame(
+        socket, "mouse type=buttondown x=1600 y=1600 count=1 buttons=1 modifier=0", testname);
+    helpers::sendTextFrame(socket, "mouse type=buttonup x=1600 y=1600 count=1 buttons=1 modifier=0",
+                           testname);
+    // Read body text.
+    std::string res = helpers::getAllText(socket, testname);
+    CPPUNIT_ASSERT_EQUAL(std::string("textselectioncontent: Hello world"), res);
+
+    // Confirm that the comment is intact.
+    helpers::sendTextFrame(
+        socket, "mouse type=buttondown x=13855 y=1893 count=1 buttons=1 modifier=0", testname);
+    helpers::sendTextFrame(
+        socket, "mouse type=buttonup x=13855 y=1893 count=1 buttons=1 modifier=0", testname);
+    res = helpers::getAllText(socket, testname);
+    CPPUNIT_ASSERT_EQUAL(std::string("textselectioncontent: blah blah xyz"), res);
+
+    // Can we still edit the comment?
+    helpers::sendTextFrame(
+        socket,
+        "paste mimetype=text/plain;charset=utf-8\nand now for something completely different",
+        testname);
+    res = helpers::getAllText(socket, testname);
+    CPPUNIT_ASSERT_EQUAL(
+        std::string("textselectioncontent: and now for something completely different"), res);
+
+    // const int kitcount = getLoolKitProcessCount();
+
+    // Close and reopen the same document and test again.
+    TST_LOG("Closing connection after pasting.");
+    socket->shutdown();
+
+    TST_LOG("Reloading ");
+    socket = helpers::loadDocAndGetSocket(uri, documentURL, testname);
+
+    // Should have no new instances.
+    // CPPUNIT_ASSERT_EQUAL(kitcount, countLoolKitProcesses(kitcount));
+
+    // Confirm that the text is in the comment and not doc body.
+    // Click in the body.
+    helpers::sendTextFrame(
+        socket, "mouse type=buttondown x=1600 y=1600 count=1 buttons=1 modifier=0", testname);
+    helpers::sendTextFrame(socket, "mouse type=buttonup x=1600 y=1600 count=1 buttons=1 modifier=0",
+                           testname);
+    // Read body text.
+    res = helpers::getAllText(socket, testname);
+    CPPUNIT_ASSERT_EQUAL(std::string("textselectioncontent: Hello world"), res);
+
+    // Confirm that the comment is still intact.
+    helpers::sendTextFrame(
+        socket, "mouse type=buttondown x=13855 y=1893 count=1 buttons=1 modifier=0", testname);
+    helpers::sendTextFrame(
+        socket, "mouse type=buttonup x=13855 y=1893 count=1 buttons=1 modifier=0", testname);
+    res = helpers::getAllText(socket, testname);
+    CPPUNIT_ASSERT_EQUAL(
+        std::string("textselectioncontent: and now for something completely different"), res);
+
+    // Can we still edit the comment?
+    helpers::sendTextFrame(socket, "paste mimetype=text/plain;charset=utf-8\nnew text different",
+                           testname);
+    res = helpers::getAllText(socket, testname);
+    CPPUNIT_ASSERT_EQUAL(std::string("textselectioncontent: new text different"), res);
+    return TestResult::Ok;
+}
+
+UnitBase::TestResult UnitCursor::testInsertAnnotationCalc()
+{
+    const char* testname = "insertAnnotationCalc ";
+    Poco::URI uri(helpers::getTestServerURI());
+    std::shared_ptr<LOOLWebSocket> socket
+        = helpers::loadDocAndGetSocket("setclientpart.ods", uri, testname);
+
+    // Insert comment.
+    helpers::sendTextFrame(socket, "uno .uno:InsertAnnotation", testname);
+
+    // Paste some text.
+    helpers::sendTextFrame(socket, "paste mimetype=text/plain;charset=utf-8\naaa bbb ccc",
+                           testname);
+
+    // Read it back.
+    std::string res = helpers::getAllText(socket, testname);
+    CPPUNIT_ASSERT_EQUAL(std::string("textselectioncontent: aaa bbb ccc"), res);
+    return TestResult::Ok;
+}
+
+void UnitCursor::invokeTest()
+{
+    UnitBase::TestResult result = testMaxColumn();
+    if (result != TestResult::Ok)
+        exitTest(result);
+
+    result = testMaxRow();
+    if (result != TestResult::Ok)
+        exitTest(result);
+
+    // result = testInsertAnnotationWriter();
+    // if (result != TestResult::Ok)
+    //     exitTest(result);
+
+    // result = testEditAnnotationWriter();
+    // if (result != TestResult::Ok)
+    //     exitTest(result);
+
+    // FIXME result = testInsertAnnotationCalc();
+    // if (result != TestResult::Ok)
+    //     exitTest(result);
+
+    exitTest(TestResult::Ok);
+}
+
+UnitBase* unit_create_wsd(void) { return new UnitCursor(); }
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/test/httpwstest.cpp b/test/httpwstest.cpp
index 5410c3b50..ef6ddc73c 100644
--- a/test/httpwstest.cpp
+++ b/test/httpwstest.cpp
@@ -48,11 +48,6 @@ class HTTPWSTest : public CPPUNIT_NS::TestFixture
     CPPUNIT_TEST(testPasteBlank);
     CPPUNIT_TEST(testInsertDelete);
     CPPUNIT_TEST(testInactiveClient);
-    CPPUNIT_TEST(testMaxColumn);
-    CPPUNIT_TEST(testMaxRow);
-//    CPPUNIT_TEST(testInsertAnnotationWriter);
-//    CPPUNIT_TEST(testEditAnnotationWriter);
-    // FIXME CPPUNIT_TEST(testInsertAnnotationCalc);
     CPPUNIT_TEST(testCalcEditRendering);
     CPPUNIT_TEST(testCalcRenderAfterNewView51);
     CPPUNIT_TEST(testCalcRenderAfterNewView53);
@@ -75,11 +70,6 @@ class HTTPWSTest : public CPPUNIT_NS::TestFixture
     void testPasteBlank();
     void testInsertDelete();
     void testInactiveClient();
-    void testMaxColumn();
-    void testMaxRow();
-    void testInsertAnnotationWriter();
-    void testEditAnnotationWriter();
-    void testInsertAnnotationCalc();
     void testCalcEditRendering();
     void testCalcRenderAfterNewView51();
     void testCalcRenderAfterNewView53();
@@ -96,20 +86,6 @@ class HTTPWSTest : public CPPUNIT_NS::TestFixture
                           const std::string& response,
                           std::vector<std::string>& parts);
 
-    void getCursor(const std::string& message,
-                   int& cursorX,
-                   int& cursorY,
-                   int& cursorWidth,
-                   int& cursorHeight);
-
-    void limitCursor(const std::function<void(const std::shared_ptr<LOOLWebSocket>& socket,
-                                        int cursorX, int cursorY,
-                                        int cursorWidth, int cursorHeight,
-                                        int docWidth, int docHeight)>& keyhandler,
-                     const std::function<void(int docWidth, int docHeight,
-                                        int newWidth, int newHeight)>& checkhandler,
-                     const std::string& testname);
-
     std::string getFontList(const std::string& message);
     double getColRowSize(const std::string& property, const std::string& message, int index);
     double getColRowSize(const std::shared_ptr<LOOLWebSocket>& socket, const std::string& item, int index, const std::string& testname);
@@ -578,84 +554,6 @@ void HTTPWSTest::testInactiveClient()
     }
 }
 
-void HTTPWSTest::testMaxColumn()
-{
-    try
-    {
-        limitCursor(
-            // move cursor to last column
-            [](const std::shared_ptr<LOOLWebSocket>& socket,
-               int cursorX, int cursorY, int cursorWidth, int cursorHeight,
-               int docWidth, int docHeight)
-            {
-                CPPUNIT_ASSERT(cursorX >= 0);
-                CPPUNIT_ASSERT(cursorY >= 0);
-                CPPUNIT_ASSERT(cursorWidth >= 0);
-                CPPUNIT_ASSERT(cursorHeight >= 0);
-                CPPUNIT_ASSERT(docWidth >= 0);
-                CPPUNIT_ASSERT(docHeight >= 0);
-
-                const std::string text = "key type=input char=0 key=1027";
-                while (cursorX <= docWidth)
-                {
-                    sendTextFrame(socket, text);
-                    cursorX += cursorWidth;
-                }
-            },
-            // check new document width
-            [](int docWidth, int docHeight, int newWidth, int newHeight)
-            {
-                CPPUNIT_ASSERT_EQUAL(docHeight, newHeight);
-                CPPUNIT_ASSERT(newWidth > docWidth);
-            },
-            "maxColumn"
-        );
-    }
-    catch (const Poco::Exception& exc)
-    {
-        CPPUNIT_FAIL(exc.displayText());
-    }
-}
-
-void HTTPWSTest::testMaxRow()
-{
-    try
-    {
-        limitCursor(
-            // move cursor to last row
-            [](const std::shared_ptr<LOOLWebSocket>& socket,
-               int cursorX, int cursorY, int cursorWidth, int cursorHeight,
-               int docWidth, int docHeight)
-            {
-                CPPUNIT_ASSERT(cursorX >= 0);
-                CPPUNIT_ASSERT(cursorY >= 0);
-                CPPUNIT_ASSERT(cursorWidth >= 0);
-                CPPUNIT_ASSERT(cursorHeight >= 0);
-                CPPUNIT_ASSERT(docWidth >= 0);
-                CPPUNIT_ASSERT(docHeight >= 0);
-
-                const std::string text = "key type=input char=0 key=1024";
-                while (cursorY <= docHeight)
-                {
-                    sendTextFrame(socket, text);
-                    cursorY += cursorHeight;
-                }
-            },
-            // check new document height
-            [](int docWidth, int docHeight, int newWidth, int newHeight)
-            {
-                CPPUNIT_ASSERT_EQUAL(docWidth, newWidth);
-                CPPUNIT_ASSERT(newHeight > docHeight);
-            },
-            "maxRow"
-        );
-    }
-    catch (const Poco::Exception& exc)
-    {
-        CPPUNIT_FAIL(exc.displayText());
-    }
-}
-
 void HTTPWSTest::getPartHashCodes(const std::string& testname,
                                   const std::string& response,
                                   std::vector<std::string>& parts)
@@ -705,230 +603,6 @@ void HTTPWSTest::getPartHashCodes(const std::string& testname,
     CPPUNIT_ASSERT_EQUAL(totalParts, (int)parts.size());
 }
 
-void HTTPWSTest::getCursor(const std::string& message,
-                           int& cursorX, int& cursorY, int& cursorWidth, int& cursorHeight)
-{
-    Poco::JSON::Parser parser;
-    const Poco::Dynamic::Var result = parser.parse(message);
-    const auto& command = result.extract<Poco::JSON::Object::Ptr>();
-    std::string text = command->get("commandName").toString();
-    CPPUNIT_ASSERT_EQUAL(std::string(".uno:CellCursor"), text);
-    text = command->get("commandValues").toString();
-    CPPUNIT_ASSERT(!text.empty());
-    std::vector<std::string> position(LOOLProtocol::tokenize(text, ','));
-    cursorX = std::stoi(position[0]);
-    cursorY = std::stoi(position[1]);
-    cursorWidth = std::stoi(position[2]);
-    cursorHeight = std::stoi(position[3]);
-    CPPUNIT_ASSERT(cursorX >= 0);
-    CPPUNIT_ASSERT(cursorY >= 0);
-    CPPUNIT_ASSERT(cursorWidth >= 0);
-    CPPUNIT_ASSERT(cursorHeight >= 0);
-}
-
-void HTTPWSTest::limitCursor(const std::function<void(const std::shared_ptr<LOOLWebSocket>& socket,
-                                                int cursorX, int cursorY,
-                                                int cursorWidth, int cursorHeight,
-                                                int docWidth, int docHeight)>& keyhandler,
-                             const std::function<void(int docWidth, int docHeight,
-                                                int newWidth, int newHeight)>& checkhandler,
-                             const std::string& testname)
-{
-    int docSheet = -1;
-    int docSheets = 0;
-    int docHeight = 0;
-    int docWidth = 0;
-    int docViewId = -1;
-    int newSheet = -1;
-    int newSheets = 0;
-    int newHeight = 0;
-    int newWidth = 0;
-    int cursorX = 0;
-    int cursorY = 0;
-    int cursorWidth = 0;
-    int cursorHeight = 0;
-
-    std::string response;
-
-    std::shared_ptr<LOOLWebSocket> socket = loadDocAndGetSocket("empty.ods", _uri, testname);
-
-    // check document size
-    sendTextFrame(socket, "status", testname);
-    response = assertResponseString(socket, "status:", testname);
-    parseDocSize(response.substr(7), "spreadsheet", docSheet, docSheets, docWidth, docHeight, docViewId);
-
-    // Send an arrow key to initialize the CellCursor, otherwise we get "EMPTY".
-    sendTextFrame(socket, "key type=input char=0 key=1027", testname);
-
-    std::string text;
-    Poco::format(text, "commandvalues command=.uno:CellCursor?outputHeight=%d&outputWidth=%d&tileHeight=%d&tileWidth=%d",
-                 256, 256, 3840, 3840);
-    sendTextFrame(socket, text, testname);
-    const auto cursor = getResponseString(socket, "commandvalues:", testname);
-    getCursor(cursor.substr(14), cursorX, cursorY, cursorWidth, cursorHeight);
-
-    // move cursor
-    keyhandler(socket, cursorX, cursorY, cursorWidth, cursorHeight, docWidth, docHeight);
-
-    // filter messages, and expect to receive new document size
-    response = assertResponseString(socket, "status:", testname);
-    parseDocSize(response.substr(7), "spreadsheet", newSheet, newSheets, newWidth, newHeight, docViewId);
-
-    CPPUNIT_ASSERT_EQUAL(docSheets, newSheets);
-    CPPUNIT_ASSERT_EQUAL(docSheet, newSheet);
-
-    // check new document size
-    checkhandler(docWidth, docHeight, newWidth, newHeight);
-}
-
-void HTTPWSTest::testInsertAnnotationWriter()
-{
-    const char* testname = "insertAnnotationWriter ";
-
-    std::string documentPath, documentURL;
-    getDocumentPathAndURL("hello.odt", documentPath, documentURL, testname);
-    Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_GET, documentURL);
-
-    std::shared_ptr<LOOLWebSocket> socket = loadDocAndGetSocket(_uri, documentURL, testname);
-
-    // Insert comment.
-    sendTextFrame(socket, "uno .uno:InsertAnnotation", testname);
-    assertResponseString(socket, "invalidatetiles:", testname);
-
-    // Paste some text.
-    sendTextFrame(socket, "paste mimetype=text/plain;charset=utf-8\nxxx yyy zzzz", testname);
-
-    // Read it back.
-    std::string res = getAllText(socket, testname);
-    CPPUNIT_ASSERT_EQUAL(std::string("textselectioncontent: xxx yyy zzzz"), res);
-    // Can we edit the comment?
-    sendTextFrame(socket, "paste mimetype=text/plain;charset=utf-8\naaa bbb ccc", testname);
-    res = getAllText(socket, testname);
-    CPPUNIT_ASSERT_EQUAL(std::string("textselectioncontent: aaa bbb ccc"), res);
-
-    // Confirm that the text is in the comment and not doc body.
-    // Click in the body.
-    sendTextFrame(socket, "mouse type=buttondown x=1600 y=1600 count=1 buttons=1 modifier=0", testname);
-    sendTextFrame(socket, "mouse type=buttonup x=1600 y=1600 count=1 buttons=1 modifier=0", testname);
-    // Read body text.
-    res = getAllText(socket, testname);
-    CPPUNIT_ASSERT_EQUAL(std::string("textselectioncontent: Hello world"), res);
-
-    // Confirm that the comment is still intact.
-    sendTextFrame(socket, "mouse type=buttondown x=13855 y=1893 count=1 buttons=1 modifier=0", testname);
-    sendTextFrame(socket, "mouse type=buttonup x=13855 y=1893 count=1 buttons=1 modifier=0", testname);
-    res = getAllText(socket, testname);
-    CPPUNIT_ASSERT_EQUAL(std::string("textselectioncontent: aaa bbb ccc"), res);
-
-    // Can we still edit the comment?
-    sendTextFrame(socket, "paste mimetype=text/plain;charset=utf-8\nand now for something completely different", testname);
-    res = getAllText(socket, testname);
-    CPPUNIT_ASSERT_EQUAL(std::string("textselectioncontent: and now for something completely different"), res);
-
-    // Close and reopen the same document and test again.
-    socket->shutdown();
-
-    // Make sure the document is fully unloaded.
-    testNoExtraLoolKitsLeft();
-
-    TST_LOG("Reloading ");
-    socket = loadDocAndGetSocket(_uri, documentURL, testname);
-
-    // Confirm that the text is in the comment and not doc body.
-    // Click in the body.
-    sendTextFrame(socket, "mouse type=buttondown x=1600 y=1600 count=1 buttons=1 modifier=0", testname);
-    sendTextFrame(socket, "mouse type=buttonup x=1600 y=1600 count=1 buttons=1 modifier=0", testname);
-    // Read body text.
-    res = getAllText(socket, testname);
-    CPPUNIT_ASSERT_EQUAL(std::string("textselectioncontent: Hello world"), res);
-
-    // Confirm that the comment is still intact.
-    sendTextFrame(socket, "mouse type=buttondown x=13855 y=1893 count=1 buttons=1 modifier=0", testname);
-    sendTextFrame(socket, "mouse type=buttonup x=13855 y=1893 count=1 buttons=1 modifier=0", testname);
-    res = getAllText(socket, testname);
-    CPPUNIT_ASSERT_EQUAL(std::string("textselectioncontent: and now for something completely different"), res);
-
-    // Can we still edit the comment?
-    sendTextFrame(socket, "paste mimetype=text/plain;charset=utf-8\nblah blah xyz", testname);
-    res = getAllText(socket, testname);
-    CPPUNIT_ASSERT_EQUAL(std::string("textselectioncontent: blah blah xyz"), res);
-}
-
-void HTTPWSTest::testEditAnnotationWriter()
-{
-    const char* testname = "editAnnotationWriter ";
-
-    std::string documentPath, documentURL;
-    getDocumentPathAndURL("with_comment.odt", documentPath, documentURL, testname);
-
-    std::shared_ptr<LOOLWebSocket> socket = loadDocAndGetSocket(_uri, documentURL, testname);
-
-    // Click in the body.
-    sendTextFrame(socket, "mouse type=buttondown x=1600 y=1600 count=1 buttons=1 modifier=0", testname);
-    sendTextFrame(socket, "mouse type=buttonup x=1600 y=1600 count=1 buttons=1 modifier=0", testname);
-    // Read body text.
-    std::string res = getAllText(socket, testname);
-    CPPUNIT_ASSERT_EQUAL(std::string("textselectioncontent: Hello world"), res);
-
-    // Confirm that the comment is intact.
-    sendTextFrame(socket, "mouse type=buttondown x=13855 y=1893 count=1 buttons=1 modifier=0", testname);
-    sendTextFrame(socket, "mouse type=buttonup x=13855 y=1893 count=1 buttons=1 modifier=0", testname);
-    res = getAllText(socket, testname);
-    CPPUNIT_ASSERT_EQUAL(std::string("textselectioncontent: blah blah xyz"), res);
-
-    // Can we still edit the comment?
-    sendTextFrame(socket, "paste mimetype=text/plain;charset=utf-8\nand now for something completely different", testname);
-    res = getAllText(socket, testname);
-    CPPUNIT_ASSERT_EQUAL(std::string("textselectioncontent: and now for something completely different"), res);
-
-    const int kitcount = getLoolKitProcessCount();
-
-    // Close and reopen the same document and test again.
-    TST_LOG("Closing connection after pasting.");
-    socket->shutdown();
-
-    TST_LOG("Reloading ");
-    socket = loadDocAndGetSocket(_uri, documentURL, testname);
-
-    // Should have no new instances.
-    CPPUNIT_ASSERT_EQUAL(kitcount, countLoolKitProcesses(kitcount));
-
-    // Confirm that the text is in the comment and not doc body.
-    // Click in the body.
-    sendTextFrame(socket, "mouse type=buttondown x=1600 y=1600 count=1 buttons=1 modifier=0", testname);
-    sendTextFrame(socket, "mouse type=buttonup x=1600 y=1600 count=1 buttons=1 modifier=0", testname);
-    // Read body text.
-    res = getAllText(socket, testname);
-    CPPUNIT_ASSERT_EQUAL(std::string("textselectioncontent: Hello world"), res);
-
-    // Confirm that the comment is still intact.
-    sendTextFrame(socket, "mouse type=buttondown x=13855 y=1893 count=1 buttons=1 modifier=0", testname);
-    sendTextFrame(socket, "mouse type=buttonup x=13855 y=1893 count=1 buttons=1 modifier=0", testname);
-    res = getAllText(socket, testname);
-    CPPUNIT_ASSERT_EQUAL(std::string("textselectioncontent: and now for something completely different"), res);
-
-    // Can we still edit the comment?
-    sendTextFrame(socket, "paste mimetype=text/plain;charset=utf-8\nnew text different", testname);
-    res = getAllText(socket, testname);
-    CPPUNIT_ASSERT_EQUAL(std::string("textselectioncontent: new text different"), res);
-}
-
-void HTTPWSTest::testInsertAnnotationCalc()
-{
-    const char* testname = "insertAnnotationCalc ";
-    std::shared_ptr<LOOLWebSocket> socket = loadDocAndGetSocket("setclientpart.ods", _uri, testname);
-
-    // Insert comment.
-    sendTextFrame(socket, "uno .uno:InsertAnnotation", testname);
-
-    // Paste some text.
-    sendTextFrame(socket, "paste mimetype=text/plain;charset=utf-8\naaa bbb ccc", testname);
-
-    // Read it back.
-    std::string res = getAllText(socket, testname);
-    CPPUNIT_ASSERT_EQUAL(std::string("textselectioncontent: aaa bbb ccc"), res);
-}
-
 void HTTPWSTest::testCalcEditRendering()
 {
     const char* testname = "calcEditRendering ";


More information about the Libreoffice-commits mailing list