You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
271 lines
10 KiB
271 lines
10 KiB
2 months ago
|
<?php
|
||
|
|
||
|
declare(strict_types=1);
|
||
|
|
||
|
/**
|
||
|
* This file is part of the Carbon package.
|
||
|
*
|
||
|
* (c) Brian Nesbitt <brian@nesbot.com>
|
||
|
*
|
||
|
* For the full copyright and license information, please view the LICENSE
|
||
|
* file that was distributed with this source code.
|
||
|
*/
|
||
|
|
||
|
namespace Tests\Language;
|
||
|
|
||
|
use Carbon\Language;
|
||
|
use Tests\AbstractTestCase;
|
||
|
|
||
|
class LanguageTest extends AbstractTestCase
|
||
|
{
|
||
|
public function testAll()
|
||
|
{
|
||
|
$all = Language::all();
|
||
|
$this->assertIsArray($all);
|
||
|
$this->assertArrayHasKey('en', $all);
|
||
|
$this->assertIsArray($all['en']);
|
||
|
$this->assertArrayHasKey('isoName', $all['en']);
|
||
|
$this->assertSame('English', $all['en']['isoName']);
|
||
|
}
|
||
|
|
||
|
public function testRegions()
|
||
|
{
|
||
|
$regions = Language::regions();
|
||
|
$this->assertIsArray($regions);
|
||
|
$this->assertArrayHasKey('US', $regions);
|
||
|
$this->assertSame('United States of America', $regions['US']);
|
||
|
}
|
||
|
|
||
|
public function testGetNames()
|
||
|
{
|
||
|
$ar = new Language('ar');
|
||
|
$this->assertSame([
|
||
|
'isoName' => 'Arabic',
|
||
|
'nativeName' => 'العربية',
|
||
|
], $ar->getNames());
|
||
|
}
|
||
|
|
||
|
public function testGetId()
|
||
|
{
|
||
|
$ar = new Language('ar');
|
||
|
$this->assertSame('ar', $ar->getId());
|
||
|
$ar = new Language('ar_DZ');
|
||
|
$this->assertSame('ar_DZ', $ar->getId());
|
||
|
$ar = new Language('ar_Shakl');
|
||
|
$this->assertSame('ar_Shakl', $ar->getId());
|
||
|
}
|
||
|
|
||
|
public function testGetCode()
|
||
|
{
|
||
|
$ar = new Language('ar');
|
||
|
$this->assertSame('ar', $ar->getCode());
|
||
|
$ar = new Language('ar_DZ');
|
||
|
$this->assertSame('ar', $ar->getCode());
|
||
|
$ar = new Language('ar_Shakl');
|
||
|
$this->assertSame('ar', $ar->getCode());
|
||
|
$sr = new Language('sr_Cyrl_ME');
|
||
|
$this->assertSame('sr', $sr->getCode());
|
||
|
}
|
||
|
|
||
|
public function testGetVariant()
|
||
|
{
|
||
|
$ar = new Language('ar');
|
||
|
$this->assertNull($ar->getVariant());
|
||
|
$ar = new Language('ar_DZ');
|
||
|
$this->assertNull($ar->getVariant());
|
||
|
$ar = new Language('ar_Shakl');
|
||
|
$this->assertSame('Shakl', $ar->getVariant());
|
||
|
$sr = new Language('sr_Cyrl_ME');
|
||
|
$this->assertSame('Cyrl', $sr->getVariant());
|
||
|
}
|
||
|
|
||
|
public function testGetRegion()
|
||
|
{
|
||
|
$ar = new Language('ar');
|
||
|
$this->assertNull($ar->getRegion());
|
||
|
$ar = new Language('ar_DZ');
|
||
|
$this->assertSame('DZ', $ar->getRegion());
|
||
|
$ar = new Language('ar_Shakl');
|
||
|
$this->assertNull($ar->getRegion());
|
||
|
$sr = new Language('sr_Cyrl_ME');
|
||
|
$this->assertSame('ME', $sr->getRegion());
|
||
|
}
|
||
|
|
||
|
public function testGetRegionName()
|
||
|
{
|
||
|
$ar = new Language('ar');
|
||
|
$this->assertNull($ar->getRegionName());
|
||
|
$ar = new Language('ar_DZ');
|
||
|
$this->assertSame('Algeria', $ar->getRegionName());
|
||
|
$ar = new Language('ar_Shakl');
|
||
|
$this->assertNull($ar->getRegionName());
|
||
|
$sr = new Language('sr_Cyrl_ME');
|
||
|
$this->assertSame('Montenegro', $sr->getRegionName());
|
||
|
}
|
||
|
|
||
|
public function testGetFullIsoName()
|
||
|
{
|
||
|
$ar = new Language('ca');
|
||
|
$this->assertSame('Catalan, Valencian', $ar->getFullIsoName());
|
||
|
$this->assertSame('Catalan, Valencian', $ar->getFullIsoName());
|
||
|
$ar = new Language('ar_DZ');
|
||
|
$this->assertSame('Arabic', $ar->getFullIsoName());
|
||
|
$gom = new Language('gom_Latn');
|
||
|
$this->assertSame('Konkani, Goan', $gom->getFullIsoName());
|
||
|
$foo = new Language('foo_Latn');
|
||
|
$this->assertSame('foo', $foo->getFullIsoName());
|
||
|
$sr = new Language('sr_Cyrl_ME');
|
||
|
$this->assertSame('Serbian', $sr->getFullIsoName());
|
||
|
}
|
||
|
|
||
|
public function testGetFullNativeName()
|
||
|
{
|
||
|
$ar = new Language('ca');
|
||
|
$this->assertSame('català, valencià', $ar->getFullNativeName());
|
||
|
$this->assertSame('català, valencià', $ar->getFullNativeName());
|
||
|
$ar = new Language('ar_DZ');
|
||
|
$this->assertSame('العربية', $ar->getFullNativeName());
|
||
|
$gom = new Language('gom_Latn');
|
||
|
$this->assertSame('ಕೊಂಕಣಿ', $gom->getFullNativeName());
|
||
|
$foo = new Language('foo_Latn');
|
||
|
$this->assertSame('foo', $foo->getFullNativeName());
|
||
|
$sr = new Language('sr_Cyrl_ME');
|
||
|
$this->assertSame('српски језик', $sr->getFullNativeName());
|
||
|
}
|
||
|
|
||
|
public function testGetIsoName()
|
||
|
{
|
||
|
$ar = new Language('ca');
|
||
|
$this->assertSame('Catalan', $ar->getIsoName());
|
||
|
$this->assertSame('Catalan', $ar->getIsoName());
|
||
|
$ar = new Language('ar_DZ');
|
||
|
$this->assertSame('Arabic', $ar->getIsoName());
|
||
|
$gom = new Language('gom_Latn');
|
||
|
$this->assertSame('Konkani', $gom->getIsoName());
|
||
|
$foo = new Language('foo_Latn');
|
||
|
$this->assertSame('foo', $foo->getIsoName());
|
||
|
$sr = new Language('sr_Cyrl_ME');
|
||
|
$this->assertSame('Serbian', $sr->getIsoName());
|
||
|
}
|
||
|
|
||
|
public function testGetNativeName()
|
||
|
{
|
||
|
$ar = new Language('ca');
|
||
|
$this->assertSame('català', $ar->getNativeName());
|
||
|
$this->assertSame('català', $ar->getNativeName());
|
||
|
$ar = new Language('ar_DZ');
|
||
|
$this->assertSame('العربية', $ar->getNativeName());
|
||
|
$gom = new Language('gom_Latn');
|
||
|
$this->assertSame('ಕೊಂಕಣಿ', $gom->getNativeName());
|
||
|
$foo = new Language('foo_Latn');
|
||
|
$this->assertSame('foo', $foo->getNativeName());
|
||
|
$sr = new Language('sr_Cyrl_ME');
|
||
|
$this->assertSame('српски језик', $sr->getNativeName());
|
||
|
}
|
||
|
|
||
|
public function testGetIsoDescription()
|
||
|
{
|
||
|
$ar = new Language('ca');
|
||
|
$this->assertSame('Catalan', $ar->getIsoDescription());
|
||
|
$this->assertSame('Catalan', $ar->getIsoDescription());
|
||
|
$ar = new Language('ar_DZ');
|
||
|
$this->assertSame('Arabic (Algeria)', $ar->getIsoDescription());
|
||
|
$gom = new Language('gom_Latn');
|
||
|
$this->assertSame('Konkani (Latin)', $gom->getIsoDescription());
|
||
|
$foo = new Language('foo_Latn');
|
||
|
$this->assertSame('foo (Latin)', $foo->getIsoDescription());
|
||
|
$foo->setNativeName('Foobar, Barbiz');
|
||
|
$this->assertSame('foo (Latin)', $foo->getIsoDescription());
|
||
|
$foo->setIsoName('Foobar, Barbiz');
|
||
|
$this->assertSame('Foobar (Latin)', $foo->getIsoDescription());
|
||
|
$sr = new Language('sr_Cyrl_ME');
|
||
|
$this->assertSame('Serbian (Montenegro) (Cyrillic)', $sr->getIsoDescription());
|
||
|
}
|
||
|
|
||
|
public function testGetNativeDescription()
|
||
|
{
|
||
|
$ar = new Language('ca');
|
||
|
$this->assertSame('català', $ar->getNativeDescription());
|
||
|
$this->assertSame('català', $ar->getNativeDescription());
|
||
|
$ar = new Language('ar_DZ');
|
||
|
$this->assertSame('العربية (Algeria)', $ar->getNativeDescription());
|
||
|
$gom = new Language('gom_Latn');
|
||
|
$this->assertSame('ಕೊಂಕಣಿ (Latin)', $gom->getNativeDescription());
|
||
|
$foo = new Language('foo_Latn');
|
||
|
$this->assertSame('foo (Latin)', $foo->getNativeDescription());
|
||
|
$foo->setIsoName('Foobar, Barbiz');
|
||
|
$this->assertSame('foo (Latin)', $foo->getNativeDescription());
|
||
|
$foo->setNativeName('Foobar, Barbiz');
|
||
|
$this->assertSame('Foobar (Latin)', $foo->getNativeDescription());
|
||
|
$sr = new Language('sr_Cyrl_ME');
|
||
|
$this->assertSame('српски језик (Montenegro) (Cyrillic)', $sr->getNativeDescription());
|
||
|
}
|
||
|
|
||
|
public function testGetFullIsoDescription()
|
||
|
{
|
||
|
$ar = new Language('ca');
|
||
|
$this->assertSame('Catalan, Valencian', $ar->getFullIsoDescription());
|
||
|
$this->assertSame('Catalan, Valencian', $ar->getFullIsoDescription());
|
||
|
$ar = new Language('ar_DZ');
|
||
|
$this->assertSame('Arabic (Algeria)', $ar->getFullIsoDescription());
|
||
|
$gom = new Language('gom_Latn');
|
||
|
$this->assertSame('Konkani, Goan (Latin)', $gom->getFullIsoDescription());
|
||
|
$foo = new Language('foo_Latn');
|
||
|
$this->assertSame('foo (Latin)', $foo->getFullIsoDescription());
|
||
|
$foo->setNativeName('Foobar, Barbiz');
|
||
|
$this->assertSame('foo (Latin)', $foo->getFullIsoDescription());
|
||
|
$foo->setIsoName('Foobar, Barbiz');
|
||
|
$this->assertSame('Foobar, Barbiz (Latin)', $foo->getFullIsoDescription());
|
||
|
$sr = new Language('sr_Cyrl_ME');
|
||
|
$this->assertSame('Serbian (Montenegro) (Cyrillic)', $sr->getFullIsoDescription());
|
||
|
}
|
||
|
|
||
|
public function testGetFullNativeDescription()
|
||
|
{
|
||
|
$ar = new Language('ca');
|
||
|
$this->assertSame('català, valencià', $ar->getFullNativeDescription());
|
||
|
$this->assertSame('català, valencià', $ar->getFullNativeDescription());
|
||
|
$ar = new Language('ar_DZ');
|
||
|
$this->assertSame('العربية (Algeria)', $ar->getFullNativeDescription());
|
||
|
$gom = new Language('gom_Latn');
|
||
|
$this->assertSame('ಕೊಂಕಣಿ (Latin)', $gom->getFullNativeDescription());
|
||
|
$foo = new Language('foo_Latn');
|
||
|
$this->assertSame('foo (Latin)', $foo->getFullNativeDescription());
|
||
|
$foo->setIsoName('Foobar, Barbiz');
|
||
|
$this->assertSame('foo (Latin)', $foo->getFullNativeDescription());
|
||
|
$foo->setNativeName('Foobar, Barbiz');
|
||
|
$this->assertSame('Foobar, Barbiz (Latin)', $foo->getFullNativeDescription());
|
||
|
$sr = new Language('sr_Cyrl_ME');
|
||
|
$this->assertSame('српски језик (Montenegro) (Cyrillic)', $sr->getFullNativeDescription());
|
||
|
}
|
||
|
|
||
|
public function testToString()
|
||
|
{
|
||
|
$ar = new Language('ar');
|
||
|
$this->assertSame('ar', (string) $ar);
|
||
|
$ar = new Language('ar_DZ');
|
||
|
$this->assertSame('ar_DZ', (string) $ar);
|
||
|
$ar = new Language('ar_Shakl');
|
||
|
$this->assertSame('ar_Shakl', (string) $ar);
|
||
|
}
|
||
|
|
||
|
public function testToJson()
|
||
|
{
|
||
|
$ar = new Language('ca');
|
||
|
$this->assertSame('"Catalan"', json_encode($ar));
|
||
|
$this->assertSame('"Catalan"', json_encode($ar));
|
||
|
$ar = new Language('ar_DZ');
|
||
|
$this->assertSame('"Arabic (Algeria)"', json_encode($ar));
|
||
|
$gom = new Language('gom_Latn');
|
||
|
$this->assertSame('"Konkani (Latin)"', json_encode($gom));
|
||
|
$foo = new Language('foo_Latn');
|
||
|
$this->assertSame('"foo (Latin)"', json_encode($foo));
|
||
|
$foo->setNativeName('Foobar, Barbiz');
|
||
|
$this->assertSame('"foo (Latin)"', json_encode($foo));
|
||
|
$foo->setIsoName('Foobar, Barbiz');
|
||
|
$this->assertSame('"Foobar (Latin)"', json_encode($foo));
|
||
|
$sr = new Language('sr_Cyrl_ME');
|
||
|
$this->assertSame('"Serbian (Montenegro) (Cyrillic)"', json_encode($sr));
|
||
|
}
|
||
|
}
|