View source
<?php
class BiblioContributorTestCase extends DrupalWebTestCase {
public static function getInfo() {
return array(
'name' => 'Contributors name',
'description' => 'Test parsing different formats of contributor names and preventing duplications.',
'group' => 'Biblio',
);
}
function setUp() {
parent::setUp('biblio');
}
function testGetBiblioContributorsFromNames() {
$data = 'Bush';
$biblio_contributors = BiblioContributorUtility::getBiblioContributorsFromNames($data);
$this
->assertEqual($biblio_contributors[0]->lastname, 'Bush');
$data = ' George W. Bush ';
$biblio_contributors = BiblioContributorUtility::getBiblioContributorsFromNames($data);
$this
->assertEqual($biblio_contributors[0]->firstname, 'George');
$this
->assertEqual($biblio_contributors[0]->initials, 'W');
$this
->assertEqual($biblio_contributors[0]->lastname, 'Bush');
$data = ' Bush , George W ';
$biblio_contributors = BiblioContributorUtility::getBiblioContributorsFromNames($data);
$this
->assertEqual($biblio_contributors[0]->firstname, 'George');
$this
->assertEqual($biblio_contributors[0]->initials, 'W');
$this
->assertEqual($biblio_contributors[0]->lastname, 'Bush');
$data = ' de la Bush , George W ';
$biblio_contributors = BiblioContributorUtility::getBiblioContributorsFromNames($data);
$this
->assertEqual($biblio_contributors[0]->firstname, 'George');
$this
->assertEqual($biblio_contributors[0]->initials, 'W');
$this
->assertEqual($biblio_contributors[0]->prefix, 'de la');
$this
->assertEqual($biblio_contributors[0]->lastname, 'Bush');
$data = ' Bush , Jr. III , George W. ';
$biblio_contributors = BiblioContributorUtility::getBiblioContributorsFromNames($data);
$this
->assertEqual($biblio_contributors[0]->firstname, 'George');
$this
->assertEqual($biblio_contributors[0]->initials, 'W');
$this
->assertEqual($biblio_contributors[0]->suffix, 'Jr. III');
$this
->assertEqual($biblio_contributors[0]->lastname, 'Bush');
$data = 'George W. Bush and George Bush ';
$biblio_contributors = BiblioContributorUtility::getBiblioContributorsFromNames($data);
$this
->assertEqual($biblio_contributors[0]->firstname, 'George');
$this
->assertEqual($biblio_contributors[0]->initials, 'W');
$this
->assertEqual($biblio_contributors[0]->lastname, 'Bush');
$this
->assertEqual($biblio_contributors[1]->firstname, 'George');
$this
->assertEqual($biblio_contributors[1]->lastname, 'Bush');
$data = 'George W. Bush and George Bush and G W Bush ' . 'and Bush, George and Bush, G W and Bush, George W and de la Bush, George W ' . 'and Bush, Jr. III, George W';
$biblio_contributors = BiblioContributorUtility::getBiblioContributorsFromNames($data);
$this
->assertEqual($biblio_contributors[0]->firstname, 'George');
$this
->assertEqual($biblio_contributors[0]->initials, 'W');
$this
->assertEqual($biblio_contributors[0]->lastname, 'Bush');
$this
->assertEqual($biblio_contributors[1]->firstname, 'George');
$this
->assertEqual($biblio_contributors[1]->initials, '');
$this
->assertEqual($biblio_contributors[1]->lastname, 'Bush');
$this
->assertEqual($biblio_contributors[2]->firstname, '');
$this
->assertEqual($biblio_contributors[2]->initials, 'G W');
$this
->assertEqual($biblio_contributors[2]->lastname, 'Bush');
$this
->assertEqual($biblio_contributors[3]->firstname, 'George');
$this
->assertEqual($biblio_contributors[3]->initials, '');
$this
->assertEqual($biblio_contributors[3]->lastname, 'Bush');
$this
->assertEqual($biblio_contributors[4]->firstname, '');
$this
->assertEqual($biblio_contributors[4]->initials, 'G W');
$this
->assertEqual($biblio_contributors[4]->lastname, 'Bush');
$this
->assertEqual($biblio_contributors[5]->firstname, 'George');
$this
->assertEqual($biblio_contributors[5]->initials, 'W');
$this
->assertEqual($biblio_contributors[5]->lastname, 'Bush');
$this
->assertEqual($biblio_contributors[6]->firstname, 'George');
$this
->assertEqual($biblio_contributors[6]->initials, 'W');
$this
->assertEqual($biblio_contributors[6]->prefix, 'de la');
$this
->assertEqual($biblio_contributors[6]->lastname, 'Bush');
$this
->assertEqual($biblio_contributors[7]->firstname, 'George');
$this
->assertEqual($biblio_contributors[7]->initials, 'W');
$this
->assertEqual($biblio_contributors[7]->suffix, 'Jr. III');
$this
->assertEqual($biblio_contributors[7]->lastname, 'Bush');
}
function testDuplicateBiblioContributorsMd5() {
$data = 'Harry J. K. de la Potter and Harry J. K. de la Potter';
$biblio_contributors1 = BiblioContributorUtility::getBiblioContributorsFromNames($data);
$this
->assertEqual($biblio_contributors1[0]->cid, $biblio_contributors1[1]->cid, 'Biblio Contributor duplication was prevented.');
$data = 'Harry J. K. de la Potter';
$biblio_contributors2 = BiblioContributorUtility::getBiblioContributorsFromNames($data);
$this
->assertEqual($biblio_contributors1[0]->cid, $biblio_contributors2[0]->cid, 'Biblio Contributor duplication was prevented.');
}
}