/cake/tests/cases/libs/i18n.test.php

https://github.com/cgajardo/repositorium · PHP · 854 lines · 677 code · 67 blank · 110 comment · 0 complexity · 478c14a5c9057bed2b68389b0e936c94 MD5 · raw file

  1. <?php
  2. /**
  3. * I18nTest file
  4. *
  5. * PHP versions 4 and 5
  6. *
  7. * CakePHP(tm) Tests <http://book.cakephp.org/view/1196/Testing>
  8. * Copyright 2005-2010, Cake Software Foundation, Inc. (http://cakefoundation.org)
  9. *
  10. * Licensed under The Open Group Test Suite License
  11. * Redistributions of files must retain the above copyright notice.
  12. *
  13. * @copyright Copyright 2005-2010, Cake Software Foundation, Inc. (http://cakefoundation.org)
  14. * @link http://book.cakephp.org/view/1196/Testing CakePHP(tm) Tests
  15. * @package cake
  16. * @subpackage cake.tests.cases.libs
  17. * @since CakePHP(tm) v 1.2.0.5432
  18. * @license http://www.opensource.org/licenses/opengroup.php The Open Group Test Suite License
  19. */
  20. App::import('Core', 'i18n');
  21. /**
  22. * I18nTest class
  23. *
  24. * @package cake
  25. * @subpackage cake.tests.cases.libs
  26. */
  27. class I18nTest extends CakeTestCase {
  28. /**
  29. * setUp method
  30. *
  31. * @access public
  32. * @return void
  33. */
  34. function setUp() {
  35. Cache::delete('object_map', '_cake_core_');
  36. App::build(array(
  37. 'locales' => array(TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'locale' . DS),
  38. 'plugins' => array(TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'plugins' . DS)
  39. ), true);
  40. App::objects('plugin', null, false);
  41. }
  42. /**
  43. * tearDown method
  44. *
  45. * @access public
  46. * @return void
  47. */
  48. function tearDown() {
  49. Cache::delete('object_map', '_cake_core_');
  50. App::build();
  51. App::objects('plugin', null, false);
  52. }
  53. function testTranslationCaching() {
  54. Configure::write('Config.language', 'cache_test_po');
  55. $i18n =& i18n::getInstance();
  56. // reset internally stored entries
  57. I18n::clear();
  58. Cache::clear(false, '_cake_core_');
  59. $lang = Configure::read('Config.language');#$i18n->l10n->locale;
  60. Cache::config('_cake_core_', Cache::config('default'));
  61. // make some calls to translate using different domains
  62. $this->assertEqual(I18n::translate('dom1.foo', false, 'dom1'), 'Dom 1 Foo');
  63. $this->assertEqual(I18n::translate('dom1.bar', false, 'dom1'), 'Dom 1 Bar');
  64. $this->assertEqual($i18n->__domains['dom1']['cache_test_po']['LC_MESSAGES']['dom1.foo'], 'Dom 1 Foo');
  65. // reset internally stored entries
  66. I18n::clear();
  67. // now only dom1 should be in cache
  68. $cachedDom1 = Cache::read('dom1_' . $lang, '_cake_core_');
  69. $this->assertEqual($cachedDom1['LC_MESSAGES']['dom1.foo'], 'Dom 1 Foo');
  70. $this->assertEqual($cachedDom1['LC_MESSAGES']['dom1.bar'], 'Dom 1 Bar');
  71. // dom2 not in cache
  72. $this->assertFalse(Cache::read('dom2_' . $lang, '_cake_core_'));
  73. // translate a item of dom2 (adds dom2 to cache)
  74. $this->assertEqual(I18n::translate('dom2.foo', false, 'dom2'), 'Dom 2 Foo');
  75. // verify dom2 was cached through manual read from cache
  76. $cachedDom2 = Cache::read('dom2_' . $lang, '_cake_core_');
  77. $this->assertEqual($cachedDom2['LC_MESSAGES']['dom2.foo'], 'Dom 2 Foo');
  78. $this->assertEqual($cachedDom2['LC_MESSAGES']['dom2.bar'], 'Dom 2 Bar');
  79. // modify cache entry manually to verify that dom1 entries now will be read from cache
  80. $cachedDom1['LC_MESSAGES']['dom1.foo'] = 'FOO';
  81. Cache::write('dom1_' . $lang, $cachedDom1, '_cake_core_');
  82. $this->assertEqual(I18n::translate('dom1.foo', false, 'dom1'), 'FOO');
  83. }
  84. /**
  85. * testDefaultStrings method
  86. *
  87. * @access public
  88. * @return void
  89. */
  90. function testDefaultStrings() {
  91. $singular = $this->__singular();
  92. $this->assertEqual('Plural Rule 1', $singular);
  93. $plurals = $this->__plural();
  94. $this->assertTrue(in_array('0 = 0 or > 1', $plurals));
  95. $this->assertTrue(in_array('1 = 1', $plurals));
  96. $this->assertTrue(in_array('2 = 0 or > 1', $plurals));
  97. $this->assertTrue(in_array('3 = 0 or > 1', $plurals));
  98. $this->assertTrue(in_array('4 = 0 or > 1', $plurals));
  99. $this->assertTrue(in_array('5 = 0 or > 1', $plurals));
  100. $this->assertTrue(in_array('6 = 0 or > 1', $plurals));
  101. $this->assertTrue(in_array('7 = 0 or > 1', $plurals));
  102. $this->assertTrue(in_array('8 = 0 or > 1', $plurals));
  103. $this->assertTrue(in_array('9 = 0 or > 1', $plurals));
  104. $this->assertTrue(in_array('10 = 0 or > 1', $plurals));
  105. $this->assertTrue(in_array('11 = 0 or > 1', $plurals));
  106. $this->assertTrue(in_array('12 = 0 or > 1', $plurals));
  107. $this->assertTrue(in_array('13 = 0 or > 1', $plurals));
  108. $this->assertTrue(in_array('14 = 0 or > 1', $plurals));
  109. $this->assertTrue(in_array('15 = 0 or > 1', $plurals));
  110. $this->assertTrue(in_array('16 = 0 or > 1', $plurals));
  111. $this->assertTrue(in_array('17 = 0 or > 1', $plurals));
  112. $this->assertTrue(in_array('18 = 0 or > 1', $plurals));
  113. $this->assertTrue(in_array('19 = 0 or > 1', $plurals));
  114. $this->assertTrue(in_array('20 = 0 or > 1', $plurals));
  115. $this->assertTrue(in_array('21 = 0 or > 1', $plurals));
  116. $this->assertTrue(in_array('22 = 0 or > 1', $plurals));
  117. $this->assertTrue(in_array('23 = 0 or > 1', $plurals));
  118. $this->assertTrue(in_array('24 = 0 or > 1', $plurals));
  119. $this->assertTrue(in_array('25 = 0 or > 1', $plurals));
  120. $coreSingular = $this->__singularFromCore();
  121. $this->assertEqual('Plural Rule 1 (from core)', $coreSingular);
  122. $corePlurals = $this->__pluralFromCore();
  123. $this->assertTrue(in_array('0 = 0 or > 1 (from core)', $corePlurals));
  124. $this->assertTrue(in_array('1 = 1 (from core)', $corePlurals));
  125. $this->assertTrue(in_array('2 = 0 or > 1 (from core)', $corePlurals));
  126. $this->assertTrue(in_array('3 = 0 or > 1 (from core)', $corePlurals));
  127. $this->assertTrue(in_array('4 = 0 or > 1 (from core)', $corePlurals));
  128. $this->assertTrue(in_array('5 = 0 or > 1 (from core)', $corePlurals));
  129. $this->assertTrue(in_array('6 = 0 or > 1 (from core)', $corePlurals));
  130. $this->assertTrue(in_array('7 = 0 or > 1 (from core)', $corePlurals));
  131. $this->assertTrue(in_array('8 = 0 or > 1 (from core)', $corePlurals));
  132. $this->assertTrue(in_array('9 = 0 or > 1 (from core)', $corePlurals));
  133. $this->assertTrue(in_array('10 = 0 or > 1 (from core)', $corePlurals));
  134. $this->assertTrue(in_array('11 = 0 or > 1 (from core)', $corePlurals));
  135. $this->assertTrue(in_array('12 = 0 or > 1 (from core)', $corePlurals));
  136. $this->assertTrue(in_array('13 = 0 or > 1 (from core)', $corePlurals));
  137. $this->assertTrue(in_array('14 = 0 or > 1 (from core)', $corePlurals));
  138. $this->assertTrue(in_array('15 = 0 or > 1 (from core)', $corePlurals));
  139. $this->assertTrue(in_array('16 = 0 or > 1 (from core)', $corePlurals));
  140. $this->assertTrue(in_array('17 = 0 or > 1 (from core)', $corePlurals));
  141. $this->assertTrue(in_array('18 = 0 or > 1 (from core)', $corePlurals));
  142. $this->assertTrue(in_array('19 = 0 or > 1 (from core)', $corePlurals));
  143. $this->assertTrue(in_array('20 = 0 or > 1 (from core)', $corePlurals));
  144. $this->assertTrue(in_array('21 = 0 or > 1 (from core)', $corePlurals));
  145. $this->assertTrue(in_array('22 = 0 or > 1 (from core)', $corePlurals));
  146. $this->assertTrue(in_array('23 = 0 or > 1 (from core)', $corePlurals));
  147. $this->assertTrue(in_array('24 = 0 or > 1 (from core)', $corePlurals));
  148. $this->assertTrue(in_array('25 = 0 or > 1 (from core)', $corePlurals));
  149. }
  150. /**
  151. * testPoRulesZero method
  152. *
  153. * @access public
  154. * @return void
  155. */
  156. function testPoRulesZero() {
  157. Configure::write('Config.language', 'rule_0_po');
  158. $singular = $this->__singular();
  159. $this->assertEqual('Plural Rule 0 (translated)', $singular);
  160. $plurals = $this->__plural();
  161. $this->assertTrue(in_array('0 ends with any # (translated)', $plurals));
  162. $this->assertTrue(in_array('1 ends with any # (translated)', $plurals));
  163. $this->assertTrue(in_array('2 ends with any # (translated)', $plurals));
  164. $this->assertTrue(in_array('3 ends with any # (translated)', $plurals));
  165. $this->assertTrue(in_array('4 ends with any # (translated)', $plurals));
  166. $this->assertTrue(in_array('5 ends with any # (translated)', $plurals));
  167. $this->assertTrue(in_array('6 ends with any # (translated)', $plurals));
  168. $this->assertTrue(in_array('7 ends with any # (translated)', $plurals));
  169. $this->assertTrue(in_array('8 ends with any # (translated)', $plurals));
  170. $this->assertTrue(in_array('9 ends with any # (translated)', $plurals));
  171. $this->assertTrue(in_array('10 ends with any # (translated)', $plurals));
  172. $this->assertTrue(in_array('11 ends with any # (translated)', $plurals));
  173. $this->assertTrue(in_array('12 ends with any # (translated)', $plurals));
  174. $this->assertTrue(in_array('13 ends with any # (translated)', $plurals));
  175. $this->assertTrue(in_array('14 ends with any # (translated)', $plurals));
  176. $this->assertTrue(in_array('15 ends with any # (translated)', $plurals));
  177. $this->assertTrue(in_array('16 ends with any # (translated)', $plurals));
  178. $this->assertTrue(in_array('17 ends with any # (translated)', $plurals));
  179. $this->assertTrue(in_array('18 ends with any # (translated)', $plurals));
  180. $this->assertTrue(in_array('19 ends with any # (translated)', $plurals));
  181. $this->assertTrue(in_array('20 ends with any # (translated)', $plurals));
  182. $this->assertTrue(in_array('21 ends with any # (translated)', $plurals));
  183. $this->assertTrue(in_array('22 ends with any # (translated)', $plurals));
  184. $this->assertTrue(in_array('23 ends with any # (translated)', $plurals));
  185. $this->assertTrue(in_array('24 ends with any # (translated)', $plurals));
  186. $this->assertTrue(in_array('25 ends with any # (translated)', $plurals));
  187. $coreSingular = $this->__singularFromCore();
  188. $this->assertEqual('Plural Rule 0 (from core translated)', $coreSingular);
  189. $corePlurals = $this->__pluralFromCore();
  190. $this->assertTrue(in_array('0 ends with any # (from core translated)', $corePlurals));
  191. $this->assertTrue(in_array('1 ends with any # (from core translated)', $corePlurals));
  192. $this->assertTrue(in_array('2 ends with any # (from core translated)', $corePlurals));
  193. $this->assertTrue(in_array('3 ends with any # (from core translated)', $corePlurals));
  194. $this->assertTrue(in_array('4 ends with any # (from core translated)', $corePlurals));
  195. $this->assertTrue(in_array('5 ends with any # (from core translated)', $corePlurals));
  196. $this->assertTrue(in_array('6 ends with any # (from core translated)', $corePlurals));
  197. $this->assertTrue(in_array('7 ends with any # (from core translated)', $corePlurals));
  198. $this->assertTrue(in_array('8 ends with any # (from core translated)', $corePlurals));
  199. $this->assertTrue(in_array('9 ends with any # (from core translated)', $corePlurals));
  200. $this->assertTrue(in_array('10 ends with any # (from core translated)', $corePlurals));
  201. $this->assertTrue(in_array('11 ends with any # (from core translated)', $corePlurals));
  202. $this->assertTrue(in_array('12 ends with any # (from core translated)', $corePlurals));
  203. $this->assertTrue(in_array('13 ends with any # (from core translated)', $corePlurals));
  204. $this->assertTrue(in_array('14 ends with any # (from core translated)', $corePlurals));
  205. $this->assertTrue(in_array('15 ends with any # (from core translated)', $corePlurals));
  206. $this->assertTrue(in_array('16 ends with any # (from core translated)', $corePlurals));
  207. $this->assertTrue(in_array('17 ends with any # (from core translated)', $corePlurals));
  208. $this->assertTrue(in_array('18 ends with any # (from core translated)', $corePlurals));
  209. $this->assertTrue(in_array('19 ends with any # (from core translated)', $corePlurals));
  210. $this->assertTrue(in_array('20 ends with any # (from core translated)', $corePlurals));
  211. $this->assertTrue(in_array('21 ends with any # (from core translated)', $corePlurals));
  212. $this->assertTrue(in_array('22 ends with any # (from core translated)', $corePlurals));
  213. $this->assertTrue(in_array('23 ends with any # (from core translated)', $corePlurals));
  214. $this->assertTrue(in_array('24 ends with any # (from core translated)', $corePlurals));
  215. $this->assertTrue(in_array('25 ends with any # (from core translated)', $corePlurals));
  216. }
  217. /**
  218. * testMoRulesZero method
  219. *
  220. * @access public
  221. * @return void
  222. */
  223. function testMoRulesZero() {
  224. Configure::write('Config.language', 'rule_0_mo');
  225. $singular = $this->__singular();
  226. $this->assertEqual('Plural Rule 0 (translated)', $singular);
  227. $plurals = $this->__plural();
  228. $this->assertTrue(in_array('0 ends with any # (translated)', $plurals));
  229. $this->assertTrue(in_array('1 ends with any # (translated)', $plurals));
  230. $this->assertTrue(in_array('2 ends with any # (translated)', $plurals));
  231. $this->assertTrue(in_array('3 ends with any # (translated)', $plurals));
  232. $this->assertTrue(in_array('4 ends with any # (translated)', $plurals));
  233. $this->assertTrue(in_array('5 ends with any # (translated)', $plurals));
  234. $this->assertTrue(in_array('6 ends with any # (translated)', $plurals));
  235. $this->assertTrue(in_array('7 ends with any # (translated)', $plurals));
  236. $this->assertTrue(in_array('8 ends with any # (translated)', $plurals));
  237. $this->assertTrue(in_array('9 ends with any # (translated)', $plurals));
  238. $this->assertTrue(in_array('10 ends with any # (translated)', $plurals));
  239. $this->assertTrue(in_array('11 ends with any # (translated)', $plurals));
  240. $this->assertTrue(in_array('12 ends with any # (translated)', $plurals));
  241. $this->assertTrue(in_array('13 ends with any # (translated)', $plurals));
  242. $this->assertTrue(in_array('14 ends with any # (translated)', $plurals));
  243. $this->assertTrue(in_array('15 ends with any # (translated)', $plurals));
  244. $this->assertTrue(in_array('16 ends with any # (translated)', $plurals));
  245. $this->assertTrue(in_array('17 ends with any # (translated)', $plurals));
  246. $this->assertTrue(in_array('18 ends with any # (translated)', $plurals));
  247. $this->assertTrue(in_array('19 ends with any # (translated)', $plurals));
  248. $this->assertTrue(in_array('20 ends with any # (translated)', $plurals));
  249. $this->assertTrue(in_array('21 ends with any # (translated)', $plurals));
  250. $this->assertTrue(in_array('22 ends with any # (translated)', $plurals));
  251. $this->assertTrue(in_array('23 ends with any # (translated)', $plurals));
  252. $this->assertTrue(in_array('24 ends with any # (translated)', $plurals));
  253. $this->assertTrue(in_array('25 ends with any # (translated)', $plurals));
  254. $coreSingular = $this->__singularFromCore();
  255. $this->assertEqual('Plural Rule 0 (from core translated)', $coreSingular);
  256. $corePlurals = $this->__pluralFromCore();
  257. $this->assertTrue(in_array('0 ends with any # (from core translated)', $corePlurals));
  258. $this->assertTrue(in_array('1 ends with any # (from core translated)', $corePlurals));
  259. $this->assertTrue(in_array('2 ends with any # (from core translated)', $corePlurals));
  260. $this->assertTrue(in_array('3 ends with any # (from core translated)', $corePlurals));
  261. $this->assertTrue(in_array('4 ends with any # (from core translated)', $corePlurals));
  262. $this->assertTrue(in_array('5 ends with any # (from core translated)', $corePlurals));
  263. $this->assertTrue(in_array('6 ends with any # (from core translated)', $corePlurals));
  264. $this->assertTrue(in_array('7 ends with any # (from core translated)', $corePlurals));
  265. $this->assertTrue(in_array('8 ends with any # (from core translated)', $corePlurals));
  266. $this->assertTrue(in_array('9 ends with any # (from core translated)', $corePlurals));
  267. $this->assertTrue(in_array('10 ends with any # (from core translated)', $corePlurals));
  268. $this->assertTrue(in_array('11 ends with any # (from core translated)', $corePlurals));
  269. $this->assertTrue(in_array('12 ends with any # (from core translated)', $corePlurals));
  270. $this->assertTrue(in_array('13 ends with any # (from core translated)', $corePlurals));
  271. $this->assertTrue(in_array('14 ends with any # (from core translated)', $corePlurals));
  272. $this->assertTrue(in_array('15 ends with any # (from core translated)', $corePlurals));
  273. $this->assertTrue(in_array('16 ends with any # (from core translated)', $corePlurals));
  274. $this->assertTrue(in_array('17 ends with any # (from core translated)', $corePlurals));
  275. $this->assertTrue(in_array('18 ends with any # (from core translated)', $corePlurals));
  276. $this->assertTrue(in_array('19 ends with any # (from core translated)', $corePlurals));
  277. $this->assertTrue(in_array('20 ends with any # (from core translated)', $corePlurals));
  278. $this->assertTrue(in_array('21 ends with any # (from core translated)', $corePlurals));
  279. $this->assertTrue(in_array('22 ends with any # (from core translated)', $corePlurals));
  280. $this->assertTrue(in_array('23 ends with any # (from core translated)', $corePlurals));
  281. $this->assertTrue(in_array('24 ends with any # (from core translated)', $corePlurals));
  282. $this->assertTrue(in_array('25 ends with any # (from core translated)', $corePlurals));
  283. }
  284. /**
  285. * testPoRulesOne method
  286. *
  287. * @access public
  288. * @return void
  289. */
  290. function testPoRulesOne() {
  291. Configure::write('Config.language', 'rule_1_po');
  292. $singular = $this->__singular();
  293. $this->assertEqual('Plural Rule 1 (translated)', $singular);
  294. $plurals = $this->__plural();
  295. $this->assertTrue(in_array('0 = 0 or > 1 (translated)', $plurals));
  296. $this->assertTrue(in_array('1 = 1 (translated)', $plurals));
  297. $this->assertTrue(in_array('2 = 0 or > 1 (translated)', $plurals));
  298. $this->assertTrue(in_array('3 = 0 or > 1 (translated)', $plurals));
  299. $this->assertTrue(in_array('4 = 0 or > 1 (translated)', $plurals));
  300. $this->assertTrue(in_array('5 = 0 or > 1 (translated)', $plurals));
  301. $this->assertTrue(in_array('6 = 0 or > 1 (translated)', $plurals));
  302. $this->assertTrue(in_array('7 = 0 or > 1 (translated)', $plurals));
  303. $this->assertTrue(in_array('8 = 0 or > 1 (translated)', $plurals));
  304. $this->assertTrue(in_array('9 = 0 or > 1 (translated)', $plurals));
  305. $this->assertTrue(in_array('10 = 0 or > 1 (translated)', $plurals));
  306. $this->assertTrue(in_array('11 = 0 or > 1 (translated)', $plurals));
  307. $this->assertTrue(in_array('12 = 0 or > 1 (translated)', $plurals));
  308. $this->assertTrue(in_array('13 = 0 or > 1 (translated)', $plurals));
  309. $this->assertTrue(in_array('14 = 0 or > 1 (translated)', $plurals));
  310. $this->assertTrue(in_array('15 = 0 or > 1 (translated)', $plurals));
  311. $this->assertTrue(in_array('16 = 0 or > 1 (translated)', $plurals));
  312. $this->assertTrue(in_array('17 = 0 or > 1 (translated)', $plurals));
  313. $this->assertTrue(in_array('18 = 0 or > 1 (translated)', $plurals));
  314. $this->assertTrue(in_array('19 = 0 or > 1 (translated)', $plurals));
  315. $this->assertTrue(in_array('20 = 0 or > 1 (translated)', $plurals));
  316. $this->assertTrue(in_array('21 = 0 or > 1 (translated)', $plurals));
  317. $this->assertTrue(in_array('22 = 0 or > 1 (translated)', $plurals));
  318. $this->assertTrue(in_array('23 = 0 or > 1 (translated)', $plurals));
  319. $this->assertTrue(in_array('24 = 0 or > 1 (translated)', $plurals));
  320. $this->assertTrue(in_array('25 = 0 or > 1 (translated)', $plurals));
  321. $coreSingular = $this->__singularFromCore();
  322. $this->assertEqual('Plural Rule 1 (from core translated)', $coreSingular);
  323. $corePlurals = $this->__pluralFromCore();
  324. $this->assertTrue(in_array('0 = 0 or > 1 (from core translated)', $corePlurals));
  325. $this->assertTrue(in_array('1 = 1 (from core translated)', $corePlurals));
  326. $this->assertTrue(in_array('2 = 0 or > 1 (from core translated)', $corePlurals));
  327. $this->assertTrue(in_array('3 = 0 or > 1 (from core translated)', $corePlurals));
  328. $this->assertTrue(in_array('4 = 0 or > 1 (from core translated)', $corePlurals));
  329. $this->assertTrue(in_array('5 = 0 or > 1 (from core translated)', $corePlurals));
  330. $this->assertTrue(in_array('6 = 0 or > 1 (from core translated)', $corePlurals));
  331. $this->assertTrue(in_array('7 = 0 or > 1 (from core translated)', $corePlurals));
  332. $this->assertTrue(in_array('8 = 0 or > 1 (from core translated)', $corePlurals));
  333. $this->assertTrue(in_array('9 = 0 or > 1 (from core translated)', $corePlurals));
  334. $this->assertTrue(in_array('10 = 0 or > 1 (from core translated)', $corePlurals));
  335. $this->assertTrue(in_array('11 = 0 or > 1 (from core translated)', $corePlurals));
  336. $this->assertTrue(in_array('12 = 0 or > 1 (from core translated)', $corePlurals));
  337. $this->assertTrue(in_array('13 = 0 or > 1 (from core translated)', $corePlurals));
  338. $this->assertTrue(in_array('14 = 0 or > 1 (from core translated)', $corePlurals));
  339. $this->assertTrue(in_array('15 = 0 or > 1 (from core translated)', $corePlurals));
  340. $this->assertTrue(in_array('16 = 0 or > 1 (from core translated)', $corePlurals));
  341. $this->assertTrue(in_array('17 = 0 or > 1 (from core translated)', $corePlurals));
  342. $this->assertTrue(in_array('18 = 0 or > 1 (from core translated)', $corePlurals));
  343. $this->assertTrue(in_array('19 = 0 or > 1 (from core translated)', $corePlurals));
  344. $this->assertTrue(in_array('20 = 0 or > 1 (from core translated)', $corePlurals));
  345. $this->assertTrue(in_array('21 = 0 or > 1 (from core translated)', $corePlurals));
  346. $this->assertTrue(in_array('22 = 0 or > 1 (from core translated)', $corePlurals));
  347. $this->assertTrue(in_array('23 = 0 or > 1 (from core translated)', $corePlurals));
  348. $this->assertTrue(in_array('24 = 0 or > 1 (from core translated)', $corePlurals));
  349. $this->assertTrue(in_array('25 = 0 or > 1 (from core translated)', $corePlurals));
  350. }
  351. /**
  352. * testMoRulesOne method
  353. *
  354. * @access public
  355. * @return void
  356. */
  357. function testMoRulesOne() {
  358. Configure::write('Config.language', 'rule_1_mo');
  359. $singular = $this->__singular();
  360. $this->assertEqual('Plural Rule 1 (translated)', $singular);
  361. $plurals = $this->__plural();
  362. $this->assertTrue(in_array('0 = 0 or > 1 (translated)', $plurals));
  363. $this->assertTrue(in_array('1 = 1 (translated)', $plurals));
  364. $this->assertTrue(in_array('2 = 0 or > 1 (translated)', $plurals));
  365. $this->assertTrue(in_array('3 = 0 or > 1 (translated)', $plurals));
  366. $this->assertTrue(in_array('4 = 0 or > 1 (translated)', $plurals));
  367. $this->assertTrue(in_array('5 = 0 or > 1 (translated)', $plurals));
  368. $this->assertTrue(in_array('6 = 0 or > 1 (translated)', $plurals));
  369. $this->assertTrue(in_array('7 = 0 or > 1 (translated)', $plurals));
  370. $this->assertTrue(in_array('8 = 0 or > 1 (translated)', $plurals));
  371. $this->assertTrue(in_array('9 = 0 or > 1 (translated)', $plurals));
  372. $this->assertTrue(in_array('10 = 0 or > 1 (translated)', $plurals));
  373. $this->assertTrue(in_array('11 = 0 or > 1 (translated)', $plurals));
  374. $this->assertTrue(in_array('12 = 0 or > 1 (translated)', $plurals));
  375. $this->assertTrue(in_array('13 = 0 or > 1 (translated)', $plurals));
  376. $this->assertTrue(in_array('14 = 0 or > 1 (translated)', $plurals));
  377. $this->assertTrue(in_array('15 = 0 or > 1 (translated)', $plurals));
  378. $this->assertTrue(in_array('16 = 0 or > 1 (translated)', $plurals));
  379. $this->assertTrue(in_array('17 = 0 or > 1 (translated)', $plurals));
  380. $this->assertTrue(in_array('18 = 0 or > 1 (translated)', $plurals));
  381. $this->assertTrue(in_array('19 = 0 or > 1 (translated)', $plurals));
  382. $this->assertTrue(in_array('20 = 0 or > 1 (translated)', $plurals));
  383. $this->assertTrue(in_array('21 = 0 or > 1 (translated)', $plurals));
  384. $this->assertTrue(in_array('22 = 0 or > 1 (translated)', $plurals));
  385. $this->assertTrue(in_array('23 = 0 or > 1 (translated)', $plurals));
  386. $this->assertTrue(in_array('24 = 0 or > 1 (translated)', $plurals));
  387. $this->assertTrue(in_array('25 = 0 or > 1 (translated)', $plurals));
  388. $coreSingular = $this->__singularFromCore();
  389. $this->assertEqual('Plural Rule 1 (from core translated)', $coreSingular);
  390. $corePlurals = $this->__pluralFromCore();
  391. $this->assertTrue(in_array('0 = 0 or > 1 (from core translated)', $corePlurals));
  392. $this->assertTrue(in_array('1 = 1 (from core translated)', $corePlurals));
  393. $this->assertTrue(in_array('2 = 0 or > 1 (from core translated)', $corePlurals));
  394. $this->assertTrue(in_array('3 = 0 or > 1 (from core translated)', $corePlurals));
  395. $this->assertTrue(in_array('4 = 0 or > 1 (from core translated)', $corePlurals));
  396. $this->assertTrue(in_array('5 = 0 or > 1 (from core translated)', $corePlurals));
  397. $this->assertTrue(in_array('6 = 0 or > 1 (from core translated)', $corePlurals));
  398. $this->assertTrue(in_array('7 = 0 or > 1 (from core translated)', $corePlurals));
  399. $this->assertTrue(in_array('8 = 0 or > 1 (from core translated)', $corePlurals));
  400. $this->assertTrue(in_array('9 = 0 or > 1 (from core translated)', $corePlurals));
  401. $this->assertTrue(in_array('10 = 0 or > 1 (from core translated)', $corePlurals));
  402. $this->assertTrue(in_array('11 = 0 or > 1 (from core translated)', $corePlurals));
  403. $this->assertTrue(in_array('12 = 0 or > 1 (from core translated)', $corePlurals));
  404. $this->assertTrue(in_array('13 = 0 or > 1 (from core translated)', $corePlurals));
  405. $this->assertTrue(in_array('14 = 0 or > 1 (from core translated)', $corePlurals));
  406. $this->assertTrue(in_array('15 = 0 or > 1 (from core translated)', $corePlurals));
  407. $this->assertTrue(in_array('16 = 0 or > 1 (from core translated)', $corePlurals));
  408. $this->assertTrue(in_array('17 = 0 or > 1 (from core translated)', $corePlurals));
  409. $this->assertTrue(in_array('18 = 0 or > 1 (from core translated)', $corePlurals));
  410. $this->assertTrue(in_array('19 = 0 or > 1 (from core translated)', $corePlurals));
  411. $this->assertTrue(in_array('20 = 0 or > 1 (from core translated)', $corePlurals));
  412. $this->assertTrue(in_array('21 = 0 or > 1 (from core translated)', $corePlurals));
  413. $this->assertTrue(in_array('22 = 0 or > 1 (from core translated)', $corePlurals));
  414. $this->assertTrue(in_array('23 = 0 or > 1 (from core translated)', $corePlurals));
  415. $this->assertTrue(in_array('24 = 0 or > 1 (from core translated)', $corePlurals));
  416. $this->assertTrue(in_array('25 = 0 or > 1 (from core translated)', $corePlurals));
  417. }
  418. /**
  419. * testPoRulesTwo method
  420. *
  421. * @access public
  422. * @return void
  423. */
  424. function testPoRulesTwo() {
  425. Configure::write('Config.language', 'rule_2_po');
  426. $singular = $this->__singular();
  427. $this->assertEqual('Plural Rule 2 (translated)', $singular);
  428. $plurals = $this->__plural();
  429. $this->assertTrue(in_array('0 = 0 or 1 (translated)', $plurals));
  430. $this->assertTrue(in_array('1 = 0 or 1 (translated)', $plurals));
  431. $this->assertTrue(in_array('2 > 1 (translated)', $plurals));
  432. $this->assertTrue(in_array('3 > 1 (translated)', $plurals));
  433. $this->assertTrue(in_array('4 > 1 (translated)', $plurals));
  434. $this->assertTrue(in_array('5 > 1 (translated)', $plurals));
  435. $this->assertTrue(in_array('6 > 1 (translated)', $plurals));
  436. $this->assertTrue(in_array('7 > 1 (translated)', $plurals));
  437. $this->assertTrue(in_array('8 > 1 (translated)', $plurals));
  438. $this->assertTrue(in_array('9 > 1 (translated)', $plurals));
  439. $this->assertTrue(in_array('10 > 1 (translated)', $plurals));
  440. $this->assertTrue(in_array('11 > 1 (translated)', $plurals));
  441. $this->assertTrue(in_array('12 > 1 (translated)', $plurals));
  442. $this->assertTrue(in_array('13 > 1 (translated)', $plurals));
  443. $this->assertTrue(in_array('14 > 1 (translated)', $plurals));
  444. $this->assertTrue(in_array('15 > 1 (translated)', $plurals));
  445. $this->assertTrue(in_array('16 > 1 (translated)', $plurals));
  446. $this->assertTrue(in_array('17 > 1 (translated)', $plurals));
  447. $this->assertTrue(in_array('18 > 1 (translated)', $plurals));
  448. $this->assertTrue(in_array('19 > 1 (translated)', $plurals));
  449. $this->assertTrue(in_array('20 > 1 (translated)', $plurals));
  450. $this->assertTrue(in_array('21 > 1 (translated)', $plurals));
  451. $this->assertTrue(in_array('22 > 1 (translated)', $plurals));
  452. $this->assertTrue(in_array('23 > 1 (translated)', $plurals));
  453. $this->assertTrue(in_array('24 > 1 (translated)', $plurals));
  454. $this->assertTrue(in_array('25 > 1 (translated)', $plurals));
  455. $coreSingular = $this->__singularFromCore();
  456. $this->assertEqual('Plural Rule 2 (from core translated)', $coreSingular);
  457. $corePlurals = $this->__pluralFromCore();
  458. $this->assertTrue(in_array('0 = 0 or 1 (from core translated)', $corePlurals));
  459. $this->assertTrue(in_array('1 = 0 or 1 (from core translated)', $corePlurals));
  460. $this->assertTrue(in_array('2 > 1 (from core translated)', $corePlurals));
  461. $this->assertTrue(in_array('3 > 1 (from core translated)', $corePlurals));
  462. $this->assertTrue(in_array('4 > 1 (from core translated)', $corePlurals));
  463. $this->assertTrue(in_array('5 > 1 (from core translated)', $corePlurals));
  464. $this->assertTrue(in_array('6 > 1 (from core translated)', $corePlurals));
  465. $this->assertTrue(in_array('7 > 1 (from core translated)', $corePlurals));
  466. $this->assertTrue(in_array('8 > 1 (from core translated)', $corePlurals));
  467. $this->assertTrue(in_array('9 > 1 (from core translated)', $corePlurals));
  468. $this->assertTrue(in_array('10 > 1 (from core translated)', $corePlurals));
  469. $this->assertTrue(in_array('11 > 1 (from core translated)', $corePlurals));
  470. $this->assertTrue(in_array('12 > 1 (from core translated)', $corePlurals));
  471. $this->assertTrue(in_array('13 > 1 (from core translated)', $corePlurals));
  472. $this->assertTrue(in_array('14 > 1 (from core translated)', $corePlurals));
  473. $this->assertTrue(in_array('15 > 1 (from core translated)', $corePlurals));
  474. $this->assertTrue(in_array('16 > 1 (from core translated)', $corePlurals));
  475. $this->assertTrue(in_array('17 > 1 (from core translated)', $corePlurals));
  476. $this->assertTrue(in_array('18 > 1 (from core translated)', $corePlurals));
  477. $this->assertTrue(in_array('19 > 1 (from core translated)', $corePlurals));
  478. $this->assertTrue(in_array('20 > 1 (from core translated)', $corePlurals));
  479. $this->assertTrue(in_array('21 > 1 (from core translated)', $corePlurals));
  480. $this->assertTrue(in_array('22 > 1 (from core translated)', $corePlurals));
  481. $this->assertTrue(in_array('23 > 1 (from core translated)', $corePlurals));
  482. $this->assertTrue(in_array('24 > 1 (from core translated)', $corePlurals));
  483. $this->assertTrue(in_array('25 > 1 (from core translated)', $corePlurals));
  484. }
  485. /**
  486. * testMoRulesTwo method
  487. *
  488. * @access public
  489. * @return void
  490. */
  491. function testMoRulesTwo() {
  492. Configure::write('Config.language', 'rule_2_mo');
  493. $singular = $this->__singular();
  494. $this->assertEqual('Plural Rule 2 (translated)', $singular);
  495. $plurals = $this->__plural();
  496. $this->assertTrue(in_array('0 = 0 or 1 (translated)', $plurals));
  497. $this->assertTrue(in_array('1 = 0 or 1 (translated)', $plurals));
  498. $this->assertTrue(in_array('2 > 1 (translated)', $plurals));
  499. $this->assertTrue(in_array('3 > 1 (translated)', $plurals));
  500. $this->assertTrue(in_array('4 > 1 (translated)', $plurals));
  501. $this->assertTrue(in_array('5 > 1 (translated)', $plurals));
  502. $this->assertTrue(in_array('6 > 1 (translated)', $plurals));
  503. $this->assertTrue(in_array('7 > 1 (translated)', $plurals));
  504. $this->assertTrue(in_array('8 > 1 (translated)', $plurals));
  505. $this->assertTrue(in_array('9 > 1 (translated)', $plurals));
  506. $this->assertTrue(in_array('10 > 1 (translated)', $plurals));
  507. $this->assertTrue(in_array('11 > 1 (translated)', $plurals));
  508. $this->assertTrue(in_array('12 > 1 (translated)', $plurals));
  509. $this->assertTrue(in_array('13 > 1 (translated)', $plurals));
  510. $this->assertTrue(in_array('14 > 1 (translated)', $plurals));
  511. $this->assertTrue(in_array('15 > 1 (translated)', $plurals));
  512. $this->assertTrue(in_array('16 > 1 (translated)', $plurals));
  513. $this->assertTrue(in_array('17 > 1 (translated)', $plurals));
  514. $this->assertTrue(in_array('18 > 1 (translated)', $plurals));
  515. $this->assertTrue(in_array('19 > 1 (translated)', $plurals));
  516. $this->assertTrue(in_array('20 > 1 (translated)', $plurals));
  517. $this->assertTrue(in_array('21 > 1 (translated)', $plurals));
  518. $this->assertTrue(in_array('22 > 1 (translated)', $plurals));
  519. $this->assertTrue(in_array('23 > 1 (translated)', $plurals));
  520. $this->assertTrue(in_array('24 > 1 (translated)', $plurals));
  521. $this->assertTrue(in_array('25 > 1 (translated)', $plurals));
  522. $coreSingular = $this->__singularFromCore();
  523. $this->assertEqual('Plural Rule 2 (from core translated)', $coreSingular);
  524. $corePlurals = $this->__pluralFromCore();
  525. $this->assertTrue(in_array('0 = 0 or 1 (from core translated)', $corePlurals));
  526. $this->assertTrue(in_array('1 = 0 or 1 (from core translated)', $corePlurals));
  527. $this->assertTrue(in_array('2 > 1 (from core translated)', $corePlurals));
  528. $this->assertTrue(in_array('3 > 1 (from core translated)', $corePlurals));
  529. $this->assertTrue(in_array('4 > 1 (from core translated)', $corePlurals));
  530. $this->assertTrue(in_array('5 > 1 (from core translated)', $corePlurals));
  531. $this->assertTrue(in_array('6 > 1 (from core translated)', $corePlurals));
  532. $this->assertTrue(in_array('7 > 1 (from core translated)', $corePlurals));
  533. $this->assertTrue(in_array('8 > 1 (from core translated)', $corePlurals));
  534. $this->assertTrue(in_array('9 > 1 (from core translated)', $corePlurals));
  535. $this->assertTrue(in_array('10 > 1 (from core translated)', $corePlurals));
  536. $this->assertTrue(in_array('11 > 1 (from core translated)', $corePlurals));
  537. $this->assertTrue(in_array('12 > 1 (from core translated)', $corePlurals));
  538. $this->assertTrue(in_array('13 > 1 (from core translated)', $corePlurals));
  539. $this->assertTrue(in_array('14 > 1 (from core translated)', $corePlurals));
  540. $this->assertTrue(in_array('15 > 1 (from core translated)', $corePlurals));
  541. $this->assertTrue(in_array('16 > 1 (from core translated)', $corePlurals));
  542. $this->assertTrue(in_array('17 > 1 (from core translated)', $corePlurals));
  543. $this->assertTrue(in_array('18 > 1 (from core translated)', $corePlurals));
  544. $this->assertTrue(in_array('19 > 1 (from core translated)', $corePlurals));
  545. $this->assertTrue(in_array('20 > 1 (from core translated)', $corePlurals));
  546. $this->assertTrue(in_array('21 > 1 (from core translated)', $corePlurals));
  547. $this->assertTrue(in_array('22 > 1 (from core translated)', $corePlurals));
  548. $this->assertTrue(in_array('23 > 1 (from core translated)', $corePlurals));
  549. $this->assertTrue(in_array('24 > 1 (from core translated)', $corePlurals));
  550. $this->assertTrue(in_array('25 > 1 (from core translated)', $corePlurals));
  551. }
  552. /**
  553. * testPoRulesThree method
  554. *
  555. * @access public
  556. * @return void
  557. */
  558. function testPoRulesThree() {
  559. Configure::write('Config.language', 'rule_3_po');
  560. $singular = $this->__singular();
  561. $this->assertEqual('Plural Rule 3 (translated)', $singular);
  562. $plurals = $this->__plural();
  563. $this->assertTrue(in_array('0 = 0 (translated)', $plurals));
  564. $this->assertTrue(in_array('1 ends 1 but not 11 (translated)', $plurals));
  565. $this->assertTrue(in_array('2 everything else (translated)', $plurals));
  566. $this->assertTrue(in_array('3 everything else (translated)', $plurals));
  567. $this->assertTrue(in_array('4 everything else (translated)', $plurals));
  568. $this->assertTrue(in_array('5 everything else (translated)', $plurals));
  569. $this->assertTrue(in_array('6 everything else (translated)', $plurals));
  570. $this->assertTrue(in_array('7 everything else (translated)', $plurals));
  571. $this->assertTrue(in_array('8 everything else (translated)', $plurals));
  572. $this->assertTrue(in_array('9 everything else (translated)', $plurals));
  573. $this->assertTrue(in_array('10 everything else (translated)', $plurals));
  574. $this->assertTrue(in_array('11 everything else (translated)', $plurals));
  575. $this->assertTrue(in_array('12 everything else (translated)', $plurals));
  576. $this->assertTrue(in_array('13 everything else (translated)', $plurals));
  577. $this->assertTrue(in_array('14 everything else (translated)', $plurals));
  578. $this->assertTrue(in_array('15 everything else (translated)', $plurals));
  579. $this->assertTrue(in_array('16 everything else (translated)', $plurals));
  580. $this->assertTrue(in_array('17 everything else (translated)', $plurals));
  581. $this->assertTrue(in_array('18 everything else (translated)', $plurals));
  582. $this->assertTrue(in_array('19 everything else (translated)', $plurals));
  583. $this->assertTrue(in_array('20 everything else (translated)', $plurals));
  584. $this->assertTrue(in_array('21 ends 1 but not 11 (translated)', $plurals));
  585. $this->assertTrue(in_array('22 everything else (translated)', $plurals));
  586. $this->assertTrue(in_array('23 everything else (translated)', $plurals));
  587. $this->assertTrue(in_array('24 everything else (translated)', $plurals));
  588. $this->assertTrue(in_array('25 everything else (translated)', $plurals));
  589. $coreSingular = $this->__singularFromCore();
  590. $this->assertEqual('Plural Rule 3 (from core translated)', $coreSingular);
  591. $corePlurals = $this->__pluralFromCore();
  592. $this->assertTrue(in_array('0 = 0 (from core translated)', $corePlurals));
  593. $this->assertTrue(in_array('1 ends 1 but not 11 (from core translated)', $corePlurals));
  594. $this->assertTrue(in_array('2 everything else (from core translated)', $corePlurals));
  595. $this->assertTrue(in_array('3 everything else (from core translated)', $corePlurals));
  596. $this->assertTrue(in_array('4 everything else (from core translated)', $corePlurals));
  597. $this->assertTrue(in_array('5 everything else (from core translated)', $corePlurals));
  598. $this->assertTrue(in_array('6 everything else (from core translated)', $corePlurals));
  599. $this->assertTrue(in_array('7 everything else (from core translated)', $corePlurals));
  600. $this->assertTrue(in_array('8 everything else (from core translated)', $corePlurals));
  601. $this->assertTrue(in_array('9 everything else (from core translated)', $corePlurals));
  602. $this->assertTrue(in_array('10 everything else (from core translated)', $corePlurals));
  603. $this->assertTrue(in_array('11 everything else (from core translated)', $corePlurals));
  604. $this->assertTrue(in_array('12 everything else (from core translated)', $corePlurals));
  605. $this->assertTrue(in_array('13 everything else (from core translated)', $corePlurals));
  606. $this->assertTrue(in_array('14 everything else (from core translated)', $corePlurals));
  607. $this->assertTrue(in_array('15 everything else (from core translated)', $corePlurals));
  608. $this->assertTrue(in_array('16 everything else (from core translated)', $corePlurals));
  609. $this->assertTrue(in_array('17 everything else (from core translated)', $corePlurals));
  610. $this->assertTrue(in_array('18 everything else (from core translated)', $corePlurals));
  611. $this->assertTrue(in_array('19 everything else (from core translated)', $corePlurals));
  612. $this->assertTrue(in_array('20 everything else (from core translated)', $corePlurals));
  613. $this->assertTrue(in_array('21 ends 1 but not 11 (from core translated)', $corePlurals));
  614. $this->assertTrue(in_array('22 everything else (from core translated)', $corePlurals));
  615. $this->assertTrue(in_array('23 everything else (from core translated)', $corePlurals));
  616. $this->assertTrue(in_array('24 everything else (from core translated)', $corePlurals));
  617. $this->assertTrue(in_array('25 everything else (from core translated)', $corePlurals));
  618. }
  619. /**
  620. * testMoRulesThree method
  621. *
  622. * @access public
  623. * @return void
  624. */
  625. function testMoRulesThree() {
  626. Configure::write('Config.language', 'rule_3_mo');
  627. $singular = $this->__singular();
  628. $this->assertEqual('Plural Rule 3 (translated)', $singular);
  629. $plurals = $this->__plural();
  630. $this->assertTrue(in_array('0 = 0 (translated)', $plurals));
  631. $this->assertTrue(in_array('1 ends 1 but not 11 (translated)', $plurals));
  632. $this->assertTrue(in_array('2 everything else (translated)', $plurals));
  633. $this->assertTrue(in_array('3 everything else (translated)', $plurals));
  634. $this->assertTrue(in_array('4 everything else (translated)', $plurals));
  635. $this->assertTrue(in_array('5 everything else (translated)', $plurals));
  636. $this->assertTrue(in_array('6 everything else (translated)', $plurals));
  637. $this->assertTrue(in_array('7 everything else (translated)', $plurals));
  638. $this->assertTrue(in_array('8 everything else (translated)', $plurals));
  639. $this->assertTrue(in_array('9 everything else (translated)', $plurals));
  640. $this->assertTrue(in_array('10 everything else (translated)', $plurals));
  641. $this->assertTrue(in_array('11 everything else (translated)', $plurals));
  642. $this->assertTrue(in_array('12 everything else (translated)', $plurals));
  643. $this->assertTrue(in_array('13 everything else (translated)', $plurals));
  644. $this->assertTrue(in_array('14 everything else (translated)', $plurals));
  645. $this->assertTrue(in_array('15 everything else (translated)', $plurals));
  646. $this->assertTrue(in_array('16 everything else (translated)', $plurals));
  647. $this->assertTrue(in_array('17 everything else (translated)', $plurals));
  648. $this->assertTrue(in_array('18 everything else (translated)', $plurals));
  649. $this->assertTrue(in_array('19 everything else (translated)', $plurals));
  650. $this->assertTrue(in_array('20 everything else (translated)', $plurals));
  651. $this->assertTrue(in_array('21 ends 1 but not 11 (translated)', $plurals));
  652. $this->assertTrue(in_array('22 everything else (translated)', $plurals));
  653. $this->assertTrue(in_array('23 everything else (translated)', $plurals));
  654. $this->assertTrue(in_array('24 everything else (translated)', $plurals));
  655. $this->assertTrue(in_array('25 everything else (translated)', $plurals));
  656. $coreSingular = $this->__singularFromCore();
  657. $this->assertEqual('Plural Rule 3 (from core translated)', $coreSingular);
  658. $corePlurals = $this->__pluralFromCore();
  659. $this->assertTrue(in_array('0 = 0 (from core translated)', $corePlurals));
  660. $this->assertTrue(in_array('1 ends 1 but not 11 (from core translated)', $corePlurals));
  661. $this->assertTrue(in_array('2 everything else (from core translated)', $corePlurals));
  662. $this->assertTrue(in_array('3 everything else (from core translated)', $corePlurals));
  663. $this->assertTrue(in_array('4 everything else (from core translated)', $corePlurals));
  664. $this->assertTrue(in_array('5 everything else (from core translated)', $corePlurals));
  665. $this->assertTrue(in_array('6 everything else (from core translated)', $corePlurals));
  666. $this->assertTrue(in_array('7 everything else (from core translated)', $corePlurals));
  667. $this->assertTrue(in_array('8 everything else (from core translated)', $corePlurals));
  668. $this->assertTrue(in_array('9 everything else (from core translated)', $corePlurals));
  669. $this->assertTrue(in_array('10 everything else (from core translated)', $corePlurals));
  670. $this->assertTrue(in_array('11 everything else (from core translated)', $corePlurals));
  671. $this->assertTrue(in_array('12 everything else (from core translated)', $corePlurals));
  672. $this->assertTrue(in_array('13 everything else (from core translated)', $corePlurals));
  673. $this->assertTrue(in_array('14 everything else (from core translated)', $corePlurals));
  674. $this->assertTrue(in_array('15 everything else (from core translated)', $corePlurals));
  675. $this->assertTrue(in_array('16 everything else (from core translated)', $corePlurals));
  676. $this->assertTrue(in_array('17 everything else (from core translated)', $corePlurals));
  677. $this->assertTrue(in_array('18 everything else (from core translated)', $corePlurals));
  678. $this->assertTrue(in_array('19 everything else (from core translated)', $corePlurals));
  679. $this->assertTrue(in_array('20 everything else (from core translated)', $corePlurals));
  680. $this->assertTrue(in_array('21 ends 1 but not 11 (from core translated)', $corePlurals));
  681. $this->assertTrue(in_array('22 everything else (from core translated)', $corePlurals));
  682. $this->assertTrue(in_array('23 everything else (from core translated)', $corePlurals));
  683. $this->assertTrue(in_array('24 everything else (from core translated)', $corePlurals));
  684. $this->assertTrue(in_array('25 everything else (from core translated)', $corePlurals));
  685. }
  686. /**
  687. * testPoRulesFour method
  688. *
  689. * @access public
  690. * @return void
  691. */
  692. function testPoRulesFour() {
  693. Configure::write('Config.language', 'rule_4_po');
  694. $singular = $this->__singular();
  695. $this->assertEqual('Plural Rule 4 (translated)', $singular);
  696. $plurals = $this->__plural();
  697. $this->assertTrue(in_array('0 everything else (translated)', $plurals));
  698. $this->assertTrue(in_array('1 = 1 (translated)', $plurals));
  699. $this->assertTrue(in_array('2 = 2 (translated)', $plurals));
  700. $this->assertTrue(in_array('3 everything else (translated)', $plurals));
  701. $this->assertTrue(in_array('4 everything else (translated)', $plurals));
  702. $this->assertTrue(in_array('5 everything else (translated)', $plurals));
  703. $this->assertTrue(in_array('6 everything else (translated)', $plurals));
  704. $this->assertTrue(in_array('7 everything else (translated)', $plurals));
  705. $this->assertTrue(in_array('8 everything else (translated)', $plurals));
  706. $this->assertTrue(in_array('9 everything else (translated)', $plurals));
  707. $this->assertTrue(in_array('10 everything else (translated)', $plurals));
  708. $this->assertTrue(in_array('11 everything else (translated)', $plurals));
  709. $this->assertTrue(in_array('12 everything else (translated)', $plurals));
  710. $this->assertTrue(in_array('13 everything else (translated)', $plurals));
  711. $this->assertTrue(in_array('14 everything else (translated)', $plurals));
  712. $this->assertTrue(in_array('15 everything else (translated)', $plurals));
  713. $this->assertTrue(in_array('16 everything else (translated)', $plurals));
  714. $this->assertTrue(in_array('17 everything else (translated)', $plurals));
  715. $this->assertTrue(in_array('18 everything else (translated)', $plurals));
  716. $this->assertTrue(in_array('19 everything else (translated)', $plurals));
  717. $this->assertTrue(in_array('20 everything else (translated)', $plurals));
  718. $this->assertTrue(in_array('21 everything else (translated)', $plurals));
  719. $this->assertTrue(in_array('22 everything else (translated)', $plurals));
  720. $this->assertTrue(in_array('23 everything else (translated)', $plurals));
  721. $this->assertTrue(in_array('24 everything else (translated)', $plurals));
  722. $this->assertTrue(in_array('25 everything else (translated)', $plurals));
  723. $coreSingular = $this->__singularFromCore();
  724. $this->assertEqual('Plural Rule 4 (from core translated)', $coreSingular);
  725. $corePlurals = $this->__pluralFromCore();
  726. $this->assertTrue(in_array('0 everything else (from core translated)', $corePlurals));
  727. $this->assertTrue(in_array('1 = 1 (from core translated)', $corePlurals));
  728. $this->assertTrue(in_array('2 = 2 (from core translated)', $corePlurals));
  729. $this->assertTrue(in_array('3 everything else (from core translated)', $corePlurals));
  730. $this->assertTrue(in_array('4 everything else (from core translated)', $corePlurals));
  731. $this->assertTrue(in_array('5 everything else (from core translated)', $corePlurals));
  732. $this->assertTrue(in_array('6 everything else (from core translated)', $corePlurals));
  733. $this->assertTrue(in_array('7 everything else (from core translated)', $corePlurals));
  734. $this->assertTrue(in_array('8 everything else (from core translated)', $corePlurals));
  735. $this->assertTrue(in_array('9 everything else (from core translated)', $corePlurals));
  736. $this->assertTrue(in_array('10 everything else (from core translated)', $corePlurals));
  737. $this->assertTrue(in_array('11 everything else (from core translated)', $corePlurals));
  738. $this->assertTrue(in_array('12 everything else (from core translated)', $corePlurals));
  739. $this->assertTrue(in_array('13 everything else (from core translated)', $corePlurals));
  740. $this->assertTrue(in_array('14 everything else (from core translated)', $corePlurals));
  741. $this->assertTrue(in_array('15 everything else (from core translated)', $corePlurals));
  742. $this->assertTrue(in_array('16 everything else (from core translated)', $corePlurals));
  743. $this->assertTrue(in_array('17 everything else (from core translated)', $corePlurals));
  744. $this->assertTrue(in_array('18 everything else (from core translated)', $corePlurals));
  745. $this->assertTrue(in_array('19 everything else (from core translated)', $corePlurals));
  746. $this->assertTrue(in_array('20 everything else (from core translated)', $corePlurals));
  747. $this->assertTrue(in_array('21 everything else (from core translated)', $corePlurals));
  748. $this->assertTrue(in_array('22 everything else (from core translated)', $corePlurals));
  749. $this->assertTrue(in_array('23 everything else (from core translated)', $corePlurals));
  750. $this->assertTrue(in_array('24 everything else (from core translated)', $corePlurals));
  751. $this->assertTrue(in_array('25 everything else (from core translated)', $corePlurals));
  752. }
  753. /**
  754. * testMoRulesFour method
  755. *
  756. * @access public
  757. * @return void
  758. */
  759. function testMoRulesFour() {
  760. Configure::write('Config.language', 'rule_4_mo');
  761. $singular = $this->__singular();
  762. $this->assertEqual('Plural Rule 4 (translated)', $singular);
  763. $plurals = $this->__plural();
  764. $this->assertTrue(in_array('0 everything else (translated)', $plurals));
  765. $this->assertTrue(in_array('1 = 1 (translated)', $plurals));
  766. $this->assertTrue(in_array('2 = 2 (translated)', $plurals));
  767. $this->assertTrue(in_array('3 everything else (translated)', $plurals));
  768. $this->assertTrue(in_array('4 everything else (translated)', $plurals));
  769. $this->assertTrue(in_array('5 everything else (translated)', $plurals));
  770. $this->assertTrue(in_array('6 everything else (translated)', $plurals));
  771. $this->assertTrue(in_array('7 everything else (translated)', $plurals));
  772. $this->assertTrue(in_array('8 everything else (translated)', $plurals));
  773. $this->assertTrue(in_array('9 everything else (translated)', $plurals));
  774. $this->assertTrue(in_array('10 everything else (translated)', $plurals));
  775. $this->assertTrue(in_array('11 everything else (translated)', $plurals));
  776. $this->assertTrue(in_array('12 everything else (translated)', $plurals));
  777. $this->assertTrue(in_array('13 everything else (translated)', $plurals));
  778. $this->assertTrue(in_array('14 everything else (translated)', $plurals));
  779. $this->assertTrue(in_array('15 everything else (translated)', $plurals));
  780. $this->assertTrue(in_array('16 everything else (translated)', $plurals));
  781. $this->assertTrue(in_array('17 everything else (translated)', $plurals));
  782. $this->assertTrue(in_array('18 everything else (translated)', $plurals));
  783. $this->assertTrue(in_array('19 everything else (translated)', $plurals));
  784. $this->assertTrue(in_array('20 everything else (translated)', $plurals));
  785. $this->assertTrue(in_array('21 everything else (translated)', $plurals));
  786. $this->assertTrue(in_array('22 everything else (translated)', $plurals));
  787. $this->assertTrue(in_array('23 every