summaryrefslogtreecommitdiff
path: root/inc/lib/gettext/tests/ParsingTest.php
diff options
context:
space:
mode:
authorMichael Save <savetheinternet@tinyboard.org>2012-04-09 20:52:26 +1000
committerMichael Save <savetheinternet@tinyboard.org>2012-04-09 20:52:26 +1000
commit874b8cbf002e9d8bf0ff39671e1501165016320a (patch)
tree1428acec23fef6c607e10fd355d88af31c2029ed /inc/lib/gettext/tests/ParsingTest.php
parent69c9a9dd452299e0e8f7335966a1d0b4036df583 (diff)
inc/contrib -> inc/lib
Diffstat (limited to 'inc/lib/gettext/tests/ParsingTest.php')
-rw-r--r--inc/lib/gettext/tests/ParsingTest.php60
1 files changed, 60 insertions, 0 deletions
diff --git a/inc/lib/gettext/tests/ParsingTest.php b/inc/lib/gettext/tests/ParsingTest.php
new file mode 100644
index 00000000..ff561989
--- /dev/null
+++ b/inc/lib/gettext/tests/ParsingTest.php
@@ -0,0 +1,60 @@
+<?php
+require_once('PHPUnit/Framework.php');
+//require_once('gettext.php');
+
+class ParsingTest extends PHPUnit_Framework_TestCase
+{
+ public function test_extract_plural_forms_header_from_po_header()
+ {
+ $parser = new gettext_reader(NULL);
+ // It defaults to a "Western-style" plural header.
+ $this->assertEquals(
+ 'nplurals=2; plural=n == 1 ? 0 : 1;',
+ $parser->extract_plural_forms_header_from_po_header(""));
+
+ // Extracting it from the middle of the header works.
+ $this->assertEquals(
+ 'nplurals=1; plural=0;',
+ $parser->extract_plural_forms_header_from_po_header(
+ "Content-type: text/html; charset=UTF-8\n"
+ ."Plural-Forms: nplurals=1; plural=0;\n"
+ ."Last-Translator: nobody\n"
+ ));
+
+ // It's also case-insensitive.
+ $this->assertEquals(
+ 'nplurals=1; plural=0;',
+ $parser->extract_plural_forms_header_from_po_header(
+ "PLURAL-forms: nplurals=1; plural=0;\n"
+ ));
+
+ // It falls back to default if it's not on a separate line.
+ $this->assertEquals(
+ 'nplurals=2; plural=n == 1 ? 0 : 1;',
+ $parser->extract_plural_forms_header_from_po_header(
+ "Content-type: text/html; charset=UTF-8" // note the missing \n here
+ ."Plural-Forms: nplurals=1; plural=0;\n"
+ ."Last-Translator: nobody\n"
+ ));
+ }
+
+ /**
+ * @dataProvider data_provider_test_npgettext
+ */
+ public function test_npgettext($number, $expected) {
+ $parser = new gettext_reader(NULL);
+ $result = $parser->npgettext("context",
+ "%d pig went to the market\n",
+ "%d pigs went to the market\n",
+ $number);
+ $this->assertSame($expected, $result);
+ }
+ public static function data_provider_test_npgettext() {
+ return array(
+ array(1, "%d pig went to the market\n"),
+ array(2, "%d pigs went to the market\n"),
+ );
+ }
+
+}
+?>