summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorIgor Scheller <igor.scheller@igorshp.de>2018-10-18 23:34:18 +0200
committermsquare <msquare@notrademark.de>2018-10-30 22:50:22 +0100
commitb443b53919f50bd0176e7b67dfd1efc28276a770 (patch)
treedf4d089d9d431f5223a71e6b40f9d87361705929 /tests
parent90e1a949623ead173c0952f802d7b5c5487251b1 (diff)
Translation: added pluralization support
Diffstat (limited to 'tests')
-rw-r--r--tests/Unit/Helpers/TranslatorTest.php43
-rw-r--r--tests/Unit/HelpersTest.php20
-rw-r--r--tests/Unit/Renderer/Twig/Extensions/TranslationTest.php1
3 files changed, 54 insertions, 10 deletions
diff --git a/tests/Unit/Helpers/TranslatorTest.php b/tests/Unit/Helpers/TranslatorTest.php
index 396d2b65..34050e42 100644
--- a/tests/Unit/Helpers/TranslatorTest.php
+++ b/tests/Unit/Helpers/TranslatorTest.php
@@ -10,12 +10,12 @@ use stdClass;
class TranslatorTest extends ServiceProviderTest
{
/**
- * @covers \Engelsystem\Helpers\Translator::__construct()
- * @covers \Engelsystem\Helpers\Translator::setLocale()
- * @covers \Engelsystem\Helpers\Translator::setLocales()
- * @covers \Engelsystem\Helpers\Translator::getLocale()
- * @covers \Engelsystem\Helpers\Translator::getLocales()
- * @covers \Engelsystem\Helpers\Translator::hasLocale()
+ * @covers \Engelsystem\Helpers\Translator::__construct
+ * @covers \Engelsystem\Helpers\Translator::setLocale
+ * @covers \Engelsystem\Helpers\Translator::setLocales
+ * @covers \Engelsystem\Helpers\Translator::getLocale
+ * @covers \Engelsystem\Helpers\Translator::getLocales
+ * @covers \Engelsystem\Helpers\Translator::hasLocale
*/
public function testInit()
{
@@ -47,7 +47,8 @@ class TranslatorTest extends ServiceProviderTest
}
/**
- * @covers \Engelsystem\Helpers\Translator::translate()
+ * @covers \Engelsystem\Helpers\Translator::translate
+ * @covers \Engelsystem\Helpers\Translator::replaceText
*/
public function testTranslate()
{
@@ -56,14 +57,36 @@ class TranslatorTest extends ServiceProviderTest
->setConstructorArgs(['de_DE.UTF-8', ['de_DE.UTF-8' => 'Deutsch']])
->setMethods(['translateGettext'])
->getMock();
- $translator->expects($this->once())
+ $translator->expects($this->exactly(2))
->method('translateGettext')
- ->with('My favourite number is %u!')
- ->willReturn('Meine Lieblingszahl ist die %u!');
+ ->withConsecutive(['Hello!'], ['My favourite number is %u!'])
+ ->willReturnOnConsecutiveCalls('Hallo!', 'Meine Lieblingszahl ist die %u!');
+
+ $return = $translator->translate('Hello!');
+ $this->assertEquals('Hallo!', $return);
$return = $translator->translate('My favourite number is %u!', [3]);
$this->assertEquals('Meine Lieblingszahl ist die 3!', $return);
}
+
+ /**
+ * @covers \Engelsystem\Helpers\Translator::translatePlural
+ */
+ public function testTranslatePlural()
+ {
+ /** @var Translator|MockObject $translator */
+ $translator = $this->getMockBuilder(Translator::class)
+ ->setConstructorArgs(['de_DE.UTF-8', ['de_DE.UTF-8' => 'Deutsch']])
+ ->setMethods(['translateGettextPlural'])
+ ->getMock();
+ $translator->expects($this->once())
+ ->method('translateGettextPlural')
+ ->with('%s apple', '%s apples', 2)
+ ->willReturn('2 Äpfel');
+
+ $return = $translator->translatePlural('%s apple', '%s apples', 2, [2]);
+ $this->assertEquals('2 Äpfel', $return);
+ }
}
diff --git a/tests/Unit/HelpersTest.php b/tests/Unit/HelpersTest.php
index b9cedd30..b36abc64 100644
--- a/tests/Unit/HelpersTest.php
+++ b/tests/Unit/HelpersTest.php
@@ -219,6 +219,26 @@ class HelpersTest extends TestCase
}
/**
+ * @covers \_e
+ */
+ public function testTranslatePlural()
+ {
+ /** @var Translator|MockObject $translator */
+ $translator = $this->getMockBuilder(Translator::class)
+ ->disableOriginalConstructor()
+ ->getMock();
+
+ $this->getAppMock('translator', $translator);
+
+ $translator->expects($this->once())
+ ->method('translatePlural')
+ ->with('One: %u', 'Multiple: %u', 4, [4])
+ ->willReturn('Multiple: 4');
+
+ $this->assertEquals('Multiple: 4', _e('One: %u', 'Multiple: %u', 4, [4]));
+ }
+
+ /**
* @covers \url
*/
public function testUrl()
diff --git a/tests/Unit/Renderer/Twig/Extensions/TranslationTest.php b/tests/Unit/Renderer/Twig/Extensions/TranslationTest.php
index f1548604..18705683 100644
--- a/tests/Unit/Renderer/Twig/Extensions/TranslationTest.php
+++ b/tests/Unit/Renderer/Twig/Extensions/TranslationTest.php
@@ -40,6 +40,7 @@ class TranslationTest extends ExtensionTest
$functions = $extension->getFunctions();
$this->assertExtensionExists('__', [$translator, 'translate'], $functions);
+ $this->assertExtensionExists('_e', [$translator, 'translatePlural'], $functions);
}
/**