Skip to content

Commit

Permalink
Address bugs #19816 and #18959.
Browse files Browse the repository at this point in the history
    #19816: localization fails if translations contain unused internalnames
    #18959: failed tests
  • Loading branch information
kenguest committed Feb 15, 2013
1 parent b0b891a commit 85a9b0f
Show file tree
Hide file tree
Showing 10 changed files with 215 additions and 148 deletions.
8 changes: 2 additions & 6 deletions Date/Holidays/Driver.php
Expand Up @@ -914,16 +914,12 @@ function _addHoliday($internalName, $date, $title)
* @param string $title title
*
* @access protected
* @return true on success, otherwise a PEAR_Error object
* @throws object PEAR_Error DATE_HOLIDAYS_INVALID_INTERNAL_NAME
* @return true on success, otherwise false
*/
function _addTranslationForHoliday($internalName, $locale, $title)
{
if (! in_array($internalName, $this->_internalNames)) {
$msg = 'Couldn\'t add translation (' . $locale . ') ' .
'for holiday with this internal name: ' . $internalName;
return Date_Holidays::raiseError(DATE_HOLIDAYS_INVALID_INTERNAL_NAME,
$msg);
return false;
}

if (! in_array($locale, $this->_availableLocales)) {
Expand Down
1 change: 1 addition & 0 deletions lang/Christian/sv_SE.ser
@@ -0,0 +1 @@
a:1:{s:8:"holidays";a:1:{s:7:"holiday";a:16:{i:0;a:2:{s:13:"internal-name";s:11:"newYearsDay";s:11:"translation";s:11:"Nyårsdagen";}i:1;a:2:{s:13:"internal-name";s:8:"epiphany";s:11:"translation";s:12:"Trettondagen";}i:2;a:2:{s:13:"internal-name";s:6:"easter";s:11:"translation";s:10:"Påskdagen";}i:3;a:2:{s:13:"internal-name";s:10:"goodFriday";s:11:"translation";s:13:"Långfredagen";}i:4;a:2:{s:13:"internal-name";s:12:"easterMonday";s:11:"translation";s:14:"Annandag påsk";}i:5;a:2:{s:13:"internal-name";s:6:"mayDay";s:11:"translation";s:11:"Första maj";}i:6;a:2:{s:13:"internal-name";s:9:"pentecost";s:11:"translation";s:11:"Pingstdagen";}i:7;a:2:{s:13:"internal-name";s:12:"ascensionDay";s:11:"translation";s:22:"Kristi himmelfärdsdag";}i:8;a:2:{s:13:"internal-name";s:17:"swedenNationalDay";s:11:"translation";s:45:"Sveriges nationaldag och Svenska flaggans dag";}i:9;a:2:{s:13:"internal-name";s:9:"midSummer";s:11:"translation";s:14:"Midsommardagen";}i:10;a:2:{s:13:"internal-name";s:12:"midSummerEve";s:11:"translation";s:14:"Midsommarafton";}i:11;a:2:{s:13:"internal-name";s:12:"allSaintsDay";s:11:"translation";s:16:"Alla helgons dag";}i:12;a:2:{s:13:"internal-name";s:12:"christmasEve";s:11:"translation";s:8:"Julafton";}i:13;a:2:{s:13:"internal-name";s:12:"christmasDay";s:11:"translation";s:8:"Juldagen";}i:14;a:2:{s:13:"internal-name";s:9:"boxingDay";s:11:"translation";s:12:"Annandag jul";}i:15;a:2:{s:13:"internal-name";s:11:"newYearsEve";s:11:"translation";s:11:"Nyårsafton";}}}}
14 changes: 10 additions & 4 deletions tests/Date_Holidays_Driver_EnglandWales_TestSuite.php
Expand Up @@ -108,12 +108,15 @@ function setUp()
*/
function testHolidays2009()
{
$drv = Date_Holidays::factory('EnglandWales', 2009, 'en_EN');
$drv = Date_Holidays::factory('EnglandWales', 2009);
if (Date_Holidays::isError($drv)) {
$this->fail(helper_get_error_message($drv));
}
foreach ($this->testDates2009 as $name => $dateInfo) {
$day = $drv->getHoliday($name);
if (Date_Holidays::isError($day)) {
$this->fail(helper_get_error_message($day));
}
$this->assertFalse(Date_Holidays::isError($day));
$this->assertEquals($name, $day->getInternalName());
$date = $day->getDate();
Expand All @@ -131,7 +134,7 @@ function testHolidays2009()
*/
function testHolidays2010()
{
$drv = Date_Holidays::factory('EnglandWales', 2010, 'en_EN');
$drv = Date_Holidays::factory('EnglandWales', 2010);
$this->assertFalse(Date_Holidays::isError($drv));
foreach ($this->testDates2010 as $name => $dateInfo) {
$day = $drv->getHoliday($name);
Expand All @@ -153,7 +156,7 @@ public function testQueensJubilee()
* http://direct.gov.uk/en/Employment/Employees/Timeoffandholidays/DG_073741
*/

$d12 = Date_Holidays::factory('EnglandWales', 2012, 'en_EN');
$d12 = Date_Holidays::factory('EnglandWales', 2012);
$day = $d12->getHoliday('queensJubilee');
$this->assertEquals(false, Date_Holidays::isError($day));
$date = $day->getDate();
Expand All @@ -167,14 +170,17 @@ public function testQueensJubilee()
$this->assertEquals($sdate->getMonth(), 6);
$this->assertEquals($sdate->getDay(), 4);

$d11 = Date_Holidays::factory('EnglandWales', 2011, 'en_EN');
$d11 = Date_Holidays::factory('EnglandWales', 2011);
$day = $d11->getHoliday('queensJubilee');
$this->assertEquals(true, Date_Holidays::isError($day));
$this->assertEquals(
'Invalid internal name: queensJubilee',
$day->getMessage()
);
$sbd = $d11->getHoliday('springBank');
if (Date_Holidays::isError($sbd)) {
$this->fail(helper_get_error_message($sbd));
}
$sdate = $sbd->getDate();
$this->assertEquals($sdate->getYear(), 2011);
$this->assertEquals($sdate->getMonth(), 5);
Expand Down
4 changes: 2 additions & 2 deletions tests/Date_Holidays_Driver_Iceland_TestSuite.php
Expand Up @@ -223,7 +223,7 @@ function setUp()
*/
function testHolidays2007()
{
$drv = Date_Holidays::factory('Iceland', 2007, 'en_EN');
$drv = Date_Holidays::factory('Iceland', 2007);
$this->assertFalse(Date_Holidays::isError($drv), "Holidays Driver for Iceland");

foreach ($this->testDates2007 as $name => $dateInfo) {
Expand All @@ -245,7 +245,7 @@ function testHolidays2007()
*/
function testHolidays2006()
{
$drv = Date_Holidays::factory('Iceland', 2006, 'en_EN');
$drv = Date_Holidays::factory('Iceland', 2006);
$this->assertFalse(Date_Holidays::isError($drv), "Holidays Driver for Iceland");

foreach ($this->testDates2006 as $name => $dateInfo) {
Expand Down
19 changes: 15 additions & 4 deletions tests/Date_Holidays_Driver_Ireland_TestSuite.php
Expand Up @@ -133,9 +133,11 @@ function testIrishTranslations()
foreach ($this->testTranslations as $name => $translation) {
$day = $drv->getHoliday($name);
$name = $day->getInternalName();
$this->assertEquals($translation,
$this->assertEquals(
$translation,
$day->getTitle(),
"Translated title for '$name'");
"Translated title for '$name'"
);
}
}

Expand All @@ -147,11 +149,14 @@ function testIrishTranslations()
*/
function testHolidays2007()
{
$drv = Date_Holidays::factory('Ireland', 2007, 'en_EN');
$drv = Date_Holidays::factory('Ireland', 2007);
$this->assertFalse(Date_Holidays::isError($drv), "Driver construction");

foreach ($this->testDates2007 as $name => $dateInfo) {
$day = $drv->getHoliday($name);
if (Date_Holidays::isError($day)) {
$this->fail(helper_get_error_message($day));
}
$this->assertFalse(Date_Holidays::isError($day));
$this->assertEquals($name, $day->getInternalName());
$date = $day->getDate();
Expand All @@ -169,12 +174,18 @@ function testHolidays2007()
*/
function testHolidays2006()
{
$drv = Date_Holidays::factory('Ireland', 2006, 'en_EN');
$drv = Date_Holidays::factory('Ireland', 2006);
if (Date_Holidays::isError($drv)) {
$this->fail(helper_get_error_message($drv));
}
$this->assertFalse(Date_Holidays::isError($drv));

foreach ($this->testDates2006 as $name => $dateInfo) {

$day = $drv->getHoliday($name);
if (Date_Holidays::isError($day)) {
$this->fail(helper_get_error_message($day));
}
$this->assertFalse(Date_Holidays::isError($day));
$this->assertEquals($name, $day->getInternalName());
$date = $day->getDate();
Expand Down
4 changes: 2 additions & 2 deletions tests/Date_Holidays_Driver_Romania_TestSuite.php
Expand Up @@ -97,7 +97,7 @@ function setUp()
*/
function testHolidays2007()
{
$drv = Date_Holidays::factory('Romania', 2007, 'en_EN');
$drv = Date_Holidays::factory('Romania', 2007);
if (Date_Holidays::isError($drv)) {
$this->fail(helper_get_error_message($drv));
}
Expand All @@ -123,7 +123,7 @@ function testHolidays2007()
*/
function testHolidays2006()
{
$drv = Date_Holidays::factory('Romania', 2006, 'en_EN');
$drv = Date_Holidays::factory('Romania', 2006);
if (Date_Holidays::isError($drv)) {
$this->fail(helper_get_error_message($drv));
}
Expand Down
61 changes: 39 additions & 22 deletions tests/Date_Holidays_Driver_Sweden_TestSuite.php
Expand Up @@ -211,15 +211,18 @@ function testGermanTranslations()
$this->fail(helper_get_error_message($drv));
}
$result = $drv->addTranslationFile(
$this->lang_dir . '/Sweden/de_DE.xml', $locale);
$this->lang_dir . '/Sweden/de_DE.xml', $locale
);
if ($result !== true) {
$this->fail(helper_get_error_message($result));
}

$easter = $drv->getHoliday('easter');
$this->assertEquals('Ostersonntag',
$easter->getTitle(),
'Translated title for \'easter\'');
$this->assertEquals(
'Ostersonntag',
$easter->getTitle(),
'Translated title for \'easter\''
);
}

/**
Expand All @@ -237,20 +240,25 @@ function testcompiledGermanTranslations()
$this->fail(helper_get_error_message($drv));
}
$result = $drv->addCompiledTranslationFile(
$this->lang_dir . '/Sweden/de_DE.ser',$locale);
$this->lang_dir . '/Sweden/de_DE.ser', $locale
);
if ($result !== true) {
$this->fail(helper_get_error_message($result));
}

$easter = $drv->getHoliday('easter');
$this->assertEquals('Ostersonntag',
$easter->getTitle(),
'Translated title for \'easter\'');
$this->assertEquals(
'Ostersonntag',
$easter->getTitle(),
'Translated title for \'easter\''
);

$midsummerEve = $drv->getHoliday('midSummerEve');
$this->assertEquals('Mittsommerabend',
$midsummerEve->getTitle(),
'Translated title for \'midSummerEve\'');
$this->assertEquals(
'Mittsommerabend',
$midsummerEve->getTitle(),
'Translated title for \'midSummerEve\''
);
}

/**
Expand All @@ -268,15 +276,18 @@ function testSwedishTranslations()
$this->fail(helper_get_error_message($drv));
}
$result = $drv->addTranslationFile(
$this->lang_dir . '/Sweden/de_DE.xml', $locale);
$this->lang_dir . '/Sweden/de_DE.xml', $locale
);
if ($result !== true) {
$this->fail(helper_get_error_message($result));
}

$easter = $drv->getHoliday('easter');
$this->assertEquals('Ostersonntag',
$easter->getTitle(),
'Translated title for \'easter\'');
$this->assertEquals(
'Ostersonntag',
$easter->getTitle(),
'Translated title for \'easter\''
);
}

/**
Expand All @@ -294,21 +305,27 @@ function testcompiledSwedishTranslations()
$this->fail(helper_get_error_message($drv));
}
$result = $drv->addCompiledTranslationFile(
$this->lang_dir . '/Sweden/sv_SE.ser', $locale);
$this->lang_dir . '/Sweden/sv_SE.ser', $locale
);
if ($result !== true) {
$this->fail(helper_get_error_message($result));
}

$easter = $drv->getHoliday('easter');
$this->assertEquals('Påskdagen',
$easter->getTitle(),
'Translated title for \'easter\'');
$this->assertEquals(
'Påskdagen',
$easter->getTitle(),
'Translated title for \'easter\''
);

$midsummerEve = $drv->getHoliday('midSummerEve');
$this->assertEquals('Midsommarafton',
$midsummerEve->getTitle(),
'Translated title for \'midSummerEve\'');
$this->assertEquals(
'Midsommarafton',
$midsummerEve->getTitle(),
'Translated title for \'midSummerEve\''
);
}

}
// vim:set et ts=4 sw=4:
?>

0 comments on commit 85a9b0f

Please sign in to comment.