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