From 4f5b44bd3bd490309eb2ba7b44df4769816ba729 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20L=C5=93uillet?= Date: Sat, 3 Aug 2013 19:26:54 +0200 Subject: twig implementation --- .../Tests/ResourceBundle/LanguageBundleTest.php | 197 +++++++++++++++++++++ 1 file changed, 197 insertions(+) create mode 100644 vendor/symfony/intl/Symfony/Component/Intl/Tests/ResourceBundle/LanguageBundleTest.php (limited to 'vendor/symfony/intl/Symfony/Component/Intl/Tests/ResourceBundle/LanguageBundleTest.php') diff --git a/vendor/symfony/intl/Symfony/Component/Intl/Tests/ResourceBundle/LanguageBundleTest.php b/vendor/symfony/intl/Symfony/Component/Intl/Tests/ResourceBundle/LanguageBundleTest.php new file mode 100644 index 00000000..96031fc7 --- /dev/null +++ b/vendor/symfony/intl/Symfony/Component/Intl/Tests/ResourceBundle/LanguageBundleTest.php @@ -0,0 +1,197 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Intl\Tests\ResourceBundle; + +use Symfony\Component\Intl\ResourceBundle\LanguageBundle; + +/** + * @author Bernhard Schussek + */ +class LanguageBundleTest extends \PHPUnit_Framework_TestCase +{ + const RES_DIR = '/base/lang'; + + /** + * @var LanguageBundle + */ + private $bundle; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + private $reader; + + protected function setUp() + { + $this->reader = $this->getMock('Symfony\Component\Intl\ResourceBundle\Reader\StructuredBundleReaderInterface'); + $this->bundle = new LanguageBundle(self::RES_DIR, $this->reader); + } + + public function testGetLanguageName() + { + $languages = array( + 'de' => 'German', + 'en' => 'English', + ); + + $this->reader->expects($this->once()) + ->method('readEntry') + ->with(self::RES_DIR, 'en', array('Languages')) + ->will($this->returnValue($languages)); + + $this->assertSame('German', $this->bundle->getLanguageName('de', null, 'en')); + } + + public function testGetLanguageNameWithRegion() + { + $languages = array( + 'de' => 'German', + 'en' => 'English', + 'en_GB' => 'British English', + ); + + $this->reader->expects($this->once()) + ->method('readEntry') + ->with(self::RES_DIR, 'en', array('Languages')) + ->will($this->returnValue($languages)); + + $this->assertSame('British English', $this->bundle->getLanguageName('en', 'GB', 'en')); + } + + public function testGetLanguageNameWithUntranslatedRegion() + { + $languages = array( + 'de' => 'German', + 'en' => 'English', + ); + + $this->reader->expects($this->once()) + ->method('readEntry') + ->with(self::RES_DIR, 'en', array('Languages')) + ->will($this->returnValue($languages)); + + $this->assertSame('English', $this->bundle->getLanguageName('en', 'US', 'en')); + } + + public function testGetLanguageNames() + { + $sortedLanguages = array( + 'en' => 'English', + 'de' => 'German', + ); + + $this->reader->expects($this->once()) + ->method('readEntry') + ->with(self::RES_DIR, 'en', array('Languages')) + ->will($this->returnValue($sortedLanguages)); + + $this->assertSame($sortedLanguages, $this->bundle->getLanguageNames('en')); + } + + public function testGetScriptName() + { + $data = array( + 'Languages' => array( + 'de' => 'German', + 'en' => 'English', + ), + 'Scripts' => array( + 'Latn' => 'latin', + 'Cyrl' => 'cyrillique', + ), + ); + + $this->reader->expects($this->once()) + ->method('read') + ->with(self::RES_DIR, 'en') + ->will($this->returnValue($data)); + + $this->assertSame('latin', $this->bundle->getScriptName('Latn', null, 'en')); + } + + public function testGetScriptNameIncludedInLanguage() + { + $data = array( + 'Languages' => array( + 'de' => 'German', + 'en' => 'English', + 'zh_Hans' => 'Simplified Chinese', + ), + 'Scripts' => array( + 'Latn' => 'latin', + 'Cyrl' => 'cyrillique', + ), + ); + + $this->reader->expects($this->once()) + ->method('read') + ->with(self::RES_DIR, 'en') + ->will($this->returnValue($data)); + + // Null because the script is included in the language anyway + $this->assertNull($this->bundle->getScriptName('Hans', 'zh', 'en')); + } + + public function testGetScriptNameIncludedInLanguageInBraces() + { + $data = array( + 'Languages' => array( + 'de' => 'German', + 'en' => 'English', + 'zh_Hans' => 'Chinese (simplified)', + ), + 'Scripts' => array( + 'Latn' => 'latin', + 'Cyrl' => 'cyrillique', + ), + ); + + $this->reader->expects($this->once()) + ->method('read') + ->with(self::RES_DIR, 'en') + ->will($this->returnValue($data)); + + $this->assertSame('simplified', $this->bundle->getScriptName('Hans', 'zh', 'en')); + } + + public function testGetScriptNameNoScriptsBlock() + { + $data = array( + 'Languages' => array( + 'de' => 'German', + 'en' => 'English', + ), + ); + + $this->reader->expects($this->once()) + ->method('read') + ->with(self::RES_DIR, 'en') + ->will($this->returnValue($data)); + + $this->assertNull($this->bundle->getScriptName('Latn', null, 'en')); + } + + public function testGetScriptNames() + { + $sortedScripts = array( + 'Cyrl' => 'cyrillique', + 'Latn' => 'latin', + ); + + $this->reader->expects($this->once()) + ->method('readEntry') + ->with(self::RES_DIR, 'en', array('Scripts')) + ->will($this->returnValue($sortedScripts)); + + $this->assertSame($sortedScripts, $this->bundle->getScriptNames('en')); + } +} -- cgit v1.2.3