summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Stahl <Michael.Stahl@cib.de>2019-01-29 13:40:21 +0100
committerMichael Stahl <Michael.Stahl@cib.de>2019-01-29 17:02:17 +0100
commit3cacdf5b0f1a6285370d5b06ddec9bce770ea603 (patch)
treebd4fe76fef2f8790120fd7196347c049d920b323
parenttdf#123031 allow natural cell width if the combobox contents are >= request (diff)
downloadcore-3cacdf5b0f1a6285370d5b06ddec9bce770ea603.tar.gz
core-3cacdf5b0f1a6285370d5b06ddec9bce770ea603.zip
sc: fix CppunitTest_sc_ddelinkobj to copy its test document
XRefreshable::testRefreshListener() fails on read-only filesystem because the ScDDELinksObj.ods cannot be loaded read-write. It is loaded read-write since commit 5b2794e27a81f8078cc251580ca59cc47807c7a0. Change-Id: I27b954b216acd3d138ade0d3f1b21fedd2f74fb1 Reviewed-on: https://gerrit.libreoffice.org/67071 Tested-by: Jenkins Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
-rw-r--r--include/test/sheet/xddelink.hxx6
-rw-r--r--sc/CppunitTest_sc_ddelinkobj.mk1
-rw-r--r--sc/qa/extras/scddelinkobj.cxx32
-rw-r--r--test/source/sheet/xddelink.cxx3
4 files changed, 35 insertions, 7 deletions
diff --git a/include/test/sheet/xddelink.hxx b/include/test/sheet/xddelink.hxx
index fa974ea321d8..854462a0dc1c 100644
--- a/include/test/sheet/xddelink.hxx
+++ b/include/test/sheet/xddelink.hxx
@@ -27,7 +27,13 @@ public:
void testGetTopic();
protected:
+ explicit XDDELink(OUString const& rURL)
+ : m_URL(rURL)
+ {
+ }
~XDDELink() {}
+
+ OUString const m_URL;
};
} // namespace apitest
diff --git a/sc/CppunitTest_sc_ddelinkobj.mk b/sc/CppunitTest_sc_ddelinkobj.mk
index c59cf6e96360..60ab216aaca4 100644
--- a/sc/CppunitTest_sc_ddelinkobj.mk
+++ b/sc/CppunitTest_sc_ddelinkobj.mk
@@ -23,6 +23,7 @@ $(eval $(call gb_CppunitTest_use_libraries,sc_ddelinkobj, \
subsequenttest \
test \
unotest \
+ utl \
vcl \
))
diff --git a/sc/qa/extras/scddelinkobj.cxx b/sc/qa/extras/scddelinkobj.cxx
index 0aa2e968c58e..4d1838a3b321 100644
--- a/sc/qa/extras/scddelinkobj.cxx
+++ b/sc/qa/extras/scddelinkobj.cxx
@@ -12,6 +12,7 @@
#include <test/sheet/xddelink.hxx>
#include <test/util/xrefreshable.hxx>
+#include <unotools/tempfile.hxx>
#include <sfx2/app.hxx>
#include <com/sun/star/beans/XPropertySet.hpp>
@@ -33,7 +34,29 @@ using namespace com::sun::star;
namespace sc_apitest
{
+static utl::TempFile createTempCopy(OUString const& url)
+{
+ utl::TempFile tmp;
+ tmp.EnableKillingFile();
+ auto const e = osl::File::copy(url, tmp.GetURL());
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(
+ (OUStringToOString("<" + url + "> -> <" + tmp.GetURL() + ">", RTL_TEXTENCODING_UTF8)
+ .getStr()),
+ osl::FileBase::E_None, e);
+ return tmp;
+}
+
+struct TempFileBase
+{
+ utl::TempFile m_TempFile;
+ explicit TempFileBase(OUString const& url)
+ : m_TempFile(createTempCopy(url))
+ {
+ }
+};
+
class ScDDELinkObj : public CalcUnoApiTest,
+ public TempFileBase,
public apitest::XDDELink,
public apitest::XNamed,
public apitest::XRefreshable
@@ -67,9 +90,9 @@ private:
ScDDELinkObj::ScDDELinkObj()
: CalcUnoApiTest("/sc/qa/extras/testdocuments")
- , XNamed("soffice|"
- + m_directories.getURLFromSrc("/sc/qa/unoapi/testdocuments/ScDDELinksObj.ods")
- + "!Sheet1.A1")
+ , TempFileBase(m_directories.getURLFromSrc("/sc/qa/unoapi/testdocuments/ScDDELinksObj.ods"))
+ , XDDELink(m_TempFile.GetURL())
+ , XNamed("soffice|" + m_TempFile.GetURL() + "!Sheet1.A1")
{
}
@@ -81,8 +104,7 @@ uno::Reference<uno::XInterface> ScDDELinkObj::init()
uno::Reference<container::XIndexAccess> xIA(xSheets, UNO_QUERY_THROW);
uno::Reference<sheet::XSpreadsheet> xSheet(xIA->getByIndex(0), UNO_QUERY_THROW);
- const OUString testdoc
- = m_directories.getURLFromSrc("/sc/qa/unoapi/testdocuments/ScDDELinksObj.ods");
+ const OUString testdoc = m_TempFile.GetURL();
xSheet->getCellByPosition(5, 5)->setFormula("=DDE(\"soffice\";\"" + testdoc
+ "\";\"Sheet1.A1\")");
diff --git a/test/source/sheet/xddelink.cxx b/test/source/sheet/xddelink.cxx
index b166275d5367..4227c3b4c9a4 100644
--- a/test/source/sheet/xddelink.cxx
+++ b/test/source/sheet/xddelink.cxx
@@ -37,8 +37,7 @@ void XDDELink::testGetTopic()
{
uno::Reference<sheet::XDDELink> xLink(init(), UNO_QUERY_THROW);
- CPPUNIT_ASSERT_MESSAGE("Unable to execute getTopic()",
- xLink->getTopic().endsWith("ScDDELinksObj.ods"));
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Unable to execute getTopic()", m_URL, xLink->getTopic());
}
} // namespace apitest