diff options
author | Dennis Francis <dennis.francis@collabora.com> | 2022-04-12 10:43:00 +0530 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2022-04-15 19:58:58 +0200 |
commit | e7710ecab5da8ba734a0270e87bba269041ae391 (patch) | |
tree | bf7893a8b013539ef7a3e24e52f617a5e54ab222 /sc | |
parent | f7e1018f88f400aeee91a0b85a26964492e216fc (diff) |
unit test: use temp copy in testInvalidEntrySave()
Use a temporary copy of the source file to run this test otherwise it
will execute a .uno:Save on the original document in the git tree!
Change-Id: I673aad64453e72a9140efcad2b0ff9c0ceabc038
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132851
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Andras Timar <andras.timar@collabora.com>
Diffstat (limited to 'sc')
-rw-r--r-- | sc/qa/unit/tiledrendering/tiledrendering.cxx | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/sc/qa/unit/tiledrendering/tiledrendering.cxx b/sc/qa/unit/tiledrendering/tiledrendering.cxx index 9894da18e018..053b8d842019 100644 --- a/sc/qa/unit/tiledrendering/tiledrendering.cxx +++ b/sc/qa/unit/tiledrendering/tiledrendering.cxx @@ -42,6 +42,8 @@ #include <docoptio.hxx> #include <postit.hxx> #include <test/lokcallback.hxx> +#include <osl/file.hxx> +#include <unotools/tempfile.hxx> #include <chrono> #include <cstddef> @@ -187,10 +189,11 @@ public: CPPUNIT_TEST_SUITE_END(); private: - ScModelObj* createDoc(const char* pName); + ScModelObj* createDoc(const char* pName, bool bMakeTempCopy = false); void setupLibreOfficeKitViewCallback(SfxViewShell* pViewShell); static void callback(int nType, const char* pPayload, void* pData); void callbackImpl(int nType, const char* pPayload); + void makeTempCopy(const OUString& rOrigURL); /// document size changed callback. osl::Condition m_aDocSizeCondition; @@ -198,6 +201,7 @@ private: uno::Reference<lang::XComponent> mxComponent; TestLokCallbackWrapper m_callbackWrapper; + std::unique_ptr<utl::TempFile> mpTempFile; }; ScTiledRenderingTest::ScTiledRenderingTest() @@ -236,11 +240,29 @@ void ScTiledRenderingTest::tearDown() test::BootstrapFixture::tearDown(); } -ScModelObj* ScTiledRenderingTest::createDoc(const char* pName) +void ScTiledRenderingTest::makeTempCopy(const OUString& rOrigURL) +{ + mpTempFile.reset(new utl::TempFile()); + mpTempFile->EnableKillingFile(); + auto const aError = osl::File::copy(rOrigURL, mpTempFile->GetURL()); + CPPUNIT_ASSERT_EQUAL_MESSAGE( + OUString("<" + rOrigURL + "> -> <" + mpTempFile->GetURL() + ">").toUtf8().getStr(), + osl::FileBase::E_None, aError); +} + +ScModelObj* ScTiledRenderingTest::createDoc(const char* pName, bool bMakeTempCopy) { if (mxComponent.is()) mxComponent->dispose(); - mxComponent = loadFromDesktop(m_directories.getURLFromSrc(DATA_DIRECTORY) + OUString::createFromAscii(pName), "com.sun.star.sheet.SpreadsheetDocument"); + + OUString aOriginalSrc = m_directories.getURLFromSrc(DATA_DIRECTORY) + OUString::createFromAscii(pName); + if (bMakeTempCopy) + makeTempCopy(aOriginalSrc); + + mxComponent = loadFromDesktop( + bMakeTempCopy ? mpTempFile->GetURL() : aOriginalSrc, + "com.sun.star.sheet.SpreadsheetDocument"); + ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); CPPUNIT_ASSERT(pModelObj); pModelObj->initializeForTiledRendering(uno::Sequence<beans::PropertyValue>()); @@ -3033,7 +3055,7 @@ void ScTiledRenderingTest::testInvalidEntrySave() // Load a document comphelper::LibreOfficeKit::setActive(); - ScModelObj* pModelObj = createDoc("validity.xlsx"); + ScModelObj* pModelObj = createDoc("validity.xlsx", true /* bMakeTempCopy */); const ScDocument* pDoc = pModelObj->GetDocument(); ViewCallback aView; int nView = SfxLokHelper::getView(); |