comparison cake/tests/cases/libs/i18n.test.php @ 0:261e66bd5a0c

hg init
author Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
date Sun, 24 Jul 2011 21:08:31 +0900
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:261e66bd5a0c
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 /**
23 * I18nTest class
24 *
25 * @package cake
26 * @subpackage cake.tests.cases.libs
27 */
28 class I18nTest extends CakeTestCase {
29
30 /**
31 * setUp method
32 *
33 * @access public
34 * @return void
35 */
36 function setUp() {
37 Cache::delete('object_map', '_cake_core_');
38 App::build(array(
39 'locales' => array(TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'locale' . DS),
40 'plugins' => array(TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'plugins' . DS)
41 ), true);
42 App::objects('plugin', null, false);
43 }
44
45 /**
46 * tearDown method
47 *
48 * @access public
49 * @return void
50 */
51 function tearDown() {
52 Cache::delete('object_map', '_cake_core_');
53 App::build();
54 App::objects('plugin', null, false);
55 }
56
57
58 function testTranslationCaching() {
59 Configure::write('Config.language', 'cache_test_po');
60 $i18n =& i18n::getInstance();
61
62 // reset internally stored entries
63 I18n::clear();
64
65 Cache::clear(false, '_cake_core_');
66 $lang = Configure::read('Config.language');#$i18n->l10n->locale;
67
68 Cache::config('_cake_core_', Cache::config('default'));
69
70 // make some calls to translate using different domains
71 $this->assertEqual(I18n::translate('dom1.foo', false, 'dom1'), 'Dom 1 Foo');
72 $this->assertEqual(I18n::translate('dom1.bar', false, 'dom1'), 'Dom 1 Bar');
73 $this->assertEqual($i18n->__domains['dom1']['cache_test_po']['LC_MESSAGES']['dom1.foo'], 'Dom 1 Foo');
74
75 // reset internally stored entries
76 I18n::clear();
77
78 // now only dom1 should be in cache
79 $cachedDom1 = Cache::read('dom1_' . $lang, '_cake_core_');
80 $this->assertEqual($cachedDom1['LC_MESSAGES']['dom1.foo'], 'Dom 1 Foo');
81 $this->assertEqual($cachedDom1['LC_MESSAGES']['dom1.bar'], 'Dom 1 Bar');
82 // dom2 not in cache
83 $this->assertFalse(Cache::read('dom2_' . $lang, '_cake_core_'));
84
85 // translate a item of dom2 (adds dom2 to cache)
86 $this->assertEqual(I18n::translate('dom2.foo', false, 'dom2'), 'Dom 2 Foo');
87
88 // verify dom2 was cached through manual read from cache
89 $cachedDom2 = Cache::read('dom2_' . $lang, '_cake_core_');
90 $this->assertEqual($cachedDom2['LC_MESSAGES']['dom2.foo'], 'Dom 2 Foo');
91 $this->assertEqual($cachedDom2['LC_MESSAGES']['dom2.bar'], 'Dom 2 Bar');
92
93 // modify cache entry manually to verify that dom1 entries now will be read from cache
94 $cachedDom1['LC_MESSAGES']['dom1.foo'] = 'FOO';
95 Cache::write('dom1_' . $lang, $cachedDom1, '_cake_core_');
96 $this->assertEqual(I18n::translate('dom1.foo', false, 'dom1'), 'FOO');
97 }
98
99
100 /**
101 * testDefaultStrings method
102 *
103 * @access public
104 * @return void
105 */
106 function testDefaultStrings() {
107 $singular = $this->__singular();
108 $this->assertEqual('Plural Rule 1', $singular);
109
110 $plurals = $this->__plural();
111 $this->assertTrue(in_array('0 = 0 or > 1', $plurals));
112 $this->assertTrue(in_array('1 = 1', $plurals));
113 $this->assertTrue(in_array('2 = 0 or > 1', $plurals));
114 $this->assertTrue(in_array('3 = 0 or > 1', $plurals));
115 $this->assertTrue(in_array('4 = 0 or > 1', $plurals));
116 $this->assertTrue(in_array('5 = 0 or > 1', $plurals));
117 $this->assertTrue(in_array('6 = 0 or > 1', $plurals));
118 $this->assertTrue(in_array('7 = 0 or > 1', $plurals));
119 $this->assertTrue(in_array('8 = 0 or > 1', $plurals));
120 $this->assertTrue(in_array('9 = 0 or > 1', $plurals));
121 $this->assertTrue(in_array('10 = 0 or > 1', $plurals));
122 $this->assertTrue(in_array('11 = 0 or > 1', $plurals));
123 $this->assertTrue(in_array('12 = 0 or > 1', $plurals));
124 $this->assertTrue(in_array('13 = 0 or > 1', $plurals));
125 $this->assertTrue(in_array('14 = 0 or > 1', $plurals));
126 $this->assertTrue(in_array('15 = 0 or > 1', $plurals));
127 $this->assertTrue(in_array('16 = 0 or > 1', $plurals));
128 $this->assertTrue(in_array('17 = 0 or > 1', $plurals));
129 $this->assertTrue(in_array('18 = 0 or > 1', $plurals));
130 $this->assertTrue(in_array('19 = 0 or > 1', $plurals));
131 $this->assertTrue(in_array('20 = 0 or > 1', $plurals));
132 $this->assertTrue(in_array('21 = 0 or > 1', $plurals));
133 $this->assertTrue(in_array('22 = 0 or > 1', $plurals));
134 $this->assertTrue(in_array('23 = 0 or > 1', $plurals));
135 $this->assertTrue(in_array('24 = 0 or > 1', $plurals));
136 $this->assertTrue(in_array('25 = 0 or > 1', $plurals));
137
138 $coreSingular = $this->__singularFromCore();
139 $this->assertEqual('Plural Rule 1 (from core)', $coreSingular);
140
141 $corePlurals = $this->__pluralFromCore();
142 $this->assertTrue(in_array('0 = 0 or > 1 (from core)', $corePlurals));
143 $this->assertTrue(in_array('1 = 1 (from core)', $corePlurals));
144 $this->assertTrue(in_array('2 = 0 or > 1 (from core)', $corePlurals));
145 $this->assertTrue(in_array('3 = 0 or > 1 (from core)', $corePlurals));
146 $this->assertTrue(in_array('4 = 0 or > 1 (from core)', $corePlurals));
147 $this->assertTrue(in_array('5 = 0 or > 1 (from core)', $corePlurals));
148 $this->assertTrue(in_array('6 = 0 or > 1 (from core)', $corePlurals));
149 $this->assertTrue(in_array('7 = 0 or > 1 (from core)', $corePlurals));
150 $this->assertTrue(in_array('8 = 0 or > 1 (from core)', $corePlurals));
151 $this->assertTrue(in_array('9 = 0 or > 1 (from core)', $corePlurals));
152 $this->assertTrue(in_array('10 = 0 or > 1 (from core)', $corePlurals));
153 $this->assertTrue(in_array('11 = 0 or > 1 (from core)', $corePlurals));
154 $this->assertTrue(in_array('12 = 0 or > 1 (from core)', $corePlurals));
155 $this->assertTrue(in_array('13 = 0 or > 1 (from core)', $corePlurals));
156 $this->assertTrue(in_array('14 = 0 or > 1 (from core)', $corePlurals));
157 $this->assertTrue(in_array('15 = 0 or > 1 (from core)', $corePlurals));
158 $this->assertTrue(in_array('16 = 0 or > 1 (from core)', $corePlurals));
159 $this->assertTrue(in_array('17 = 0 or > 1 (from core)', $corePlurals));
160 $this->assertTrue(in_array('18 = 0 or > 1 (from core)', $corePlurals));
161 $this->assertTrue(in_array('19 = 0 or > 1 (from core)', $corePlurals));
162 $this->assertTrue(in_array('20 = 0 or > 1 (from core)', $corePlurals));
163 $this->assertTrue(in_array('21 = 0 or > 1 (from core)', $corePlurals));
164 $this->assertTrue(in_array('22 = 0 or > 1 (from core)', $corePlurals));
165 $this->assertTrue(in_array('23 = 0 or > 1 (from core)', $corePlurals));
166 $this->assertTrue(in_array('24 = 0 or > 1 (from core)', $corePlurals));
167 $this->assertTrue(in_array('25 = 0 or > 1 (from core)', $corePlurals));
168 }
169
170 /**
171 * testPoRulesZero method
172 *
173 * @access public
174 * @return void
175 */
176 function testPoRulesZero() {
177 Configure::write('Config.language', 'rule_0_po');
178
179 $singular = $this->__singular();
180 $this->assertEqual('Plural Rule 0 (translated)', $singular);
181
182 $plurals = $this->__plural();
183 $this->assertTrue(in_array('0 ends with any # (translated)', $plurals));
184 $this->assertTrue(in_array('1 ends with any # (translated)', $plurals));
185 $this->assertTrue(in_array('2 ends with any # (translated)', $plurals));
186 $this->assertTrue(in_array('3 ends with any # (translated)', $plurals));
187 $this->assertTrue(in_array('4 ends with any # (translated)', $plurals));
188 $this->assertTrue(in_array('5 ends with any # (translated)', $plurals));
189 $this->assertTrue(in_array('6 ends with any # (translated)', $plurals));
190 $this->assertTrue(in_array('7 ends with any # (translated)', $plurals));
191 $this->assertTrue(in_array('8 ends with any # (translated)', $plurals));
192 $this->assertTrue(in_array('9 ends with any # (translated)', $plurals));
193 $this->assertTrue(in_array('10 ends with any # (translated)', $plurals));
194 $this->assertTrue(in_array('11 ends with any # (translated)', $plurals));
195 $this->assertTrue(in_array('12 ends with any # (translated)', $plurals));
196 $this->assertTrue(in_array('13 ends with any # (translated)', $plurals));
197 $this->assertTrue(in_array('14 ends with any # (translated)', $plurals));
198 $this->assertTrue(in_array('15 ends with any # (translated)', $plurals));
199 $this->assertTrue(in_array('16 ends with any # (translated)', $plurals));
200 $this->assertTrue(in_array('17 ends with any # (translated)', $plurals));
201 $this->assertTrue(in_array('18 ends with any # (translated)', $plurals));
202 $this->assertTrue(in_array('19 ends with any # (translated)', $plurals));
203 $this->assertTrue(in_array('20 ends with any # (translated)', $plurals));
204 $this->assertTrue(in_array('21 ends with any # (translated)', $plurals));
205 $this->assertTrue(in_array('22 ends with any # (translated)', $plurals));
206 $this->assertTrue(in_array('23 ends with any # (translated)', $plurals));
207 $this->assertTrue(in_array('24 ends with any # (translated)', $plurals));
208 $this->assertTrue(in_array('25 ends with any # (translated)', $plurals));
209
210 $coreSingular = $this->__singularFromCore();
211 $this->assertEqual('Plural Rule 0 (from core translated)', $coreSingular);
212
213 $corePlurals = $this->__pluralFromCore();
214 $this->assertTrue(in_array('0 ends with any # (from core translated)', $corePlurals));
215 $this->assertTrue(in_array('1 ends with any # (from core translated)', $corePlurals));
216 $this->assertTrue(in_array('2 ends with any # (from core translated)', $corePlurals));
217 $this->assertTrue(in_array('3 ends with any # (from core translated)', $corePlurals));
218 $this->assertTrue(in_array('4 ends with any # (from core translated)', $corePlurals));
219 $this->assertTrue(in_array('5 ends with any # (from core translated)', $corePlurals));
220 $this->assertTrue(in_array('6 ends with any # (from core translated)', $corePlurals));
221 $this->assertTrue(in_array('7 ends with any # (from core translated)', $corePlurals));
222 $this->assertTrue(in_array('8 ends with any # (from core translated)', $corePlurals));
223 $this->assertTrue(in_array('9 ends with any # (from core translated)', $corePlurals));
224 $this->assertTrue(in_array('10 ends with any # (from core translated)', $corePlurals));
225 $this->assertTrue(in_array('11 ends with any # (from core translated)', $corePlurals));
226 $this->assertTrue(in_array('12 ends with any # (from core translated)', $corePlurals));
227 $this->assertTrue(in_array('13 ends with any # (from core translated)', $corePlurals));
228 $this->assertTrue(in_array('14 ends with any # (from core translated)', $corePlurals));
229 $this->assertTrue(in_array('15 ends with any # (from core translated)', $corePlurals));
230 $this->assertTrue(in_array('16 ends with any # (from core translated)', $corePlurals));
231 $this->assertTrue(in_array('17 ends with any # (from core translated)', $corePlurals));
232 $this->assertTrue(in_array('18 ends with any # (from core translated)', $corePlurals));
233 $this->assertTrue(in_array('19 ends with any # (from core translated)', $corePlurals));
234 $this->assertTrue(in_array('20 ends with any # (from core translated)', $corePlurals));
235 $this->assertTrue(in_array('21 ends with any # (from core translated)', $corePlurals));
236 $this->assertTrue(in_array('22 ends with any # (from core translated)', $corePlurals));
237 $this->assertTrue(in_array('23 ends with any # (from core translated)', $corePlurals));
238 $this->assertTrue(in_array('24 ends with any # (from core translated)', $corePlurals));
239 $this->assertTrue(in_array('25 ends with any # (from core translated)', $corePlurals));
240 }
241
242 /**
243 * testMoRulesZero method
244 *
245 * @access public
246 * @return void
247 */
248 function testMoRulesZero() {
249 Configure::write('Config.language', 'rule_0_mo');
250
251 $singular = $this->__singular();
252 $this->assertEqual('Plural Rule 0 (translated)', $singular);
253
254 $plurals = $this->__plural();
255 $this->assertTrue(in_array('0 ends with any # (translated)', $plurals));
256 $this->assertTrue(in_array('1 ends with any # (translated)', $plurals));
257 $this->assertTrue(in_array('2 ends with any # (translated)', $plurals));
258 $this->assertTrue(in_array('3 ends with any # (translated)', $plurals));
259 $this->assertTrue(in_array('4 ends with any # (translated)', $plurals));
260 $this->assertTrue(in_array('5 ends with any # (translated)', $plurals));
261 $this->assertTrue(in_array('6 ends with any # (translated)', $plurals));
262 $this->assertTrue(in_array('7 ends with any # (translated)', $plurals));
263 $this->assertTrue(in_array('8 ends with any # (translated)', $plurals));
264 $this->assertTrue(in_array('9 ends with any # (translated)', $plurals));
265 $this->assertTrue(in_array('10 ends with any # (translated)', $plurals));
266 $this->assertTrue(in_array('11 ends with any # (translated)', $plurals));
267 $this->assertTrue(in_array('12 ends with any # (translated)', $plurals));
268 $this->assertTrue(in_array('13 ends with any # (translated)', $plurals));
269 $this->assertTrue(in_array('14 ends with any # (translated)', $plurals));
270 $this->assertTrue(in_array('15 ends with any # (translated)', $plurals));
271 $this->assertTrue(in_array('16 ends with any # (translated)', $plurals));
272 $this->assertTrue(in_array('17 ends with any # (translated)', $plurals));
273 $this->assertTrue(in_array('18 ends with any # (translated)', $plurals));
274 $this->assertTrue(in_array('19 ends with any # (translated)', $plurals));
275 $this->assertTrue(in_array('20 ends with any # (translated)', $plurals));
276 $this->assertTrue(in_array('21 ends with any # (translated)', $plurals));
277 $this->assertTrue(in_array('22 ends with any # (translated)', $plurals));
278 $this->assertTrue(in_array('23 ends with any # (translated)', $plurals));
279 $this->assertTrue(in_array('24 ends with any # (translated)', $plurals));
280 $this->assertTrue(in_array('25 ends with any # (translated)', $plurals));
281
282 $coreSingular = $this->__singularFromCore();
283 $this->assertEqual('Plural Rule 0 (from core translated)', $coreSingular);
284
285 $corePlurals = $this->__pluralFromCore();
286 $this->assertTrue(in_array('0 ends with any # (from core translated)', $corePlurals));
287 $this->assertTrue(in_array('1 ends with any # (from core translated)', $corePlurals));
288 $this->assertTrue(in_array('2 ends with any # (from core translated)', $corePlurals));
289 $this->assertTrue(in_array('3 ends with any # (from core translated)', $corePlurals));
290 $this->assertTrue(in_array('4 ends with any # (from core translated)', $corePlurals));
291 $this->assertTrue(in_array('5 ends with any # (from core translated)', $corePlurals));
292 $this->assertTrue(in_array('6 ends with any # (from core translated)', $corePlurals));
293 $this->assertTrue(in_array('7 ends with any # (from core translated)', $corePlurals));
294 $this->assertTrue(in_array('8 ends with any # (from core translated)', $corePlurals));
295 $this->assertTrue(in_array('9 ends with any # (from core translated)', $corePlurals));
296 $this->assertTrue(in_array('10 ends with any # (from core translated)', $corePlurals));
297 $this->assertTrue(in_array('11 ends with any # (from core translated)', $corePlurals));
298 $this->assertTrue(in_array('12 ends with any # (from core translated)', $corePlurals));
299 $this->assertTrue(in_array('13 ends with any # (from core translated)', $corePlurals));
300 $this->assertTrue(in_array('14 ends with any # (from core translated)', $corePlurals));
301 $this->assertTrue(in_array('15 ends with any # (from core translated)', $corePlurals));
302 $this->assertTrue(in_array('16 ends with any # (from core translated)', $corePlurals));
303 $this->assertTrue(in_array('17 ends with any # (from core translated)', $corePlurals));
304 $this->assertTrue(in_array('18 ends with any # (from core translated)', $corePlurals));
305 $this->assertTrue(in_array('19 ends with any # (from core translated)', $corePlurals));
306 $this->assertTrue(in_array('20 ends with any # (from core translated)', $corePlurals));
307 $this->assertTrue(in_array('21 ends with any # (from core translated)', $corePlurals));
308 $this->assertTrue(in_array('22 ends with any # (from core translated)', $corePlurals));
309 $this->assertTrue(in_array('23 ends with any # (from core translated)', $corePlurals));
310 $this->assertTrue(in_array('24 ends with any # (from core translated)', $corePlurals));
311 $this->assertTrue(in_array('25 ends with any # (from core translated)', $corePlurals));
312 }
313
314 /**
315 * testPoRulesOne method
316 *
317 * @access public
318 * @return void
319 */
320 function testPoRulesOne() {
321 Configure::write('Config.language', 'rule_1_po');
322
323 $singular = $this->__singular();
324 $this->assertEqual('Plural Rule 1 (translated)', $singular);
325
326 $plurals = $this->__plural();
327 $this->assertTrue(in_array('0 = 0 or > 1 (translated)', $plurals));
328 $this->assertTrue(in_array('1 = 1 (translated)', $plurals));
329 $this->assertTrue(in_array('2 = 0 or > 1 (translated)', $plurals));
330 $this->assertTrue(in_array('3 = 0 or > 1 (translated)', $plurals));
331 $this->assertTrue(in_array('4 = 0 or > 1 (translated)', $plurals));
332 $this->assertTrue(in_array('5 = 0 or > 1 (translated)', $plurals));
333 $this->assertTrue(in_array('6 = 0 or > 1 (translated)', $plurals));
334 $this->assertTrue(in_array('7 = 0 or > 1 (translated)', $plurals));
335 $this->assertTrue(in_array('8 = 0 or > 1 (translated)', $plurals));
336 $this->assertTrue(in_array('9 = 0 or > 1 (translated)', $plurals));
337 $this->assertTrue(in_array('10 = 0 or > 1 (translated)', $plurals));
338 $this->assertTrue(in_array('11 = 0 or > 1 (translated)', $plurals));
339 $this->assertTrue(in_array('12 = 0 or > 1 (translated)', $plurals));
340 $this->assertTrue(in_array('13 = 0 or > 1 (translated)', $plurals));
341 $this->assertTrue(in_array('14 = 0 or > 1 (translated)', $plurals));
342 $this->assertTrue(in_array('15 = 0 or > 1 (translated)', $plurals));
343 $this->assertTrue(in_array('16 = 0 or > 1 (translated)', $plurals));
344 $this->assertTrue(in_array('17 = 0 or > 1 (translated)', $plurals));
345 $this->assertTrue(in_array('18 = 0 or > 1 (translated)', $plurals));
346 $this->assertTrue(in_array('19 = 0 or > 1 (translated)', $plurals));
347 $this->assertTrue(in_array('20 = 0 or > 1 (translated)', $plurals));
348 $this->assertTrue(in_array('21 = 0 or > 1 (translated)', $plurals));
349 $this->assertTrue(in_array('22 = 0 or > 1 (translated)', $plurals));
350 $this->assertTrue(in_array('23 = 0 or > 1 (translated)', $plurals));
351 $this->assertTrue(in_array('24 = 0 or > 1 (translated)', $plurals));
352 $this->assertTrue(in_array('25 = 0 or > 1 (translated)', $plurals));
353
354 $coreSingular = $this->__singularFromCore();
355 $this->assertEqual('Plural Rule 1 (from core translated)', $coreSingular);
356
357 $corePlurals = $this->__pluralFromCore();
358 $this->assertTrue(in_array('0 = 0 or > 1 (from core translated)', $corePlurals));
359 $this->assertTrue(in_array('1 = 1 (from core translated)', $corePlurals));
360 $this->assertTrue(in_array('2 = 0 or > 1 (from core translated)', $corePlurals));
361 $this->assertTrue(in_array('3 = 0 or > 1 (from core translated)', $corePlurals));
362 $this->assertTrue(in_array('4 = 0 or > 1 (from core translated)', $corePlurals));
363 $this->assertTrue(in_array('5 = 0 or > 1 (from core translated)', $corePlurals));
364 $this->assertTrue(in_array('6 = 0 or > 1 (from core translated)', $corePlurals));
365 $this->assertTrue(in_array('7 = 0 or > 1 (from core translated)', $corePlurals));
366 $this->assertTrue(in_array('8 = 0 or > 1 (from core translated)', $corePlurals));
367 $this->assertTrue(in_array('9 = 0 or > 1 (from core translated)', $corePlurals));
368 $this->assertTrue(in_array('10 = 0 or > 1 (from core translated)', $corePlurals));
369 $this->assertTrue(in_array('11 = 0 or > 1 (from core translated)', $corePlurals));
370 $this->assertTrue(in_array('12 = 0 or > 1 (from core translated)', $corePlurals));
371 $this->assertTrue(in_array('13 = 0 or > 1 (from core translated)', $corePlurals));
372 $this->assertTrue(in_array('14 = 0 or > 1 (from core translated)', $corePlurals));
373 $this->assertTrue(in_array('15 = 0 or > 1 (from core translated)', $corePlurals));
374 $this->assertTrue(in_array('16 = 0 or > 1 (from core translated)', $corePlurals));
375 $this->assertTrue(in_array('17 = 0 or > 1 (from core translated)', $corePlurals));
376 $this->assertTrue(in_array('18 = 0 or > 1 (from core translated)', $corePlurals));
377 $this->assertTrue(in_array('19 = 0 or > 1 (from core translated)', $corePlurals));
378 $this->assertTrue(in_array('20 = 0 or > 1 (from core translated)', $corePlurals));
379 $this->assertTrue(in_array('21 = 0 or > 1 (from core translated)', $corePlurals));
380 $this->assertTrue(in_array('22 = 0 or > 1 (from core translated)', $corePlurals));
381 $this->assertTrue(in_array('23 = 0 or > 1 (from core translated)', $corePlurals));
382 $this->assertTrue(in_array('24 = 0 or > 1 (from core translated)', $corePlurals));
383 $this->assertTrue(in_array('25 = 0 or > 1 (from core translated)', $corePlurals));
384 }
385
386 /**
387 * testMoRulesOne method
388 *
389 * @access public
390 * @return void
391 */
392 function testMoRulesOne() {
393 Configure::write('Config.language', 'rule_1_mo');
394
395 $singular = $this->__singular();
396 $this->assertEqual('Plural Rule 1 (translated)', $singular);
397
398 $plurals = $this->__plural();
399 $this->assertTrue(in_array('0 = 0 or > 1 (translated)', $plurals));
400 $this->assertTrue(in_array('1 = 1 (translated)', $plurals));
401 $this->assertTrue(in_array('2 = 0 or > 1 (translated)', $plurals));
402 $this->assertTrue(in_array('3 = 0 or > 1 (translated)', $plurals));
403 $this->assertTrue(in_array('4 = 0 or > 1 (translated)', $plurals));
404 $this->assertTrue(in_array('5 = 0 or > 1 (translated)', $plurals));
405 $this->assertTrue(in_array('6 = 0 or > 1 (translated)', $plurals));
406 $this->assertTrue(in_array('7 = 0 or > 1 (translated)', $plurals));
407 $this->assertTrue(in_array('8 = 0 or > 1 (translated)', $plurals));
408 $this->assertTrue(in_array('9 = 0 or > 1 (translated)', $plurals));
409 $this->assertTrue(in_array('10 = 0 or > 1 (translated)', $plurals));
410 $this->assertTrue(in_array('11 = 0 or > 1 (translated)', $plurals));
411 $this->assertTrue(in_array('12 = 0 or > 1 (translated)', $plurals));
412 $this->assertTrue(in_array('13 = 0 or > 1 (translated)', $plurals));
413 $this->assertTrue(in_array('14 = 0 or > 1 (translated)', $plurals));
414 $this->assertTrue(in_array('15 = 0 or > 1 (translated)', $plurals));
415 $this->assertTrue(in_array('16 = 0 or > 1 (translated)', $plurals));
416 $this->assertTrue(in_array('17 = 0 or > 1 (translated)', $plurals));
417 $this->assertTrue(in_array('18 = 0 or > 1 (translated)', $plurals));
418 $this->assertTrue(in_array('19 = 0 or > 1 (translated)', $plurals));
419 $this->assertTrue(in_array('20 = 0 or > 1 (translated)', $plurals));
420 $this->assertTrue(in_array('21 = 0 or > 1 (translated)', $plurals));
421 $this->assertTrue(in_array('22 = 0 or > 1 (translated)', $plurals));
422 $this->assertTrue(in_array('23 = 0 or > 1 (translated)', $plurals));
423 $this->assertTrue(in_array('24 = 0 or > 1 (translated)', $plurals));
424 $this->assertTrue(in_array('25 = 0 or > 1 (translated)', $plurals));
425
426 $coreSingular = $this->__singularFromCore();
427 $this->assertEqual('Plural Rule 1 (from core translated)', $coreSingular);
428
429 $corePlurals = $this->__pluralFromCore();
430 $this->assertTrue(in_array('0 = 0 or > 1 (from core translated)', $corePlurals));
431 $this->assertTrue(in_array('1 = 1 (from core translated)', $corePlurals));
432 $this->assertTrue(in_array('2 = 0 or > 1 (from core translated)', $corePlurals));
433 $this->assertTrue(in_array('3 = 0 or > 1 (from core translated)', $corePlurals));
434 $this->assertTrue(in_array('4 = 0 or > 1 (from core translated)', $corePlurals));
435 $this->assertTrue(in_array('5 = 0 or > 1 (from core translated)', $corePlurals));
436 $this->assertTrue(in_array('6 = 0 or > 1 (from core translated)', $corePlurals));
437 $this->assertTrue(in_array('7 = 0 or > 1 (from core translated)', $corePlurals));
438 $this->assertTrue(in_array('8 = 0 or > 1 (from core translated)', $corePlurals));
439 $this->assertTrue(in_array('9 = 0 or > 1 (from core translated)', $corePlurals));
440 $this->assertTrue(in_array('10 = 0 or > 1 (from core translated)', $corePlurals));
441 $this->assertTrue(in_array('11 = 0 or > 1 (from core translated)', $corePlurals));
442 $this->assertTrue(in_array('12 = 0 or > 1 (from core translated)', $corePlurals));
443 $this->assertTrue(in_array('13 = 0 or > 1 (from core translated)', $corePlurals));
444 $this->assertTrue(in_array('14 = 0 or > 1 (from core translated)', $corePlurals));
445 $this->assertTrue(in_array('15 = 0 or > 1 (from core translated)', $corePlurals));
446 $this->assertTrue(in_array('16 = 0 or > 1 (from core translated)', $corePlurals));
447 $this->assertTrue(in_array('17 = 0 or > 1 (from core translated)', $corePlurals));
448 $this->assertTrue(in_array('18 = 0 or > 1 (from core translated)', $corePlurals));
449 $this->assertTrue(in_array('19 = 0 or > 1 (from core translated)', $corePlurals));
450 $this->assertTrue(in_array('20 = 0 or > 1 (from core translated)', $corePlurals));
451 $this->assertTrue(in_array('21 = 0 or > 1 (from core translated)', $corePlurals));
452 $this->assertTrue(in_array('22 = 0 or > 1 (from core translated)', $corePlurals));
453 $this->assertTrue(in_array('23 = 0 or > 1 (from core translated)', $corePlurals));
454 $this->assertTrue(in_array('24 = 0 or > 1 (from core translated)', $corePlurals));
455 $this->assertTrue(in_array('25 = 0 or > 1 (from core translated)', $corePlurals));
456 }
457
458 /**
459 * testPoRulesTwo method
460 *
461 * @access public
462 * @return void
463 */
464 function testPoRulesTwo() {
465 Configure::write('Config.language', 'rule_2_po');
466
467 $singular = $this->__singular();
468 $this->assertEqual('Plural Rule 2 (translated)', $singular);
469
470 $plurals = $this->__plural();
471 $this->assertTrue(in_array('0 = 0 or 1 (translated)', $plurals));
472 $this->assertTrue(in_array('1 = 0 or 1 (translated)', $plurals));
473 $this->assertTrue(in_array('2 > 1 (translated)', $plurals));
474 $this->assertTrue(in_array('3 > 1 (translated)', $plurals));
475 $this->assertTrue(in_array('4 > 1 (translated)', $plurals));
476 $this->assertTrue(in_array('5 > 1 (translated)', $plurals));
477 $this->assertTrue(in_array('6 > 1 (translated)', $plurals));
478 $this->assertTrue(in_array('7 > 1 (translated)', $plurals));
479 $this->assertTrue(in_array('8 > 1 (translated)', $plurals));
480 $this->assertTrue(in_array('9 > 1 (translated)', $plurals));
481 $this->assertTrue(in_array('10 > 1 (translated)', $plurals));
482 $this->assertTrue(in_array('11 > 1 (translated)', $plurals));
483 $this->assertTrue(in_array('12 > 1 (translated)', $plurals));
484 $this->assertTrue(in_array('13 > 1 (translated)', $plurals));
485 $this->assertTrue(in_array('14 > 1 (translated)', $plurals));
486 $this->assertTrue(in_array('15 > 1 (translated)', $plurals));
487 $this->assertTrue(in_array('16 > 1 (translated)', $plurals));
488 $this->assertTrue(in_array('17 > 1 (translated)', $plurals));
489 $this->assertTrue(in_array('18 > 1 (translated)', $plurals));
490 $this->assertTrue(in_array('19 > 1 (translated)', $plurals));
491 $this->assertTrue(in_array('20 > 1 (translated)', $plurals));
492 $this->assertTrue(in_array('21 > 1 (translated)', $plurals));
493 $this->assertTrue(in_array('22 > 1 (translated)', $plurals));
494 $this->assertTrue(in_array('23 > 1 (translated)', $plurals));
495 $this->assertTrue(in_array('24 > 1 (translated)', $plurals));
496 $this->assertTrue(in_array('25 > 1 (translated)', $plurals));
497
498 $coreSingular = $this->__singularFromCore();
499 $this->assertEqual('Plural Rule 2 (from core translated)', $coreSingular);
500
501 $corePlurals = $this->__pluralFromCore();
502 $this->assertTrue(in_array('0 = 0 or 1 (from core translated)', $corePlurals));
503 $this->assertTrue(in_array('1 = 0 or 1 (from core translated)', $corePlurals));
504 $this->assertTrue(in_array('2 > 1 (from core translated)', $corePlurals));
505 $this->assertTrue(in_array('3 > 1 (from core translated)', $corePlurals));
506 $this->assertTrue(in_array('4 > 1 (from core translated)', $corePlurals));
507 $this->assertTrue(in_array('5 > 1 (from core translated)', $corePlurals));
508 $this->assertTrue(in_array('6 > 1 (from core translated)', $corePlurals));
509 $this->assertTrue(in_array('7 > 1 (from core translated)', $corePlurals));
510 $this->assertTrue(in_array('8 > 1 (from core translated)', $corePlurals));
511 $this->assertTrue(in_array('9 > 1 (from core translated)', $corePlurals));
512 $this->assertTrue(in_array('10 > 1 (from core translated)', $corePlurals));
513 $this->assertTrue(in_array('11 > 1 (from core translated)', $corePlurals));
514 $this->assertTrue(in_array('12 > 1 (from core translated)', $corePlurals));
515 $this->assertTrue(in_array('13 > 1 (from core translated)', $corePlurals));
516 $this->assertTrue(in_array('14 > 1 (from core translated)', $corePlurals));
517 $this->assertTrue(in_array('15 > 1 (from core translated)', $corePlurals));
518 $this->assertTrue(in_array('16 > 1 (from core translated)', $corePlurals));
519 $this->assertTrue(in_array('17 > 1 (from core translated)', $corePlurals));
520 $this->assertTrue(in_array('18 > 1 (from core translated)', $corePlurals));
521 $this->assertTrue(in_array('19 > 1 (from core translated)', $corePlurals));
522 $this->assertTrue(in_array('20 > 1 (from core translated)', $corePlurals));
523 $this->assertTrue(in_array('21 > 1 (from core translated)', $corePlurals));
524 $this->assertTrue(in_array('22 > 1 (from core translated)', $corePlurals));
525 $this->assertTrue(in_array('23 > 1 (from core translated)', $corePlurals));
526 $this->assertTrue(in_array('24 > 1 (from core translated)', $corePlurals));
527 $this->assertTrue(in_array('25 > 1 (from core translated)', $corePlurals));
528 }
529
530 /**
531 * testMoRulesTwo method
532 *
533 * @access public
534 * @return void
535 */
536 function testMoRulesTwo() {
537 Configure::write('Config.language', 'rule_2_mo');
538
539 $singular = $this->__singular();
540 $this->assertEqual('Plural Rule 2 (translated)', $singular);
541
542 $plurals = $this->__plural();
543 $this->assertTrue(in_array('0 = 0 or 1 (translated)', $plurals));
544 $this->assertTrue(in_array('1 = 0 or 1 (translated)', $plurals));
545 $this->assertTrue(in_array('2 > 1 (translated)', $plurals));
546 $this->assertTrue(in_array('3 > 1 (translated)', $plurals));
547 $this->assertTrue(in_array('4 > 1 (translated)', $plurals));
548 $this->assertTrue(in_array('5 > 1 (translated)', $plurals));
549 $this->assertTrue(in_array('6 > 1 (translated)', $plurals));
550 $this->assertTrue(in_array('7 > 1 (translated)', $plurals));
551 $this->assertTrue(in_array('8 > 1 (translated)', $plurals));
552 $this->assertTrue(in_array('9 > 1 (translated)', $plurals));
553 $this->assertTrue(in_array('10 > 1 (translated)', $plurals));
554 $this->assertTrue(in_array('11 > 1 (translated)', $plurals));
555 $this->assertTrue(in_array('12 > 1 (translated)', $plurals));
556 $this->assertTrue(in_array('13 > 1 (translated)', $plurals));
557 $this->assertTrue(in_array('14 > 1 (translated)', $plurals));
558 $this->assertTrue(in_array('15 > 1 (translated)', $plurals));
559 $this->assertTrue(in_array('16 > 1 (translated)', $plurals));
560 $this->assertTrue(in_array('17 > 1 (translated)', $plurals));
561 $this->assertTrue(in_array('18 > 1 (translated)', $plurals));
562 $this->assertTrue(in_array('19 > 1 (translated)', $plurals));
563 $this->assertTrue(in_array('20 > 1 (translated)', $plurals));
564 $this->assertTrue(in_array('21 > 1 (translated)', $plurals));
565 $this->assertTrue(in_array('22 > 1 (translated)', $plurals));
566 $this->assertTrue(in_array('23 > 1 (translated)', $plurals));
567 $this->assertTrue(in_array('24 > 1 (translated)', $plurals));
568 $this->assertTrue(in_array('25 > 1 (translated)', $plurals));
569
570 $coreSingular = $this->__singularFromCore();
571 $this->assertEqual('Plural Rule 2 (from core translated)', $coreSingular);
572
573 $corePlurals = $this->__pluralFromCore();
574 $this->assertTrue(in_array('0 = 0 or 1 (from core translated)', $corePlurals));
575 $this->assertTrue(in_array('1 = 0 or 1 (from core translated)', $corePlurals));
576 $this->assertTrue(in_array('2 > 1 (from core translated)', $corePlurals));
577 $this->assertTrue(in_array('3 > 1 (from core translated)', $corePlurals));
578 $this->assertTrue(in_array('4 > 1 (from core translated)', $corePlurals));
579 $this->assertTrue(in_array('5 > 1 (from core translated)', $corePlurals));
580 $this->assertTrue(in_array('6 > 1 (from core translated)', $corePlurals));
581 $this->assertTrue(in_array('7 > 1 (from core translated)', $corePlurals));
582 $this->assertTrue(in_array('8 > 1 (from core translated)', $corePlurals));
583 $this->assertTrue(in_array('9 > 1 (from core translated)', $corePlurals));
584 $this->assertTrue(in_array('10 > 1 (from core translated)', $corePlurals));
585 $this->assertTrue(in_array('11 > 1 (from core translated)', $corePlurals));
586 $this->assertTrue(in_array('12 > 1 (from core translated)', $corePlurals));
587 $this->assertTrue(in_array('13 > 1 (from core translated)', $corePlurals));
588 $this->assertTrue(in_array('14 > 1 (from core translated)', $corePlurals));
589 $this->assertTrue(in_array('15 > 1 (from core translated)', $corePlurals));
590 $this->assertTrue(in_array('16 > 1 (from core translated)', $corePlurals));
591 $this->assertTrue(in_array('17 > 1 (from core translated)', $corePlurals));
592 $this->assertTrue(in_array('18 > 1 (from core translated)', $corePlurals));
593 $this->assertTrue(in_array('19 > 1 (from core translated)', $corePlurals));
594 $this->assertTrue(in_array('20 > 1 (from core translated)', $corePlurals));
595 $this->assertTrue(in_array('21 > 1 (from core translated)', $corePlurals));
596 $this->assertTrue(in_array('22 > 1 (from core translated)', $corePlurals));
597 $this->assertTrue(in_array('23 > 1 (from core translated)', $corePlurals));
598 $this->assertTrue(in_array('24 > 1 (from core translated)', $corePlurals));
599 $this->assertTrue(in_array('25 > 1 (from core translated)', $corePlurals));
600 }
601
602 /**
603 * testPoRulesThree method
604 *
605 * @access public
606 * @return void
607 */
608 function testPoRulesThree() {
609 Configure::write('Config.language', 'rule_3_po');
610
611 $singular = $this->__singular();
612 $this->assertEqual('Plural Rule 3 (translated)', $singular);
613
614 $plurals = $this->__plural();
615 $this->assertTrue(in_array('0 = 0 (translated)', $plurals));
616 $this->assertTrue(in_array('1 ends 1 but not 11 (translated)', $plurals));
617 $this->assertTrue(in_array('2 everything else (translated)', $plurals));
618 $this->assertTrue(in_array('3 everything else (translated)', $plurals));
619 $this->assertTrue(in_array('4 everything else (translated)', $plurals));
620 $this->assertTrue(in_array('5 everything else (translated)', $plurals));
621 $this->assertTrue(in_array('6 everything else (translated)', $plurals));
622 $this->assertTrue(in_array('7 everything else (translated)', $plurals));
623 $this->assertTrue(in_array('8 everything else (translated)', $plurals));
624 $this->assertTrue(in_array('9 everything else (translated)', $plurals));
625 $this->assertTrue(in_array('10 everything else (translated)', $plurals));
626 $this->assertTrue(in_array('11 everything else (translated)', $plurals));
627 $this->assertTrue(in_array('12 everything else (translated)', $plurals));
628 $this->assertTrue(in_array('13 everything else (translated)', $plurals));
629 $this->assertTrue(in_array('14 everything else (translated)', $plurals));
630 $this->assertTrue(in_array('15 everything else (translated)', $plurals));
631 $this->assertTrue(in_array('16 everything else (translated)', $plurals));
632 $this->assertTrue(in_array('17 everything else (translated)', $plurals));
633 $this->assertTrue(in_array('18 everything else (translated)', $plurals));
634 $this->assertTrue(in_array('19 everything else (translated)', $plurals));
635 $this->assertTrue(in_array('20 everything else (translated)', $plurals));
636 $this->assertTrue(in_array('21 ends 1 but not 11 (translated)', $plurals));
637 $this->assertTrue(in_array('22 everything else (translated)', $plurals));
638 $this->assertTrue(in_array('23 everything else (translated)', $plurals));
639 $this->assertTrue(in_array('24 everything else (translated)', $plurals));
640 $this->assertTrue(in_array('25 everything else (translated)', $plurals));
641
642 $coreSingular = $this->__singularFromCore();
643 $this->assertEqual('Plural Rule 3 (from core translated)', $coreSingular);
644
645 $corePlurals = $this->__pluralFromCore();
646 $this->assertTrue(in_array('0 = 0 (from core translated)', $corePlurals));
647 $this->assertTrue(in_array('1 ends 1 but not 11 (from core translated)', $corePlurals));
648 $this->assertTrue(in_array('2 everything else (from core translated)', $corePlurals));
649 $this->assertTrue(in_array('3 everything else (from core translated)', $corePlurals));
650 $this->assertTrue(in_array('4 everything else (from core translated)', $corePlurals));
651 $this->assertTrue(in_array('5 everything else (from core translated)', $corePlurals));
652 $this->assertTrue(in_array('6 everything else (from core translated)', $corePlurals));
653 $this->assertTrue(in_array('7 everything else (from core translated)', $corePlurals));
654 $this->assertTrue(in_array('8 everything else (from core translated)', $corePlurals));
655 $this->assertTrue(in_array('9 everything else (from core translated)', $corePlurals));
656 $this->assertTrue(in_array('10 everything else (from core translated)', $corePlurals));
657 $this->assertTrue(in_array('11 everything else (from core translated)', $corePlurals));
658 $this->assertTrue(in_array('12 everything else (from core translated)', $corePlurals));
659 $this->assertTrue(in_array('13 everything else (from core translated)', $corePlurals));
660 $this->assertTrue(in_array('14 everything else (from core translated)', $corePlurals));
661 $this->assertTrue(in_array('15 everything else (from core translated)', $corePlurals));
662 $this->assertTrue(in_array('16 everything else (from core translated)', $corePlurals));
663 $this->assertTrue(in_array('17 everything else (from core translated)', $corePlurals));
664 $this->assertTrue(in_array('18 everything else (from core translated)', $corePlurals));
665 $this->assertTrue(in_array('19 everything else (from core translated)', $corePlurals));
666 $this->assertTrue(in_array('20 everything else (from core translated)', $corePlurals));
667 $this->assertTrue(in_array('21 ends 1 but not 11 (from core translated)', $corePlurals));
668 $this->assertTrue(in_array('22 everything else (from core translated)', $corePlurals));
669 $this->assertTrue(in_array('23 everything else (from core translated)', $corePlurals));
670 $this->assertTrue(in_array('24 everything else (from core translated)', $corePlurals));
671 $this->assertTrue(in_array('25 everything else (from core translated)', $corePlurals));
672 }
673
674 /**
675 * testMoRulesThree method
676 *
677 * @access public
678 * @return void
679 */
680 function testMoRulesThree() {
681 Configure::write('Config.language', 'rule_3_mo');
682
683 $singular = $this->__singular();
684 $this->assertEqual('Plural Rule 3 (translated)', $singular);
685
686 $plurals = $this->__plural();
687 $this->assertTrue(in_array('0 = 0 (translated)', $plurals));
688 $this->assertTrue(in_array('1 ends 1 but not 11 (translated)', $plurals));
689 $this->assertTrue(in_array('2 everything else (translated)', $plurals));
690 $this->assertTrue(in_array('3 everything else (translated)', $plurals));
691 $this->assertTrue(in_array('4 everything else (translated)', $plurals));
692 $this->assertTrue(in_array('5 everything else (translated)', $plurals));
693 $this->assertTrue(in_array('6 everything else (translated)', $plurals));
694 $this->assertTrue(in_array('7 everything else (translated)', $plurals));
695 $this->assertTrue(in_array('8 everything else (translated)', $plurals));
696 $this->assertTrue(in_array('9 everything else (translated)', $plurals));
697 $this->assertTrue(in_array('10 everything else (translated)', $plurals));
698 $this->assertTrue(in_array('11 everything else (translated)', $plurals));
699 $this->assertTrue(in_array('12 everything else (translated)', $plurals));
700 $this->assertTrue(in_array('13 everything else (translated)', $plurals));
701 $this->assertTrue(in_array('14 everything else (translated)', $plurals));
702 $this->assertTrue(in_array('15 everything else (translated)', $plurals));
703 $this->assertTrue(in_array('16 everything else (translated)', $plurals));
704 $this->assertTrue(in_array('17 everything else (translated)', $plurals));
705 $this->assertTrue(in_array('18 everything else (translated)', $plurals));
706 $this->assertTrue(in_array('19 everything else (translated)', $plurals));
707 $this->assertTrue(in_array('20 everything else (translated)', $plurals));
708 $this->assertTrue(in_array('21 ends 1 but not 11 (translated)', $plurals));
709 $this->assertTrue(in_array('22 everything else (translated)', $plurals));
710 $this->assertTrue(in_array('23 everything else (translated)', $plurals));
711 $this->assertTrue(in_array('24 everything else (translated)', $plurals));
712 $this->assertTrue(in_array('25 everything else (translated)', $plurals));
713
714 $coreSingular = $this->__singularFromCore();
715 $this->assertEqual('Plural Rule 3 (from core translated)', $coreSingular);
716
717 $corePlurals = $this->__pluralFromCore();
718 $this->assertTrue(in_array('0 = 0 (from core translated)', $corePlurals));
719 $this->assertTrue(in_array('1 ends 1 but not 11 (from core translated)', $corePlurals));
720 $this->assertTrue(in_array('2 everything else (from core translated)', $corePlurals));
721 $this->assertTrue(in_array('3 everything else (from core translated)', $corePlurals));
722 $this->assertTrue(in_array('4 everything else (from core translated)', $corePlurals));
723 $this->assertTrue(in_array('5 everything else (from core translated)', $corePlurals));
724 $this->assertTrue(in_array('6 everything else (from core translated)', $corePlurals));
725 $this->assertTrue(in_array('7 everything else (from core translated)', $corePlurals));
726 $this->assertTrue(in_array('8 everything else (from core translated)', $corePlurals));
727 $this->assertTrue(in_array('9 everything else (from core translated)', $corePlurals));
728 $this->assertTrue(in_array('10 everything else (from core translated)', $corePlurals));
729 $this->assertTrue(in_array('11 everything else (from core translated)', $corePlurals));
730 $this->assertTrue(in_array('12 everything else (from core translated)', $corePlurals));
731 $this->assertTrue(in_array('13 everything else (from core translated)', $corePlurals));
732 $this->assertTrue(in_array('14 everything else (from core translated)', $corePlurals));
733 $this->assertTrue(in_array('15 everything else (from core translated)', $corePlurals));
734 $this->assertTrue(in_array('16 everything else (from core translated)', $corePlurals));
735 $this->assertTrue(in_array('17 everything else (from core translated)', $corePlurals));
736 $this->assertTrue(in_array('18 everything else (from core translated)', $corePlurals));
737 $this->assertTrue(in_array('19 everything else (from core translated)', $corePlurals));
738 $this->assertTrue(in_array('20 everything else (from core translated)', $corePlurals));
739 $this->assertTrue(in_array('21 ends 1 but not 11 (from core translated)', $corePlurals));
740 $this->assertTrue(in_array('22 everything else (from core translated)', $corePlurals));
741 $this->assertTrue(in_array('23 everything else (from core translated)', $corePlurals));
742 $this->assertTrue(in_array('24 everything else (from core translated)', $corePlurals));
743 $this->assertTrue(in_array('25 everything else (from core translated)', $corePlurals));
744 }
745
746 /**
747 * testPoRulesFour method
748 *
749 * @access public
750 * @return void
751 */
752 function testPoRulesFour() {
753 Configure::write('Config.language', 'rule_4_po');
754
755 $singular = $this->__singular();
756 $this->assertEqual('Plural Rule 4 (translated)', $singular);
757
758 $plurals = $this->__plural();
759 $this->assertTrue(in_array('0 everything else (translated)', $plurals));
760 $this->assertTrue(in_array('1 = 1 (translated)', $plurals));
761 $this->assertTrue(in_array('2 = 2 (translated)', $plurals));
762 $this->assertTrue(in_array('3 everything else (translated)', $plurals));
763 $this->assertTrue(in_array('4 everything else (translated)', $plurals));
764 $this->assertTrue(in_array('5 everything else (translated)', $plurals));
765 $this->assertTrue(in_array('6 everything else (translated)', $plurals));
766 $this->assertTrue(in_array('7 everything else (translated)', $plurals));
767 $this->assertTrue(in_array('8 everything else (translated)', $plurals));
768 $this->assertTrue(in_array('9 everything else (translated)', $plurals));
769 $this->assertTrue(in_array('10 everything else (translated)', $plurals));
770 $this->assertTrue(in_array('11 everything else (translated)', $plurals));
771 $this->assertTrue(in_array('12 everything else (translated)', $plurals));
772 $this->assertTrue(in_array('13 everything else (translated)', $plurals));
773 $this->assertTrue(in_array('14 everything else (translated)', $plurals));
774 $this->assertTrue(in_array('15 everything else (translated)', $plurals));
775 $this->assertTrue(in_array('16 everything else (translated)', $plurals));
776 $this->assertTrue(in_array('17 everything else (translated)', $plurals));
777 $this->assertTrue(in_array('18 everything else (translated)', $plurals));
778 $this->assertTrue(in_array('19 everything else (translated)', $plurals));
779 $this->assertTrue(in_array('20 everything else (translated)', $plurals));
780 $this->assertTrue(in_array('21 everything else (translated)', $plurals));
781 $this->assertTrue(in_array('22 everything else (translated)', $plurals));
782 $this->assertTrue(in_array('23 everything else (translated)', $plurals));
783 $this->assertTrue(in_array('24 everything else (translated)', $plurals));
784 $this->assertTrue(in_array('25 everything else (translated)', $plurals));
785
786 $coreSingular = $this->__singularFromCore();
787 $this->assertEqual('Plural Rule 4 (from core translated)', $coreSingular);
788
789 $corePlurals = $this->__pluralFromCore();
790 $this->assertTrue(in_array('0 everything else (from core translated)', $corePlurals));
791 $this->assertTrue(in_array('1 = 1 (from core translated)', $corePlurals));
792 $this->assertTrue(in_array('2 = 2 (from core translated)', $corePlurals));
793 $this->assertTrue(in_array('3 everything else (from core translated)', $corePlurals));
794 $this->assertTrue(in_array('4 everything else (from core translated)', $corePlurals));
795 $this->assertTrue(in_array('5 everything else (from core translated)', $corePlurals));
796 $this->assertTrue(in_array('6 everything else (from core translated)', $corePlurals));
797 $this->assertTrue(in_array('7 everything else (from core translated)', $corePlurals));
798 $this->assertTrue(in_array('8 everything else (from core translated)', $corePlurals));
799 $this->assertTrue(in_array('9 everything else (from core translated)', $corePlurals));
800 $this->assertTrue(in_array('10 everything else (from core translated)', $corePlurals));
801 $this->assertTrue(in_array('11 everything else (from core translated)', $corePlurals));
802 $this->assertTrue(in_array('12 everything else (from core translated)', $corePlurals));
803 $this->assertTrue(in_array('13 everything else (from core translated)', $corePlurals));
804 $this->assertTrue(in_array('14 everything else (from core translated)', $corePlurals));
805 $this->assertTrue(in_array('15 everything else (from core translated)', $corePlurals));
806 $this->assertTrue(in_array('16 everything else (from core translated)', $corePlurals));
807 $this->assertTrue(in_array('17 everything else (from core translated)', $corePlurals));
808 $this->assertTrue(in_array('18 everything else (from core translated)', $corePlurals));
809 $this->assertTrue(in_array('19 everything else (from core translated)', $corePlurals));
810 $this->assertTrue(in_array('20 everything else (from core translated)', $corePlurals));
811 $this->assertTrue(in_array('21 everything else (from core translated)', $corePlurals));
812 $this->assertTrue(in_array('22 everything else (from core translated)', $corePlurals));
813 $this->assertTrue(in_array('23 everything else (from core translated)', $corePlurals));
814 $this->assertTrue(in_array('24 everything else (from core translated)', $corePlurals));
815 $this->assertTrue(in_array('25 everything else (from core translated)', $corePlurals));
816 }
817
818 /**
819 * testMoRulesFour method
820 *
821 * @access public
822 * @return void
823 */
824 function testMoRulesFour() {
825 Configure::write('Config.language', 'rule_4_mo');
826
827 $singular = $this->__singular();
828 $this->assertEqual('Plural Rule 4 (translated)', $singular);
829
830 $plurals = $this->__plural();
831 $this->assertTrue(in_array('0 everything else (translated)', $plurals));
832 $this->assertTrue(in_array('1 = 1 (translated)', $plurals));
833 $this->assertTrue(in_array('2 = 2 (translated)', $plurals));
834 $this->assertTrue(in_array('3 everything else (translated)', $plurals));
835 $this->assertTrue(in_array('4 everything else (translated)', $plurals));
836 $this->assertTrue(in_array('5 everything else (translated)', $plurals));
837 $this->assertTrue(in_array('6 everything else (translated)', $plurals));
838 $this->assertTrue(in_array('7 everything else (translated)', $plurals));
839 $this->assertTrue(in_array('8 everything else (translated)', $plurals));
840 $this->assertTrue(in_array('9 everything else (translated)', $plurals));
841 $this->assertTrue(in_array('10 everything else (translated)', $plurals));
842 $this->assertTrue(in_array('11 everything else (translated)', $plurals));
843 $this->assertTrue(in_array('12 everything else (translated)', $plurals));
844 $this->assertTrue(in_array('13 everything else (translated)', $plurals));
845 $this->assertTrue(in_array('14 everything else (translated)', $plurals));
846 $this->assertTrue(in_array('15 everything else (translated)', $plurals));
847 $this->assertTrue(in_array('16 everything else (translated)', $plurals));
848 $this->assertTrue(in_array('17 everything else (translated)', $plurals));
849 $this->assertTrue(in_array('18 everything else (translated)', $plurals));
850 $this->assertTrue(in_array('19 everything else (translated)', $plurals));
851 $this->assertTrue(in_array('20 everything else (translated)', $plurals));
852 $this->assertTrue(in_array('21 everything else (translated)', $plurals));
853 $this->assertTrue(in_array('22 everything else (translated)', $plurals));
854 $this->assertTrue(in_array('23 everything else (translated)', $plurals));
855 $this->assertTrue(in_array('24 everything else (translated)', $plurals));
856 $this->assertTrue(in_array('25 everything else (translated)', $plurals));
857
858 $coreSingular = $this->__singularFromCore();
859 $this->assertEqual('Plural Rule 4 (from core translated)', $coreSingular);
860
861 $corePlurals = $this->__pluralFromCore();
862 $this->assertTrue(in_array('0 everything else (from core translated)', $corePlurals));
863 $this->assertTrue(in_array('1 = 1 (from core translated)', $corePlurals));
864 $this->assertTrue(in_array('2 = 2 (from core translated)', $corePlurals));
865 $this->assertTrue(in_array('3 everything else (from core translated)', $corePlurals));
866 $this->assertTrue(in_array('4 everything else (from core translated)', $corePlurals));
867 $this->assertTrue(in_array('5 everything else (from core translated)', $corePlurals));
868 $this->assertTrue(in_array('6 everything else (from core translated)', $corePlurals));
869 $this->assertTrue(in_array('7 everything else (from core translated)', $corePlurals));
870 $this->assertTrue(in_array('8 everything else (from core translated)', $corePlurals));
871 $this->assertTrue(in_array('9 everything else (from core translated)', $corePlurals));
872 $this->assertTrue(in_array('10 everything else (from core translated)', $corePlurals));
873 $this->assertTrue(in_array('11 everything else (from core translated)', $corePlurals));
874 $this->assertTrue(in_array('12 everything else (from core translated)', $corePlurals));
875 $this->assertTrue(in_array('13 everything else (from core translated)', $corePlurals));
876 $this->assertTrue(in_array('14 everything else (from core translated)', $corePlurals));
877 $this->assertTrue(in_array('15 everything else (from core translated)', $corePlurals));
878 $this->assertTrue(in_array('16 everything else (from core translated)', $corePlurals));
879 $this->assertTrue(in_array('17 everything else (from core translated)', $corePlurals));
880 $this->assertTrue(in_array('18 everything else (from core translated)', $corePlurals));
881 $this->assertTrue(in_array('19 everything else (from core translated)', $corePlurals));
882 $this->assertTrue(in_array('20 everything else (from core translated)', $corePlurals));
883 $this->assertTrue(in_array('21 everything else (from core translated)', $corePlurals));
884 $this->assertTrue(in_array('22 everything else (from core translated)', $corePlurals));
885 $this->assertTrue(in_array('23 everything else (from core translated)', $corePlurals));
886 $this->assertTrue(in_array('24 everything else (from core translated)', $corePlurals));
887 $this->assertTrue(in_array('25 everything else (from core translated)', $corePlurals));
888 }
889
890 /**
891 * testPoRulesFive method
892 *
893 * @access public
894 * @return void
895 */
896 function testPoRulesFive() {
897 Configure::write('Config.language', 'rule_5_po');
898
899 $singular = $this->__singular();
900 $this->assertEqual('Plural Rule 5 (translated)', $singular);
901
902 $plurals = $this->__plural();
903 $this->assertTrue(in_array('0 = 0 or ends in 01-19 (translated)', $plurals));
904 $this->assertTrue(in_array('0 = 0 or ends in 01-19 (translated)', $plurals));
905 $this->assertTrue(in_array('1 = 1 (translated)', $plurals));
906 $this->assertTrue(in_array('2 = 0 or ends in 01-19 (translated)', $plurals));
907 $this->assertTrue(in_array('3 = 0 or ends in 01-19 (translated)', $plurals));
908 $this->assertTrue(in_array('4 = 0 or ends in 01-19 (translated)', $plurals));
909 $this->assertTrue(in_array('5 = 0 or ends in 01-19 (translated)', $plurals));
910 $this->assertTrue(in_array('6 = 0 or ends in 01-19 (translated)', $plurals));
911 $this->assertTrue(in_array('7 = 0 or ends in 01-19 (translated)', $plurals));
912 $this->assertTrue(in_array('8 = 0 or ends in 01-19 (translated)', $plurals));
913 $this->assertTrue(in_array('9 = 0 or ends in 01-19 (translated)', $plurals));
914 $this->assertTrue(in_array('10 = 0 or ends in 01-19 (translated)', $plurals));
915 $this->assertTrue(in_array('11 = 0 or ends in 01-19 (translated)', $plurals));
916 $this->assertTrue(in_array('12 = 0 or ends in 01-19 (translated)', $plurals));
917 $this->assertTrue(in_array('13 = 0 or ends in 01-19 (translated)', $plurals));
918 $this->assertTrue(in_array('14 = 0 or ends in 01-19 (translated)', $plurals));
919 $this->assertTrue(in_array('15 = 0 or ends in 01-19 (translated)', $plurals));
920 $this->assertTrue(in_array('16 = 0 or ends in 01-19 (translated)', $plurals));
921 $this->assertTrue(in_array('17 = 0 or ends in 01-19 (translated)', $plurals));
922 $this->assertTrue(in_array('18 = 0 or ends in 01-19 (translated)', $plurals));
923 $this->assertTrue(in_array('19 = 0 or ends in 01-19 (translated)', $plurals));
924 $this->assertTrue(in_array('20 everything else (translated)', $plurals));
925 $this->assertTrue(in_array('21 everything else (translated)', $plurals));
926 $this->assertTrue(in_array('22 everything else (translated)', $plurals));
927 $this->assertTrue(in_array('23 everything else (translated)', $plurals));
928 $this->assertTrue(in_array('24 everything else (translated)', $plurals));
929 $this->assertTrue(in_array('25 everything else (translated)', $plurals));
930
931 $coreSingular = $this->__singularFromCore();
932 $this->assertEqual('Plural Rule 5 (from core translated)', $coreSingular);
933
934 $corePlurals = $this->__pluralFromCore();
935 $this->assertTrue(in_array('0 = 0 or ends in 01-19 (from core translated)', $corePlurals));
936 $this->assertTrue(in_array('0 = 0 or ends in 01-19 (from core translated)', $corePlurals));
937 $this->assertTrue(in_array('1 = 1 (from core translated)', $corePlurals));
938 $this->assertTrue(in_array('2 = 0 or ends in 01-19 (from core translated)', $corePlurals));
939 $this->assertTrue(in_array('3 = 0 or ends in 01-19 (from core translated)', $corePlurals));
940 $this->assertTrue(in_array('4 = 0 or ends in 01-19 (from core translated)', $corePlurals));
941 $this->assertTrue(in_array('5 = 0 or ends in 01-19 (from core translated)', $corePlurals));
942 $this->assertTrue(in_array('6 = 0 or ends in 01-19 (from core translated)', $corePlurals));
943 $this->assertTrue(in_array('7 = 0 or ends in 01-19 (from core translated)', $corePlurals));
944 $this->assertTrue(in_array('8 = 0 or ends in 01-19 (from core translated)', $corePlurals));
945 $this->assertTrue(in_array('9 = 0 or ends in 01-19 (from core translated)', $corePlurals));
946 $this->assertTrue(in_array('10 = 0 or ends in 01-19 (from core translated)', $corePlurals));
947 $this->assertTrue(in_array('11 = 0 or ends in 01-19 (from core translated)', $corePlurals));
948 $this->assertTrue(in_array('12 = 0 or ends in 01-19 (from core translated)', $corePlurals));
949 $this->assertTrue(in_array('13 = 0 or ends in 01-19 (from core translated)', $corePlurals));
950 $this->assertTrue(in_array('14 = 0 or ends in 01-19 (from core translated)', $corePlurals));
951 $this->assertTrue(in_array('15 = 0 or ends in 01-19 (from core translated)', $corePlurals));
952 $this->assertTrue(in_array('16 = 0 or ends in 01-19 (from core translated)', $corePlurals));
953 $this->assertTrue(in_array('17 = 0 or ends in 01-19 (from core translated)', $corePlurals));
954 $this->assertTrue(in_array('18 = 0 or ends in 01-19 (from core translated)', $corePlurals));
955 $this->assertTrue(in_array('19 = 0 or ends in 01-19 (from core translated)', $corePlurals));
956 $this->assertTrue(in_array('20 everything else (from core translated)', $corePlurals));
957 $this->assertTrue(in_array('21 everything else (from core translated)', $corePlurals));
958 $this->assertTrue(in_array('22 everything else (from core translated)', $corePlurals));
959 $this->assertTrue(in_array('23 everything else (from core translated)', $corePlurals));
960 $this->assertTrue(in_array('24 everything else (from core translated)', $corePlurals));
961 $this->assertTrue(in_array('25 everything else (from core translated)', $corePlurals));
962 }
963
964 /**
965 * testMoRulesFive method
966 *
967 * @access public
968 * @return void
969 */
970 function testMoRulesFive() {
971 Configure::write('Config.language', 'rule_5_mo');
972
973 $singular = $this->__singular();
974 $this->assertEqual('Plural Rule 5 (translated)', $singular);
975
976 $plurals = $this->__plural();
977 $this->assertTrue(in_array('0 = 0 or ends in 01-19 (translated)', $plurals));
978 $this->assertTrue(in_array('0 = 0 or ends in 01-19 (translated)', $plurals));
979 $this->assertTrue(in_array('1 = 1 (translated)', $plurals));
980 $this->assertTrue(in_array('2 = 0 or ends in 01-19 (translated)', $plurals));
981 $this->assertTrue(in_array('3 = 0 or ends in 01-19 (translated)', $plurals));
982 $this->assertTrue(in_array('4 = 0 or ends in 01-19 (translated)', $plurals));
983 $this->assertTrue(in_array('5 = 0 or ends in 01-19 (translated)', $plurals));
984 $this->assertTrue(in_array('6 = 0 or ends in 01-19 (translated)', $plurals));
985 $this->assertTrue(in_array('7 = 0 or ends in 01-19 (translated)', $plurals));
986 $this->assertTrue(in_array('8 = 0 or ends in 01-19 (translated)', $plurals));
987 $this->assertTrue(in_array('9 = 0 or ends in 01-19 (translated)', $plurals));
988 $this->assertTrue(in_array('10 = 0 or ends in 01-19 (translated)', $plurals));
989 $this->assertTrue(in_array('11 = 0 or ends in 01-19 (translated)', $plurals));
990 $this->assertTrue(in_array('12 = 0 or ends in 01-19 (translated)', $plurals));
991 $this->assertTrue(in_array('13 = 0 or ends in 01-19 (translated)', $plurals));
992 $this->assertTrue(in_array('14 = 0 or ends in 01-19 (translated)', $plurals));
993 $this->assertTrue(in_array('15 = 0 or ends in 01-19 (translated)', $plurals));
994 $this->assertTrue(in_array('16 = 0 or ends in 01-19 (translated)', $plurals));
995 $this->assertTrue(in_array('17 = 0 or ends in 01-19 (translated)', $plurals));
996 $this->assertTrue(in_array('18 = 0 or ends in 01-19 (translated)', $plurals));
997 $this->assertTrue(in_array('19 = 0 or ends in 01-19 (translated)', $plurals));
998 $this->assertTrue(in_array('20 everything else (translated)', $plurals));
999 $this->assertTrue(in_array('21 everything else (translated)', $plurals));
1000 $this->assertTrue(in_array('22 everything else (translated)', $plurals));
1001 $this->assertTrue(in_array('23 everything else (translated)', $plurals));
1002 $this->assertTrue(in_array('24 everything else (translated)', $plurals));
1003 $this->assertTrue(in_array('25 everything else (translated)', $plurals));
1004
1005 $coreSingular = $this->__singularFromCore();
1006 $this->assertEqual('Plural Rule 5 (from core translated)', $coreSingular);
1007
1008 $corePlurals = $this->__pluralFromCore();
1009 $this->assertTrue(in_array('0 = 0 or ends in 01-19 (from core translated)', $corePlurals));
1010 $this->assertTrue(in_array('0 = 0 or ends in 01-19 (from core translated)', $corePlurals));
1011 $this->assertTrue(in_array('1 = 1 (from core translated)', $corePlurals));
1012 $this->assertTrue(in_array('2 = 0 or ends in 01-19 (from core translated)', $corePlurals));
1013 $this->assertTrue(in_array('3 = 0 or ends in 01-19 (from core translated)', $corePlurals));
1014 $this->assertTrue(in_array('4 = 0 or ends in 01-19 (from core translated)', $corePlurals));
1015 $this->assertTrue(in_array('5 = 0 or ends in 01-19 (from core translated)', $corePlurals));
1016 $this->assertTrue(in_array('6 = 0 or ends in 01-19 (from core translated)', $corePlurals));
1017 $this->assertTrue(in_array('7 = 0 or ends in 01-19 (from core translated)', $corePlurals));
1018 $this->assertTrue(in_array('8 = 0 or ends in 01-19 (from core translated)', $corePlurals));
1019 $this->assertTrue(in_array('9 = 0 or ends in 01-19 (from core translated)', $corePlurals));
1020 $this->assertTrue(in_array('10 = 0 or ends in 01-19 (from core translated)', $corePlurals));
1021 $this->assertTrue(in_array('11 = 0 or ends in 01-19 (from core translated)', $corePlurals));
1022 $this->assertTrue(in_array('12 = 0 or ends in 01-19 (from core translated)', $corePlurals));
1023 $this->assertTrue(in_array('13 = 0 or ends in 01-19 (from core translated)', $corePlurals));
1024 $this->assertTrue(in_array('14 = 0 or ends in 01-19 (from core translated)', $corePlurals));
1025 $this->assertTrue(in_array('15 = 0 or ends in 01-19 (from core translated)', $corePlurals));
1026 $this->assertTrue(in_array('16 = 0 or ends in 01-19 (from core translated)', $corePlurals));
1027 $this->assertTrue(in_array('17 = 0 or ends in 01-19 (from core translated)', $corePlurals));
1028 $this->assertTrue(in_array('18 = 0 or ends in 01-19 (from core translated)', $corePlurals));
1029 $this->assertTrue(in_array('19 = 0 or ends in 01-19 (from core translated)', $corePlurals));
1030 $this->assertTrue(in_array('20 everything else (from core translated)', $corePlurals));
1031 $this->assertTrue(in_array('21 everything else (from core translated)', $corePlurals));
1032 $this->assertTrue(in_array('22 everything else (from core translated)', $corePlurals));
1033 $this->assertTrue(in_array('23 everything else (from core translated)', $corePlurals));
1034 $this->assertTrue(in_array('24 everything else (from core translated)', $corePlurals));
1035 $this->assertTrue(in_array('25 everything else (from core translated)', $corePlurals));
1036 }
1037
1038 /**
1039 * testPoRulesSix method
1040 *
1041 * @access public
1042 * @return void
1043 */
1044 function testPoRulesSix() {
1045 Configure::write('Config.language', 'rule_6_po');
1046
1047 $singular = $this->__singular();
1048 $this->assertEqual('Plural Rule 6 (translated)', $singular);
1049
1050 $plurals = $this->__plural();
1051 $this->assertTrue(in_array('0 ends in 0 or ends in 10-20 (translated)', $plurals));
1052 $this->assertTrue(in_array('1 ends in 1, not 11 (translated)', $plurals));
1053 $this->assertTrue(in_array('2 everything else (translated)', $plurals));
1054 $this->assertTrue(in_array('3 everything else (translated)', $plurals));
1055 $this->assertTrue(in_array('4 everything else (translated)', $plurals));
1056 $this->assertTrue(in_array('5 everything else (translated)', $plurals));
1057 $this->assertTrue(in_array('6 everything else (translated)', $plurals));
1058 $this->assertTrue(in_array('7 everything else (translated)', $plurals));
1059 $this->assertTrue(in_array('8 everything else (translated)', $plurals));
1060 $this->assertTrue(in_array('9 everything else (translated)', $plurals));
1061 $this->assertTrue(in_array('10 ends in 0 or ends in 10-20 (translated)', $plurals));
1062 $this->assertTrue(in_array('11 ends in 0 or ends in 10-20 (translated)', $plurals));
1063 $this->assertTrue(in_array('12 ends in 0 or ends in 10-20 (translated)', $plurals));
1064 $this->assertTrue(in_array('13 ends in 0 or ends in 10-20 (translated)', $plurals));
1065 $this->assertTrue(in_array('14 ends in 0 or ends in 10-20 (translated)', $plurals));
1066 $this->assertTrue(in_array('15 ends in 0 or ends in 10-20 (translated)', $plurals));
1067 $this->assertTrue(in_array('16 ends in 0 or ends in 10-20 (translated)', $plurals));
1068 $this->assertTrue(in_array('17 ends in 0 or ends in 10-20 (translated)', $plurals));
1069 $this->assertTrue(in_array('18 ends in 0 or ends in 10-20 (translated)', $plurals));
1070 $this->assertTrue(in_array('19 ends in 0 or ends in 10-20 (translated)', $plurals));
1071 $this->assertTrue(in_array('20 ends in 0 or ends in 10-20 (translated)', $plurals));
1072 $this->assertTrue(in_array('21 ends in 1, not 11 (translated)', $plurals));
1073 $this->assertTrue(in_array('22 everything else (translated)', $plurals));
1074 $this->assertTrue(in_array('23 everything else (translated)', $plurals));
1075 $this->assertTrue(in_array('24 everything else (translated)', $plurals));
1076 $this->assertTrue(in_array('25 everything else (translated)', $plurals));
1077
1078 $coreSingular = $this->__singularFromCore();
1079 $this->assertEqual('Plural Rule 6 (from core translated)', $coreSingular);
1080
1081 $corePlurals = $this->__pluralFromCore();
1082 $this->assertTrue(in_array('0 ends in 0 or ends in 10-20 (from core translated)', $corePlurals));
1083 $this->assertTrue(in_array('1 ends in 1, not 11 (from core translated)', $corePlurals));
1084 $this->assertTrue(in_array('2 everything else (from core translated)', $corePlurals));
1085 $this->assertTrue(in_array('3 everything else (from core translated)', $corePlurals));
1086 $this->assertTrue(in_array('4 everything else (from core translated)', $corePlurals));
1087 $this->assertTrue(in_array('5 everything else (from core translated)', $corePlurals));
1088 $this->assertTrue(in_array('6 everything else (from core translated)', $corePlurals));
1089 $this->assertTrue(in_array('7 everything else (from core translated)', $corePlurals));
1090 $this->assertTrue(in_array('8 everything else (from core translated)', $corePlurals));
1091 $this->assertTrue(in_array('9 everything else (from core translated)', $corePlurals));
1092 $this->assertTrue(in_array('10 ends in 0 or ends in 10-20 (from core translated)', $corePlurals));
1093 $this->assertTrue(in_array('11 ends in 0 or ends in 10-20 (from core translated)', $corePlurals));
1094 $this->assertTrue(in_array('12 ends in 0 or ends in 10-20 (from core translated)', $corePlurals));
1095 $this->assertTrue(in_array('13 ends in 0 or ends in 10-20 (from core translated)', $corePlurals));
1096 $this->assertTrue(in_array('14 ends in 0 or ends in 10-20 (from core translated)', $corePlurals));
1097 $this->assertTrue(in_array('15 ends in 0 or ends in 10-20 (from core translated)', $corePlurals));
1098 $this->assertTrue(in_array('16 ends in 0 or ends in 10-20 (from core translated)', $corePlurals));
1099 $this->assertTrue(in_array('17 ends in 0 or ends in 10-20 (from core translated)', $corePlurals));
1100 $this->assertTrue(in_array('18 ends in 0 or ends in 10-20 (from core translated)', $corePlurals));
1101 $this->assertTrue(in_array('19 ends in 0 or ends in 10-20 (from core translated)', $corePlurals));
1102 $this->assertTrue(in_array('20 ends in 0 or ends in 10-20 (from core translated)', $corePlurals));
1103 $this->assertTrue(in_array('21 ends in 1, not 11 (from core translated)', $corePlurals));
1104 $this->assertTrue(in_array('22 everything else (from core translated)', $corePlurals));
1105 $this->assertTrue(in_array('23 everything else (from core translated)', $corePlurals));
1106 $this->assertTrue(in_array('24 everything else (from core translated)', $corePlurals));
1107 $this->assertTrue(in_array('25 everything else (from core translated)', $corePlurals));
1108 }
1109
1110 /**
1111 * testMoRulesSix method
1112 *
1113 * @access public
1114 * @return void
1115 */
1116 function testMoRulesSix() {
1117 Configure::write('Config.language', 'rule_6_mo');
1118
1119 $singular = $this->__singular();
1120 $this->assertEqual('Plural Rule 6 (translated)', $singular);
1121
1122 $plurals = $this->__plural();
1123 $this->assertTrue(in_array('0 ends in 0 or ends in 10-20 (translated)', $plurals));
1124 $this->assertTrue(in_array('1 ends in 1, not 11 (translated)', $plurals));
1125 $this->assertTrue(in_array('2 everything else (translated)', $plurals));
1126 $this->assertTrue(in_array('3 everything else (translated)', $plurals));
1127 $this->assertTrue(in_array('4 everything else (translated)', $plurals));
1128 $this->assertTrue(in_array('5 everything else (translated)', $plurals));
1129 $this->assertTrue(in_array('6 everything else (translated)', $plurals));
1130 $this->assertTrue(in_array('7 everything else (translated)', $plurals));
1131 $this->assertTrue(in_array('8 everything else (translated)', $plurals));
1132 $this->assertTrue(in_array('9 everything else (translated)', $plurals));
1133 $this->assertTrue(in_array('10 ends in 0 or ends in 10-20 (translated)', $plurals));
1134 $this->assertTrue(in_array('11 ends in 0 or ends in 10-20 (translated)', $plurals));
1135 $this->assertTrue(in_array('12 ends in 0 or ends in 10-20 (translated)', $plurals));
1136 $this->assertTrue(in_array('13 ends in 0 or ends in 10-20 (translated)', $plurals));
1137 $this->assertTrue(in_array('14 ends in 0 or ends in 10-20 (translated)', $plurals));
1138 $this->assertTrue(in_array('15 ends in 0 or ends in 10-20 (translated)', $plurals));
1139 $this->assertTrue(in_array('16 ends in 0 or ends in 10-20 (translated)', $plurals));
1140 $this->assertTrue(in_array('17 ends in 0 or ends in 10-20 (translated)', $plurals));
1141 $this->assertTrue(in_array('18 ends in 0 or ends in 10-20 (translated)', $plurals));
1142 $this->assertTrue(in_array('19 ends in 0 or ends in 10-20 (translated)', $plurals));
1143 $this->assertTrue(in_array('20 ends in 0 or ends in 10-20 (translated)', $plurals));
1144 $this->assertTrue(in_array('21 ends in 1, not 11 (translated)', $plurals));
1145 $this->assertTrue(in_array('22 everything else (translated)', $plurals));
1146 $this->assertTrue(in_array('23 everything else (translated)', $plurals));
1147 $this->assertTrue(in_array('24 everything else (translated)', $plurals));
1148 $this->assertTrue(in_array('25 everything else (translated)', $plurals));
1149
1150 $coreSingular = $this->__singularFromCore();
1151 $this->assertEqual('Plural Rule 6 (from core translated)', $coreSingular);
1152
1153 $corePlurals = $this->__pluralFromCore();
1154 $this->assertTrue(in_array('0 ends in 0 or ends in 10-20 (from core translated)', $corePlurals));
1155 $this->assertTrue(in_array('1 ends in 1, not 11 (from core translated)', $corePlurals));
1156 $this->assertTrue(in_array('2 everything else (from core translated)', $corePlurals));
1157 $this->assertTrue(in_array('3 everything else (from core translated)', $corePlurals));
1158 $this->assertTrue(in_array('4 everything else (from core translated)', $corePlurals));
1159 $this->assertTrue(in_array('5 everything else (from core translated)', $corePlurals));
1160 $this->assertTrue(in_array('6 everything else (from core translated)', $corePlurals));
1161 $this->assertTrue(in_array('7 everything else (from core translated)', $corePlurals));
1162 $this->assertTrue(in_array('8 everything else (from core translated)', $corePlurals));
1163 $this->assertTrue(in_array('9 everything else (from core translated)', $corePlurals));
1164 $this->assertTrue(in_array('10 ends in 0 or ends in 10-20 (from core translated)', $corePlurals));
1165 $this->assertTrue(in_array('11 ends in 0 or ends in 10-20 (from core translated)', $corePlurals));
1166 $this->assertTrue(in_array('12 ends in 0 or ends in 10-20 (from core translated)', $corePlurals));
1167 $this->assertTrue(in_array('13 ends in 0 or ends in 10-20 (from core translated)', $corePlurals));
1168 $this->assertTrue(in_array('14 ends in 0 or ends in 10-20 (from core translated)', $corePlurals));
1169 $this->assertTrue(in_array('15 ends in 0 or ends in 10-20 (from core translated)', $corePlurals));
1170 $this->assertTrue(in_array('16 ends in 0 or ends in 10-20 (from core translated)', $corePlurals));
1171 $this->assertTrue(in_array('17 ends in 0 or ends in 10-20 (from core translated)', $corePlurals));
1172 $this->assertTrue(in_array('18 ends in 0 or ends in 10-20 (from core translated)', $corePlurals));
1173 $this->assertTrue(in_array('19 ends in 0 or ends in 10-20 (from core translated)', $corePlurals));
1174 $this->assertTrue(in_array('20 ends in 0 or ends in 10-20 (from core translated)', $corePlurals));
1175 $this->assertTrue(in_array('21 ends in 1, not 11 (from core translated)', $corePlurals));
1176 $this->assertTrue(in_array('22 everything else (from core translated)', $corePlurals));
1177 $this->assertTrue(in_array('23 everything else (from core translated)', $corePlurals));
1178 $this->assertTrue(in_array('24 everything else (from core translated)', $corePlurals));
1179 $this->assertTrue(in_array('25 everything else (from core translated)', $corePlurals));
1180 }
1181
1182 /**
1183 * testPoRulesSeven method
1184 *
1185 * @access public
1186 * @return void
1187 */
1188 function testPoRulesSeven() {
1189 Configure::write('Config.language', 'rule_7_po');
1190
1191 $singular = $this->__singular();
1192 $this->assertEqual('Plural Rule 7 (translated)', $singular);
1193
1194 $plurals = $this->__plural();
1195 $this->assertTrue(in_array('0 everything else (translated)', $plurals));
1196 $this->assertTrue(in_array('1 ends in 1, not 11 (translated)', $plurals));
1197 $this->assertTrue(in_array('2 ends in 2-4, not 12-14 (translated)', $plurals));
1198 $this->assertTrue(in_array('3 ends in 2-4, not 12-14 (translated)', $plurals));
1199 $this->assertTrue(in_array('4 ends in 2-4, not 12-14 (translated)', $plurals));
1200 $this->assertTrue(in_array('5 everything else (translated)', $plurals));
1201 $this->assertTrue(in_array('6 everything else (translated)', $plurals));
1202 $this->assertTrue(in_array('7 everything else (translated)', $plurals));
1203 $this->assertTrue(in_array('8 everything else (translated)', $plurals));
1204 $this->assertTrue(in_array('9 everything else (translated)', $plurals));
1205 $this->assertTrue(in_array('10 everything else (translated)', $plurals));
1206 $this->assertTrue(in_array('11 everything else (translated)', $plurals));
1207 $this->assertTrue(in_array('12 everything else (translated)', $plurals));
1208 $this->assertTrue(in_array('13 everything else (translated)', $plurals));
1209 $this->assertTrue(in_array('14 everything else (translated)', $plurals));
1210 $this->assertTrue(in_array('15 everything else (translated)', $plurals));
1211 $this->assertTrue(in_array('16 everything else (translated)', $plurals));
1212 $this->assertTrue(in_array('17 everything else (translated)', $plurals));
1213 $this->assertTrue(in_array('18 everything else (translated)', $plurals));
1214 $this->assertTrue(in_array('19 everything else (translated)', $plurals));
1215 $this->assertTrue(in_array('20 everything else (translated)', $plurals));
1216 $this->assertTrue(in_array('21 ends in 1, not 11 (translated)', $plurals));
1217 $this->assertTrue(in_array('22 ends in 2-4, not 12-14 (translated)', $plurals));
1218 $this->assertTrue(in_array('23 ends in 2-4, not 12-14 (translated)', $plurals));
1219 $this->assertTrue(in_array('24 ends in 2-4, not 12-14 (translated)', $plurals));
1220 $this->assertTrue(in_array('25 everything else (translated)', $plurals));
1221
1222 $coreSingular = $this->__singularFromCore();
1223 $this->assertEqual('Plural Rule 7 (from core translated)', $coreSingular);
1224
1225 $corePlurals = $this->__pluralFromCore();
1226 $this->assertTrue(in_array('0 everything else (from core translated)', $corePlurals));
1227 $this->assertTrue(in_array('1 ends in 1, not 11 (from core translated)', $corePlurals));
1228 $this->assertTrue(in_array('2 ends in 2-4, not 12-14 (from core translated)', $corePlurals));
1229 $this->assertTrue(in_array('3 ends in 2-4, not 12-14 (from core translated)', $corePlurals));
1230 $this->assertTrue(in_array('4 ends in 2-4, not 12-14 (from core translated)', $corePlurals));
1231 $this->assertTrue(in_array('5 everything else (from core translated)', $corePlurals));
1232 $this->assertTrue(in_array('6 everything else (from core translated)', $corePlurals));
1233 $this->assertTrue(in_array('7 everything else (from core translated)', $corePlurals));
1234 $this->assertTrue(in_array('8 everything else (from core translated)', $corePlurals));
1235 $this->assertTrue(in_array('9 everything else (from core translated)', $corePlurals));
1236 $this->assertTrue(in_array('10 everything else (from core translated)', $corePlurals));
1237 $this->assertTrue(in_array('11 everything else (from core translated)', $corePlurals));
1238 $this->assertTrue(in_array('12 everything else (from core translated)', $corePlurals));
1239 $this->assertTrue(in_array('13 everything else (from core translated)', $corePlurals));
1240 $this->assertTrue(in_array('14 everything else (from core translated)', $corePlurals));
1241 $this->assertTrue(in_array('15 everything else (from core translated)', $corePlurals));
1242 $this->assertTrue(in_array('16 everything else (from core translated)', $corePlurals));
1243 $this->assertTrue(in_array('17 everything else (from core translated)', $corePlurals));
1244 $this->assertTrue(in_array('18 everything else (from core translated)', $corePlurals));
1245 $this->assertTrue(in_array('19 everything else (from core translated)', $corePlurals));
1246 $this->assertTrue(in_array('20 everything else (from core translated)', $corePlurals));
1247 $this->assertTrue(in_array('21 ends in 1, not 11 (from core translated)', $corePlurals));
1248 $this->assertTrue(in_array('22 ends in 2-4, not 12-14 (from core translated)', $corePlurals));
1249 $this->assertTrue(in_array('23 ends in 2-4, not 12-14 (from core translated)', $corePlurals));
1250 $this->assertTrue(in_array('24 ends in 2-4, not 12-14 (from core translated)', $corePlurals));
1251 $this->assertTrue(in_array('25 everything else (from core translated)', $corePlurals));
1252 }
1253
1254 /**
1255 * testMoRulesSeven method
1256 *
1257 * @access public
1258 * @return void
1259 */
1260 function testMoRulesSeven() {
1261 Configure::write('Config.language', 'rule_7_mo');
1262
1263 $singular = $this->__singular();
1264 $this->assertEqual('Plural Rule 7 (translated)', $singular);
1265
1266 $plurals = $this->__plural();
1267 $this->assertTrue(in_array('0 everything else (translated)', $plurals));
1268 $this->assertTrue(in_array('1 ends in 1, not 11 (translated)', $plurals));
1269 $this->assertTrue(in_array('2 ends in 2-4, not 12-14 (translated)', $plurals));
1270 $this->assertTrue(in_array('3 ends in 2-4, not 12-14 (translated)', $plurals));
1271 $this->assertTrue(in_array('4 ends in 2-4, not 12-14 (translated)', $plurals));
1272 $this->assertTrue(in_array('5 everything else (translated)', $plurals));
1273 $this->assertTrue(in_array('6 everything else (translated)', $plurals));
1274 $this->assertTrue(in_array('7 everything else (translated)', $plurals));
1275 $this->assertTrue(in_array('8 everything else (translated)', $plurals));
1276 $this->assertTrue(in_array('9 everything else (translated)', $plurals));
1277 $this->assertTrue(in_array('10 everything else (translated)', $plurals));
1278 $this->assertTrue(in_array('11 everything else (translated)', $plurals));
1279 $this->assertTrue(in_array('12 everything else (translated)', $plurals));
1280 $this->assertTrue(in_array('13 everything else (translated)', $plurals));
1281 $this->assertTrue(in_array('14 everything else (translated)', $plurals));
1282 $this->assertTrue(in_array('15 everything else (translated)', $plurals));
1283 $this->assertTrue(in_array('16 everything else (translated)', $plurals));
1284 $this->assertTrue(in_array('17 everything else (translated)', $plurals));
1285 $this->assertTrue(in_array('18 everything else (translated)', $plurals));
1286 $this->assertTrue(in_array('19 everything else (translated)', $plurals));
1287 $this->assertTrue(in_array('20 everything else (translated)', $plurals));
1288 $this->assertTrue(in_array('21 ends in 1, not 11 (translated)', $plurals));
1289 $this->assertTrue(in_array('22 ends in 2-4, not 12-14 (translated)', $plurals));
1290 $this->assertTrue(in_array('23 ends in 2-4, not 12-14 (translated)', $plurals));
1291 $this->assertTrue(in_array('24 ends in 2-4, not 12-14 (translated)', $plurals));
1292 $this->assertTrue(in_array('25 everything else (translated)', $plurals));
1293
1294 $coreSingular = $this->__singularFromCore();
1295 $this->assertEqual('Plural Rule 7 (from core translated)', $coreSingular);
1296
1297 $corePlurals = $this->__pluralFromCore();
1298 $this->assertTrue(in_array('0 everything else (from core translated)', $corePlurals));
1299 $this->assertTrue(in_array('1 ends in 1, not 11 (from core translated)', $corePlurals));
1300 $this->assertTrue(in_array('2 ends in 2-4, not 12-14 (from core translated)', $corePlurals));
1301 $this->assertTrue(in_array('3 ends in 2-4, not 12-14 (from core translated)', $corePlurals));
1302 $this->assertTrue(in_array('4 ends in 2-4, not 12-14 (from core translated)', $corePlurals));
1303 $this->assertTrue(in_array('5 everything else (from core translated)', $corePlurals));
1304 $this->assertTrue(in_array('6 everything else (from core translated)', $corePlurals));
1305 $this->assertTrue(in_array('7 everything else (from core translated)', $corePlurals));
1306 $this->assertTrue(in_array('8 everything else (from core translated)', $corePlurals));
1307 $this->assertTrue(in_array('9 everything else (from core translated)', $corePlurals));
1308 $this->assertTrue(in_array('10 everything else (from core translated)', $corePlurals));
1309 $this->assertTrue(in_array('11 everything else (from core translated)', $corePlurals));
1310 $this->assertTrue(in_array('12 everything else (from core translated)', $corePlurals));
1311 $this->assertTrue(in_array('13 everything else (from core translated)', $corePlurals));
1312 $this->assertTrue(in_array('14 everything else (from core translated)', $corePlurals));
1313 $this->assertTrue(in_array('15 everything else (from core translated)', $corePlurals));
1314 $this->assertTrue(in_array('16 everything else (from core translated)', $corePlurals));
1315 $this->assertTrue(in_array('17 everything else (from core translated)', $corePlurals));
1316 $this->assertTrue(in_array('18 everything else (from core translated)', $corePlurals));
1317 $this->assertTrue(in_array('19 everything else (from core translated)', $corePlurals));
1318 $this->assertTrue(in_array('20 everything else (from core translated)', $corePlurals));
1319 $this->assertTrue(in_array('21 ends in 1, not 11 (from core translated)', $corePlurals));
1320 $this->assertTrue(in_array('22 ends in 2-4, not 12-14 (from core translated)', $corePlurals));
1321 $this->assertTrue(in_array('23 ends in 2-4, not 12-14 (from core translated)', $corePlurals));
1322 $this->assertTrue(in_array('24 ends in 2-4, not 12-14 (from core translated)', $corePlurals));
1323 $this->assertTrue(in_array('25 everything else (from core translated)', $corePlurals));
1324 }
1325
1326 /**
1327 * testPoRulesEight method
1328 *
1329 * @access public
1330 * @return void
1331 */
1332 function testPoRulesEight() {
1333 Configure::write('Config.language', 'rule_8_po');
1334
1335 $singular = $this->__singular();
1336 $this->assertEqual('Plural Rule 8 (translated)', $singular);
1337
1338 $plurals = $this->__plural();
1339 $this->assertTrue(in_array('0 everything else (translated)', $plurals));
1340 $this->assertTrue(in_array('1 is 1 (translated)', $plurals));
1341 $this->assertTrue(in_array('2 is 2-4 (translated)', $plurals));
1342 $this->assertTrue(in_array('3 is 2-4 (translated)', $plurals));
1343 $this->assertTrue(in_array('4 is 2-4 (translated)', $plurals));
1344 $this->assertTrue(in_array('5 everything else (translated)', $plurals));
1345 $this->assertTrue(in_array('6 everything else (translated)', $plurals));
1346 $this->assertTrue(in_array('7 everything else (translated)', $plurals));
1347 $this->assertTrue(in_array('8 everything else (translated)', $plurals));
1348 $this->assertTrue(in_array('9 everything else (translated)', $plurals));
1349 $this->assertTrue(in_array('10 everything else (translated)', $plurals));
1350 $this->assertTrue(in_array('11 everything else (translated)', $plurals));
1351 $this->assertTrue(in_array('12 everything else (translated)', $plurals));
1352 $this->assertTrue(in_array('13 everything else (translated)', $plurals));
1353 $this->assertTrue(in_array('14 everything else (translated)', $plurals));
1354 $this->assertTrue(in_array('15 everything else (translated)', $plurals));
1355 $this->assertTrue(in_array('16 everything else (translated)', $plurals));
1356 $this->assertTrue(in_array('17 everything else (translated)', $plurals));
1357 $this->assertTrue(in_array('18 everything else (translated)', $plurals));
1358 $this->assertTrue(in_array('19 everything else (translated)', $plurals));
1359 $this->assertTrue(in_array('20 everything else (translated)', $plurals));
1360 $this->assertTrue(in_array('21 everything else (translated)', $plurals));
1361 $this->assertTrue(in_array('22 everything else (translated)', $plurals));
1362 $this->assertTrue(in_array('23 everything else (translated)', $plurals));
1363 $this->assertTrue(in_array('24 everything else (translated)', $plurals));
1364 $this->assertTrue(in_array('25 everything else (translated)', $plurals));
1365
1366 $coreSingular = $this->__singularFromCore();
1367 $this->assertEqual('Plural Rule 8 (from core translated)', $coreSingular);
1368
1369 $corePlurals = $this->__pluralFromCore();
1370 $this->assertTrue(in_array('0 everything else (from core translated)', $corePlurals));
1371 $this->assertTrue(in_array('1 is 1 (from core translated)', $corePlurals));
1372 $this->assertTrue(in_array('2 is 2-4 (from core translated)', $corePlurals));
1373 $this->assertTrue(in_array('3 is 2-4 (from core translated)', $corePlurals));
1374 $this->assertTrue(in_array('4 is 2-4 (from core translated)', $corePlurals));
1375 $this->assertTrue(in_array('5 everything else (from core translated)', $corePlurals));
1376 $this->assertTrue(in_array('6 everything else (from core translated)', $corePlurals));
1377 $this->assertTrue(in_array('7 everything else (from core translated)', $corePlurals));
1378 $this->assertTrue(in_array('8 everything else (from core translated)', $corePlurals));
1379 $this->assertTrue(in_array('9 everything else (from core translated)', $corePlurals));
1380 $this->assertTrue(in_array('10 everything else (from core translated)', $corePlurals));
1381 $this->assertTrue(in_array('11 everything else (from core translated)', $corePlurals));
1382 $this->assertTrue(in_array('12 everything else (from core translated)', $corePlurals));
1383 $this->assertTrue(in_array('13 everything else (from core translated)', $corePlurals));
1384 $this->assertTrue(in_array('14 everything else (from core translated)', $corePlurals));
1385 $this->assertTrue(in_array('15 everything else (from core translated)', $corePlurals));
1386 $this->assertTrue(in_array('16 everything else (from core translated)', $corePlurals));
1387 $this->assertTrue(in_array('17 everything else (from core translated)', $corePlurals));
1388 $this->assertTrue(in_array('18 everything else (from core translated)', $corePlurals));
1389 $this->assertTrue(in_array('19 everything else (from core translated)', $corePlurals));
1390 $this->assertTrue(in_array('20 everything else (from core translated)', $corePlurals));
1391 $this->assertTrue(in_array('21 everything else (from core translated)', $corePlurals));
1392 $this->assertTrue(in_array('22 everything else (from core translated)', $corePlurals));
1393 $this->assertTrue(in_array('23 everything else (from core translated)', $corePlurals));
1394 $this->assertTrue(in_array('24 everything else (from core translated)', $corePlurals));
1395 $this->assertTrue(in_array('25 everything else (from core translated)', $corePlurals));
1396 }
1397
1398 /**
1399 * testMoRulesEight method
1400 *
1401 * @access public
1402 * @return void
1403 */
1404 function testMoRulesEight() {
1405 Configure::write('Config.language', 'rule_8_mo');
1406
1407 $singular = $this->__singular();
1408 $this->assertEqual('Plural Rule 8 (translated)', $singular);
1409
1410 $plurals = $this->__plural();
1411 $this->assertTrue(in_array('0 everything else (translated)', $plurals));
1412 $this->assertTrue(in_array('1 is 1 (translated)', $plurals));
1413 $this->assertTrue(in_array('2 is 2-4 (translated)', $plurals));
1414 $this->assertTrue(in_array('3 is 2-4 (translated)', $plurals));
1415 $this->assertTrue(in_array('4 is 2-4 (translated)', $plurals));
1416 $this->assertTrue(in_array('5 everything else (translated)', $plurals));
1417 $this->assertTrue(in_array('6 everything else (translated)', $plurals));
1418 $this->assertTrue(in_array('7 everything else (translated)', $plurals));
1419 $this->assertTrue(in_array('8 everything else (translated)', $plurals));
1420 $this->assertTrue(in_array('9 everything else (translated)', $plurals));
1421 $this->assertTrue(in_array('10 everything else (translated)', $plurals));
1422 $this->assertTrue(in_array('11 everything else (translated)', $plurals));
1423 $this->assertTrue(in_array('12 everything else (translated)', $plurals));
1424 $this->assertTrue(in_array('13 everything else (translated)', $plurals));
1425 $this->assertTrue(in_array('14 everything else (translated)', $plurals));
1426 $this->assertTrue(in_array('15 everything else (translated)', $plurals));
1427 $this->assertTrue(in_array('16 everything else (translated)', $plurals));
1428 $this->assertTrue(in_array('17 everything else (translated)', $plurals));
1429 $this->assertTrue(in_array('18 everything else (translated)', $plurals));
1430 $this->assertTrue(in_array('19 everything else (translated)', $plurals));
1431 $this->assertTrue(in_array('20 everything else (translated)', $plurals));
1432 $this->assertTrue(in_array('21 everything else (translated)', $plurals));
1433 $this->assertTrue(in_array('22 everything else (translated)', $plurals));
1434 $this->assertTrue(in_array('23 everything else (translated)', $plurals));
1435 $this->assertTrue(in_array('24 everything else (translated)', $plurals));
1436 $this->assertTrue(in_array('25 everything else (translated)', $plurals));
1437
1438 $coreSingular = $this->__singularFromCore();
1439 $this->assertEqual('Plural Rule 8 (from core translated)', $coreSingular);
1440
1441 $corePlurals = $this->__pluralFromCore();
1442 $this->assertTrue(in_array('0 everything else (from core translated)', $corePlurals));
1443 $this->assertTrue(in_array('1 is 1 (from core translated)', $corePlurals));
1444 $this->assertTrue(in_array('2 is 2-4 (from core translated)', $corePlurals));
1445 $this->assertTrue(in_array('3 is 2-4 (from core translated)', $corePlurals));
1446 $this->assertTrue(in_array('4 is 2-4 (from core translated)', $corePlurals));
1447 $this->assertTrue(in_array('5 everything else (from core translated)', $corePlurals));
1448 $this->assertTrue(in_array('6 everything else (from core translated)', $corePlurals));
1449 $this->assertTrue(in_array('7 everything else (from core translated)', $corePlurals));
1450 $this->assertTrue(in_array('8 everything else (from core translated)', $corePlurals));
1451 $this->assertTrue(in_array('9 everything else (from core translated)', $corePlurals));
1452 $this->assertTrue(in_array('10 everything else (from core translated)', $corePlurals));
1453 $this->assertTrue(in_array('11 everything else (from core translated)', $corePlurals));
1454 $this->assertTrue(in_array('12 everything else (from core translated)', $corePlurals));
1455 $this->assertTrue(in_array('13 everything else (from core translated)', $corePlurals));
1456 $this->assertTrue(in_array('14 everything else (from core translated)', $corePlurals));
1457 $this->assertTrue(in_array('15 everything else (from core translated)', $corePlurals));
1458 $this->assertTrue(in_array('16 everything else (from core translated)', $corePlurals));
1459 $this->assertTrue(in_array('17 everything else (from core translated)', $corePlurals));
1460 $this->assertTrue(in_array('18 everything else (from core translated)', $corePlurals));
1461 $this->assertTrue(in_array('19 everything else (from core translated)', $corePlurals));
1462 $this->assertTrue(in_array('20 everything else (from core translated)', $corePlurals));
1463 $this->assertTrue(in_array('21 everything else (from core translated)', $corePlurals));
1464 $this->assertTrue(in_array('22 everything else (from core translated)', $corePlurals));
1465 $this->assertTrue(in_array('23 everything else (from core translated)', $corePlurals));
1466 $this->assertTrue(in_array('24 everything else (from core translated)', $corePlurals));
1467 $this->assertTrue(in_array('25 everything else (from core translated)', $corePlurals));
1468 }
1469
1470 /**
1471 * testPoRulesNine method
1472 *
1473 * @access public
1474 * @return void
1475 */
1476 function testPoRulesNine() {
1477 Configure::write('Config.language', 'rule_9_po');
1478
1479 $singular = $this->__singular();
1480 $this->assertEqual('Plural Rule 9 (translated)', $singular);
1481
1482 $plurals = $this->__plural();
1483 $this->assertTrue(in_array('0 everything else (translated)', $plurals));
1484 $this->assertTrue(in_array('0 everything else (translated)', $plurals));
1485 $this->assertTrue(in_array('1 is 1 (translated)', $plurals));
1486 $this->assertTrue(in_array('2 ends in 2-4, not 12-14 (translated)', $plurals));
1487 $this->assertTrue(in_array('3 ends in 2-4, not 12-14 (translated)', $plurals));
1488 $this->assertTrue(in_array('4 ends in 2-4, not 12-14 (translated)', $plurals));
1489 $this->assertTrue(in_array('5 everything else (translated)', $plurals));
1490 $this->assertTrue(in_array('6 everything else (translated)', $plurals));
1491 $this->assertTrue(in_array('7 everything else (translated)', $plurals));
1492 $this->assertTrue(in_array('8 everything else (translated)', $plurals));
1493 $this->assertTrue(in_array('9 everything else (translated)', $plurals));
1494 $this->assertTrue(in_array('10 everything else (translated)', $plurals));
1495 $this->assertTrue(in_array('11 everything else (translated)', $plurals));
1496 $this->assertTrue(in_array('12 everything else (translated)', $plurals));
1497 $this->assertTrue(in_array('13 everything else (translated)', $plurals));
1498 $this->assertTrue(in_array('14 everything else (translated)', $plurals));
1499 $this->assertTrue(in_array('15 everything else (translated)', $plurals));
1500 $this->assertTrue(in_array('16 everything else (translated)', $plurals));
1501 $this->assertTrue(in_array('17 everything else (translated)', $plurals));
1502 $this->assertTrue(in_array('18 everything else (translated)', $plurals));
1503 $this->assertTrue(in_array('19 everything else (translated)', $plurals));
1504 $this->assertTrue(in_array('20 everything else (translated)', $plurals));
1505 $this->assertTrue(in_array('21 everything else (translated)', $plurals));
1506 $this->assertTrue(in_array('22 ends in 2-4, not 12-14 (translated)', $plurals));
1507 $this->assertTrue(in_array('23 ends in 2-4, not 12-14 (translated)', $plurals));
1508 $this->assertTrue(in_array('24 ends in 2-4, not 12-14 (translated)', $plurals));
1509 $this->assertTrue(in_array('25 everything else (translated)', $plurals));
1510
1511 $coreSingular = $this->__singularFromCore();
1512 $this->assertEqual('Plural Rule 9 (from core translated)', $coreSingular);
1513
1514 $corePlurals = $this->__pluralFromCore();
1515 $this->assertTrue(in_array('0 everything else (from core translated)', $corePlurals));
1516 $this->assertTrue(in_array('0 everything else (from core translated)', $corePlurals));
1517 $this->assertTrue(in_array('0 everything else (from core translated)', $corePlurals));
1518 $this->assertTrue(in_array('1 is 1 (from core translated)', $corePlurals));
1519 $this->assertTrue(in_array('2 ends in 2-4, not 12-14 (from core translated)', $corePlurals));
1520 $this->assertTrue(in_array('3 ends in 2-4, not 12-14 (from core translated)', $corePlurals));
1521 $this->assertTrue(in_array('4 ends in 2-4, not 12-14 (from core translated)', $corePlurals));
1522 $this->assertTrue(in_array('5 everything else (from core translated)', $corePlurals));
1523 $this->assertTrue(in_array('6 everything else (from core translated)', $corePlurals));
1524 $this->assertTrue(in_array('7 everything else (from core translated)', $corePlurals));
1525 $this->assertTrue(in_array('8 everything else (from core translated)', $corePlurals));
1526 $this->assertTrue(in_array('9 everything else (from core translated)', $corePlurals));
1527 $this->assertTrue(in_array('10 everything else (from core translated)', $corePlurals));
1528 $this->assertTrue(in_array('11 everything else (from core translated)', $corePlurals));
1529 $this->assertTrue(in_array('12 everything else (from core translated)', $corePlurals));
1530 $this->assertTrue(in_array('13 everything else (from core translated)', $corePlurals));
1531 $this->assertTrue(in_array('14 everything else (from core translated)', $corePlurals));
1532 $this->assertTrue(in_array('15 everything else (from core translated)', $corePlurals));
1533 $this->assertTrue(in_array('16 everything else (from core translated)', $corePlurals));
1534 $this->assertTrue(in_array('17 everything else (from core translated)', $corePlurals));
1535 $this->assertTrue(in_array('18 everything else (from core translated)', $corePlurals));
1536 $this->assertTrue(in_array('19 everything else (from core translated)', $corePlurals));
1537 $this->assertTrue(in_array('20 everything else (from core translated)', $corePlurals));
1538 $this->assertTrue(in_array('21 everything else (from core translated)', $corePlurals));
1539 $this->assertTrue(in_array('22 ends in 2-4, not 12-14 (from core translated)', $corePlurals));
1540 $this->assertTrue(in_array('23 ends in 2-4, not 12-14 (from core translated)', $corePlurals));
1541 $this->assertTrue(in_array('24 ends in 2-4, not 12-14 (from core translated)', $corePlurals));
1542 $this->assertTrue(in_array('25 everything else (from core translated)', $corePlurals));
1543 }
1544
1545 /**
1546 * testMoRulesNine method
1547 *
1548 * @access public
1549 * @return void
1550 */
1551 function testMoRulesNine() {
1552 Configure::write('Config.language', 'rule_9_po');
1553
1554 $singular = $this->__singular();
1555 $this->assertEqual('Plural Rule 9 (translated)', $singular);
1556
1557 $plurals = $this->__plural();
1558 $this->assertTrue(in_array('0 everything else (translated)', $plurals));
1559 $this->assertTrue(in_array('0 everything else (translated)', $plurals));
1560 $this->assertTrue(in_array('1 is 1 (translated)', $plurals));
1561 $this->assertTrue(in_array('2 ends in 2-4, not 12-14 (translated)', $plurals));
1562 $this->assertTrue(in_array('3 ends in 2-4, not 12-14 (translated)', $plurals));
1563 $this->assertTrue(in_array('4 ends in 2-4, not 12-14 (translated)', $plurals));
1564 $this->assertTrue(in_array('5 everything else (translated)', $plurals));
1565 $this->assertTrue(in_array('6 everything else (translated)', $plurals));
1566 $this->assertTrue(in_array('7 everything else (translated)', $plurals));
1567 $this->assertTrue(in_array('8 everything else (translated)', $plurals));
1568 $this->assertTrue(in_array('9 everything else (translated)', $plurals));
1569 $this->assertTrue(in_array('10 everything else (translated)', $plurals));
1570 $this->assertTrue(in_array('11 everything else (translated)', $plurals));
1571 $this->assertTrue(in_array('12 everything else (translated)', $plurals));
1572 $this->assertTrue(in_array('13 everything else (translated)', $plurals));
1573 $this->assertTrue(in_array('14 everything else (translated)', $plurals));
1574 $this->assertTrue(in_array('15 everything else (translated)', $plurals));
1575 $this->assertTrue(in_array('16 everything else (translated)', $plurals));
1576 $this->assertTrue(in_array('17 everything else (translated)', $plurals));
1577 $this->assertTrue(in_array('18 everything else (translated)', $plurals));
1578 $this->assertTrue(in_array('19 everything else (translated)', $plurals));
1579 $this->assertTrue(in_array('20 everything else (translated)', $plurals));
1580 $this->assertTrue(in_array('21 everything else (translated)', $plurals));
1581 $this->assertTrue(in_array('22 ends in 2-4, not 12-14 (translated)', $plurals));
1582 $this->assertTrue(in_array('23 ends in 2-4, not 12-14 (translated)', $plurals));
1583 $this->assertTrue(in_array('24 ends in 2-4, not 12-14 (translated)', $plurals));
1584 $this->assertTrue(in_array('25 everything else (translated)', $plurals));
1585
1586 $coreSingular = $this->__singularFromCore();
1587 $this->assertEqual('Plural Rule 9 (from core translated)', $coreSingular);
1588
1589 $corePlurals = $this->__pluralFromCore();
1590 $this->assertTrue(in_array('0 everything else (from core translated)', $corePlurals));
1591 $this->assertTrue(in_array('0 everything else (from core translated)', $corePlurals));
1592 $this->assertTrue(in_array('0 everything else (from core translated)', $corePlurals));
1593 $this->assertTrue(in_array('1 is 1 (from core translated)', $corePlurals));
1594 $this->assertTrue(in_array('2 ends in 2-4, not 12-14 (from core translated)', $corePlurals));
1595 $this->assertTrue(in_array('3 ends in 2-4, not 12-14 (from core translated)', $corePlurals));
1596 $this->assertTrue(in_array('4 ends in 2-4, not 12-14 (from core translated)', $corePlurals));
1597 $this->assertTrue(in_array('5 everything else (from core translated)', $corePlurals));
1598 $this->assertTrue(in_array('6 everything else (from core translated)', $corePlurals));
1599 $this->assertTrue(in_array('7 everything else (from core translated)', $corePlurals));
1600 $this->assertTrue(in_array('8 everything else (from core translated)', $corePlurals));
1601 $this->assertTrue(in_array('9 everything else (from core translated)', $corePlurals));
1602 $this->assertTrue(in_array('10 everything else (from core translated)', $corePlurals));
1603 $this->assertTrue(in_array('11 everything else (from core translated)', $corePlurals));
1604 $this->assertTrue(in_array('12 everything else (from core translated)', $corePlurals));
1605 $this->assertTrue(in_array('13 everything else (from core translated)', $corePlurals));
1606 $this->assertTrue(in_array('14 everything else (from core translated)', $corePlurals));
1607 $this->assertTrue(in_array('15 everything else (from core translated)', $corePlurals));
1608 $this->assertTrue(in_array('16 everything else (from core translated)', $corePlurals));
1609 $this->assertTrue(in_array('17 everything else (from core translated)', $corePlurals));
1610 $this->assertTrue(in_array('18 everything else (from core translated)', $corePlurals));
1611 $this->assertTrue(in_array('19 everything else (from core translated)', $corePlurals));
1612 $this->assertTrue(in_array('20 everything else (from core translated)', $corePlurals));
1613 $this->assertTrue(in_array('21 everything else (from core translated)', $corePlurals));
1614 $this->assertTrue(in_array('22 ends in 2-4, not 12-14 (from core translated)', $corePlurals));
1615 $this->assertTrue(in_array('23 ends in 2-4, not 12-14 (from core translated)', $corePlurals));
1616 $this->assertTrue(in_array('24 ends in 2-4, not 12-14 (from core translated)', $corePlurals));
1617 $this->assertTrue(in_array('25 everything else (from core translated)', $corePlurals));
1618 }
1619
1620 /**
1621 * testPoRulesTen method
1622 *
1623 * @access public
1624 * @return void
1625 */
1626 function testPoRulesTen() {
1627 Configure::write('Config.language', 'rule_10_po');
1628
1629 $singular = $this->__singular();
1630 $this->assertEqual('Plural Rule 10 (translated)', $singular);
1631
1632 $plurals = $this->__plural();
1633 $this->assertTrue(in_array('0 everything else (translated)', $plurals));
1634 $this->assertTrue(in_array('0 everything else (translated)', $plurals));
1635 $this->assertTrue(in_array('1 ends in 1 (translated)', $plurals));
1636 $this->assertTrue(in_array('2 ends in 2 (translated)', $plurals));
1637 $this->assertTrue(in_array('3 ends in 03-04 (translated)', $plurals));
1638 $this->assertTrue(in_array('4 ends in 03-04 (translated)', $plurals));
1639 $this->assertTrue(in_array('5 everything else (translated)', $plurals));
1640 $this->assertTrue(in_array('6 everything else (translated)', $plurals));
1641 $this->assertTrue(in_array('7 everything else (translated)', $plurals));
1642 $this->assertTrue(in_array('8 everything else (translated)', $plurals));
1643 $this->assertTrue(in_array('9 everything else (translated)', $plurals));
1644 $this->assertTrue(in_array('10 everything else (translated)', $plurals));
1645 $this->assertTrue(in_array('11 everything else (translated)', $plurals));
1646 $this->assertTrue(in_array('12 everything else (translated)', $plurals));
1647 $this->assertTrue(in_array('13 everything else (translated)', $plurals));
1648 $this->assertTrue(in_array('14 everything else (translated)', $plurals));
1649 $this->assertTrue(in_array('15 everything else (translated)', $plurals));
1650 $this->assertTrue(in_array('16 everything else (translated)', $plurals));
1651 $this->assertTrue(in_array('17 everything else (translated)', $plurals));
1652 $this->assertTrue(in_array('18 everything else (translated)', $plurals));
1653 $this->assertTrue(in_array('19 everything else (translated)', $plurals));
1654 $this->assertTrue(in_array('20 everything else (translated)', $plurals));
1655 $this->assertTrue(in_array('21 everything else (translated)', $plurals));
1656 $this->assertTrue(in_array('22 everything else (translated)', $plurals));
1657 $this->assertTrue(in_array('23 everything else (translated)', $plurals));
1658 $this->assertTrue(in_array('24 everything else (translated)', $plurals));
1659 $this->assertTrue(in_array('25 everything else (translated)', $plurals));
1660
1661 $coreSingular = $this->__singularFromCore();
1662 $this->assertEqual('Plural Rule 10 (from core translated)', $coreSingular);
1663
1664 $corePlurals = $this->__pluralFromCore();
1665 $this->assertTrue(in_array('0 everything else (from core translated)', $corePlurals));
1666 $this->assertTrue(in_array('0 everything else (from core translated)', $corePlurals));
1667 $this->assertTrue(in_array('1 ends in 1 (from core translated)', $corePlurals));
1668 $this->assertTrue(in_array('2 ends in 2 (from core translated)', $corePlurals));
1669 $this->assertTrue(in_array('3 ends in 03-04 (from core translated)', $corePlurals));
1670 $this->assertTrue(in_array('4 ends in 03-04 (from core translated)', $corePlurals));
1671 $this->assertTrue(in_array('5 everything else (from core translated)', $corePlurals));
1672 $this->assertTrue(in_array('6 everything else (from core translated)', $corePlurals));
1673 $this->assertTrue(in_array('7 everything else (from core translated)', $corePlurals));
1674 $this->assertTrue(in_array('8 everything else (from core translated)', $corePlurals));
1675 $this->assertTrue(in_array('9 everything else (from core translated)', $corePlurals));
1676 $this->assertTrue(in_array('10 everything else (from core translated)', $corePlurals));
1677 $this->assertTrue(in_array('11 everything else (from core translated)', $corePlurals));
1678 $this->assertTrue(in_array('12 everything else (from core translated)', $corePlurals));
1679 $this->assertTrue(in_array('13 everything else (from core translated)', $corePlurals));
1680 $this->assertTrue(in_array('14 everything else (from core translated)', $corePlurals));
1681 $this->assertTrue(in_array('15 everything else (from core translated)', $corePlurals));
1682 $this->assertTrue(in_array('16 everything else (from core translated)', $corePlurals));
1683 $this->assertTrue(in_array('17 everything else (from core translated)', $corePlurals));
1684 $this->assertTrue(in_array('18 everything else (from core translated)', $corePlurals));
1685 $this->assertTrue(in_array('19 everything else (from core translated)', $corePlurals));
1686 $this->assertTrue(in_array('20 everything else (from core translated)', $corePlurals));
1687 $this->assertTrue(in_array('21 everything else (from core translated)', $corePlurals));
1688 $this->assertTrue(in_array('22 everything else (from core translated)', $corePlurals));
1689 $this->assertTrue(in_array('23 everything else (from core translated)', $corePlurals));
1690 $this->assertTrue(in_array('24 everything else (from core translated)', $corePlurals));
1691 $this->assertTrue(in_array('25 everything else (from core translated)', $corePlurals));
1692 }
1693
1694 /**
1695 * testMoRulesTen method
1696 *
1697 * @access public
1698 * @return void
1699 */
1700 function testMoRulesTen() {
1701 Configure::write('Config.language', 'rule_10_mo');
1702
1703 $singular = $this->__singular();
1704 $this->assertEqual('Plural Rule 10 (translated)', $singular);
1705
1706 $plurals = $this->__plural();
1707 $this->assertTrue(in_array('0 everything else (translated)', $plurals));
1708 $this->assertTrue(in_array('0 everything else (translated)', $plurals));
1709 $this->assertTrue(in_array('1 ends in 1 (translated)', $plurals));
1710 $this->assertTrue(in_array('2 ends in 2 (translated)', $plurals));
1711 $this->assertTrue(in_array('3 ends in 03-04 (translated)', $plurals));
1712 $this->assertTrue(in_array('4 ends in 03-04 (translated)', $plurals));
1713 $this->assertTrue(in_array('5 everything else (translated)', $plurals));
1714 $this->assertTrue(in_array('6 everything else (translated)', $plurals));
1715 $this->assertTrue(in_array('7 everything else (translated)', $plurals));
1716 $this->assertTrue(in_array('8 everything else (translated)', $plurals));
1717 $this->assertTrue(in_array('9 everything else (translated)', $plurals));
1718 $this->assertTrue(in_array('10 everything else (translated)', $plurals));
1719 $this->assertTrue(in_array('11 everything else (translated)', $plurals));
1720 $this->assertTrue(in_array('12 everything else (translated)', $plurals));
1721 $this->assertTrue(in_array('13 everything else (translated)', $plurals));
1722 $this->assertTrue(in_array('14 everything else (translated)', $plurals));
1723 $this->assertTrue(in_array('15 everything else (translated)', $plurals));
1724 $this->assertTrue(in_array('16 everything else (translated)', $plurals));
1725 $this->assertTrue(in_array('17 everything else (translated)', $plurals));
1726 $this->assertTrue(in_array('18 everything else (translated)', $plurals));
1727 $this->assertTrue(in_array('19 everything else (translated)', $plurals));
1728 $this->assertTrue(in_array('20 everything else (translated)', $plurals));
1729 $this->assertTrue(in_array('21 everything else (translated)', $plurals));
1730 $this->assertTrue(in_array('22 everything else (translated)', $plurals));
1731 $this->assertTrue(in_array('23 everything else (translated)', $plurals));
1732 $this->assertTrue(in_array('24 everything else (translated)', $plurals));
1733 $this->assertTrue(in_array('25 everything else (translated)', $plurals));
1734
1735 $coreSingular = $this->__singularFromCore();
1736 $this->assertEqual('Plural Rule 10 (from core translated)', $coreSingular);
1737
1738 $corePlurals = $this->__pluralFromCore();
1739 $this->assertTrue(in_array('0 everything else (from core translated)', $corePlurals));
1740 $this->assertTrue(in_array('0 everything else (from core translated)', $corePlurals));
1741 $this->assertTrue(in_array('1 ends in 1 (from core translated)', $corePlurals));
1742 $this->assertTrue(in_array('2 ends in 2 (from core translated)', $corePlurals));
1743 $this->assertTrue(in_array('3 ends in 03-04 (from core translated)', $corePlurals));
1744 $this->assertTrue(in_array('4 ends in 03-04 (from core translated)', $corePlurals));
1745 $this->assertTrue(in_array('5 everything else (from core translated)', $corePlurals));
1746 $this->assertTrue(in_array('6 everything else (from core translated)', $corePlurals));
1747 $this->assertTrue(in_array('7 everything else (from core translated)', $corePlurals));
1748 $this->assertTrue(in_array('8 everything else (from core translated)', $corePlurals));
1749 $this->assertTrue(in_array('9 everything else (from core translated)', $corePlurals));
1750 $this->assertTrue(in_array('10 everything else (from core translated)', $corePlurals));
1751 $this->assertTrue(in_array('11 everything else (from core translated)', $corePlurals));
1752 $this->assertTrue(in_array('12 everything else (from core translated)', $corePlurals));
1753 $this->assertTrue(in_array('13 everything else (from core translated)', $corePlurals));
1754 $this->assertTrue(in_array('14 everything else (from core translated)', $corePlurals));
1755 $this->assertTrue(in_array('15 everything else (from core translated)', $corePlurals));
1756 $this->assertTrue(in_array('16 everything else (from core translated)', $corePlurals));
1757 $this->assertTrue(in_array('17 everything else (from core translated)', $corePlurals));
1758 $this->assertTrue(in_array('18 everything else (from core translated)', $corePlurals));
1759 $this->assertTrue(in_array('19 everything else (from core translated)', $corePlurals));
1760 $this->assertTrue(in_array('20 everything else (from core translated)', $corePlurals));
1761 $this->assertTrue(in_array('21 everything else (from core translated)', $corePlurals));
1762 $this->assertTrue(in_array('22 everything else (from core translated)', $corePlurals));
1763 $this->assertTrue(in_array('23 everything else (from core translated)', $corePlurals));
1764 $this->assertTrue(in_array('24 everything else (from core translated)', $corePlurals));
1765 $this->assertTrue(in_array('25 everything else (from core translated)', $corePlurals));
1766 }
1767
1768 /**
1769 * testPoRulesEleven method
1770 *
1771 * @access public
1772 * @return void
1773 */
1774 function testPoRulesEleven() {
1775 Configure::write('Config.language', 'rule_11_po');
1776
1777 $singular = $this->__singular();
1778 $this->assertEqual('Plural Rule 11 (translated)', $singular);
1779
1780 $plurals = $this->__plural();
1781 $this->assertTrue(in_array('0 everything else (translated)', $plurals));
1782 $this->assertTrue(in_array('1 is 1 (translated)', $plurals));
1783 $this->assertTrue(in_array('2 is 2 (translated)', $plurals));
1784 $this->assertTrue(in_array('3 is 3-6 (translated)', $plurals));
1785 $this->assertTrue(in_array('4 is 3-6 (translated)', $plurals));
1786 $this->assertTrue(in_array('5 is 3-6 (translated)', $plurals));
1787 $this->assertTrue(in_array('6 is 3-6 (translated)', $plurals));
1788 $this->assertTrue(in_array('7 is 7-10 (translated)', $plurals));
1789 $this->assertTrue(in_array('8 is 7-10 (translated)', $plurals));
1790 $this->assertTrue(in_array('9 is 7-10 (translated)', $plurals));
1791 $this->assertTrue(in_array('10 is 7-10 (translated)', $plurals));
1792 $this->assertTrue(in_array('11 everything else (translated)', $plurals));
1793 $this->assertTrue(in_array('12 everything else (translated)', $plurals));
1794 $this->assertTrue(in_array('13 everything else (translated)', $plurals));
1795 $this->assertTrue(in_array('14 everything else (translated)', $plurals));
1796 $this->assertTrue(in_array('15 everything else (translated)', $plurals));
1797 $this->assertTrue(in_array('16 everything else (translated)', $plurals));
1798 $this->assertTrue(in_array('17 everything else (translated)', $plurals));
1799 $this->assertTrue(in_array('18 everything else (translated)', $plurals));
1800 $this->assertTrue(in_array('19 everything else (translated)', $plurals));
1801 $this->assertTrue(in_array('20 everything else (translated)', $plurals));
1802 $this->assertTrue(in_array('21 everything else (translated)', $plurals));
1803 $this->assertTrue(in_array('22 everything else (translated)', $plurals));
1804 $this->assertTrue(in_array('23 everything else (translated)', $plurals));
1805 $this->assertTrue(in_array('24 everything else (translated)', $plurals));
1806 $this->assertTrue(in_array('25 everything else (translated)', $plurals));
1807
1808 $coreSingular = $this->__singularFromCore();
1809 $this->assertEqual('Plural Rule 11 (from core translated)', $coreSingular);
1810
1811 $corePlurals = $this->__pluralFromCore();
1812 $this->assertTrue(in_array('0 everything else (from core translated)', $corePlurals));
1813 $this->assertTrue(in_array('1 is 1 (from core translated)', $corePlurals));
1814 $this->assertTrue(in_array('2 is 2 (from core translated)', $corePlurals));
1815 $this->assertTrue(in_array('3 is 3-6 (from core translated)', $corePlurals));
1816 $this->assertTrue(in_array('4 is 3-6 (from core translated)', $corePlurals));
1817 $this->assertTrue(in_array('5 is 3-6 (from core translated)', $corePlurals));
1818 $this->assertTrue(in_array('6 is 3-6 (from core translated)', $corePlurals));
1819 $this->assertTrue(in_array('7 is 7-10 (from core translated)', $corePlurals));
1820 $this->assertTrue(in_array('8 is 7-10 (from core translated)', $corePlurals));
1821 $this->assertTrue(in_array('9 is 7-10 (from core translated)', $corePlurals));
1822 $this->assertTrue(in_array('10 is 7-10 (from core translated)', $corePlurals));
1823 $this->assertTrue(in_array('11 everything else (from core translated)', $corePlurals));
1824 $this->assertTrue(in_array('12 everything else (from core translated)', $corePlurals));
1825 $this->assertTrue(in_array('13 everything else (from core translated)', $corePlurals));
1826 $this->assertTrue(in_array('14 everything else (from core translated)', $corePlurals));
1827 $this->assertTrue(in_array('15 everything else (from core translated)', $corePlurals));
1828 $this->assertTrue(in_array('16 everything else (from core translated)', $corePlurals));
1829 $this->assertTrue(in_array('17 everything else (from core translated)', $corePlurals));
1830 $this->assertTrue(in_array('18 everything else (from core translated)', $corePlurals));
1831 $this->assertTrue(in_array('19 everything else (from core translated)', $corePlurals));
1832 $this->assertTrue(in_array('20 everything else (from core translated)', $corePlurals));
1833 $this->assertTrue(in_array('21 everything else (from core translated)', $corePlurals));
1834 $this->assertTrue(in_array('22 everything else (from core translated)', $corePlurals));
1835 $this->assertTrue(in_array('23 everything else (from core translated)', $corePlurals));
1836 $this->assertTrue(in_array('24 everything else (from core translated)', $corePlurals));
1837 $this->assertTrue(in_array('25 everything else (from core translated)', $corePlurals));
1838 }
1839
1840 /**
1841 * testMoRulesEleven method
1842 *
1843 * @access public
1844 * @return void
1845 */
1846 function testMoRulesEleven() {
1847 Configure::write('Config.language', 'rule_11_mo');
1848
1849 $singular = $this->__singular();
1850 $this->assertEqual('Plural Rule 11 (translated)', $singular);
1851
1852 $plurals = $this->__plural();
1853 $this->assertTrue(in_array('0 everything else (translated)', $plurals));
1854 $this->assertTrue(in_array('1 is 1 (translated)', $plurals));
1855 $this->assertTrue(in_array('2 is 2 (translated)', $plurals));
1856 $this->assertTrue(in_array('3 is 3-6 (translated)', $plurals));
1857 $this->assertTrue(in_array('4 is 3-6 (translated)', $plurals));
1858 $this->assertTrue(in_array('5 is 3-6 (translated)', $plurals));
1859 $this->assertTrue(in_array('6 is 3-6 (translated)', $plurals));
1860 $this->assertTrue(in_array('7 is 7-10 (translated)', $plurals));
1861 $this->assertTrue(in_array('8 is 7-10 (translated)', $plurals));
1862 $this->assertTrue(in_array('9 is 7-10 (translated)', $plurals));
1863 $this->assertTrue(in_array('10 is 7-10 (translated)', $plurals));
1864 $this->assertTrue(in_array('11 everything else (translated)', $plurals));
1865 $this->assertTrue(in_array('12 everything else (translated)', $plurals));
1866 $this->assertTrue(in_array('13 everything else (translated)', $plurals));
1867 $this->assertTrue(in_array('14 everything else (translated)', $plurals));
1868 $this->assertTrue(in_array('15 everything else (translated)', $plurals));
1869 $this->assertTrue(in_array('16 everything else (translated)', $plurals));
1870 $this->assertTrue(in_array('17 everything else (translated)', $plurals));
1871 $this->assertTrue(in_array('18 everything else (translated)', $plurals));
1872 $this->assertTrue(in_array('19 everything else (translated)', $plurals));
1873 $this->assertTrue(in_array('20 everything else (translated)', $plurals));
1874 $this->assertTrue(in_array('21 everything else (translated)', $plurals));
1875 $this->assertTrue(in_array('22 everything else (translated)', $plurals));
1876 $this->assertTrue(in_array('23 everything else (translated)', $plurals));
1877 $this->assertTrue(in_array('24 everything else (translated)', $plurals));
1878 $this->assertTrue(in_array('25 everything else (translated)', $plurals));
1879
1880 $coreSingular = $this->__singularFromCore();
1881 $this->assertEqual('Plural Rule 11 (from core translated)', $coreSingular);
1882
1883 $corePlurals = $this->__pluralFromCore();
1884 $this->assertTrue(in_array('0 everything else (from core translated)', $corePlurals));
1885 $this->assertTrue(in_array('1 is 1 (from core translated)', $corePlurals));
1886 $this->assertTrue(in_array('2 is 2 (from core translated)', $corePlurals));
1887 $this->assertTrue(in_array('3 is 3-6 (from core translated)', $corePlurals));
1888 $this->assertTrue(in_array('4 is 3-6 (from core translated)', $corePlurals));
1889 $this->assertTrue(in_array('5 is 3-6 (from core translated)', $corePlurals));
1890 $this->assertTrue(in_array('6 is 3-6 (from core translated)', $corePlurals));
1891 $this->assertTrue(in_array('7 is 7-10 (from core translated)', $corePlurals));
1892 $this->assertTrue(in_array('8 is 7-10 (from core translated)', $corePlurals));
1893 $this->assertTrue(in_array('9 is 7-10 (from core translated)', $corePlurals));
1894 $this->assertTrue(in_array('10 is 7-10 (from core translated)', $corePlurals));
1895 $this->assertTrue(in_array('11 everything else (from core translated)', $corePlurals));
1896 $this->assertTrue(in_array('12 everything else (from core translated)', $corePlurals));
1897 $this->assertTrue(in_array('13 everything else (from core translated)', $corePlurals));
1898 $this->assertTrue(in_array('14 everything else (from core translated)', $corePlurals));
1899 $this->assertTrue(in_array('15 everything else (from core translated)', $corePlurals));
1900 $this->assertTrue(in_array('16 everything else (from core translated)', $corePlurals));
1901 $this->assertTrue(in_array('17 everything else (from core translated)', $corePlurals));
1902 $this->assertTrue(in_array('18 everything else (from core translated)', $corePlurals));
1903 $this->assertTrue(in_array('19 everything else (from core translated)', $corePlurals));
1904 $this->assertTrue(in_array('20 everything else (from core translated)', $corePlurals));
1905 $this->assertTrue(in_array('21 everything else (from core translated)', $corePlurals));
1906 $this->assertTrue(in_array('22 everything else (from core translated)', $corePlurals));
1907 $this->assertTrue(in_array('23 everything else (from core translated)', $corePlurals));
1908 $this->assertTrue(in_array('24 everything else (from core translated)', $corePlurals));
1909 $this->assertTrue(in_array('25 everything else (from core translated)', $corePlurals));
1910 }
1911
1912 /**
1913 * testPoRulesTwelve method
1914 *
1915 * @access public
1916 * @return void
1917 */
1918 function testPoRulesTwelve() {
1919 Configure::write('Config.language', 'rule_12_po');
1920
1921 $singular = $this->__singular();
1922 $this->assertEqual('Plural Rule 12 (translated)', $singular);
1923
1924 $plurals = $this->__plural();
1925 $this->assertTrue(in_array('0 is 0 or 3-10 (translated)', $plurals));
1926 $this->assertTrue(in_array('1 is 1 (translated)', $plurals));
1927 $this->assertTrue(in_array('2 is 2 (translated)', $plurals));
1928 $this->assertTrue(in_array('3 is 0 or 3-10 (translated)', $plurals));
1929 $this->assertTrue(in_array('4 is 0 or 3-10 (translated)', $plurals));
1930 $this->assertTrue(in_array('5 is 0 or 3-10 (translated)', $plurals));
1931 $this->assertTrue(in_array('6 is 0 or 3-10 (translated)', $plurals));
1932 $this->assertTrue(in_array('7 is 0 or 3-10 (translated)', $plurals));
1933 $this->assertTrue(in_array('8 is 0 or 3-10 (translated)', $plurals));
1934 $this->assertTrue(in_array('9 is 0 or 3-10 (translated)', $plurals));
1935 $this->assertTrue(in_array('10 is 0 or 3-10 (translated)', $plurals));
1936 $this->assertTrue(in_array('11 everything else (translated)', $plurals));
1937 $this->assertTrue(in_array('12 everything else (translated)', $plurals));
1938 $this->assertTrue(in_array('13 everything else (translated)', $plurals));
1939 $this->assertTrue(in_array('14 everything else (translated)', $plurals));
1940 $this->assertTrue(in_array('15 everything else (translated)', $plurals));
1941 $this->assertTrue(in_array('16 everything else (translated)', $plurals));
1942 $this->assertTrue(in_array('17 everything else (translated)', $plurals));
1943 $this->assertTrue(in_array('18 everything else (translated)', $plurals));
1944 $this->assertTrue(in_array('19 everything else (translated)', $plurals));
1945 $this->assertTrue(in_array('20 everything else (translated)', $plurals));
1946 $this->assertTrue(in_array('21 everything else (translated)', $plurals));
1947 $this->assertTrue(in_array('22 everything else (translated)', $plurals));
1948 $this->assertTrue(in_array('23 everything else (translated)', $plurals));
1949 $this->assertTrue(in_array('24 everything else (translated)', $plurals));
1950 $this->assertTrue(in_array('25 everything else (translated)', $plurals));
1951
1952 $coreSingular = $this->__singularFromCore();
1953 $this->assertEqual('Plural Rule 12 (from core translated)', $coreSingular);
1954
1955 $corePlurals = $this->__pluralFromCore();
1956 $this->assertTrue(in_array('0 is 0 or 3-10 (from core translated)', $corePlurals));
1957 $this->assertTrue(in_array('1 is 1 (from core translated)', $corePlurals));
1958 $this->assertTrue(in_array('2 is 2 (from core translated)', $corePlurals));
1959 $this->assertTrue(in_array('3 is 0 or 3-10 (from core translated)', $corePlurals));
1960 $this->assertTrue(in_array('4 is 0 or 3-10 (from core translated)', $corePlurals));
1961 $this->assertTrue(in_array('5 is 0 or 3-10 (from core translated)', $corePlurals));
1962 $this->assertTrue(in_array('6 is 0 or 3-10 (from core translated)', $corePlurals));
1963 $this->assertTrue(in_array('7 is 0 or 3-10 (from core translated)', $corePlurals));
1964 $this->assertTrue(in_array('8 is 0 or 3-10 (from core translated)', $corePlurals));
1965 $this->assertTrue(in_array('9 is 0 or 3-10 (from core translated)', $corePlurals));
1966 $this->assertTrue(in_array('10 is 0 or 3-10 (from core translated)', $corePlurals));
1967 $this->assertTrue(in_array('11 everything else (from core translated)', $corePlurals));
1968 $this->assertTrue(in_array('12 everything else (from core translated)', $corePlurals));
1969 $this->assertTrue(in_array('13 everything else (from core translated)', $corePlurals));
1970 $this->assertTrue(in_array('14 everything else (from core translated)', $corePlurals));
1971 $this->assertTrue(in_array('15 everything else (from core translated)', $corePlurals));
1972 $this->assertTrue(in_array('16 everything else (from core translated)', $corePlurals));
1973 $this->assertTrue(in_array('17 everything else (from core translated)', $corePlurals));
1974 $this->assertTrue(in_array('18 everything else (from core translated)', $corePlurals));
1975 $this->assertTrue(in_array('19 everything else (from core translated)', $corePlurals));
1976 $this->assertTrue(in_array('20 everything else (from core translated)', $corePlurals));
1977 $this->assertTrue(in_array('21 everything else (from core translated)', $corePlurals));
1978 $this->assertTrue(in_array('22 everything else (from core translated)', $corePlurals));
1979 $this->assertTrue(in_array('23 everything else (from core translated)', $corePlurals));
1980 $this->assertTrue(in_array('24 everything else (from core translated)', $corePlurals));
1981 $this->assertTrue(in_array('25 everything else (from core translated)', $corePlurals));
1982 }
1983
1984 /**
1985 * testMoRulesTwelve method
1986 *
1987 * @access public
1988 * @return void
1989 */
1990 function testMoRulesTwelve() {
1991 Configure::write('Config.language', 'rule_12_mo');
1992
1993 $singular = $this->__singular();
1994 $this->assertEqual('Plural Rule 12 (translated)', $singular);
1995
1996 $plurals = $this->__plural();
1997 $this->assertTrue(in_array('0 is 0 or 3-10 (translated)', $plurals));
1998 $this->assertTrue(in_array('1 is 1 (translated)', $plurals));
1999 $this->assertTrue(in_array('2 is 2 (translated)', $plurals));
2000 $this->assertTrue(in_array('3 is 0 or 3-10 (translated)', $plurals));
2001 $this->assertTrue(in_array('4 is 0 or 3-10 (translated)', $plurals));
2002 $this->assertTrue(in_array('5 is 0 or 3-10 (translated)', $plurals));
2003 $this->assertTrue(in_array('6 is 0 or 3-10 (translated)', $plurals));
2004 $this->assertTrue(in_array('7 is 0 or 3-10 (translated)', $plurals));
2005 $this->assertTrue(in_array('8 is 0 or 3-10 (translated)', $plurals));
2006 $this->assertTrue(in_array('9 is 0 or 3-10 (translated)', $plurals));
2007 $this->assertTrue(in_array('10 is 0 or 3-10 (translated)', $plurals));
2008 $this->assertTrue(in_array('11 everything else (translated)', $plurals));
2009 $this->assertTrue(in_array('12 everything else (translated)', $plurals));
2010 $this->assertTrue(in_array('13 everything else (translated)', $plurals));
2011 $this->assertTrue(in_array('14 everything else (translated)', $plurals));
2012 $this->assertTrue(in_array('15 everything else (translated)', $plurals));
2013 $this->assertTrue(in_array('16 everything else (translated)', $plurals));
2014 $this->assertTrue(in_array('17 everything else (translated)', $plurals));
2015 $this->assertTrue(in_array('18 everything else (translated)', $plurals));
2016 $this->assertTrue(in_array('19 everything else (translated)', $plurals));
2017 $this->assertTrue(in_array('20 everything else (translated)', $plurals));
2018 $this->assertTrue(in_array('21 everything else (translated)', $plurals));
2019 $this->assertTrue(in_array('22 everything else (translated)', $plurals));
2020 $this->assertTrue(in_array('23 everything else (translated)', $plurals));
2021 $this->assertTrue(in_array('24 everything else (translated)', $plurals));
2022 $this->assertTrue(in_array('25 everything else (translated)', $plurals));
2023
2024 $coreSingular = $this->__singularFromCore();
2025 $this->assertEqual('Plural Rule 12 (from core translated)', $coreSingular);
2026
2027 $corePlurals = $this->__pluralFromCore();
2028 $this->assertTrue(in_array('0 is 0 or 3-10 (from core translated)', $corePlurals));
2029 $this->assertTrue(in_array('1 is 1 (from core translated)', $corePlurals));
2030 $this->assertTrue(in_array('2 is 2 (from core translated)', $corePlurals));
2031 $this->assertTrue(in_array('3 is 0 or 3-10 (from core translated)', $corePlurals));
2032 $this->assertTrue(in_array('4 is 0 or 3-10 (from core translated)', $corePlurals));
2033 $this->assertTrue(in_array('5 is 0 or 3-10 (from core translated)', $corePlurals));
2034 $this->assertTrue(in_array('6 is 0 or 3-10 (from core translated)', $corePlurals));
2035 $this->assertTrue(in_array('7 is 0 or 3-10 (from core translated)', $corePlurals));
2036 $this->assertTrue(in_array('8 is 0 or 3-10 (from core translated)', $corePlurals));
2037 $this->assertTrue(in_array('9 is 0 or 3-10 (from core translated)', $corePlurals));
2038 $this->assertTrue(in_array('10 is 0 or 3-10 (from core translated)', $corePlurals));
2039 $this->assertTrue(in_array('11 everything else (from core translated)', $corePlurals));
2040 $this->assertTrue(in_array('12 everything else (from core translated)', $corePlurals));
2041 $this->assertTrue(in_array('13 everything else (from core translated)', $corePlurals));
2042 $this->assertTrue(in_array('14 everything else (from core translated)', $corePlurals));
2043 $this->assertTrue(in_array('15 everything else (from core translated)', $corePlurals));
2044 $this->assertTrue(in_array('16 everything else (from core translated)', $corePlurals));
2045 $this->assertTrue(in_array('17 everything else (from core translated)', $corePlurals));
2046 $this->assertTrue(in_array('18 everything else (from core translated)', $corePlurals));
2047 $this->assertTrue(in_array('19 everything else (from core translated)', $corePlurals));
2048 $this->assertTrue(in_array('20 everything else (from core translated)', $corePlurals));
2049 $this->assertTrue(in_array('21 everything else (from core translated)', $corePlurals));
2050 $this->assertTrue(in_array('22 everything else (from core translated)', $corePlurals));
2051 $this->assertTrue(in_array('23 everything else (from core translated)', $corePlurals));
2052 $this->assertTrue(in_array('24 everything else (from core translated)', $corePlurals));
2053 $this->assertTrue(in_array('25 everything else (from core translated)', $corePlurals));
2054 }
2055
2056 /**
2057 * testPoRulesThirteen method
2058 *
2059 * @access public
2060 * @return void
2061 */
2062 function testPoRulesThirteen() {
2063 Configure::write('Config.language', 'rule_13_po');
2064
2065 $singular = $this->__singular();
2066 $this->assertEqual('Plural Rule 13 (translated)', $singular);
2067
2068 $plurals = $this->__plural();
2069 $this->assertTrue(in_array('0 is 0 or ends in 01-10 (translated)', $plurals));
2070 $this->assertTrue(in_array('1 is 1 (translated)', $plurals));
2071 $this->assertTrue(in_array('2 is 0 or ends in 01-10 (translated)', $plurals));
2072 $this->assertTrue(in_array('3 is 0 or ends in 01-10 (translated)', $plurals));
2073 $this->assertTrue(in_array('4 is 0 or ends in 01-10 (translated)', $plurals));
2074 $this->assertTrue(in_array('5 is 0 or ends in 01-10 (translated)', $plurals));
2075 $this->assertTrue(in_array('6 is 0 or ends in 01-10 (translated)', $plurals));
2076 $this->assertTrue(in_array('7 is 0 or ends in 01-10 (translated)', $plurals));
2077 $this->assertTrue(in_array('8 is 0 or ends in 01-10 (translated)', $plurals));
2078 $this->assertTrue(in_array('9 is 0 or ends in 01-10 (translated)', $plurals));
2079 $this->assertTrue(in_array('10 is 0 or ends in 01-10 (translated)', $plurals));
2080 $this->assertTrue(in_array('11 ends in 11-20 (translated)', $plurals));
2081 $this->assertTrue(in_array('12 ends in 11-20 (translated)', $plurals));
2082 $this->assertTrue(in_array('13 ends in 11-20 (translated)', $plurals));
2083 $this->assertTrue(in_array('14 ends in 11-20 (translated)', $plurals));
2084 $this->assertTrue(in_array('15 ends in 11-20 (translated)', $plurals));
2085 $this->assertTrue(in_array('16 ends in 11-20 (translated)', $plurals));
2086 $this->assertTrue(in_array('17 ends in 11-20 (translated)', $plurals));
2087 $this->assertTrue(in_array('18 ends in 11-20 (translated)', $plurals));
2088 $this->assertTrue(in_array('19 ends in 11-20 (translated)', $plurals));
2089 $this->assertTrue(in_array('20 ends in 11-20 (translated)', $plurals));
2090 $this->assertTrue(in_array('21 everything else (translated)', $plurals));
2091 $this->assertTrue(in_array('22 everything else (translated)', $plurals));
2092 $this->assertTrue(in_array('23 everything else (translated)', $plurals));
2093 $this->assertTrue(in_array('24 everything else (translated)', $plurals));
2094 $this->assertTrue(in_array('25 everything else (translated)', $plurals));
2095
2096 $coreSingular = $this->__singularFromCore();
2097 $this->assertEqual('Plural Rule 13 (from core translated)', $coreSingular);
2098
2099 $corePlurals = $this->__pluralFromCore();
2100 $this->assertTrue(in_array('0 is 0 or ends in 01-10 (from core translated)', $corePlurals));
2101 $this->assertTrue(in_array('1 is 1 (from core translated)', $corePlurals));
2102 $this->assertTrue(in_array('2 is 0 or ends in 01-10 (from core translated)', $corePlurals));
2103 $this->assertTrue(in_array('3 is 0 or ends in 01-10 (from core translated)', $corePlurals));
2104 $this->assertTrue(in_array('4 is 0 or ends in 01-10 (from core translated)', $corePlurals));
2105 $this->assertTrue(in_array('5 is 0 or ends in 01-10 (from core translated)', $corePlurals));
2106 $this->assertTrue(in_array('6 is 0 or ends in 01-10 (from core translated)', $corePlurals));
2107 $this->assertTrue(in_array('7 is 0 or ends in 01-10 (from core translated)', $corePlurals));
2108 $this->assertTrue(in_array('8 is 0 or ends in 01-10 (from core translated)', $corePlurals));
2109 $this->assertTrue(in_array('9 is 0 or ends in 01-10 (from core translated)', $corePlurals));
2110 $this->assertTrue(in_array('10 is 0 or ends in 01-10 (from core translated)', $corePlurals));
2111 $this->assertTrue(in_array('11 ends in 11-20 (from core translated)', $corePlurals));
2112 $this->assertTrue(in_array('12 ends in 11-20 (from core translated)', $corePlurals));
2113 $this->assertTrue(in_array('13 ends in 11-20 (from core translated)', $corePlurals));
2114 $this->assertTrue(in_array('14 ends in 11-20 (from core translated)', $corePlurals));
2115 $this->assertTrue(in_array('15 ends in 11-20 (from core translated)', $corePlurals));
2116 $this->assertTrue(in_array('16 ends in 11-20 (from core translated)', $corePlurals));
2117 $this->assertTrue(in_array('17 ends in 11-20 (from core translated)', $corePlurals));
2118 $this->assertTrue(in_array('18 ends in 11-20 (from core translated)', $corePlurals));
2119 $this->assertTrue(in_array('19 ends in 11-20 (from core translated)', $corePlurals));
2120 $this->assertTrue(in_array('20 ends in 11-20 (from core translated)', $corePlurals));
2121 $this->assertTrue(in_array('21 everything else (from core translated)', $corePlurals));
2122 $this->assertTrue(in_array('22 everything else (from core translated)', $corePlurals));
2123 $this->assertTrue(in_array('23 everything else (from core translated)', $corePlurals));
2124 $this->assertTrue(in_array('24 everything else (from core translated)', $corePlurals));
2125 $this->assertTrue(in_array('25 everything else (from core translated)', $corePlurals));
2126 }
2127
2128 /**
2129 * testMoRulesThirteen method
2130 *
2131 * @access public
2132 * @return void
2133 */
2134 function testMoRulesThirteen() {
2135 Configure::write('Config.language', 'rule_13_mo');
2136
2137 $singular = $this->__singular();
2138 $this->assertEqual('Plural Rule 13 (translated)', $singular);
2139
2140 $plurals = $this->__plural();
2141 $this->assertTrue(in_array('0 is 0 or ends in 01-10 (translated)', $plurals));
2142 $this->assertTrue(in_array('1 is 1 (translated)', $plurals));
2143 $this->assertTrue(in_array('2 is 0 or ends in 01-10 (translated)', $plurals));
2144 $this->assertTrue(in_array('3 is 0 or ends in 01-10 (translated)', $plurals));
2145 $this->assertTrue(in_array('4 is 0 or ends in 01-10 (translated)', $plurals));
2146 $this->assertTrue(in_array('5 is 0 or ends in 01-10 (translated)', $plurals));
2147 $this->assertTrue(in_array('6 is 0 or ends in 01-10 (translated)', $plurals));
2148 $this->assertTrue(in_array('7 is 0 or ends in 01-10 (translated)', $plurals));
2149 $this->assertTrue(in_array('8 is 0 or ends in 01-10 (translated)', $plurals));
2150 $this->assertTrue(in_array('9 is 0 or ends in 01-10 (translated)', $plurals));
2151 $this->assertTrue(in_array('10 is 0 or ends in 01-10 (translated)', $plurals));
2152 $this->assertTrue(in_array('11 ends in 11-20 (translated)', $plurals));
2153 $this->assertTrue(in_array('12 ends in 11-20 (translated)', $plurals));
2154 $this->assertTrue(in_array('13 ends in 11-20 (translated)', $plurals));
2155 $this->assertTrue(in_array('14 ends in 11-20 (translated)', $plurals));
2156 $this->assertTrue(in_array('15 ends in 11-20 (translated)', $plurals));
2157 $this->assertTrue(in_array('16 ends in 11-20 (translated)', $plurals));
2158 $this->assertTrue(in_array('17 ends in 11-20 (translated)', $plurals));
2159 $this->assertTrue(in_array('18 ends in 11-20 (translated)', $plurals));
2160 $this->assertTrue(in_array('19 ends in 11-20 (translated)', $plurals));
2161 $this->assertTrue(in_array('20 ends in 11-20 (translated)', $plurals));
2162 $this->assertTrue(in_array('21 everything else (translated)', $plurals));
2163 $this->assertTrue(in_array('22 everything else (translated)', $plurals));
2164 $this->assertTrue(in_array('23 everything else (translated)', $plurals));
2165 $this->assertTrue(in_array('24 everything else (translated)', $plurals));
2166 $this->assertTrue(in_array('25 everything else (translated)', $plurals));
2167
2168 $coreSingular = $this->__singularFromCore();
2169 $this->assertEqual('Plural Rule 13 (from core translated)', $coreSingular);
2170
2171 $corePlurals = $this->__pluralFromCore();
2172 $this->assertTrue(in_array('0 is 0 or ends in 01-10 (from core translated)', $corePlurals));
2173 $this->assertTrue(in_array('1 is 1 (from core translated)', $corePlurals));
2174 $this->assertTrue(in_array('2 is 0 or ends in 01-10 (from core translated)', $corePlurals));
2175 $this->assertTrue(in_array('3 is 0 or ends in 01-10 (from core translated)', $corePlurals));
2176 $this->assertTrue(in_array('4 is 0 or ends in 01-10 (from core translated)', $corePlurals));
2177 $this->assertTrue(in_array('5 is 0 or ends in 01-10 (from core translated)', $corePlurals));
2178 $this->assertTrue(in_array('6 is 0 or ends in 01-10 (from core translated)', $corePlurals));
2179 $this->assertTrue(in_array('7 is 0 or ends in 01-10 (from core translated)', $corePlurals));
2180 $this->assertTrue(in_array('8 is 0 or ends in 01-10 (from core translated)', $corePlurals));
2181 $this->assertTrue(in_array('9 is 0 or ends in 01-10 (from core translated)', $corePlurals));
2182 $this->assertTrue(in_array('10 is 0 or ends in 01-10 (from core translated)', $corePlurals));
2183 $this->assertTrue(in_array('11 ends in 11-20 (from core translated)', $corePlurals));
2184 $this->assertTrue(in_array('12 ends in 11-20 (from core translated)', $corePlurals));
2185 $this->assertTrue(in_array('13 ends in 11-20 (from core translated)', $corePlurals));
2186 $this->assertTrue(in_array('14 ends in 11-20 (from core translated)', $corePlurals));
2187 $this->assertTrue(in_array('15 ends in 11-20 (from core translated)', $corePlurals));
2188 $this->assertTrue(in_array('16 ends in 11-20 (from core translated)', $corePlurals));
2189 $this->assertTrue(in_array('17 ends in 11-20 (from core translated)', $corePlurals));
2190 $this->assertTrue(in_array('18 ends in 11-20 (from core translated)', $corePlurals));
2191 $this->assertTrue(in_array('19 ends in 11-20 (from core translated)', $corePlurals));
2192 $this->assertTrue(in_array('20 ends in 11-20 (from core translated)', $corePlurals));
2193 $this->assertTrue(in_array('21 everything else (from core translated)', $corePlurals));
2194 $this->assertTrue(in_array('22 everything else (from core translated)', $corePlurals));
2195 $this->assertTrue(in_array('23 everything else (from core translated)', $corePlurals));
2196 $this->assertTrue(in_array('24 everything else (from core translated)', $corePlurals));
2197 $this->assertTrue(in_array('25 everything else (from core translated)', $corePlurals));
2198 }
2199
2200 /**
2201 * testPoRulesFourteen method
2202 *
2203 * @access public
2204 * @return void
2205 */
2206 function testPoRulesFourteen() {
2207 Configure::write('Config.language', 'rule_14_po');
2208
2209 $singular = $this->__singular();
2210 $this->assertEqual('Plural Rule 14 (translated)', $singular);
2211
2212 $plurals = $this->__plural();
2213 $this->assertTrue(in_array('0 everything else (translated)', $plurals));
2214 $this->assertTrue(in_array('1 ends in 1 (translated)', $plurals));
2215 $this->assertTrue(in_array('2 ends in 2 (translated)', $plurals));
2216 $this->assertTrue(in_array('3 everything else (translated)', $plurals));
2217 $this->assertTrue(in_array('4 everything else (translated)', $plurals));
2218 $this->assertTrue(in_array('5 everything else (translated)', $plurals));
2219 $this->assertTrue(in_array('6 everything else (translated)', $plurals));
2220 $this->assertTrue(in_array('7 everything else (translated)', $plurals));
2221 $this->assertTrue(in_array('8 everything else (translated)', $plurals));
2222 $this->assertTrue(in_array('9 everything else (translated)', $plurals));
2223 $this->assertTrue(in_array('10 everything else (translated)', $plurals));
2224 $this->assertTrue(in_array('11 ends in 1 (translated)', $plurals));
2225 $this->assertTrue(in_array('12 ends in 2 (translated)', $plurals));
2226 $this->assertTrue(in_array('13 everything else (translated)', $plurals));
2227 $this->assertTrue(in_array('14 everything else (translated)', $plurals));
2228 $this->assertTrue(in_array('15 everything else (translated)', $plurals));
2229 $this->assertTrue(in_array('16 everything else (translated)', $plurals));
2230 $this->assertTrue(in_array('17 everything else (translated)', $plurals));
2231 $this->assertTrue(in_array('18 everything else (translated)', $plurals));
2232 $this->assertTrue(in_array('19 everything else (translated)', $plurals));
2233 $this->assertTrue(in_array('20 everything else (translated)', $plurals));
2234 $this->assertTrue(in_array('21 ends in 1 (translated)', $plurals));
2235 $this->assertTrue(in_array('22 ends in 2 (translated)', $plurals));
2236 $this->assertTrue(in_array('23 everything else (translated)', $plurals));
2237 $this->assertTrue(in_array('24 everything else (translated)', $plurals));
2238 $this->assertTrue(in_array('25 everything else (translated)', $plurals));
2239
2240 $coreSingular = $this->__singularFromCore();
2241 $this->assertEqual('Plural Rule 14 (from core translated)', $coreSingular);
2242
2243 $corePlurals = $this->__pluralFromCore();
2244 $this->assertTrue(in_array('0 everything else (from core translated)', $corePlurals));
2245 $this->assertTrue(in_array('1 ends in 1 (from core translated)', $corePlurals));
2246 $this->assertTrue(in_array('2 ends in 2 (from core translated)', $corePlurals));
2247 $this->assertTrue(in_array('3 everything else (from core translated)', $corePlurals));
2248 $this->assertTrue(in_array('4 everything else (from core translated)', $corePlurals));
2249 $this->assertTrue(in_array('5 everything else (from core translated)', $corePlurals));
2250 $this->assertTrue(in_array('6 everything else (from core translated)', $corePlurals));
2251 $this->assertTrue(in_array('7 everything else (from core translated)', $corePlurals));
2252 $this->assertTrue(in_array('8 everything else (from core translated)', $corePlurals));
2253 $this->assertTrue(in_array('9 everything else (from core translated)', $corePlurals));
2254 $this->assertTrue(in_array('10 everything else (from core translated)', $corePlurals));
2255 $this->assertTrue(in_array('11 ends in 1 (from core translated)', $corePlurals));
2256 $this->assertTrue(in_array('12 ends in 2 (from core translated)', $corePlurals));
2257 $this->assertTrue(in_array('13 everything else (from core translated)', $corePlurals));
2258 $this->assertTrue(in_array('14 everything else (from core translated)', $corePlurals));
2259 $this->assertTrue(in_array('15 everything else (from core translated)', $corePlurals));
2260 $this->assertTrue(in_array('16 everything else (from core translated)', $corePlurals));
2261 $this->assertTrue(in_array('17 everything else (from core translated)', $corePlurals));
2262 $this->assertTrue(in_array('18 everything else (from core translated)', $corePlurals));
2263 $this->assertTrue(in_array('19 everything else (from core translated)', $corePlurals));
2264 $this->assertTrue(in_array('20 everything else (from core translated)', $corePlurals));
2265 $this->assertTrue(in_array('21 ends in 1 (from core translated)', $corePlurals));
2266 $this->assertTrue(in_array('22 ends in 2 (from core translated)', $corePlurals));
2267 $this->assertTrue(in_array('23 everything else (from core translated)', $corePlurals));
2268 $this->assertTrue(in_array('24 everything else (from core translated)', $corePlurals));
2269 $this->assertTrue(in_array('25 everything else (from core translated)', $corePlurals));
2270 }
2271
2272 /**
2273 * testMoRulesFourteen method
2274 *
2275 * @access public
2276 * @return void
2277 */
2278 function testMoRulesFourteen() {
2279 Configure::write('Config.language', 'rule_14_mo');
2280
2281 $singular = $this->__singular();
2282 $this->assertEqual('Plural Rule 14 (translated)', $singular);
2283
2284 $plurals = $this->__plural();
2285 $this->assertTrue(in_array('0 everything else (translated)', $plurals));
2286 $this->assertTrue(in_array('1 ends in 1 (translated)', $plurals));
2287 $this->assertTrue(in_array('2 ends in 2 (translated)', $plurals));
2288 $this->assertTrue(in_array('3 everything else (translated)', $plurals));
2289 $this->assertTrue(in_array('4 everything else (translated)', $plurals));
2290 $this->assertTrue(in_array('5 everything else (translated)', $plurals));
2291 $this->assertTrue(in_array('6 everything else (translated)', $plurals));
2292 $this->assertTrue(in_array('7 everything else (translated)', $plurals));
2293 $this->assertTrue(in_array('8 everything else (translated)', $plurals));
2294 $this->assertTrue(in_array('9 everything else (translated)', $plurals));
2295 $this->assertTrue(in_array('10 everything else (translated)', $plurals));
2296 $this->assertTrue(in_array('11 ends in 1 (translated)', $plurals));
2297 $this->assertTrue(in_array('12 ends in 2 (translated)', $plurals));
2298 $this->assertTrue(in_array('13 everything else (translated)', $plurals));
2299 $this->assertTrue(in_array('14 everything else (translated)', $plurals));
2300 $this->assertTrue(in_array('15 everything else (translated)', $plurals));
2301 $this->assertTrue(in_array('16 everything else (translated)', $plurals));
2302 $this->assertTrue(in_array('17 everything else (translated)', $plurals));
2303 $this->assertTrue(in_array('18 everything else (translated)', $plurals));
2304 $this->assertTrue(in_array('19 everything else (translated)', $plurals));
2305 $this->assertTrue(in_array('20 everything else (translated)', $plurals));
2306 $this->assertTrue(in_array('21 ends in 1 (translated)', $plurals));
2307 $this->assertTrue(in_array('22 ends in 2 (translated)', $plurals));
2308 $this->assertTrue(in_array('23 everything else (translated)', $plurals));
2309 $this->assertTrue(in_array('24 everything else (translated)', $plurals));
2310 $this->assertTrue(in_array('25 everything else (translated)', $plurals));
2311
2312 $coreSingular = $this->__singularFromCore();
2313 $this->assertEqual('Plural Rule 14 (from core translated)', $coreSingular);
2314
2315 $corePlurals = $this->__pluralFromCore();
2316 $this->assertTrue(in_array('0 everything else (from core translated)', $corePlurals));
2317 $this->assertTrue(in_array('1 ends in 1 (from core translated)', $corePlurals));
2318 $this->assertTrue(in_array('2 ends in 2 (from core translated)', $corePlurals));
2319 $this->assertTrue(in_array('3 everything else (from core translated)', $corePlurals));
2320 $this->assertTrue(in_array('4 everything else (from core translated)', $corePlurals));
2321 $this->assertTrue(in_array('5 everything else (from core translated)', $corePlurals));
2322 $this->assertTrue(in_array('6 everything else (from core translated)', $corePlurals));
2323 $this->assertTrue(in_array('7 everything else (from core translated)', $corePlurals));
2324 $this->assertTrue(in_array('8 everything else (from core translated)', $corePlurals));
2325 $this->assertTrue(in_array('9 everything else (from core translated)', $corePlurals));
2326 $this->assertTrue(in_array('10 everything else (from core translated)', $corePlurals));
2327 $this->assertTrue(in_array('11 ends in 1 (from core translated)', $corePlurals));
2328 $this->assertTrue(in_array('12 ends in 2 (from core translated)', $corePlurals));
2329 $this->assertTrue(in_array('13 everything else (from core translated)', $corePlurals));
2330 $this->assertTrue(in_array('14 everything else (from core translated)', $corePlurals));
2331 $this->assertTrue(in_array('15 everything else (from core translated)', $corePlurals));
2332 $this->assertTrue(in_array('16 everything else (from core translated)', $corePlurals));
2333 $this->assertTrue(in_array('17 everything else (from core translated)', $corePlurals));
2334 $this->assertTrue(in_array('18 everything else (from core translated)', $corePlurals));
2335 $this->assertTrue(in_array('19 everything else (from core translated)', $corePlurals));
2336 $this->assertTrue(in_array('20 everything else (from core translated)', $corePlurals));
2337 $this->assertTrue(in_array('21 ends in 1 (from core translated)', $corePlurals));
2338 $this->assertTrue(in_array('22 ends in 2 (from core translated)', $corePlurals));
2339 $this->assertTrue(in_array('23 everything else (from core translated)', $corePlurals));
2340 $this->assertTrue(in_array('24 everything else (from core translated)', $corePlurals));
2341 $this->assertTrue(in_array('25 everything else (from core translated)', $corePlurals));
2342 }
2343
2344 /**
2345 * testSetLanguageWithSession method
2346 *
2347 * @access public
2348 * @return void
2349 */
2350 function testSetLanguageWithSession () {
2351 $_SESSION['Config']['language'] = 'po';
2352 $singular = $this->__singular();
2353 $this->assertEqual('Po (translated)', $singular);
2354
2355 $plurals = $this->__plural();
2356 $this->assertTrue(in_array('0 everything else (po translated)', $plurals));
2357 $this->assertTrue(in_array('1 is 1 (po translated)', $plurals));
2358 $this->assertTrue(in_array('2 is 2-4 (po translated)', $plurals));
2359 $this->assertTrue(in_array('3 is 2-4 (po translated)', $plurals));
2360 $this->assertTrue(in_array('4 is 2-4 (po translated)', $plurals));
2361 $this->assertTrue(in_array('5 everything else (po translated)', $plurals));
2362 $this->assertTrue(in_array('6 everything else (po translated)', $plurals));
2363 $this->assertTrue(in_array('7 everything else (po translated)', $plurals));
2364 $this->assertTrue(in_array('8 everything else (po translated)', $plurals));
2365 $this->assertTrue(in_array('9 everything else (po translated)', $plurals));
2366 $this->assertTrue(in_array('10 everything else (po translated)', $plurals));
2367 $this->assertTrue(in_array('11 everything else (po translated)', $plurals));
2368 $this->assertTrue(in_array('12 everything else (po translated)', $plurals));
2369 $this->assertTrue(in_array('13 everything else (po translated)', $plurals));
2370 $this->assertTrue(in_array('14 everything else (po translated)', $plurals));
2371 $this->assertTrue(in_array('15 everything else (po translated)', $plurals));
2372 $this->assertTrue(in_array('16 everything else (po translated)', $plurals));
2373 $this->assertTrue(in_array('17 everything else (po translated)', $plurals));
2374 $this->assertTrue(in_array('18 everything else (po translated)', $plurals));
2375 $this->assertTrue(in_array('19 everything else (po translated)', $plurals));
2376 $this->assertTrue(in_array('20 everything else (po translated)', $plurals));
2377 $this->assertTrue(in_array('21 everything else (po translated)', $plurals));
2378 $this->assertTrue(in_array('22 everything else (po translated)', $plurals));
2379 $this->assertTrue(in_array('23 everything else (po translated)', $plurals));
2380 $this->assertTrue(in_array('24 everything else (po translated)', $plurals));
2381 $this->assertTrue(in_array('25 everything else (po translated)', $plurals));
2382 unset($_SESSION['Config']['language']);
2383 }
2384
2385 /**
2386 * testNoCoreTranslation method
2387 *
2388 * @access public
2389 * @return void
2390 */
2391 function testNoCoreTranslation () {
2392 Configure::write('Config.language', 'po');
2393 $singular = $this->__singular();
2394 $this->assertEqual('Po (translated)', $singular);
2395
2396 $coreSingular = $this->__singularFromCore();
2397 $this->assertNotEqual('Po (from core translated)', $coreSingular);
2398
2399 $corePlurals = $this->__pluralFromCore();
2400 $this->assertFalse(in_array('0 everything else (from core translated)', $corePlurals));
2401 $this->assertFalse(in_array('1 is 1 (from core translated)', $corePlurals));
2402 $this->assertFalse(in_array('2 is 2-4 (from core translated)', $corePlurals));
2403 $this->assertFalse(in_array('3 is 2-4 (from core translated)', $corePlurals));
2404 $this->assertFalse(in_array('4 is 2-4 (from core translated)', $corePlurals));
2405 $this->assertFalse(in_array('5 everything else (from core translated)', $corePlurals));
2406 $this->assertFalse(in_array('6 everything else (from core translated)', $corePlurals));
2407 $this->assertFalse(in_array('7 everything else (from core translated)', $corePlurals));
2408 $this->assertFalse(in_array('8 everything else (from core translated)', $corePlurals));
2409 $this->assertFalse(in_array('9 everything else (from core translated)', $corePlurals));
2410 $this->assertFalse(in_array('10 everything else (from core translated)', $corePlurals));
2411 $this->assertFalse(in_array('11 everything else (from core translated)', $corePlurals));
2412 $this->assertFalse(in_array('12 everything else (from core translated)', $corePlurals));
2413 $this->assertFalse(in_array('13 everything else (from core translated)', $corePlurals));
2414 $this->assertFalse(in_array('14 everything else (from core translated)', $corePlurals));
2415 $this->assertFalse(in_array('15 everything else (from core translated)', $corePlurals));
2416 $this->assertFalse(in_array('16 everything else (from core translated)', $corePlurals));
2417 $this->assertFalse(in_array('17 everything else (from core translated)', $corePlurals));
2418 $this->assertFalse(in_array('18 everything else (from core translated)', $corePlurals));
2419 $this->assertFalse(in_array('19 everything else (from core translated)', $corePlurals));
2420 $this->assertFalse(in_array('20 everything else (from core translated)', $corePlurals));
2421 $this->assertFalse(in_array('21 everything else (from core translated)', $corePlurals));
2422 $this->assertFalse(in_array('22 everything else (from core translated)', $corePlurals));
2423 $this->assertFalse(in_array('23 everything else (from core translated)', $corePlurals));
2424 $this->assertFalse(in_array('24 everything else (from core translated)', $corePlurals));
2425 $this->assertFalse(in_array('25 everything else (from core translated)', $corePlurals));
2426 }
2427
2428 /**
2429 * testPluginTranslation method
2430 *
2431 * @access public
2432 * @return void
2433 */
2434 function testPluginTranslation() {
2435 App::build(array(
2436 'plugins' => array(TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'plugins' . DS)
2437 ));
2438
2439 Configure::write('Config.language', 'po');
2440 $singular = $this->__domainSingular();
2441 $this->assertEqual('Plural Rule 1 (from plugin)', $singular);
2442
2443 $plurals = $this->__domainPlural();
2444 $this->assertTrue(in_array('0 = 0 or > 1 (from plugin)', $plurals));
2445 $this->assertTrue(in_array('1 = 1 (from plugin)', $plurals));
2446 $this->assertTrue(in_array('2 = 0 or > 1 (from plugin)', $plurals));
2447 $this->assertTrue(in_array('3 = 0 or > 1 (from plugin)', $plurals));
2448 $this->assertTrue(in_array('4 = 0 or > 1 (from plugin)', $plurals));
2449 $this->assertTrue(in_array('5 = 0 or > 1 (from plugin)', $plurals));
2450 $this->assertTrue(in_array('6 = 0 or > 1 (from plugin)', $plurals));
2451 $this->assertTrue(in_array('7 = 0 or > 1 (from plugin)', $plurals));
2452 $this->assertTrue(in_array('8 = 0 or > 1 (from plugin)', $plurals));
2453 $this->assertTrue(in_array('9 = 0 or > 1 (from plugin)', $plurals));
2454 $this->assertTrue(in_array('10 = 0 or > 1 (from plugin)', $plurals));
2455 $this->assertTrue(in_array('11 = 0 or > 1 (from plugin)', $plurals));
2456 $this->assertTrue(in_array('12 = 0 or > 1 (from plugin)', $plurals));
2457 $this->assertTrue(in_array('13 = 0 or > 1 (from plugin)', $plurals));
2458 $this->assertTrue(in_array('14 = 0 or > 1 (from plugin)', $plurals));
2459 $this->assertTrue(in_array('15 = 0 or > 1 (from plugin)', $plurals));
2460 $this->assertTrue(in_array('16 = 0 or > 1 (from plugin)', $plurals));
2461 $this->assertTrue(in_array('17 = 0 or > 1 (from plugin)', $plurals));
2462 $this->assertTrue(in_array('18 = 0 or > 1 (from plugin)', $plurals));
2463 $this->assertTrue(in_array('19 = 0 or > 1 (from plugin)', $plurals));
2464 $this->assertTrue(in_array('20 = 0 or > 1 (from plugin)', $plurals));
2465 $this->assertTrue(in_array('21 = 0 or > 1 (from plugin)', $plurals));
2466 $this->assertTrue(in_array('22 = 0 or > 1 (from plugin)', $plurals));
2467 $this->assertTrue(in_array('23 = 0 or > 1 (from plugin)', $plurals));
2468 $this->assertTrue(in_array('24 = 0 or > 1 (from plugin)', $plurals));
2469 $this->assertTrue(in_array('25 = 0 or > 1 (from plugin)', $plurals));
2470 }
2471
2472 /**
2473 * testPoMultipleLineTranslation method
2474 *
2475 * @access public
2476 * @return void
2477 */
2478 function testPoMultipleLineTranslation () {
2479 Configure::write('Config.language', 'po');
2480
2481 $string = "This is a multiline translation\n";
2482 $string .= "broken up over multiple lines.\n";
2483 $string .= "This is the third line.\n";
2484 $string .= "This is the forth line.";
2485 $result = __($string, true);
2486
2487 $expected = "This is a multiline translation\n";
2488 $expected .= "broken up over multiple lines.\n";
2489 $expected .= "This is the third line.\n";
2490 $expected .= "This is the forth line. (translated)";
2491 $this->assertEqual($result, $expected);
2492
2493 // Windows Newline is \r\n
2494 $string = "This is a multiline translation\r\n";
2495 $string .= "broken up over multiple lines.\r\n";
2496 $string .= "This is the third line.\r\n";
2497 $string .= "This is the forth line.";
2498 $result = __($string, true);
2499 $this->assertEqual($result, $expected);
2500
2501 $singular = "valid\nsecond line";
2502 $plural = "valids\nsecond line";
2503
2504 $result = __n($singular, $plural, 1, true);
2505 $expected = "v\nsecond line";
2506 $this->assertEqual($result, $expected);
2507
2508 $result = __n($singular, $plural, 2, true);
2509 $expected = "vs\nsecond line";
2510 $this->assertEqual($result, $expected);
2511
2512 $string = "This is a multiline translation\n";
2513 $string .= "broken up over multiple lines.\n";
2514 $string .= "This is the third line.\n";
2515 $string .= "This is the forth line.";
2516
2517 $singular = "%d = 1\n" . $string;
2518 $plural = "%d = 0 or > 1\n" . $string;
2519
2520 $result = __n($singular, $plural, 1, true);
2521 $expected = "%d is 1\n" . $string;
2522 $this->assertEqual($result, $expected);
2523
2524 $result = __n($singular, $plural, 2, true);
2525 $expected = "%d is 2-4\n" . $string;
2526 $this->assertEqual($result, $expected);
2527
2528 // Windows Newline is \r\n
2529 $string = "This is a multiline translation\r\n";
2530 $string .= "broken up over multiple lines.\r\n";
2531 $string .= "This is the third line.\r\n";
2532 $string .= "This is the forth line.";
2533
2534 $singular = "%d = 1\r\n" . $string;
2535 $plural = "%d = 0 or > 1\r\n" . $string;
2536
2537 $result = __n($singular, $plural, 1, true);
2538 $expected = "%d is 1\n" . str_replace("\r\n", "\n", $string);
2539 $this->assertEqual($result, $expected);
2540
2541 $result = __n($singular, $plural, 2, true);
2542 $expected = "%d is 2-4\n" . str_replace("\r\n", "\n", $string);
2543 $this->assertEqual($result, $expected);
2544 }
2545
2546 /**
2547 * testPoNoTranslationNeeded method
2548 *
2549 * @access public
2550 * @return void
2551 */
2552 function testPoNoTranslationNeeded () {
2553 Configure::write('Config.language', 'po');
2554 $result = __('No Translation needed', true);
2555 $this->assertEqual($result, 'No Translation needed');
2556 }
2557
2558 /**
2559 * testPoQuotedString method
2560 *
2561 * @access public
2562 * @return void
2563 */
2564 function testPoQuotedString () {
2565 $expected = 'this is a "quoted string" (translated)';
2566 $this->assertEqual(__('this is a "quoted string"', true), $expected);
2567 }
2568
2569 /**
2570 * testFloatValue method
2571 *
2572 * @access public
2573 * @return void
2574 */
2575 function testFloatValue() {
2576 Configure::write('Config.language', 'rule_9_po');
2577
2578 $result = __n('%d = 1', '%d = 0 or > 1', (float)1, true);
2579 $expected = '%d is 1 (translated)';
2580 $this->assertEqual($result, $expected);
2581
2582 $result = __n('%d = 1', '%d = 0 or > 1', (float)2, true);
2583 $expected = "%d ends in 2-4, not 12-14 (translated)";
2584 $this->assertEqual($result, $expected);
2585
2586 $result = __n('%d = 1', '%d = 0 or > 1', (float)5, true);
2587 $expected = "%d everything else (translated)";
2588 $this->assertEqual($result, $expected);
2589 }
2590
2591 /**
2592 * testCategory method
2593 *
2594 * @access public
2595 * @return void
2596 */
2597 function testCategory() {
2598 Configure::write('Config.language', 'po');
2599 $category = $this->__category();
2600 $this->assertEqual('Monetary Po (translated)', $category);
2601 }
2602
2603 /**
2604 * testPluginCategory method
2605 *
2606 * @access public
2607 * @return void
2608 */
2609 function testPluginCategory() {
2610 Configure::write('Config.language', 'po');
2611
2612 $singular = $this->__domainCategorySingular();
2613 $this->assertEqual('Monetary Plural Rule 1 (from plugin)', $singular);
2614
2615 $plurals = $this->__domainCategoryPlural();
2616 $this->assertTrue(in_array('Monetary 0 = 0 or > 1 (from plugin)', $plurals));
2617 $this->assertTrue(in_array('Monetary 1 = 1 (from plugin)', $plurals));
2618 }
2619
2620 /**
2621 * testCategoryThenSingular method
2622 *
2623 * @access public
2624 * @return void
2625 */
2626 function testCategoryThenSingular() {
2627 Configure::write('Config.language', 'po');
2628 $category = $this->__category();
2629 $this->assertEqual('Monetary Po (translated)', $category);
2630
2631 $singular = $this->__singular();
2632 $this->assertEqual('Po (translated)', $singular);
2633 }
2634
2635 function testTimeDefinition() {
2636 Configure::write('Config.language', 'po');
2637 $result = __c('d_fmt', 5, true);
2638 $expected = '%m/%d/%Y';
2639 $this->assertEqual($result, $expected);
2640
2641 $result = __c('am_pm', 5, true);
2642 $expected = array('AM', 'PM');
2643 $this->assertEqual($result, $expected);
2644
2645 $result = __c('abmon', 5, true);
2646 $expected = array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');
2647 $this->assertEqual($result, $expected);
2648 }
2649
2650 function testTimeDefinitionJapanese(){
2651 Configure::write('Config.language', 'ja_jp');
2652 $result = __c('d_fmt', 5, true);
2653
2654 $expected = "%Y年%m月%d日";
2655
2656 $this->assertEqual($result, $expected);
2657
2658 $result = __c('am_pm', 5, true);
2659 $expected = array("午前", "午後");
2660 $this->assertEqual($result, $expected);
2661
2662 $result = __c('abmon', 5, true);
2663 $expected = array(" 1月", " 2月", " 3月", " 4月", " 5月", " 6月", " 7月", " 8月", " 9月", "10月", "11月", "12月");
2664 $this->assertEqual($result, $expected);
2665 }
2666
2667 /**
2668 * Singular method
2669 *
2670 * @access private
2671 * @return void
2672 */
2673 function __domainCategorySingular($domain = 'test_plugin', $category = 3) {
2674 $singular = __dc($domain, 'Plural Rule 1', $category, true);
2675 return $singular;
2676 }
2677
2678 /**
2679 * Plural method
2680 *
2681 * @access private
2682 * @return void
2683 */
2684 function __domainCategoryPlural($domain = 'test_plugin', $category = 3) {
2685 $plurals = array();
2686 for ($number = 0; $number <= 25; $number++) {
2687 $plurals[] = sprintf(__dcn($domain, '%d = 1', '%d = 0 or > 1', (float)$number, $category, true), (float)$number);
2688 }
2689 return $plurals;
2690 }
2691
2692 /**
2693 * Singular method
2694 *
2695 * @access private
2696 * @return void
2697 */
2698 function __domainSingular($domain = 'test_plugin') {
2699 $singular = __d($domain, 'Plural Rule 1', true);
2700 return $singular;
2701 }
2702
2703 /**
2704 * Plural method
2705 *
2706 * @access private
2707 * @return void
2708 */
2709 function __domainPlural($domain = 'test_plugin') {
2710 $plurals = array();
2711 for ($number = 0; $number <= 25; $number++) {
2712 $plurals[] = sprintf(__dn($domain, '%d = 1', '%d = 0 or > 1', (float)$number, true), (float)$number );
2713 }
2714 return $plurals;
2715 }
2716
2717 /**
2718 * category method
2719 *
2720 * @access private
2721 * @return void
2722 */
2723 function __category($category = 3) {
2724 $singular = __c('Plural Rule 1', $category, true);
2725 return $singular;
2726 }
2727
2728 /**
2729 * Singular method
2730 *
2731 * @access private
2732 * @return void
2733 */
2734 function __singular() {
2735 $singular = __('Plural Rule 1', true);
2736 return $singular;
2737 }
2738
2739 /**
2740 * Plural method
2741 *
2742 * @access private
2743 * @return void
2744 */
2745 function __plural() {
2746 $plurals = array();
2747 for ($number = 0; $number <= 25; $number++) {
2748 $plurals[] = sprintf(__n('%d = 1', '%d = 0 or > 1', (float)$number, true), (float)$number );
2749 }
2750 return $plurals;
2751 }
2752
2753 /**
2754 * singularFromCore method
2755 *
2756 * @access private
2757 * @return void
2758 */
2759 function __singularFromCore() {
2760 $singular = __('Plural Rule 1 (from core)', true);
2761 return $singular;
2762 }
2763
2764 /**
2765 * pluralFromCore method
2766 *
2767 * @access private
2768 * @return void
2769 */
2770 function __pluralFromCore() {
2771 $plurals = array();
2772 for ($number = 0; $number <= 25; $number++) {
2773 $plurals[] = sprintf(__n('%d = 1 (from core)', '%d = 0 or > 1 (from core)', (float)$number, true), (float)$number );
2774 }
2775 return $plurals;
2776 }
2777 }