Open Journal Systems  3.3.0
PKPLocaleTest.php
1 <?php
2 
22 require_mock_env('env1');
23 
24 import('lib.pkp.tests.PKPTestCase');
25 import('lib.pkp.classes.i18n.PKPLocale');
26 
27 class PKPLocaleTest extends PKPTestCase {
31  public function testGetLocaleStylesheet() {
32  self::assertNull(AppLocale::getLocaleStyleSheet('en_US'));
33  self::assertEquals('pt.css', AppLocale::getLocaleStyleSheet('pt_BR'));
34  self::assertNull(AppLocale::getLocaleStyleSheet('xx_XX'));
35  }
36 
40  public function testIsLocaleComplete() {
41  self::assertTrue(AppLocale::isLocaleComplete('en_US'));
42  self::assertFalse(AppLocale::isLocaleComplete('pt_BR'));
43  self::assertFalse(AppLocale::isLocaleComplete('xx_XX'));
44  }
45 
49  public function testGetAllLocales() {
50  $expectedLocales = array(
51  'en_US' => 'English',
52  'pt_BR' => 'Portuguese (Brazil)',
53  'pt_PT' => 'Portuguese (Portugal)',
54  'de_DE' => 'German'
55  );
56  self::assertEquals($expectedLocales, AppLocale::getAllLocales());
57  }
58 
63  self::assertEquals('eng', AppLocale::get3LetterFrom2LetterIsoLanguage('en'));
64  self::assertEquals('por', AppLocale::get3LetterFrom2LetterIsoLanguage('pt'));
65  self::assertNull(AppLocale::get3LetterFrom2LetterIsoLanguage('xx'));
66  }
67 
72  self::assertEquals('en', AppLocale::get2LetterFrom3LetterIsoLanguage('eng'));
73  self::assertEquals('pt', AppLocale::get2LetterFrom3LetterIsoLanguage('por'));
74  self::assertNull(AppLocale::get2LetterFrom3LetterIsoLanguage('xxx'));
75  }
76 
80  public function testGet3LetterIsoFromLocale() {
81  self::assertEquals('eng', AppLocale::get3LetterIsoFromLocale('en_US'));
82  self::assertEquals('por', AppLocale::get3LetterIsoFromLocale('pt_BR'));
83  self::assertEquals('por', AppLocale::get3LetterIsoFromLocale('pt_PT'));
84  self::assertNull(AppLocale::get3LetterIsoFromLocale('xx_XX'));
85  }
86 
90  public function testGetLocaleFrom3LetterIso() {
91  // A locale that does not have to be disambiguated.
92  self::assertEquals('en_US', AppLocale::getLocaleFrom3LetterIso('eng'));
93 
94  // The primary locale will be used if that helps
95  // to disambiguate.
96  AppLocale::setSupportedLocales(array('en_US' => 'English', 'pt_BR' => 'Portuguese (Brazil)', 'pt_PT' => 'Portuguese (Portugal)'));
98  self::assertEquals('pt_BR', AppLocale::getLocaleFrom3LetterIso('por'));
100  self::assertEquals('pt_PT', AppLocale::getLocaleFrom3LetterIso('por'));
101 
102  // If the primary locale doesn't help then use the first supported locale found.
104  self::assertEquals('pt_BR', AppLocale::getLocaleFrom3LetterIso('por'));
105  AppLocale::setSupportedLocales(array('en_US' => 'English', 'pt_PT' => 'Portuguese (Portugal)', 'pt_BR' => 'Portuguese (Brazil)'));
106  self::assertEquals('pt_PT', AppLocale::getLocaleFrom3LetterIso('por'));
107 
108  // If the locale isn't even in the supported localse then use the first locale found.
109  AppLocale::setSupportedLocales(array('en_US' => 'English'));
110  self::assertEquals('pt_PT', AppLocale::getLocaleFrom3LetterIso('por'));
111 
112  // Unknown language.
113  self::assertNull(AppLocale::getLocaleFrom3LetterIso('xxx'));
114  }
115 }
116 
PKPLocale\getLocaleStyleSheet
static getLocaleStyleSheet($locale)
Definition: PKPLocale.inc.php:446
PKPLocale\getAllLocales
static & getAllLocales()
Definition: PKPLocale.inc.php:537
AppLocale\setSupportedLocales
static setSupportedLocales($supportedLocales)
Definition: env1/MockAppLocale.inc.php:108
PKPLocaleTest\testGetLocaleStylesheet
testGetLocaleStylesheet()
Definition: PKPLocaleTest.php:31
PKPLocaleTest\testGet3LetterIsoFromLocale
testGet3LetterIsoFromLocale()
Definition: PKPLocaleTest.php:80
PKPLocaleTest\testGet2LetterFrom3LetterIsoLanguage
testGet2LetterFrom3LetterIsoLanguage()
Definition: PKPLocaleTest.php:71
PKPLocale\get3LetterIsoFromLocale
static get3LetterIsoFromLocale($locale)
Definition: PKPLocale.inc.php:651
PKPLocaleTest\testGetAllLocales
testGetAllLocales()
Definition: PKPLocaleTest.php:49
PKPLocale\isLocaleComplete
static isLocaleComplete($locale)
Definition: PKPLocale.inc.php:478
PKPTestCase
Class that implements functionality common to all PKP unit test cases.
Definition: PKPTestCase.inc.php:27
AppLocale\setPrimaryLocale
static setPrimaryLocale($primaryLocale)
Definition: env1/MockAppLocale.inc.php:87
PKPLocaleTest
Tests for the PKPLocale class.
Definition: PKPLocaleTest.php:27
PKPLocaleTest\testGet3LetterFrom2LetterIsoLanguage
testGet3LetterFrom2LetterIsoLanguage()
Definition: PKPLocaleTest.php:62
PKPLocale\getLocaleFrom3LetterIso
static getLocaleFrom3LetterIso($iso3Letter)
Definition: PKPLocale.inc.php:671
PKPLocale\get3LetterFrom2LetterIsoLanguage
static get3LetterFrom2LetterIsoLanguage($iso2Letter)
Definition: PKPLocale.inc.php:614
PKPLocaleTest\testIsLocaleComplete
testIsLocaleComplete()
Definition: PKPLocaleTest.php:40
PKPLocale\get2LetterFrom3LetterIsoLanguage
static get2LetterFrom3LetterIsoLanguage($iso3Letter)
Definition: PKPLocale.inc.php:633
PKPLocaleTest\testGetLocaleFrom3LetterIso
testGetLocaleFrom3LetterIso()
Definition: PKPLocaleTest.php:90