loolwsd/test/httpwstest.cpp | 50 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+)
New commits: commit 4cba61525c31beee119c021d3075183a12d8b4f0 Author: Ashod Nakashian <ashod.nakash...@collabora.co.uk> Date: Mon May 9 00:48:30 2016 -0400 loolwsd: test notification replay on re-activation Change-Id: I46471a2a3ecce219cf1b922aeebf0fdb02f66614 Reviewed-on: https://gerrit.libreoffice.org/24783 Reviewed-by: Ashod Nakashian <ashnak...@gmail.com> Tested-by: Ashod Nakashian <ashnak...@gmail.com> diff --git a/loolwsd/test/httpwstest.cpp b/loolwsd/test/httpwstest.cpp index b1e6c5e..d760157 100644 --- a/loolwsd/test/httpwstest.cpp +++ b/loolwsd/test/httpwstest.cpp @@ -75,6 +75,7 @@ class HTTPWSTest : public CPPUNIT_NS::TestFixture CPPUNIT_TEST(testInsertDelete); CPPUNIT_TEST(testEditLock); CPPUNIT_TEST(testSlideShow); + CPPUNIT_TEST(testInactiveClient); CPPUNIT_TEST_SUITE_END(); @@ -99,6 +100,7 @@ class HTTPWSTest : public CPPUNIT_NS::TestFixture void testNoExtraLoolKitsLeft(); void testEditLock(); void testSlideShow(); + void testInactiveClient(); void loadDoc(const std::string& documentURL); @@ -1129,6 +1131,54 @@ void HTTPWSTest::testSlideShow() } } +void HTTPWSTest::testInactiveClient() +{ + try + { + std::string documentPath, documentURL; + getDocumentPathAndURL("hello.odt", documentPath, documentURL); + Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_GET, documentURL); + + auto socket1 = loadDocAndGetSocket(_uri, documentURL); + getResponseMessage(socket1, "invalidatetiles"); + + // Connect another and go inactive. + std::cerr << "Connecting second client." << std::endl; + auto socket2 = loadDocAndGetSocket(_uri, documentURL); + getResponseMessage(socket2, "status"); + sendTextFrame(socket2, "userinactive"); + + // While second is inactive, make some changes. + sendTextFrame(socket1, "uno .uno:SelectAll"); + sendTextFrame(socket1, "uno .uno:Delete"); + + // Activate second. + sendTextFrame(socket2, "useractive"); + SocketProcessor("Second", socket2, [&](const std::string& msg) + { + const auto token = LOOLProtocol::getFirstToken(msg); + CPPUNIT_ASSERT_MESSAGE("unexpected message: " + msg, + token == "textselection:" || + token == "textselectionstart:" || + token == "textselectionend:" || + token == "invalidatetiles:" || + token == "invalidatecursor:" || + token == "statechanged:"); + + // End when we get state changed. + return (token != "statechanged:"); + }); + + std::cerr << "Second client finished." << std::endl; + socket1->shutdown(); + socket2->shutdown(); + } + catch (const Poco::Exception& exc) + { + CPPUNIT_FAIL(exc.displayText()); + } +} + void HTTPWSTest::testNoExtraLoolKitsLeft() { const auto countNow = countLoolKitProcesses(_initialLoolKitCount); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits