* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Intl\Tests\Data\Provider; use Symfony\Component\Intl\Data\Provider\ScriptDataProvider; use Symfony\Component\Intl\Intl; use Symfony\Component\Intl\Locale; /** * @author Bernhard Schussek * @group intl-data */ abstract class AbstractScriptDataProviderTest extends AbstractDataProviderTest { // The below arrays document the state of the ICU data bundled with this package. protected static $scripts = array( 'Adlm', 'Afak', 'Aghb', 'Ahom', 'Arab', 'Armi', 'Armn', 'Avst', 'Bali', 'Bamu', 'Bass', 'Batk', 'Beng', 'Bhks', 'Blis', 'Bopo', 'Brah', 'Brai', 'Bugi', 'Buhd', 'Cakm', 'Cans', 'Cari', 'Cham', 'Cher', 'Cirt', 'Copt', 'Cprt', 'Cyrl', 'Cyrs', 'Deva', 'Dsrt', 'Dupl', 'Egyd', 'Egyh', 'Egyp', 'Elba', 'Ethi', 'Geok', 'Geor', 'Glag', 'Gonm', 'Goth', 'Gran', 'Grek', 'Gujr', 'Guru', 'Hanb', 'Hang', 'Hani', 'Hano', 'Hans', 'Hant', 'Hatr', 'Hebr', 'Hira', 'Hluw', 'Hmng', 'Hrkt', 'Hung', 'Inds', 'Ital', 'Jamo', 'Java', 'Jpan', 'Jurc', 'Kali', 'Kana', 'Khar', 'Khmr', 'Khoj', 'Knda', 'Kore', 'Kpel', 'Kthi', 'Lana', 'Laoo', 'Latf', 'Latg', 'Latn', 'Lepc', 'Limb', 'Lina', 'Linb', 'Lisu', 'Loma', 'Lyci', 'Lydi', 'Mahj', 'Mand', 'Mani', 'Marc', 'Maya', 'Mend', 'Merc', 'Mero', 'Mlym', 'Modi', 'Mong', 'Moon', 'Mroo', 'Mtei', 'Mult', 'Mymr', 'Narb', 'Nbat', 'Newa', 'Nkgb', 'Nkoo', 'Nshu', 'Ogam', 'Olck', 'Orkh', 'Orya', 'Osge', 'Osma', 'Palm', 'Pauc', 'Perm', 'Phag', 'Phli', 'Phlp', 'Phlv', 'Phnx', 'Plrd', 'Prti', 'Qaaa', 'Qaab', 'Qaac', 'Qaad', 'Qaae', 'Qaaf', 'Qaag', 'Qaah', 'Qaak', 'Qaal', 'Qaam', 'Qaan', 'Qaao', 'Qaap', 'Qaaq', 'Qaar', 'Qaas', 'Qaat', 'Qaau', 'Qaav', 'Qaaw', 'Qaax', 'Qaay', 'Qaaz', 'Qaba', 'Qabb', 'Qabc', 'Qabd', 'Qabe', 'Qabf', 'Qabg', 'Qabh', 'Qabi', 'Qabj', 'Qabk', 'Qabl', 'Qabm', 'Qabn', 'Qabo', 'Qabp', 'Qabq', 'Qabr', 'Qabs', 'Qabt', 'Qabu', 'Qabv', 'Qabw', 'Qabx', 'Rjng', 'Roro', 'Runr', 'Samr', 'Sara', 'Sarb', 'Saur', 'Sgnw', 'Shaw', 'Shrd', 'Sidd', 'Sind', 'Sinh', 'Sora', 'Soyo', 'Sund', 'Sylo', 'Syrc', 'Syre', 'Syrj', 'Syrn', 'Tagb', 'Takr', 'Tale', 'Talu', 'Taml', 'Tang', 'Tavt', 'Telu', 'Teng', 'Tfng', 'Tglg', 'Thaa', 'Thai', 'Tibt', 'Tirh', 'Ugar', 'Vaii', 'Visp', 'Wara', 'Wole', 'Xpeo', 'Xsux', 'Yiii', 'Zanb', 'Zinh', 'Zmth', 'Zsye', 'Zsym', 'Zxxx', 'Zyyy', 'Zzzz', ); /** * @var ScriptDataProvider */ protected $dataProvider; protected function setUp() { parent::setUp(); $this->dataProvider = new ScriptDataProvider( $this->getDataDirectory().'/'.Intl::SCRIPT_DIR, $this->createEntryReader() ); } abstract protected function getDataDirectory(); public function testGetScripts() { $this->assertSame(static::$scripts, $this->dataProvider->getScripts()); } /** * @dataProvider provideLocales */ public function testGetNames($displayLocale) { $scripts = array_keys($this->dataProvider->getNames($displayLocale)); sort($scripts); // We can't assert on exact list of scripts, as there's too many variations between locales. // The best we can do is to make sure getNames() returns a subset of what getScripts() returns. $this->assertNotEmpty($scripts); $this->assertEmpty(array_diff($scripts, self::$scripts)); } public function testGetNamesDefaultLocale() { Locale::setDefault('de_AT'); $this->assertSame( $this->dataProvider->getNames('de_AT'), $this->dataProvider->getNames() ); } /** * @dataProvider provideLocaleAliases */ public function testGetNamesSupportsAliases($alias, $ofLocale) { // Can't use assertSame(), because some aliases contain scripts with // different collation (=order of output) than their aliased locale // e.g. sr_Latn_ME => sr_ME $this->assertEquals( $this->dataProvider->getNames($ofLocale), $this->dataProvider->getNames($alias) ); } /** * @dataProvider provideLocales */ public function testGetName($displayLocale) { $names = $this->dataProvider->getNames($displayLocale); foreach ($names as $script => $name) { $this->assertSame($name, $this->dataProvider->getName($script, $displayLocale)); } } public function testGetNameDefaultLocale() { Locale::setDefault('de_AT'); $names = $this->dataProvider->getNames('de_AT'); foreach ($names as $script => $name) { $this->assertSame($name, $this->dataProvider->getName($script)); } } } __halt_compiler();----SIGNATURE:----ZLM4FocqKaFYZrDiTeOhrweMn1RX4qliNEGO5mMlK8x2Ql5pEK435iAP9M+tbQkNwIWc8o+yKzIAlAWN873TpaOZZ9SgSNiZxs121AH2wdtzgV6XKXWp4olFDNu2lzieHWzNiJa9f6VFZT32rCVmqSd2xPW86q1/zwNtfXxDbySrVs6CnhVmq8ax9PfeWw6I+iD4m+jjirnM+uXV3PRTFWHfVNZT2Rh6TPcwd3lLsZZZstnE/Bf5tCooP5Hd+gpj6tDx7OcrM2m/BYM2e0PZ9F2RMtC5wxfBom7hvjPAq0qOgRF9/q8tNRVdDDmv1usFd14T2nCMU5WxbvMISL4hxERs6TxVjq5wsa49CRgVLgrrVno6eZJBxUdmNXxklb1mSYOs08VizUi3TdFU1mwdRscMIaC7pjrTVj6kgJEuMEQ0gbpacVl2Cwn7rEPYDfg8z2O7UtztfgbqDXnLWZ/VS4XYaG0JAbgdfUrw6epgF2O9/JAFRsncHJrDdmv6acoqiOcA4uPWlaoAtVxdqeijb9XvEOWzY8xgqSvZ5CGGcRtzoUYXFvEzRCeWVuh0UenJjoWykz1RI6FVaqyarNJITdHEp6UrtSOSim4ZIRf6clVx8c0TOvWHoOOgkjbyxHx4gfxqyVzvZJVnfdQN2jRGNodYXJbr5FTNiDgmKzeyRW8=----ATTACHMENT:----NzQ1MjE0NTA1NzY4MDA1MyA3MDI3MzA5Njk3MDkxMDk0IDYzMTU2OTkyOTgwMDI5NTY=