summaryrefslogtreecommitdiff
path: root/desktop
diff options
context:
space:
mode:
authorJan Holesovsky <kendy@collabora.com>2016-02-11 14:34:07 +0100
committerAshod Nakashian <ashnakash@gmail.com>2016-05-07 19:56:57 +0000
commit6afeaee7055bdadf22e2935203cfc99b63172215 (patch)
tree91d7937a99367d29b1861ebabdfc98e530bbefb5 /desktop
parente32607559b48523215a8524504fc6faa893c342a (diff)
lok: Extend the StatusModified unit test with Save As.
(cherry picked from commit cfa9404319ac5310dc772b3b4a9a3d05721e6940) (cherry picked from commit c0dfafab6459ef06ada37ea7ed5c7ebd59388057) Change-Id: Ie9bbce6892fe1dcf55e23028e68037f996d7c71f ad6bb5ba62d114ca760c4215aa8eec872c5d181b Reviewed-on: https://gerrit.libreoffice.org/24726 Reviewed-by: Ashod Nakashian <ashnakash@gmail.com> Tested-by: Ashod Nakashian <ashnakash@gmail.com>
Diffstat (limited to 'desktop')
-rw-r--r--desktop/qa/desktop_lib/test_desktop_lib.cxx41
1 files changed, 38 insertions, 3 deletions
diff --git a/desktop/qa/desktop_lib/test_desktop_lib.cxx b/desktop/qa/desktop_lib/test_desktop_lib.cxx
index 829563d76d82..fdd6e414246c 100644
--- a/desktop/qa/desktop_lib/test_desktop_lib.cxx
+++ b/desktop/qa/desktop_lib/test_desktop_lib.cxx
@@ -691,10 +691,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();
@@ -702,6 +702,41 @@ 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_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);
}