sw bibliography: fix missing identifier + local URL in biblio reference
Regression from commit 5fd2f212a1
(sw
bibliography, local copy: handle the bibliography database window,
2021-07-27), the problem was that the newly added LOCAL_URL column
affected BibliographyLoader::getPropertyValue(), which was not adapted,
done now.
Change-Id: Id3bd95bdd5c692048a50ce7ba2e5cdf16e824bd9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120400
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
This commit is contained in:
parent
adf65471e8
commit
13f95baecb
4 changed files with 100 additions and 2 deletions
43
extensions/CppunitTest_extensions_bibliography.mk
Normal file
43
extensions/CppunitTest_extensions_bibliography.mk
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
# -*- 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,extensions_bibliography))
|
||||||
|
|
||||||
|
$(eval $(call gb_CppunitTest_use_externals,extensions_bibliography,\
|
||||||
|
boost_headers \
|
||||||
|
))
|
||||||
|
|
||||||
|
$(eval $(call gb_CppunitTest_add_exception_objects,extensions_bibliography, \
|
||||||
|
extensions/qa/bibliography/bibliography \
|
||||||
|
))
|
||||||
|
|
||||||
|
$(eval $(call gb_CppunitTest_use_libraries,extensions_bibliography, \
|
||||||
|
comphelper \
|
||||||
|
cppu \
|
||||||
|
sal \
|
||||||
|
test \
|
||||||
|
unotest \
|
||||||
|
))
|
||||||
|
|
||||||
|
$(eval $(call gb_CppunitTest_use_sdk_api,extensions_bibliography))
|
||||||
|
|
||||||
|
$(eval $(call gb_CppunitTest_use_ure,extensions_bibliography))
|
||||||
|
$(eval $(call gb_CppunitTest_use_vcl,extensions_bibliography))
|
||||||
|
|
||||||
|
$(eval $(call gb_CppunitTest_use_rdb,extensions_bibliography,services))
|
||||||
|
|
||||||
|
$(eval $(call gb_CppunitTest_use_custom_headers,extensions_bibliography,\
|
||||||
|
officecfg/registry \
|
||||||
|
))
|
||||||
|
|
||||||
|
$(eval $(call gb_CppunitTest_use_configuration,extensions_bibliography))
|
||||||
|
|
||||||
|
# vim: set noet sw=4 ts=4:
|
|
@ -42,6 +42,10 @@ $(eval $(call gb_Module_add_targets,extensions,\
|
||||||
Library_bib \
|
Library_bib \
|
||||||
))
|
))
|
||||||
|
|
||||||
|
$(eval $(call gb_Module_add_check_targets,extensions,\
|
||||||
|
CppunitTest_extensions_bibliography \
|
||||||
|
))
|
||||||
|
|
||||||
ifneq (,$(filter DBCONNECTIVITY,$(BUILD_TYPE)))
|
ifneq (,$(filter DBCONNECTIVITY,$(BUILD_TYPE)))
|
||||||
$(eval $(call gb_Module_add_targets,extensions,\
|
$(eval $(call gb_Module_add_targets,extensions,\
|
||||||
Library_dbp \
|
Library_dbp \
|
||||||
|
|
50
extensions/qa/bibliography/bibliography.cxx
Normal file
50
extensions/qa/bibliography/bibliography.cxx
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
/* -*- 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 <test/bootstrapfixture.hxx>
|
||||||
|
#include <unotest/macros_test.hxx>
|
||||||
|
|
||||||
|
#include <com/sun/star/beans/XPropertySet.hpp>
|
||||||
|
#include <com/sun/star/frame/Bibliography.hpp>
|
||||||
|
|
||||||
|
using namespace ::com::sun::star;
|
||||||
|
|
||||||
|
namespace
|
||||||
|
{
|
||||||
|
/// Covers extensions/source/bibliography/ fixes.
|
||||||
|
class Test : public test::BootstrapFixture, public unotest::MacrosTest
|
||||||
|
{
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
CPPUNIT_TEST_FIXTURE(Test, testBibliographyLoader)
|
||||||
|
{
|
||||||
|
// Given a bibliography provider:
|
||||||
|
uno::Reference<container::XNameAccess> xBibAccess
|
||||||
|
= frame::Bibliography::create(mxComponentContext);
|
||||||
|
uno::Reference<beans::XPropertySet> xPropSet(xBibAccess, uno::UNO_QUERY);
|
||||||
|
uno::Sequence<beans::PropertyValue> aSeq;
|
||||||
|
|
||||||
|
// When getting the column names:
|
||||||
|
xPropSet->getPropertyValue("BibliographyDataFieldNames") >>= aSeq;
|
||||||
|
|
||||||
|
// Then make sure we have columns and all have non-empty names:
|
||||||
|
CPPUNIT_ASSERT(aSeq.hasElements());
|
||||||
|
|
||||||
|
// Without the accompanying fix in place, this test would have failed, as the last column
|
||||||
|
// (LOCAL_URL) had an empty field name:
|
||||||
|
for (const auto& rPair : std::as_const(aSeq))
|
||||||
|
{
|
||||||
|
CPPUNIT_ASSERT(!rPair.Name.isEmpty());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
CPPUNIT_PLUGIN_IMPLEMENT();
|
||||||
|
|
||||||
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
|
@ -563,14 +563,15 @@ Any BibliographyLoader::getPropertyValue(const OUString& rPropertyName)
|
||||||
CUSTOM3_POS , // BibliographyDataField_CUSTOM3
|
CUSTOM3_POS , // BibliographyDataField_CUSTOM3
|
||||||
CUSTOM4_POS , // BibliographyDataField_CUSTOM4
|
CUSTOM4_POS , // BibliographyDataField_CUSTOM4
|
||||||
CUSTOM5_POS , // BibliographyDataField_CUSTOM5
|
CUSTOM5_POS , // BibliographyDataField_CUSTOM5
|
||||||
ISBN_POS //BibliographyDataField_ISBN
|
ISBN_POS , // BibliographyDataField_ISBN
|
||||||
|
LOCAL_URL_POS // BibliographyDataField_LOCAL_URL
|
||||||
};
|
};
|
||||||
if(rPropertyName != "BibliographyDataFieldNames")
|
if(rPropertyName != "BibliographyDataFieldNames")
|
||||||
throw UnknownPropertyException(rPropertyName);
|
throw UnknownPropertyException(rPropertyName);
|
||||||
Sequence<PropertyValue> aSeq(COLUMN_COUNT);
|
Sequence<PropertyValue> aSeq(COLUMN_COUNT);
|
||||||
PropertyValue* pArray = aSeq.getArray();
|
PropertyValue* pArray = aSeq.getArray();
|
||||||
BibConfig* pConfig = BibModul::GetConfig();
|
BibConfig* pConfig = BibModul::GetConfig();
|
||||||
for(sal_uInt16 i = 0; i <= text::BibliographyDataField::ISBN ; i++)
|
for(sal_uInt16 i = 0; i <= text::BibliographyDataField::LOCAL_URL ; i++)
|
||||||
{
|
{
|
||||||
pArray[i].Name = pConfig->GetDefColumnName(aInternalMapping[i]);
|
pArray[i].Name = pConfig->GetDefColumnName(aInternalMapping[i]);
|
||||||
pArray[i].Value <<= static_cast<sal_Int16>(i);
|
pArray[i].Value <<= static_cast<sal_Int16>(i);
|
||||||
|
|
Loading…
Reference in a new issue