Skip to content

Commit

Permalink
Actually test the different autodetect methods.
Browse files Browse the repository at this point in the history
  • Loading branch information
yunosh committed Nov 4, 2014
1 parent 0c23698 commit f720913
Show file tree
Hide file tree
Showing 11 changed files with 272 additions and 44 deletions.
98 changes: 82 additions & 16 deletions framework/Translation/package.xml
Expand Up @@ -10,7 +10,7 @@
<email>jan@horde.org</email>
<active>yes</active>
</lead>
<date>2014-02-11</date>
<date>2014-11-04</date>
<version>
<release>2.2.0</release>
<api>2.2.0</api>
Expand Down Expand Up @@ -48,16 +48,73 @@
<dir name="test">
<dir name="Horde">
<dir name="Translation">
<dir name="locale">
<dir name="de">
<dir name="LC_MESSAGES">
<file name="Horde_Other.mo" role="test" />
<file name="Horde_Other.po" role="test" />
<file name="Horde_Translation.mo" role="test" />
<file name="Horde_Translation.po" role="test" />
</dir> <!-- /test/Horde/Translation/locale/de/LC_MESSAGES -->
</dir> <!-- /test/Horde/Translation/locale/de -->
</dir> <!-- /test/Horde/Translation/locale -->
<dir name="fixtures">
<dir name="composer">
<dir name="data">
<dir name="locale">
<dir name="de">
<dir name="LC_MESSAGES">
<file name="Horde_Translation.mo" role="test" />
<file name="Horde_Translation.po" role="test" />
</dir> <!-- /test/Horde/Translation/fixtures/composer/data/locale/de/LC_MESSAGES -->
</dir> <!-- /test/Horde/Translation/fixtures/composer/data/locale/de -->
</dir> <!-- /test/Horde/Translation/fixtures/composer/data/locale -->
</dir> <!-- /test/Horde/Translation/fixtures/composer/data -->
<dir name="Horde">
<dir name="Translation">
<file name="TestAutodetectComposer.php" role="test" />
</dir> <!-- /test/Horde/Translation/fixtures/composer/Horde/Translation -->
</dir> <!-- /test/Horde/Translation/fixtures/composer/Horde -->
</dir> <!-- /test/Horde/Translation/fixtures/composer -->
<dir name="locale">
<dir name="de">
<dir name="LC_MESSAGES">
<file name="Horde_Other.mo" role="test" />
<file name="Horde_Other.po" role="test" />
<file name="Horde_Translation.mo" role="test" />
<file name="Horde_Translation.po" role="test" />
</dir> <!-- /test/Horde/Translation/fixtures/locale/de/LC_MESSAGES -->
</dir> <!-- /test/Horde/Translation/fixtures/locale/de -->
</dir> <!-- /test/Horde/Translation/fixtures/locale -->
<dir name="pear">
<dir name="data">
<dir name="Horde_Translation">
<dir name="locale">
<dir name="de">
<dir name="LC_MESSAGES">
<file name="Horde_Translation.mo" role="test" />
<file name="Horde_Translation.po" role="test" />
</dir> <!-- /test/Horde/Translation/fixtures/pear/data/Horde_Translation/locale/de/LC_MESSAGES -->
</dir> <!-- /test/Horde/Translation/fixtures/pear/data/Horde_Translation/locale/de -->
</dir> <!-- /test/Horde/Translation/fixtures/pear/data/Horde_Translation/locale -->
</dir> <!-- /test/Horde/Translation/fixtures/pear/data/Horde_Translation -->
</dir> <!-- /test/Horde/Translation/fixtures/pear/data -->
<dir name="php">
<dir name="Horde">
<dir name="Translation">
<file name="TestAutodetectPear.php" role="test" />
</dir> <!-- /test/Horde/Translation/fixtures/pear/php/Horde/Translation -->
</dir> <!-- /test/Horde/Translation/fixtures/pear/php/Horde -->
</dir> <!-- /test/Horde/Translation/fixtures/pear/php -->
</dir> <!-- /test/Horde/Translation/fixtures/pear -->
<dir name="source">
<dir name="lib">
<dir name="Horde">
<dir name="Translation">
<file name="TestAutodetectSource.php" role="test" />
</dir> <!-- /test/Horde/Translation/fixtures/source/lib/Horde/Translation -->
</dir> <!-- /test/Horde/Translation/fixtures/source/lib/Horde -->
</dir> <!-- /test/Horde/Translation/fixtures/source/lib -->
<dir name="locale">
<dir name="de">
<dir name="LC_MESSAGES">
<file name="Horde_Translation.mo" role="test" />
<file name="Horde_Translation.po" role="test" />
</dir> <!-- /test/Horde/Translation/fixtures/source/locale/de/LC_MESSAGES -->
</dir> <!-- /test/Horde/Translation/fixtures/source/locale/de -->
</dir> <!-- /test/Horde/Translation/fixtures/source/locale -->
</dir> <!-- /test/Horde/Translation/fixtures/source -->
</dir> <!-- /test/Horde/Translation/fixtures -->
<file name="AllTests.php" role="test" />
<file name="AutodetectTest.php" role="test" />
<file name="bootstrap.php" role="test" />
Expand Down Expand Up @@ -109,11 +166,20 @@
<install as="Horde/Translation/phpunit.xml" name="test/Horde/Translation/phpunit.xml" />
<install as="Horde/Translation/TestBase.php" name="test/Horde/Translation/TestBase.php" />
<install as="Horde/Translation/WrapperTest.php" name="test/Horde/Translation/WrapperTest.php" />
<install as="Horde/Translation/locale/de/LC_MESSAGES/Horde_Other.mo" name="test/Horde/Translation/locale/de/LC_MESSAGES/Horde_Other.mo" />
<install as="Horde/Translation/locale/de/LC_MESSAGES/Horde_Other.po" name="test/Horde/Translation/locale/de/LC_MESSAGES/Horde_Other.po" />
<install as="Horde/Translation/locale/de/LC_MESSAGES/Horde_Translation.mo" name="test/Horde/Translation/locale/de/LC_MESSAGES/Horde_Translation.mo" />
<install as="Horde/Translation/locale/de/LC_MESSAGES/Horde_Translation.po" name="test/Horde/Translation/locale/de/LC_MESSAGES/Horde_Translation.po" />
</filelist>
<install as="Horde/Translation/fixtures/composer/data/locale/de/LC_MESSAGES/Horde_Translation.mo" name="test/Horde/Translation/fixtures/composer/data/locale/de/LC_MESSAGES/Horde_Translation.mo" />
<install as="Horde/Translation/fixtures/composer/data/locale/de/LC_MESSAGES/Horde_Translation.po" name="test/Horde/Translation/fixtures/composer/data/locale/de/LC_MESSAGES/Horde_Translation.po" />
<install as="Horde/Translation/fixtures/composer/Horde/Translation/TestAutodetectComposer.php" name="test/Horde/Translation/fixtures/composer/Horde/Translation/TestAutodetectComposer.php" />
<install as="Horde/Translation/fixtures/locale/de/LC_MESSAGES/Horde_Other.mo" name="test/Horde/Translation/fixtures/locale/de/LC_MESSAGES/Horde_Other.mo" />
<install as="Horde/Translation/fixtures/locale/de/LC_MESSAGES/Horde_Other.po" name="test/Horde/Translation/fixtures/locale/de/LC_MESSAGES/Horde_Other.po" />
<install as="Horde/Translation/fixtures/locale/de/LC_MESSAGES/Horde_Translation.mo" name="test/Horde/Translation/fixtures/locale/de/LC_MESSAGES/Horde_Translation.mo" />
<install as="Horde/Translation/fixtures/locale/de/LC_MESSAGES/Horde_Translation.po" name="test/Horde/Translation/fixtures/locale/de/LC_MESSAGES/Horde_Translation.po" />
<install as="Horde/Translation/fixtures/pear/data/Horde_Translation/locale/de/LC_MESSAGES/Horde_Translation.mo" name="test/Horde/Translation/fixtures/pear/data/Horde_Translation/locale/de/LC_MESSAGES/Horde_Translation.mo" />
<install as="Horde/Translation/fixtures/pear/data/Horde_Translation/locale/de/LC_MESSAGES/Horde_Translation.po" name="test/Horde/Translation/fixtures/pear/data/Horde_Translation/locale/de/LC_MESSAGES/Horde_Translation.po" />
<install as="Horde/Translation/fixtures/pear/php/Horde/Translation/TestAutodetectPear.php" name="test/Horde/Translation/fixtures/pear/php/Horde/Translation/TestAutodetectPear.php" />
<install as="Horde/Translation/fixtures/source/lib/Horde/Translation/TestAutodetectSource.php" name="test/Horde/Translation/fixtures/source/lib/Horde/Translation/TestAutodetectSource.php" />
<install as="Horde/Translation/fixtures/source/locale/de/LC_MESSAGES/Horde_Translation.mo" name="test/Horde/Translation/fixtures/source/locale/de/LC_MESSAGES/Horde_Translation.mo" />
<install as="Horde/Translation/fixtures/source/locale/de/LC_MESSAGES/Horde_Translation.po" name="test/Horde/Translation/fixtures/source/locale/de/LC_MESSAGES/Horde_Translation.po" />
</filelist>
</phprelease>
<changelog>
<release>
Expand Down
86 changes: 58 additions & 28 deletions framework/Translation/test/Horde/Translation/AutodetectTest.php
@@ -1,7 +1,4 @@
<?php

require_once __DIR__ . '/TestBase.php';

/**
* @author Jan Schneider <jan@horde.org>
* @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
Expand All @@ -11,39 +8,72 @@
*/
class Horde_Translation_AutodetectTest extends Horde_Translation_TestBase
{
public function testAutodetect()
public function testAutodetectSource()
{
$this->assertEquals('Heute', Horde_Translation_TestAutodetectA::t('Today'));
$this->assertEquals('Today', Horde_Translation_TestAutodetectA::r('Today'));
$this->assertEquals('1 Woche', sprintf(Horde_Translation_TestAutodetectA::ngettext('%d week', '%d weeks', 1), 1));

$this->assertEquals('Morgen', Horde_Translation_TestAutodetectB::t('Tomorrow'));
$this->assertEquals('Tomorrow', Horde_Translation_TestAutodetectB::r('Tomorrow'));
require __DIR__ . '/fixtures/source/lib/Horde/Translation/TestAutodetectSource.php';
$this->assertEquals(
'Heute',
Horde_Translation_TestAutodetectSource::t('Today')
);
$this->assertEquals(
'Today',
Horde_Translation_TestAutodetectSource::r('Today')
);
$this->assertEquals(
'1 Woche',
sprintf(
Horde_Translation_TestAutodetectSource::ngettext(
'%d week',
'%d weeks',
1),
1
)
);
}
}

class Horde_Translation_TestAutodetectA extends Horde_Translation_Autodetect
{
protected static $_domain = 'Horde_Translation';
protected static $_pearDirectory = '@data_dir@';

protected static function _getSearchDirectories()
public function testAutodetectPear()
{
return array(
__DIR__ . '/locale'
require __DIR__ . '/fixtures/pear/php/Horde/Translation/TestAutodetectPear.php';
$this->assertEquals(
'Heute',
Horde_Translation_TestAutodetectPear::t('Today')
);
$this->assertEquals(
'Today',
Horde_Translation_TestAutodetectPear::r('Today')
);
$this->assertEquals(
'1 Woche',
sprintf(
Horde_Translation_TestAutodetectPear::ngettext(
'%d week',
'%d weeks',
1),
1
)
);
}
}

class Horde_Translation_TestAutodetectB extends Horde_Translation_Autodetect
{
protected static $_domain = 'Horde_Other';
protected static $_pearDirectory = '@data_dir@';

protected static function _getSearchDirectories()
public function testAutodetectComposer()
{
return array(
__DIR__ . '/locale'
require __DIR__ . '/fixtures/composer/Horde/Translation/TestAutodetectComposer.php';
$this->assertEquals(
'Heute',
Horde_Translation_TestAutodetectComposer::t('Today')
);
$this->assertEquals(
'Today',
Horde_Translation_TestAutodetectComposer::r('Today')
);
$this->assertEquals(
'1 Woche',
sprintf(
Horde_Translation_TestAutodetectComposer::ngettext(
'%d week',
'%d weeks',
1),
1
)
);
}
}
@@ -0,0 +1,13 @@
<?php
/**
* @author Jan Schneider <jan@horde.org>
* @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
* @category Horde
* @package Translation
* @subpackage UnitTests
*/
class Horde_Translation_TestAutodetectComposer extends Horde_Translation_Autodetect
{
protected static $_domain = 'Horde_Translation';
protected static $_pearDirectory = '/non/existant/directory';
}
Binary file not shown.
@@ -0,0 +1,31 @@
# German test translation for Horde_Translation.
# Copyright 2010-2014 Horde LLC (http://www.horde.org/)
# Jan Schneider <jan@horde.org>, 2010.
msgid ""
msgstr ""
"Project-Id-Version: Horde_Translation\n"
"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
"POT-Creation-Date: 2010-08-17 18:32+0200\n"
"PO-Revision-Date: 2010-08-25 13:24+0200\n"
"Last-Translator: Jan Schneider <jan@horde.org>\n"
"Language-Team: German <dev@lists.horde.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

msgid "Today"
msgstr "Heute"

msgid "Beautiful"
msgstr "Schön"

#, php-format
msgid "%d days"
msgstr "%d Tage"

#, php-format
msgid "%d week"
msgid_plural "%d weeks"
msgstr[0] "%d Woche"
msgstr[1] "%d Wochen"
Binary file not shown.
@@ -0,0 +1,31 @@
# German test translation for Horde_Translation.
# Copyright 2010-2014 Horde LLC (http://www.horde.org/)
# Jan Schneider <jan@horde.org>, 2010.
msgid ""
msgstr ""
"Project-Id-Version: Horde_Translation\n"
"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
"POT-Creation-Date: 2010-08-17 18:32+0200\n"
"PO-Revision-Date: 2010-08-25 13:24+0200\n"
"Last-Translator: Jan Schneider <jan@horde.org>\n"
"Language-Team: German <dev@lists.horde.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

msgid "Today"
msgstr "Heute"

msgid "Beautiful"
msgstr "Schön"

#, php-format
msgid "%d days"
msgstr "%d Tage"

#, php-format
msgid "%d week"
msgid_plural "%d weeks"
msgstr[0] "%d Woche"
msgstr[1] "%d Wochen"
@@ -0,0 +1,13 @@
<?php
/**
* @author Jan Schneider <jan@horde.org>
* @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
* @category Horde
* @package Translation
* @subpackage UnitTests
*/
class Horde_Translation_TestAutodetectPear extends Horde_Translation_Autodetect
{
protected static $_domain = 'Horde_Translation';
protected static $_pearDirectory = '../../../data';
}
@@ -0,0 +1,13 @@
<?php
/**
* @author Jan Schneider <jan@horde.org>
* @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
* @category Horde
* @package Translation
* @subpackage UnitTests
*/
class Horde_Translation_TestAutodetectSource extends Horde_Translation_Autodetect
{
protected static $_domain = 'Horde_Translation';
protected static $_pearDirectory = '@data_dir@';
}
Binary file not shown.
@@ -0,0 +1,31 @@
# German test translation for Horde_Translation.
# Copyright 2010-2014 Horde LLC (http://www.horde.org/)
# Jan Schneider <jan@horde.org>, 2010.
msgid ""
msgstr ""
"Project-Id-Version: Horde_Translation\n"
"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
"POT-Creation-Date: 2010-08-17 18:32+0200\n"
"PO-Revision-Date: 2010-08-25 13:24+0200\n"
"Last-Translator: Jan Schneider <jan@horde.org>\n"
"Language-Team: German <dev@lists.horde.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

msgid "Today"
msgstr "Heute"

msgid "Beautiful"
msgstr "Schön"

#, php-format
msgid "%d days"
msgstr "%d Tage"

#, php-format
msgid "%d week"
msgid_plural "%d weeks"
msgstr[0] "%d Woche"
msgstr[1] "%d Wochen"

0 comments on commit f720913

Please sign in to comment.