aboutsummaryrefslogtreecommitdiffstats
path: root/library/intl/tests/Language/LanguageRepositoryTest.php
diff options
context:
space:
mode:
authorRedMatrix <info@friendica.com>2014-12-31 10:21:53 +1100
committerRedMatrix <info@friendica.com>2014-12-31 10:21:53 +1100
commit7b0b0dd76f97118e5cae64c2d444d9343da7074c (patch)
tree895de27ff85b372fd9bbb5f829942e329001a7ef /library/intl/tests/Language/LanguageRepositoryTest.php
parent4a82967639e662821de177e3bd829b735b4eb24e (diff)
parentb54bbf0fb8af72bd5273597f564f084aa1c1ac79 (diff)
downloadvolse-hubzilla-7b0b0dd76f97118e5cae64c2d444d9343da7074c.tar.gz
volse-hubzilla-7b0b0dd76f97118e5cae64c2d444d9343da7074c.tar.bz2
volse-hubzilla-7b0b0dd76f97118e5cae64c2d444d9343da7074c.zip
Merge pull request #794 from pafcu/lang
Language names via intl library.
Diffstat (limited to 'library/intl/tests/Language/LanguageRepositoryTest.php')
-rw-r--r--library/intl/tests/Language/LanguageRepositoryTest.php92
1 files changed, 92 insertions, 0 deletions
diff --git a/library/intl/tests/Language/LanguageRepositoryTest.php b/library/intl/tests/Language/LanguageRepositoryTest.php
new file mode 100644
index 000000000..ea52cbf4c
--- /dev/null
+++ b/library/intl/tests/Language/LanguageRepositoryTest.php
@@ -0,0 +1,92 @@
+<?php
+
+namespace CommerceGuys\Intl\Tests\Language;
+
+use CommerceGuys\Intl\Language\LanguageRepository;
+use org\bovigo\vfs\vfsStream;
+
+/**
+ * @coversDefaultClass \CommerceGuys\Intl\Language\LanguageRepository
+ */
+class LanguageRepositoryTest extends \PHPUnit_Framework_TestCase
+{
+ /**
+ * English language definitions.
+ *
+ * @var array
+ */
+ protected $englishDefinitions = array(
+ 'en' => array(
+ 'code' => 'en',
+ 'name' => 'English',
+ ),
+ 'fr' => array(
+ 'code' => 'fr',
+ 'name' => 'French',
+ ),
+ );
+
+ /**
+ * @covers ::__construct
+ */
+ public function testConstructor()
+ {
+ // Mock the existence of JSON definitions on the filesystem.
+ $root = vfsStream::setup('resources');
+ vfsStream::newFile('language/en.json')->at($root)->setContent(json_encode($this->englishDefinitions));
+
+ // Instantiate the language repository and confirm that the definition path
+ // was properly set.
+ $languageRepository = new LanguageRepository('vfs://resources/language/');
+ $definitionPath = $this->getObjectAttribute($languageRepository, 'definitionPath');
+ $this->assertEquals('vfs://resources/language/', $definitionPath);
+
+ return $languageRepository;
+ }
+
+ /**
+ * @covers ::get
+ * @covers ::loadDefinitions
+ * @covers ::createLanguageFromDefinition
+ * @uses \CommerceGuys\Intl\Language\Language
+ * @uses \CommerceGuys\Intl\LocaleResolverTrait
+ * @depends testConstructor
+ */
+ public function testGet($languageRepository)
+ {
+ $language = $languageRepository->get('en');
+ $this->assertInstanceOf('CommerceGuys\\Intl\\Language\\Language', $language);
+ $this->assertEquals('en', $language->getLanguageCode());
+ $this->assertEquals('English', $language->getName());
+ $this->assertEquals('en', $language->getLocale());
+ }
+
+ /**
+ * @covers ::get
+ * @covers ::loadDefinitions
+ * @uses \CommerceGuys\Intl\LocaleResolverTrait
+ * @expectedException \CommerceGuys\Intl\Exception\UnknownLanguageException
+ * @depends testConstructor
+ */
+ public function testGetInvalidLanguage($languageRepository)
+ {
+ $languageRepository->get('de');
+ }
+
+ /**
+ * @covers ::getAll
+ * @covers ::loadDefinitions
+ * @covers ::createLanguageFromDefinition
+ * @uses \CommerceGuys\Intl\Language\Language
+ * @uses \CommerceGuys\Intl\LocaleResolverTrait
+ * @depends testConstructor
+ */
+ public function testGetAll($languageRepository)
+ {
+ $languages = $languageRepository->getAll();
+ $this->assertArrayHasKey('en', $languages);
+ $this->assertArrayHasKey('fr', $languages);
+ $this->assertEquals('en', $languages['en']->getLanguageCode());
+ $this->assertEquals('fr', $languages['fr']->getLanguageCode());
+ }
+}