loolwsd/test/TileCacheTests.cpp | 53 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+)
New commits: commit dba4d840103ed71b3205fdf706757155c7c1b835 Author: Ashod Nakashian <[email protected]> Date: Sun Oct 2 20:34:04 2016 -0400 loolwsd: new per-part tile invalidation unittest Change-Id: I70c1b3d339bdd6dc017b3e09132e32ea0a2133ec Reviewed-on: https://gerrit.libreoffice.org/29469 Reviewed-by: Ashod Nakashian <[email protected]> Tested-by: Ashod Nakashian <[email protected]> diff --git a/loolwsd/test/TileCacheTests.cpp b/loolwsd/test/TileCacheTests.cpp index 96ae662..d5e18c9 100644 --- a/loolwsd/test/TileCacheTests.cpp +++ b/loolwsd/test/TileCacheTests.cpp @@ -64,6 +64,8 @@ class TileCacheTests : public CPPUNIT_NS::TestFixture CPPUNIT_TEST(testLoad12ods); CPPUNIT_TEST(testTileInvalidateWriter); CPPUNIT_TEST(testTileInvalidateCalc); + CPPUNIT_TEST(testTileInvalidatePartCalc); + CPPUNIT_TEST(testTileInvalidatePartImpress); CPPUNIT_TEST_SUITE_END(); @@ -81,6 +83,10 @@ class TileCacheTests : public CPPUNIT_NS::TestFixture void testTileInvalidateWriter(); void testWriterAnyKey(); void testTileInvalidateCalc(); + void testTileInvalidatePartCalc(); + void testTileInvalidatePartImpress(); + + void tileInvalidatePart(const std::string& filename, const std::string& testname); void checkTiles(Poco::Net::WebSocket& socket, const std::string& type, @@ -635,6 +641,53 @@ void TileCacheTests::testTileInvalidateCalc() } } +void TileCacheTests::tileInvalidatePart(const std::string& filename, const std::string& testname) +{ + const std::string testname1 = testname + "-1 "; + const std::string testname2 = testname + "-2 "; + + std::string documentPath, documentURL; + getDocumentPathAndURL(filename, documentPath, documentURL); + auto socket1 = *loadDocAndGetSocket(_uri, documentURL); + + sendTextFrame(socket1, "setclientpart part=2", testname1); + assertResponseLine(socket1, "setpart:", testname1); + sendTextFrame(socket1, "mouse type=buttondown x=7886 y=8929 count=1 buttons=1 modifier=0", testname1); + + auto socket2 = *loadDocAndGetSocket(_uri, documentURL); + sendTextFrame(socket2, "setclientpart part=5", testname2); + assertResponseLine(socket2, "setpart:", testname2); + sendTextFrame(socket2, "mouse type=buttondown x=7886 y=8929 count=1 buttons=1 modifier=0", testname2); + + std::string text = "Some test"; + for (char ch : text) + { + sendChar(socket1, ch); + sendChar(socket2, ch); + + const auto response1 = assertResponseLine(socket1, "invalidatetiles:", testname1); + int value1; + LOOLProtocol::getTokenIntegerFromMessage(response1, "part", value1); + CPPUNIT_ASSERT_EQUAL(2, value1); + + const auto response2 = assertResponseLine(socket2, "invalidatetiles:", testname2); + int value2; + LOOLProtocol::getTokenIntegerFromMessage(response2, "part", value2); + CPPUNIT_ASSERT_EQUAL(5, value2); + } +} + + +void TileCacheTests::testTileInvalidatePartCalc() +{ + tileInvalidatePart("setclientpart.ods", "tileInvalidatePartCalc"); +} + +void TileCacheTests::testTileInvalidatePartImpress() +{ + tileInvalidatePart("setclientpart.odp", "tileInvalidatePartImpress"); +} + void TileCacheTests::checkTiles(Poco::Net::WebSocket& socket, const std::string& docType, const std::string& name) { const std::string current = "current="; _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
