Kaydet (Commit) f6c0e851 authored tarafından Ashod Nakashian's avatar Ashod Nakashian Kaydeden (comit) Ashod Nakashian

Lok: unittest batch API

Change-Id: I33bc59756f46b51a69efd91b89813ba17eca6218
Reviewed-on: https://gerrit.libreoffice.org/33403Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarAshod Nakashian <ashnakash@gmail.com>
üst 0c3f61fb
......@@ -95,6 +95,7 @@ public:
void testContextMenuImpress();
void testNotificationCompression();
void testTileInvalidationCompression();
void testBatching();
void testPartInInvalidation();
void testRedlineWriter();
void testTrackChanges();
......@@ -129,6 +130,7 @@ public:
CPPUNIT_TEST(testContextMenuImpress);
CPPUNIT_TEST(testNotificationCompression);
CPPUNIT_TEST(testTileInvalidationCompression);
CPPUNIT_TEST(testBatching);
CPPUNIT_TEST(testPartInInvalidation);
CPPUNIT_TEST(testRedlineWriter);
CPPUNIT_TEST(testTrackChanges);
......@@ -1580,6 +1582,49 @@ void DesktopLOKTest::testPartInInvalidation()
}
}
void DesktopLOKTest::testBatching()
{
LibLODocument_Impl* pDocument = loadDoc("blank_text.odt");
comphelper::LibreOfficeKit::setPartInInvalidation(true);
comphelper::ScopeGuard aGuard([]()
{
comphelper::LibreOfficeKit::setPartInInvalidation(false);
});
std::vector<std::tuple<int, std::string>> notifs;
std::unique_ptr<CallbackFlushHandler> handler(new CallbackFlushHandler(pDocument, callbackCompressionTest, &notifs));
// Enable Batch mode.
handler->setEventLatch(true);
handler->queue(LOK_CALLBACK_INVALIDATE_TILES, "0, 0, 239, 239, 0");
handler->queue(LOK_CALLBACK_INVALIDATE_TILES, "EMPTY, 0");
Scheduler::ProcessEventsToIdle();
CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(0), notifs.size());
handler->queue(LOK_CALLBACK_INVALIDATE_TILES, "0, 0, 239, 240, 0");
handler->queue(LOK_CALLBACK_INVALIDATE_TILES, "-121, -121, 300, 300, 0");
handler->queue(LOK_CALLBACK_INVALIDATE_TILES, "0, 0, -32767, -32767, 0");
Scheduler::ProcessEventsToIdle();
CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(0), notifs.size());
// Disable Batch mode.
handler->setEventLatch(false);
Scheduler::ProcessEventsToIdle();
CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), notifs.size());
size_t i = 0;
CPPUNIT_ASSERT_EQUAL((int)LOK_CALLBACK_INVALIDATE_TILES, (int)std::get<0>(notifs[i]));
CPPUNIT_ASSERT_EQUAL(std::string("0, 0, 1000000000, 1000000000, 0"), std::get<1>(notifs[i++]));
}
void DesktopLOKTest::testRedlineWriter()
{
// Load a Writer document, enable change recording and press a key.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment