Browse Source

Add tests covering use case in #12013

mark_story 8 years ago
parent
commit
f5555dbb83

+ 5 - 0
tests/TestCase/I18n/Parser/PoFileParserTest.php

@@ -178,12 +178,17 @@ class PoFileParserTest extends TestCase
         $this->assertSame('En resolved', $messages['Resolved']['_context']['']);
         $this->assertSame('En resolved - context', $messages['Resolved']['_context']['Pay status']);
 
+        $key = '{0,plural,=0{Je suis}=1{Je suis}=2{Nous sommes} other{Nous sommes}}';
+        $this->assertContains("I've", $messages[$key]['_context']['origin']);
+
         // Confirm actual behavior
         I18n::setLocale('en_CA');
         $this->assertSame('En cours', __('Pending'));
         $this->assertSame('En cours - context', __x('Pay status', 'Pending'));
         $this->assertSame('En resolved', __('Resolved'));
         $this->assertSame('En resolved - context', __x('Pay status', 'Resolved'));
+        $this->assertSame("I've", __x('origin', $key, [1]));
+        $this->assertSame("We are", __x('origin', $key, [3]));
     }
 
     /**

+ 10 - 0
tests/test_app/TestApp/Locale/en/context.po

@@ -27,3 +27,13 @@ msgstr "Titel mit Kontext"
 msgctxt "another_context"
 msgid "title"
 msgstr "Titel mit anderem Kontext"
+
+#, fuzzy
+msgctxt "being"
+msgid "{0,plural,=0{Je suis}=1{Je suis}=2{Nous sommes} other{Nous sommes}}"
+msgstr "{0,plural,=0{I'm}=1{I'm}=2{We are} other{We are}}"
+
+#, fuzzy
+msgctxt "origin"
+msgid "{0,plural,=0{Je suis}=1{Je suis}=2{Nous sommes} other{Nous sommes}}"
+msgstr "{0,plural,=0{I've}=1{I've}=2{We are} other{We are}}"