summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrzej J.R. Hunt <andrzej@ahunt.org>2013-09-07 17:32:20 +0100
committerAndrzej J.R. Hunt <andrzej@ahunt.org>2013-09-10 08:44:23 +0100
commit65fc052b89b029ad1e853a139f6b3817ac24452a (patch)
tree35e0952b27de16d637ac0cc2fdd3cd02e90d33a9
parentd344d46cd4cd0e4811ac5ebd01d29cc4547f7f3e (diff)
Add simple embedded firebird .odb loading test.
This opens an "empty" firebird-based .odb and tests that it is possible for the firebird-sdbc driver to open the embedded database. "empty" denotes that the .odb is marked as using embedded firebird but doesn't in fact contain any .fdb file within. This is usual state of a .odb directly after creation using the "New Database" dialog when the sdbc driver first opens the database. Change-Id: I83941c05b6328d8419dca49121988640c6f887bc
-rw-r--r--dbaccess/CppunitTest_dbaccess_firebird_test.mk67
-rw-r--r--dbaccess/Module_dbaccess.mk3
-rw-r--r--dbaccess/qa/unit/data/firebird_empty.odbbin0 -> 1733 bytes
-rw-r--r--dbaccess/qa/unit/firebird.cxx84
4 files changed, 154 insertions, 0 deletions
diff --git a/dbaccess/CppunitTest_dbaccess_firebird_test.mk b/dbaccess/CppunitTest_dbaccess_firebird_test.mk
new file mode 100644
index 000000000000..c91bdb79b738
--- /dev/null
+++ b/dbaccess/CppunitTest_dbaccess_firebird_test.mk
@@ -0,0 +1,67 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_CppunitTest_CppunitTest,dbaccess_firebird_test))
+
+$(eval $(call gb_CppunitTest_add_exception_objects,dbaccess_firebird_test, \
+ dbaccess/qa/unit/firebird \
+))
+
+$(eval $(call gb_CppunitTest_use_libraries,dbaccess_firebird_test, \
+ comphelper \
+ cppu \
+ dbaxml \
+ firebird_sdbc \
+ sal \
+ subsequenttest \
+ test \
+ unotest \
+ xo \
+ $(gb_UWINAPI) \
+))
+
+$(eval $(call gb_CppunitTest_use_api,dbaccess_firebird_test,\
+ offapi \
+ oovbaapi \
+ udkapi \
+))
+
+$(eval $(call gb_CppunitTest_use_ure,dbaccess_firebird_test))
+
+$(eval $(call gb_CppunitTest_use_components,dbaccess_firebird_test,\
+ comphelper/util/comphelp \
+ configmgr/source/configmgr \
+ connectivity/source/drivers/firebird/firebird_sdbc \
+ connectivity/source/manager/sdbc2 \
+ dbaccess/util/dba \
+ dbaccess/source/filter/xml/dbaxml \
+ dbaccess/util/dbu \
+ fileaccess/source/fileacc \
+ filter/source/config/cache/filterconfig1 \
+ framework/util/fwk \
+ i18npool/util/i18npool \
+ package/source/xstor/xstor \
+ package/util/package2 \
+ sax/source/expatwrap/expwrap \
+ sfx2/util/sfx \
+ svl/source/fsstor/fsstorage \
+ svl/util/svl \
+ toolkit/util/tk \
+ ucb/source/core/ucb1 \
+ ucb/source/ucp/file/ucpfile1 \
+ xmloff/util/xo \
+))
+
+$(eval $(call gb_CppunitTest_use_configuration,dbaccess_firebird_test))
+
+$(eval $(call gb_CppunitTest_use_filter_configuration,dbaccess_firebird_test))
+
+$(eval $(call gb_CppunitTest_use_unittest_configuration,dbaccess_firebird_test))
+
+# vim: set noet sw=4 ts=4:
diff --git a/dbaccess/Module_dbaccess.mk b/dbaccess/Module_dbaccess.mk
index 142e0cdd935b..f6378a01f4f5 100644
--- a/dbaccess/Module_dbaccess.mk
+++ b/dbaccess/Module_dbaccess.mk
@@ -31,8 +31,11 @@ $(eval $(call gb_Module_add_targets,dbaccess,\
UIConfig_dbtdata \
))
+ifeq ($(ENABLE_FIREBIRD_SDBC),TRUE)
$(eval $(call gb_Module_add_check_targets,dbaccess,\
+ CppunitTest_dbaccess_firebird_test \
))
+endif
# disable test because it still fails in some situations
# CppunitTest_dbaccess_macros_test \
diff --git a/dbaccess/qa/unit/data/firebird_empty.odb b/dbaccess/qa/unit/data/firebird_empty.odb
new file mode 100644
index 000000000000..766c17db2ec9
--- /dev/null
+++ b/dbaccess/qa/unit/data/firebird_empty.odb
Binary files differ
diff --git a/dbaccess/qa/unit/firebird.cxx b/dbaccess/qa/unit/firebird.cxx
new file mode 100644
index 000000000000..c1a72ffcfdcd
--- /dev/null
+++ b/dbaccess/qa/unit/firebird.cxx
@@ -0,0 +1,84 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <comphelper/processfactory.hxx>
+#include <test/bootstrapfixture.hxx>
+#include <unotest/macros_test.hxx>
+
+#include <com/sun/star/frame/XModel.hpp>
+#include <com/sun/star/frame/Desktop.hpp>
+#include <com/sun/star/sdb/XOfficeDatabaseDocument.hpp>
+#include <com/sun/star/sdbc/XConnection.hpp>
+#include <com/sun/star/sdbc/XDataSource.hpp>
+
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::frame;
+using namespace ::com::sun::star::sdb;
+using namespace ::com::sun::star::sdbc;
+using namespace ::com::sun::star::uno;
+
+class FirebirdTest
+ : public ::test::BootstrapFixture
+ , public ::unotest::MacrosTest
+{
+public:
+ virtual void setUp();
+ virtual void tearDown();
+
+ /**
+ * Test that we connect to the database with an "empty" .odb file.
+ */
+ void testEmptyDBConnection();
+
+ CPPUNIT_TEST_SUITE(FirebirdTest);
+ CPPUNIT_TEST(testEmptyDBConnection);
+ CPPUNIT_TEST_SUITE_END();
+};
+
+/**
+ * Test the loading of an "empty" file, i.e. the embedded database has not yet
+ * been initialised (as occurs when a new .odb is created and opened by base).
+ */
+void FirebirdTest::testEmptyDBConnection()
+{
+ const OUString sFileName("/dbaccess/qa/unit/data/firebird_empty.odb");
+
+ uno::Reference< lang::XComponent > xComponent = loadFromDesktop(
+ getSrcRootURL() + sFileName);
+ CPPUNIT_ASSERT(xComponent.is());
+
+ uno::Reference< XOfficeDatabaseDocument > xDocument(xComponent, UNO_QUERY);
+ CPPUNIT_ASSERT(xDocument.is());
+
+ uno::Reference< XDataSource > xDataSource = xDocument->getDataSource();
+ CPPUNIT_ASSERT(xDataSource.is());
+
+ uno::Reference< XConnection > xConnection = xDataSource->getConnection("","");
+ CPPUNIT_ASSERT(xConnection.is());
+}
+
+void FirebirdTest::setUp()
+{
+ ::test::BootstrapFixture::setUp();
+
+ mxDesktop = ::com::sun::star::frame::Desktop::create(
+ ::comphelper::getProcessComponentContext());
+ CPPUNIT_ASSERT(mxDesktop.is());
+}
+
+void FirebirdTest::tearDown()
+{
+ test::BootstrapFixture::tearDown();
+}
+
+CPPUNIT_TEST_SUITE_REGISTRATION(FirebirdTest);
+
+CPPUNIT_PLUGIN_IMPLEMENT();
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */