Koha/t
Jonathan Druart cc8f3dc1cc Bug 20540: Fix TransformHtmlToXml if last tag is empty
This bug has been found during testing bug 19289.

In some conditions C4::Biblio::TransformHtmlToXml will generate a malformed XML structure. The last </datafield> can be duplicated.

For instance, if a call like:
my $xml = TransformHtmlToXml( \@tags, \@subfields, \@field_values );

with the last value of @field_values is empty, it will return:

<?xml version="1.0" encoding="UTF-8"?>
<collection
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd"
  xmlns="http://www.loc.gov/MARC21/slim">
<record>
<datafield2 tag="020" ind1=" " ind2=" ">
<subfield code="a">l</subfield>
</datafield>
<datafield1 tag="100" ind1=" " ind2=" ">
<subfield code="a">k</subfield>
</datafield>
<datafield1 tag="245" ind1=" " ind2=" ">
<subfield code="a">k</subfield>
</datafield>
<datafield1 tag="250" ind1=" " ind2=" ">
<subfield code="a">k</subfield>
</datafield>
<datafield1 tag="260" ind1=" " ind2=" ">
<subfield code="b">k</subfield>
<subfield code="c">k</subfield>
</datafield>
</datafield>
</record>
</collection>

Which will result later in the following error:
:23: parser error : Opening and ending tag mismatch: record line 6 and datafield
</datafield>
            ^
:24: parser error : Opening and ending tag mismatch: collection line 2 and record
</record>
         ^
:25: parser error : Extra content at the end of the document
</collection>

Test plan:
You can test it along with bug 19289 and confirm that it fixes the problem
raised on bug 19289 comment 30

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2018-04-11 16:45:19 -03:00
..
Acquisition
Biblio Bug 20540: Fix TransformHtmlToXml if last tag is empty 2018-04-11 16:45:19 -03:00
Budgets
Circulation
db_dependent Bug 18625: (QA follow-up) Unit tests 2018-04-11 16:45:10 -03:00
edi_testfiles
etc
External
Koha Bug 20181: Unit tests 2018-04-06 14:51:37 -03:00
lib Bug 20045: Fix Selenium tests 2018-03-27 12:03:51 -03:00
Members
Number Bug 4078: Fix test when fr_FR.UTF-8 is installed 2018-03-23 13:24:15 -03:00
Search
Serials
SIP
Test
00-checkdatabase-version.t
00-deprecated.t
00-load.t Bug 20042: 00-load.t fails when Elasticsearch is not installed 2018-01-19 15:13:40 -03:00
00-merge-conflict-markers.t
00-testcritic.t
00-valid-xml.t
Auth_with_shibboleth.t
AuthoritiesMarc_MARC21.t
AuthoritiesMarc_UNIMARC.t
AuthUtils.t
Barcodes_annual.t
Barcodes_EAN13.t
Barcodes_hbyymmincr.t
Barcodes_incremental.t
Biblio.t
Biblio2.t
Bookseller.t
Boolean.t
Budgets.t
Cache.t
Calendar.t
Charset.t
Circulation_barcodedecode.t
ClassSortRoutine.t
ClassSortRoutine_Dewey.t
ClassSortRoutine_Generic.t
ClassSortRoutine_LCC.t
ClassSource.t
Context.t
Contract.t
Creators.t
DateUtils.t Bug 18330: Add RFC3339 to Koha::DateUtils 2017-12-14 16:58:22 -03:00
Debug.t
dummy.t
Edifact.t
EdiInvoice.t
Ediorder.t
Ediordrsp.t
Form_MessagingPreferences.t
Heading.t
HtmlTags.t
Images.t
ImportBatch.t
Installer_PerlDependencies.t
Installer_PerlModules.t
Installer_pm.t
ItemCirculationAlertPreference.t
Koha.t
Koha_Email.t
Koha_ExternalContent_OverDrive.t
Koha_MetadataRecord.t
Koha_Template_Plugin_Cache.t
Koha_Template_Plugin_Koha.t
Koha_Template_Plugin_KohaPlugins.t Bug 20181: (follow-up) Ensure test runs 2018-04-06 14:51:38 -03:00
Koha_Util_FrameworkPlugin.t
Koha_Util_MARC.t
Labels.t
Labels_split_ccn.t
Labels_split_ddcn.t
Labels_split_lccn.t
Languages.t
Letters.t
Log.t
Logger.t
Makefile.t Bug 20267: .gitignore do not need to be mapped in Makefile 2018-03-26 19:35:07 -03:00
Matcher.t
Members_Attributes.t
Members_AttributeTypes.t
Members_Messaging.t
NorwegianPatronDB.t
OpenLibrarySearch.t
Output.t Bug 20422: Add unit test to Output.t for parametrized_url 2018-03-26 17:31:13 -03:00
Output_JSONStream.t
Patron.t
Patroncards.t
Patroncards_Batch.t
Patroncards_Layout.t
Patroncards_Lib.t
Patroncards_Patroncard.t
Patroncards_Profile.t
Patroncards_Template.t
perlcriticrc
Prices.t Bug 20466: Fix fixture syntax in t/Prices.t 2018-03-23 13:24:14 -03:00
Print.t
QueryParser.t
RecordProcessor.t
Ris.t
Scheduler.t
Scrubber.t
Search.t
Search_PazPar2.t
SimpleMARC.t
SMS.t
SocialData.t
Stats.t
SuggestionEngine.t
SuggestionEngine_AuthorityFile.t
timezones.t Bug 18674: TZ error handling 2018-04-11 16:45:08 -03:00
TmplToken.t
Token.t
XSLT.t