Kaydet (Commit) cfa94043 authored tarafından Jan Holesovsky's avatar Jan Holesovsky

lok: Extend the StatusModified unit test with Save As.

Change-Id: Ie9bbce6892fe1dcf55e23028e68037f996d7c71f
üst 645ec0a7
......@@ -644,10 +644,10 @@ void DesktopLOKTest::testModifiedStatus()
pDocument->pClass->initializeForRendering(pDocument, nullptr);
pDocument->pClass->registerCallback(pDocument, &DesktopLOKTest::callback, this);
// Set the document as modified.
// Type "t" and check that the document was set as modified
m_bModified = false;
m_aStateChangedCondition.reset();
uno::Reference<util::XModifiable> xModifiable(mxComponent, uno::UNO_QUERY);
xModifiable->setModified(true);
pDocument->pClass->postKeyEvent(pDocument, LOK_KEYEVENT_KEYINPUT, 't', 0);
TimeValue aTimeValue = { 2 , 0 }; // 2 seconds max
m_aStateChangedCondition.wait(aTimeValue);
Scheduler::ProcessEventsToIdle();
......@@ -655,6 +655,42 @@ void DesktopLOKTest::testModifiedStatus()
// This was false, there was no callback about the modified status change.
CPPUNIT_ASSERT(m_bModified);
// Perform SaveAs with "TakeOwnership" option set, and check that the
// modification state was reset
m_aStateChangedCondition.reset();
utl::TempFile aTempFile;
//aTempFile.EnableKillingFile();
CPPUNIT_ASSERT(pDocument->pClass->saveAs(pDocument, aTempFile.GetURL().toUtf8().getStr(), "odt", "TakeOwnership"));
m_aStateChangedCondition.wait(aTimeValue);
Scheduler::ProcessEventsToIdle();
// There was no callback about the modified status change.
CPPUNIT_ASSERT(!m_bModified);
// Modify the document again
m_bModified = false;
m_aStateChangedCondition.reset();
pDocument->pClass->postKeyEvent(pDocument, LOK_KEYEVENT_KEYINPUT, 't', 0);
m_aStateChangedCondition.wait(aTimeValue);
Scheduler::ProcessEventsToIdle();
// There was no callback about the modified status change.
CPPUNIT_ASSERT(m_bModified);
/*
// TODO: move this to a test where LOK is fully bootstrapped, so that we can
// get back the notification about ".uno:Save" too
// Now perform a normal "Save", and check the modified state was reset
// again
m_aStateChangedCondition.reset();
pDocument->pClass->postUnoCommand(pDocument, ".uno:Save", nullptr, false);
m_aStateChangedCondition.wait(aTimeValue);
Scheduler::ProcessEventsToIdle();
// There was no callback about the modified status change.
CPPUNIT_ASSERT(!m_bModified);
*/
comphelper::LibreOfficeKit::setActive(false);
}
......
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