summaryrefslogtreecommitdiff
path: root/dbaccess/qa
diff options
context:
space:
mode:
Diffstat (limited to 'dbaccess/qa')
-rw-r--r--dbaccess/qa/unit/dbtest_base.cxx29
-rw-r--r--dbaccess/qa/unit/firebird.cxx3
2 files changed, 29 insertions, 3 deletions
diff --git a/dbaccess/qa/unit/dbtest_base.cxx b/dbaccess/qa/unit/dbtest_base.cxx
index 86914faee5c2..3541715f6b49 100644
--- a/dbaccess/qa/unit/dbtest_base.cxx
+++ b/dbaccess/qa/unit/dbtest_base.cxx
@@ -7,9 +7,13 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
+#include <sal/config.h>
+
+#include <cppunit/TestAssert.h>
+
#include <comphelper/processfactory.hxx>
#include <test/unoapi_test.hxx>
-
+#include <unotools/tempfile.hxx>
#include <com/sun/star/sdb/XOfficeDatabaseDocument.hpp>
#include <com/sun/star/sdbc/XConnection.hpp>
#include <com/sun/star/sdbc/XDataSource.hpp>
@@ -25,20 +29,41 @@ class DBTestBase
public:
DBTestBase() : UnoApiTest("dbaccess/qa/unit/data") {};
+ utl::TempFile createTempCopy(OUString const & pathname);
+
uno::Reference< XOfficeDatabaseDocument >
getDocumentForFileName(const OUString &sFileName);
+ uno::Reference<XOfficeDatabaseDocument> getDocumentForUrl(OUString const & url);
+
uno::Reference< XConnection >
getConnectionForDocument(
uno::Reference< XOfficeDatabaseDocument > const & xDocument);
};
+utl::TempFile DBTestBase::createTempCopy(OUString const & pathname) {
+ OUString url;
+ createFileURL(pathname, 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;
+}
+
uno::Reference< XOfficeDatabaseDocument >
DBTestBase::getDocumentForFileName(const OUString &sFileName)
{
OUString sFilePath;
createFileURL(sFileName, sFilePath);
- uno::Reference< lang::XComponent > xComponent (loadFromDesktop(sFilePath));
+ return getDocumentForUrl(sFilePath);
+}
+
+uno::Reference<XOfficeDatabaseDocument> DBTestBase::getDocumentForUrl(OUString const & url) {
+ uno::Reference< lang::XComponent > xComponent (loadFromDesktop(url));
CPPUNIT_ASSERT(xComponent.is());
uno::Reference< XOfficeDatabaseDocument > xDocument(xComponent, UNO_QUERY);
diff --git a/dbaccess/qa/unit/firebird.cxx b/dbaccess/qa/unit/firebird.cxx
index 16a4fb60e800..f7361ac76548 100644
--- a/dbaccess/qa/unit/firebird.cxx
+++ b/dbaccess/qa/unit/firebird.cxx
@@ -51,8 +51,9 @@ void FirebirdTest::setUp()
*/
void FirebirdTest::testEmptyDBConnection()
{
+ auto const tmp = createTempCopy("firebird_empty.odb");
uno::Reference< XOfficeDatabaseDocument > xDocument =
- getDocumentForFileName("firebird_empty.odb");
+ getDocumentForUrl(tmp.GetURL());
getConnectionForDocument(xDocument);