Core  3.2
PHP API documentation
 All Data Structures Namespaces Files Functions Variables Pages
PU_test_dcp_gettext.php
Go to the documentation of this file.
1 <?php
2 /*
3  * @author Anakeen
4  * @package Dcp\Pu
5 */
6 
7 namespace Dcp\Pu;
8 
9 require_once 'PU_testcase_dcp.php';
10 include_once 'WHAT/Lib.Http.php';
11 include_once 'FDL/enum_choice.php';
12 
13 class TestGetText extends TestCaseDcp
14 {
15  /**
16  * @dataProvider dataUnderscore
17  */
18  public function testUnderscore($text, $lang, $expectedText)
19  {
21  $this->assertEquals($expectedText, _($text));
22  }
23  /**
24  * @dataProvider data3Underscore
25  */
26  public function test3Underscore($text, $textp, $lang, $num, $expectedText)
27  {
29  $this->assertEquals($expectedText, sprintf(n___($text, $textp, $num) , $num));
30  }
31  /**
32  * @dataProvider dataContext
33  */
34  public function testContext($text, $ctx, $lang, $expectedText)
35  {
37  $this->assertEquals($expectedText, ___($text, $ctx));
38  }
39  /**
40  * @dataProvider dataPluralContext
41  */
42  public function testPluralContext($text, $textp, $ctx, $lang, $num, $expectedText)
43  {
45  $this->assertEquals($expectedText, sprintf(n___($text, $textp, $num, $ctx) , $num));
46  }
47  /**
48  * @dataProvider dataTextlayout
49  */
50  public function testTextlayout($text, $lang, $expectedText)
51  {
53  $lay = new \Layout("", self::getAction());
54  $lay->template = $text;
55  $genText = $lay->gen();
56 
57  $this->assertEquals($expectedText, $genText);
58  }
59 
60  public function dataTextlayout()
61  {
62  return array(
63  array(
64  "<p>[TEXT:dcptest:Hello]</p>",
65  "fr_FR",
66  "<p>Bonjour</p>"
67  ) ,
68 
69  array(
70  "<p>[TEXT(dcpctx1):dcptest:Test locale]</p>",
71  "fr_FR",
72  "<p>test avec contexte un</p>"
73  ) ,
74  array(
75  "<p>[TEXT(dcpctx2):dcptest:Test locale]</p>",
76  "fr_FR",
77  "<p>test avec contexte deux</p>"
78  )
79  );
80  }
81  public function dataPluralContext()
82  {
83  $i18n = _("dcptest:Hello");
84  $i18n = _("dcptest:Good Bye");
85  $i18n = n___("dcptest:%d symbol", "dcptest:%d symbols", 45);
86  $i18n = n___("%d symbol", "%d symbols", 45, "dcpctx1");
87  $i18n = ___("dcptest:Test locale");
88  $i18n = ___("dcptest:Test locale", "dcpctx1");
89  $i18n = ___("dcptest:Test locale", "dcpctx2");
90  return array(
91  array(
92  "dcptest:%d symbol",
93  "dcptest:%d symbols",
94  "",
95  "fr_FR",
96  0,
97  "0 symbole simple"
98  ) ,
99  array(
100  "%d symbol",
101  "%d symbols",
102  "dcpctx1",
103  "en_US",
104  0,
105  "0 very complex symbols"
106  ) ,
107  array(
108  "%d symbol",
109  "%d symbols",
110  "dcpctx1",
111  "en_US",
112  34,
113  "34 very complex symbols"
114  ) ,
115 
116  array(
117  "%d symbol",
118  "%d symbols",
119  "dcpctx1",
120  "fr_FR",
121  0,
122  "0 symbole très simple"
123  ) ,
124  array(
125  "%d symbol",
126  "%d symbols",
127  "dcpctx1",
128  "fr_FR",
129  1,
130  "1 symbole très simple"
131  ) ,
132  array(
133  "%d symbol",
134  "%d symbols",
135  "dcpctx1",
136  "fr_FR",
137  10,
138  "10 symboles très complexes"
139  )
140  );
141  }
142  public function dataContext()
143  {
144  return array(
145  array(
146  "dcptest:Hello",
147  "",
148  "fr_FR",
149  "Bonjour"
150  ) ,
151  array(
152  "dcptest:Good Bye",
153  "",
154  "fr_FR",
155  "Au revoir"
156  ) ,
157  array(
158  "dcptest:Hello",
159  "",
160  "en_US",
161  "Hello world"
162  ) ,
163  array(
164  "dcptest:Good Bye",
165  "",
166  "en_US",
167  "Good bye world"
168  ) ,
169  array(
170  "dcptest:Test locale",
171  "",
172  "fr_FR",
173  "test sans contexte"
174  ) ,
175  array(
176  "dcptest:No translation",
177  "",
178  "en_US",
179  "dcptest:No translation"
180  ) ,
181  array(
182  "dcptest:Test locale",
183  "dcpctx1",
184  "fr_FR",
185  "test avec contexte un"
186  ) ,
187  array(
188  "dcptest:Test locale",
189  "dcpctx2",
190  "fr_FR",
191  "test avec contexte deux"
192  ) ,
193  array(
194  "dcptest:Test locale",
195  "",
196  "en_US",
197  "test without context"
198  ) ,
199  array(
200  "dcptest:Test locale",
201  "dcpctx1",
202  "en_US",
203  "test with first context"
204  ) ,
205  array(
206  "dcptest:Test locale",
207  "dcpctx2",
208  "en_US",
209  "test with second context"
210  ) ,
211  array(
212  "dcptest:Test locale",
213  "dcpctx3",
214  "en_US",
215  "dcptest:Test locale"
216  )
217  );
218  }
219  public function data3Underscore()
220  {
221  $i18n = n___("dcptest:%d symbol", "dcptest:%d symbols",1);
222  $i18n = n___("dcptest:%.02f symbol", "dcptest:%02f symbols",1);
223  return array(
224  array(
225  "dcptest:%d symbol",
226  "dcptest:%d symbols",
227  "fr_FR",
228  0,
229  "0 symbole simple"
230  ) ,
231  array(
232  "dcptest:%d symbol",
233  "dcptest:%d symbols",
234  "fr_FR", -1,
235  "-1 symbole simple"
236  ) ,
237  array(
238  "dcptest:%d symbol",
239  "dcptest:%d symbols",
240  "fr_FR", -3,
241  "-3 symboles complexes"
242  ) ,
243  array(
244  "dcptest:%d symbol",
245  "dcptest:%d symbols",
246  "fr_FR",
247  1,
248  "1 symbole simple"
249  ) ,
250  array(
251  "dcptest:%d symbol",
252  "dcptest:%d symbols",
253  "fr_FR",
254  3,
255  "3 symboles complexes"
256  ) ,
257  array(
258  "dcptest:%.02f symbol",
259  "dcptest:%.02f symbols",
260  "fr_FR",
261  1.4,
262  "1.40 symbole simple"
263  ) ,
264  array(
265  "dcptest:%.02f symbol",
266  "dcptest:%.02f symbols",
267  "fr_FR",
268  1.6,
269  "1.60 symbole simple"
270  ) ,
271  array(
272  "dcptest:%.02f symbol",
273  "dcptest:%.02f symbols",
274  "fr_FR", -0.6,
275  "-0.60 symbole simple"
276  ) ,
277  array(
278  "dcptest:%.02f symbol",
279  "dcptest:%.02f symbols",
280  "fr_FR", -0.2,
281  "-0.20 symbole simple"
282  ) ,
283  array(
284  "dcptest:%.02f symbol",
285  "dcptest:%.02f symbols",
286  "fr_FR", -1.2,
287  "-1.20 symbole simple"
288  ) ,
289  /*
290  array(
291  "dcptest:%.02f symbol",
292  "dcptest:%.02f symbols",
293  "fr_FR",
294  -1.4,
295  "-1.40 symbole simple"
296  ) ,
297  array(
298  "dcptest:%.02f symbol",
299  "dcptest:%.02f symbols",
300  "fr_FR",
301  -2.4,
302  "-2.40 symboles complexes"
303  ) ,*/
304  array(
305  "dcptest:%.02f symbol",
306  "dcptest:%.02f symbols",
307  "fr_FR",
308  2.5,
309  "2.50 symboles complexes"
310  ) ,
311  array(
312  "dcptest:%.02f symbol",
313  "dcptest:%.02f symbols",
314  "en_US",
315  2.5,
316  "2.50 complex symbols"
317  ) ,
318  array(
319  "dcptest:%.02f symbol",
320  "dcptest:%.02f symbols",
321  "en_US",
322  0.5,
323  "0.50 complex symbols"
324  ) ,
325  array(
326  "dcptest:%.02f symbol",
327  "dcptest:%.02f symbols",
328  "en_US",
329  1,
330  "1.00 simple symbol"
331  ) ,
332  /*
333  array(
334  "dcptest:%.02f symbol",
335  "dcptest:%.02f symbols",
336  "en_US",
337  1.3,
338  "1.30 complex symbols"
339  ) ,
340  array(
341  "dcptest:%.02f symbol",
342  "dcptest:%.02f symbols",
343  "en_US",
344  1.6,
345  "1.60 complex symbols"
346  ) ,*/
347  array(
348  "dcptest:%d symbol",
349  "dcptest:%d symbols",
350  "en_US",
351  0,
352  "0 complex symbols"
353  ) ,
354  array(
355  "dcptest:%d symbol",
356  "dcptest:%d symbols",
357  "en_US",
358  1,
359  "1 simple symbol"
360  ) ,
361  array(
362  "dcptest:%d symbol",
363  "dcptest:%d symbols",
364  "en_US", -1,
365  "-1 simple symbol"
366  ) ,
367  array(
368  "dcptest:%d symbol",
369  "dcptest:%d symbols",
370  "en_US",
371  31,
372  "31 complex symbols"
373  )
374  );
375  }
376 
377  public function dataUnderscore()
378  {
379  return array(
380  array(
381  "dcptest:Hello",
382  "fr_FR",
383  "Bonjour"
384  ) ,
385  array(
386  "dcptest:Good Bye",
387  "fr_FR",
388  "Au revoir"
389  ) ,
390  array(
391  "dcptest:Hello",
392  "en_US",
393  "Hello world"
394  ) ,
395  array(
396  "dcptest:Good Bye",
397  "en_US",
398  "Good bye world"
399  )
400  );
401  }
402 }
403 ?>
if(!function_exists('pgettext')) ___($message, $context="")
Definition: Lib.Common.php:46
$lang
Definition: lang.php:18
n___($message, $message_plural, $num, $context="")
Definition: Lib.Common.php:55
testContext($text, $ctx, $lang, $expectedText)
testTextlayout($text, $lang, $expectedText)
setLanguage($lang)
Definition: Lib.Common.php:886
testUnderscore($text, $lang, $expectedText)
test3Underscore($text, $textp, $lang, $num, $expectedText)
testPluralContext($text, $textp, $ctx, $lang, $num, $expectedText)
← centre documentaire © anakeen