loolwsd/test/data/viewcursor.odp |binary loolwsd/test/helpers.hpp | 1 loolwsd/test/httpwstest.cpp | 51 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 51 insertions(+), 1 deletion(-)
New commits: commit d4d764cee580c30ab5cc776118ea6008ca40c7f2 Author: Henry Castro <hcas...@collabora.com> Date: Wed Sep 7 12:21:34 2016 -0400 loolwsd: test: invalidate view cursor diff --git a/loolwsd/test/data/viewcursor.odp b/loolwsd/test/data/viewcursor.odp new file mode 100755 index 0000000..a6a3561 Binary files /dev/null and b/loolwsd/test/data/viewcursor.odp differ diff --git a/loolwsd/test/helpers.hpp b/loolwsd/test/helpers.hpp index 0a7d003..2401243 100644 --- a/loolwsd/test/helpers.hpp +++ b/loolwsd/test/helpers.hpp @@ -448,7 +448,6 @@ void parseDocSize(const std::string& message, const std::string& type, int& part, int& parts, int& width, int& height, int& viewid) { Poco::StringTokenizer tokens(message, " ", Poco::StringTokenizer::TOK_IGNORE_EMPTY | Poco::StringTokenizer::TOK_TRIM); - CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(6), tokens.count()); // Expected format is something like 'type= parts= current= width= height='. const std::string text = tokens[0].substr(std::string("type=").size()); diff --git a/loolwsd/test/httpwstest.cpp b/loolwsd/test/httpwstest.cpp index f28c5d1..4af1fea 100644 --- a/loolwsd/test/httpwstest.cpp +++ b/loolwsd/test/httpwstest.cpp @@ -89,6 +89,7 @@ class HTTPWSTest : public CPPUNIT_NS::TestFixture CPPUNIT_TEST(testStateUnoCommand); CPPUNIT_TEST(testColumnRowResize); CPPUNIT_TEST(testOptimalResize); + CPPUNIT_TEST(testInvalidateViewCursor); CPPUNIT_TEST_SUITE_END(); @@ -126,6 +127,7 @@ class HTTPWSTest : public CPPUNIT_NS::TestFixture void testStateUnoCommand(); void testColumnRowResize(); void testOptimalResize(); + void testInvalidateViewCursor(); void loadDoc(const std::string& documentURL); @@ -2121,6 +2123,55 @@ void HTTPWSTest::testOptimalResize() } } +void HTTPWSTest::testInvalidateViewCursor() +{ + try + { + int docSlide = -1; + int docSlides = 0; + int docHeight = 0; + int docWidth = 0; + int docViewId = -1; + + // Load a document + std::string documentPath, documentURL, response, text; + getDocumentPathAndURL("viewcursor.odp", documentPath, documentURL); + + Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_GET, documentURL); + Poco::Net::WebSocket socket1 = *connectLOKit(_uri, request, _response); + + sendTextFrame(socket1, "load url=" + documentURL); + CPPUNIT_ASSERT_MESSAGE("cannot load the document " + documentURL, isDocumentLoaded(socket1)); + + // Check document size + sendTextFrame(socket1, "status"); + getResponseMessage(socket1, "status:", response, false); + CPPUNIT_ASSERT_MESSAGE("did not receive a status: message as expected", !response.empty()); + parseDocSize(response, "presentation", docSlide, docSlides, docWidth, docHeight, docViewId); + + // Click to show a cursor + Poco::format(text, "mouse type=%s x=%d y=%d count=1 buttons=1 modifier=0", std::string("buttondown"), docWidth/2, docHeight/6); + sendTextFrame(socket1, text); text.clear(); + Poco::format(text, "mouse type=%s x=%d y=%d count=1 buttons=1 modifier=0", std::string("buttonup"), docWidth/2, docHeight/6); + sendTextFrame(socket1, text); + getResponseMessage(socket1, "invalidatecursor:", response, false); + CPPUNIT_ASSERT_MESSAGE("did not receive a invalidatecursor: message as expected", !response.empty()); + + // Connect and load second view. + Poco::Net::WebSocket socket2 = *connectLOKit(_uri, request, _response); + sendTextFrame(socket2, "load url=" + documentURL); + CPPUNIT_ASSERT_MESSAGE("cannot load the document " + documentURL, isDocumentLoaded(socket2, "", true)); + + // Expected to receive invalidateviewcursor second view + getResponseMessage(socket2, "invalidateviewcursor:", response, false); + CPPUNIT_ASSERT_MESSAGE("did not receive a invalidateviewcursor: message as expected", !response.empty()); + } + catch (const Poco::Exception& exc) + { + CPPUNIT_FAIL(exc.displayText()); + } +} + CPPUNIT_TEST_SUITE_REGISTRATION(HTTPWSTest); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits