From 94ab1005887d98461f37ba0c54fb11587deae41e Mon Sep 17 00:00:00 2001 From: Demian Katz <demian.katz@villanova.edu> Date: Thu, 26 Jul 2018 09:41:00 -0400 Subject: [PATCH] Fix Dublin Core conversion; resolves VUFIND-1295. --- .../src/VuFind/RecordDriver/DefaultRecord.php | 2 +- .../VuFindTest/RecordDriver/SolrDefaultTest.php | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/module/VuFind/src/VuFind/RecordDriver/DefaultRecord.php b/module/VuFind/src/VuFind/RecordDriver/DefaultRecord.php index 81cc76ed47b..716647b2217 100644 --- a/module/VuFind/src/VuFind/RecordDriver/DefaultRecord.php +++ b/module/VuFind/src/VuFind/RecordDriver/DefaultRecord.php @@ -1453,7 +1453,7 @@ class DefaultRecord extends AbstractBase $xml->addChild('title', htmlspecialchars($this->getTitle()), $dc); $authors = $this->getDeduplicatedAuthors(); foreach ($authors as $list) { - foreach ((array)$list as $author) { + foreach (array_keys($list) as $author) { $xml->addChild('creator', htmlspecialchars($author), $dc); } } diff --git a/module/VuFind/tests/unit-tests/src/VuFindTest/RecordDriver/SolrDefaultTest.php b/module/VuFind/tests/unit-tests/src/VuFindTest/RecordDriver/SolrDefaultTest.php index 78c13f80ff7..e01a7450d38 100644 --- a/module/VuFind/tests/unit-tests/src/VuFindTest/RecordDriver/SolrDefaultTest.php +++ b/module/VuFind/tests/unit-tests/src/VuFindTest/RecordDriver/SolrDefaultTest.php @@ -101,6 +101,22 @@ class SolrDefaultTest extends \VuFindTest\Unit\TestCase $this->assertEquals('url_ver=Z39.88-2004&ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fvufind.svn.sourceforge.net%3Agenerator&rft.title=La+congiura+dei+Principi+Napoletani+1701+%3A+%28prima+e+seconda+stesura%29+%2F&rft.date=1992&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&rft.creator=Vico%2C+Giambattista%2C+1668-1744.&rft.pub=Centro+di+Studi+Vichiani%2C&rft.format=Thingie&rft.language=Italian', $driver->getOpenUrl()); } + /** + * Test Dublin Core conversion. + * + * @return void + */ + public function testDublinCore() + { + $expected = <<<XML +<?xml version="1.0"?> +<oai_dc:dc xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd"><dc:title>La congiura dei Principi Napoletani 1701 : (prima e seconda stesura) /</dc:title><dc:creator>Vico, Giambattista, 1668-1744.</dc:creator><dc:creator>Pandolfi, Claudia.</dc:creator><dc:language>Italian</dc:language><dc:language>Latin</dc:language><dc:publisher>Centro di Studi Vichiani,</dc:publisher><dc:date>1992</dc:date><dc:subject>Naples (Kingdom) History Spanish rule, 1442-1707 Sources</dc:subject></oai_dc:dc> + +XML; + $xml = $this->getDriver()->getXML('oai_dc'); + $this->assertEquals($expected, $xml); + } + /** * Get a record driver with fake data. * -- GitLab